Jede Autoencoder-Architektur, die ich gesehen habe, hat eine ähnliche Architektur, hauptsächlich, dass der Decoder genau das Gegenteil des Encoders ist. Wenn das Ziel des Autoencoders das Lernen von niedrigdimensionalen Merkmalen ist, warum ist der Decoder nicht einfach? Ein Beispiel wäre eine lineare Transformation wobei eine Beobachtung durch die Merkmalsmatrix (dh den Engpass) ist und eine gelernte Gewichtsmatrix ist, die auf die ursprüngliche Eingangsmerkmalsgröße abbildet . Im Fall eines tiefen Autoencoders mit mehreren verborgenen Schichten hätte der Decoder im obigen Beispiel im Vergleich zum Encoder eine geringe Kapazität.
Meine Intuition ist folgende:
Wenn der Decoder einfach ist, muss der Autoencoder Merkmale höherer Qualität im Engpass lernen, um dies zu kompensieren. Wenn umgekehrt der Decoder eine hohe Repräsentationskapazität hat, kann er einen schlecht erlernten Engpass effektiv auf die Ausgangsrekonstruktionen abbilden. Der Rekonstruktionsfehler kann in diesem Fall geringer sein, aber das bedeutet nicht unbedingt, dass die erlernten Funktionen tatsächlich besser sind.
In meiner eigenen Anwendung (Feature-Lernen in Diagrammen) habe ich festgestellt, dass ein einfacher Decoder zu besser erlernten Features führt als ein Decoder, der nur den Encoder spiegelt. In diesem Artikel entwerfen die Autoren einen Graph-Autoencoder mit einem sehr einfachen Decoder als wobei die rekonstruierte Graph-Adjazenzmatrix ist, die gelernte Merkmalsmatrix und ist eine nichtlineare Transformation wie eine ReLU.
Ich habe mich eine Weile nach einer Antwort auf diese Frage umgesehen, aber ich habe keine Erklärungen oder theoretischen Ergebnisse gefunden, warum ein Decoder mit höherer Kapazität einem Decoder mit niedriger Kapazität vorzuziehen ist (oder umgekehrt) ). Wenn jemand eine Erklärung abgeben oder mich in die richtige Richtung weisen kann, wäre ich dankbar.