Angenommen, ich habe eine Reihe von Zeitbereichssignalen ohne Beschriftung . Ich möchte sie in 2 oder 3 Klassen gruppieren. Autoencoder sind unbeaufsichtigte Netzwerke, die lernen, die Eingänge zu komprimieren. also eine Eingabe , und , und und ausgegeben wird , können wir die folgenden Beziehungen finden:W 2 b 1 b 2 x ( i )
x ( i ) = W 2 z ( i ) + b 2
Also wäre eine komprimierte Form von und die Rekonstruktion der letzteren. So weit, ist es gut. x ( i ) x ( i )
Was ich nicht verstehe, ist, wie dies für das Clustering verwendet werden könnte (wenn es überhaupt eine Möglichkeit gibt, dies zu tun). In der ersten Abbildung dieses Dokuments gibt es beispielsweise ein Blockdiagramm, das ich nicht sicher verstehe. Es verwendet das als Eingaben für das Feed-Forward-Netzwerk, es wird jedoch nicht erwähnt, wie dieses Netzwerk trainiert wird. Ich weiß nicht, ob ich etwas ignoriere oder ob das Papier unvollständig ist. Außerdem zeigt dieses Tutorial am Ende die vom Autoencoder gelernten Gewichte und sie scheinen Kernel zu sein, die ein CNN lernen würde, Bilder zu klassifizieren. Also ... Ich denke, die Gewichte des Autoencoders können irgendwie in einem Feed-Forward-Netzwerk zur Klassifizierung verwendet werden, aber ich bin mir nicht sicher, wie.
Meine Zweifel sind:
- Wenn ein Zeitdomänensignal der Länge (dh ), kann nur auch ein Vektor sein? Mit anderen Worten, wäre es sinnvoll, wenn eine Matrix mit einer ihrer Dimensionen größer als ? Ich glaube es würde nicht, aber ich möchte nur überprüfen. N x ( i ) ≤ R 1 × N z ( i ) z ( i ) 1
- Welche dieser Größen wäre die Eingabe für einen Klassifikator? Wenn ich zum Beispiel einen klassischen MLP verwenden möchte, der so viele Ausgabeeinheiten wie Klassen hat, in die ich die Signale klassifizieren möchte, was soll ich am Eingang dieses vollständig verbundenen Netzwerks setzen ( , , irgendetwas anderes)?x ( i )
- Wie kann ich die erlernten Gewichte und Vorurteile in diesem MLP verwenden? Denken Sie daran, dass wir davon ausgegangen sind, dass absolut keine Labels verfügbar sind, sodass es unmöglich ist, das Netzwerk zu trainieren. Ich denke, das erlernte und sollte irgendwie im vollständig verbundenen Netzwerk nützlich sein, aber ich sehe nicht, wie man sie verwendet.b i
Beobachtung: Beachten Sie, dass ich ein MLP als Beispiel verwendet habe, da es die grundlegendste Architektur ist. Die Frage gilt jedoch für jedes andere neuronale Netzwerk, das zur Klassifizierung von Zeitbereichssignalen verwendet werden kann.
Bevor Sie fragen, wie Autoencoder zum Clustering von Daten verwendet werden kann. Wir müssen zuerst fragen: Können Autoencoder Daten gruppieren?
Da ein Autoencoder lernt, die Datenpunkte aus dem latenten Raum neu zu erstellen. Wenn wir davon ausgehen, dass der Autoencoder den latenten Raum „kontinuierlich“ abbildet, müssen die Datenpunkte, die aus demselben Cluster stammen, zusammen abgebildet werden. In gewisser Weise gruppiert der Encoder ähnliche Punkte „zusammen“ und gruppiert sie „zusammen“. Wir haben in der Literatur gesehen, dass Autoencoder diese Annahme der Kontinuität im latenten Raum nicht halten.
Zu unserem Vorteil arbeiten Variations-Autoencoder genau auf diese Weise. Variationscodierer lernen die latenten Raumabbildungen mit den beiden Haupteigenschaften: Kontinuität, Vollständigkeit1.
Daher kann die Verwendung einer Autoencoder-Codierung selbst manchmal ausreichen. Es wurde jedoch daran gearbeitet, das Clustering explizit zu improvisieren / zu lernen. Der von Xie et al. (2016) 2 ist ein Beispiel, das "Cluster iterativ mit einer zusätzlichen Zielverteilung verfeinert, die aus einer aktuellen Zuweisung von weichen Clustern abgeleitet ist".
quelle