EfficientNet-Funktionszusammensetzung oder Hadamard
Auf Seite 3 des Papiers von EfficientNet gibt es eine Gleichung$$\mathcal{N} = \bigodot_{i=1...s} \mathcal{F}_{i}^{L_i} \big(X_{\langle H_i, W_i, C_i \rangle}\big)$$ wo $\mathcal{N}$ ist das Conv-Netz und jeder $\mathcal{F}_i^{L_i}$ ist der $i$Schichtoperator der dritten Stufe mit Länge $L_i$.
Was ich nicht verstehe ist, was ist das? $\odot$in dieser Gleichung? Bezieht sich der Autor auf das Hadamard-Produkt oder auf die Funktionszusammensetzung? Er hat das bereits erwähnt$\mathcal{N} = \mathcal{F}_k \odot ... \odot \mathcal{F}_1 (X_1)$, wobei k die Tiefe des Netzes ist. Also dachte ich, das bedeutet das$\odot$ist nur Funktionszusammensetzung. EfficientNet verfügt jedoch über eine Sprungverbindung. In der Keras-Implementierung wird verwendet, layers.merge.Multiply()so dass es auch bedeuten kann, dass die Eingabedaten$X$ wird mit dem transformierten multipliziert $\mathcal{F}(X)$, und $\odot$ bedeutet vielleicht das Hadamard-Produkt.
Kennt jemand die Antwort? Vielen Dank.
Antworten
Es handelt sich wahrscheinlich um eine wiederholte Funktionszusammensetzung.
Hauptgründe:
- Der Wortlaut der Autoren vor dieser Gleichung lautet: "eine Liste zusammengesetzter Schichten".
- Ein Hadamard-Produkt konnte nicht auf Schichten unterschiedlicher Größe aufgetragen werden, wohingegen die Funktionszusammensetzung dies natürlich kann.
- Ja, EfficientNet verfügt über Sprungverbindungen, aber ich denke, sie versuchen, die Funktionszusammensetzung durch eine Unterscheidung zwischen "Ebenen" und "Stufen" zu validieren. Sie sagen, dass "$F_i^{L_i}$ bezeichnet Schicht $F_i$ wird wiederholt $L_i$ mal auf der Bühne $i$". Sie erklären auch, dass" alle Schichten in jeder Stufe dieselbe Architektur haben. Daher denke ich, dass sie Sprungverbindungen in Form von Funktionszusammensetzung setzen, aber es ist verwirrend. Ich denke, es ist ihre Art, die (oft) wiederholte Architektur von übersprungenen Schichten kompakt auszudrücken.