"[Gemeinsame multimodale Darstellungen für die Suche nach E-Commerce-Katalogen anhand visueller Attribute](https://kddfashion2016.mybluemix.net/kddfashion_finalSubmissions/Joint%20multi-modal%] von IBM Research, Indien, beim KDD2016-Workshop 20repräsentationen% 20für% 20e-Commerce% 20Katalog% 20search% 20driven% 20by% 20visual% 20attributes.pdf) ”wird von chainer implementiert.
Das Originalpapier der Papiermethode ist hier. Die diese Implementierung dieses Dokuments ist in Theano geschrieben.
Der Inhalt des Papiers fühlt sich wie eine grobe Lektüre an, und wenn Text und Bilder als Paar angegeben werden, wird der gemeinsame Raum mithilfe von Neural Net (Methodenname "Correlational Neural Net, abgekürzt als Corr Net") gefunden, was für Suchmaschinen nützlich ist. Es ist so etwas.
Ich denke, dass es üblich ist, CCA zu verwenden, wenn ein gemeinsamer Raum aus zwei verschiedenen Modalitäten gesucht wird. In der Praxis benötigt der CCA von Scikit-learn jedoch Zeit zum Trainieren, sobald die Datengröße zunimmt, und kann aufgrund eines Speicherfehlers möglicherweise nicht verwendet werden. Es gibt, und dieses Mal habe ich versucht, es mit Chainer schnell zu implementieren.
In Python3 lautet der in Jupyter Notebook geschriebene Code ** hier **.
Es scheint, dass es darum geht, den Korrelationskoeffizienten so zu trainieren, dass er im gemeinsamen Raum groß wird.
Bilddiagramm
Die Verlustfunktion besteht aus dem Verlust der Wiederherstellung beider, wenn zwei Modale gegeben sind, dem Verlust der Wiederherstellung beider, wenn ein Modal gegeben ist, und dem Verlust, der die Korrelation in der verborgenen Schicht hoch macht. Ich bin.
Ich wollte es einfach ausprobieren, also habe ich MNIST verwendet, um einen gemeinsamen Raum für 28x28-Bilder und Beschriftungsinformationen im One-Hot-Vector-Format zu finden.
Ich werde in Zukunft verschiedene Daten ausprobieren.
Es scheint, dass es erfolgreich wiederhergestellt werden kann
Ein Bild, das wie die Mitte zwischen 0 und 8 aussieht, wird ordnungsgemäß generiert.
Total
Detail
Das Lernen schreitet voran, so dass die Korrelation in der verborgenen Schicht richtig hoch ist!
Es scheint, dass es nur aus den Etiketteninformationen wiederhergestellt werden kann!
In jedem Fall ist Chainer viel einfacher zu schreiben als Theano und kann Protokolle ausgeben, was praktisch ist ^^
Recommended Posts