Ich habe auf dieser Site einige Fragen zu Deep Dream gesehen, aber keine von ihnen scheint tatsächlich darüber zu sprechen, was DeepDream speziell tut. Soweit ich festgestellt habe, scheinen sie die Zielfunktion und auch die Backpropagation geändert zu haben, sodass sie das Eingabebild aktualisieren, anstatt die Gewichte zu aktualisieren.
Ich frage mich, ob jemand genau weiß, was Google getan hat. Sie erwähnen in einem ihrer Artikel, dass sie Bayes'sche Prioritäten auferlegen, wenn sie ihre Optimierung durchführen, und damit kann ich mir vorstellen, dass es nicht so schwierig ist, das neuronale Netz dazu zu bringen, ein Bild für jedes Etikett auszuspucken - wir können einfach das Etikett festlegen und dann Optimieren Sie den Eingabevektor entsprechend.
Der interessante Teil des tiefen Traums ist jedoch, dass dies pro Schicht geschieht, und in dieser Hinsicht bin ich mir nicht ganz sicher, wie es die Details pro Schicht hervorhebt.
Wenn Sie ein Bild eingeben, erhalten Sie zwar Werte für jedes Neuron. Wie können wir diese Informationen dann verwenden, um Details im Originalbild zu übertreiben? Ich habe mich bemüht, detaillierte Aufzeichnungen darüber zu finden.
Referenzen: Hier beantwortete vzn eine ähnliche Frage: /cs//a/44857/49671
Über diesen Link erhalten Sie eine Implementierung von Deepdream: http://auduno.com/post/125362849838/visualizing-googlenet-classes
Es bietet jedoch keine Übertreibung der hier beschriebenen Funktionen: http://googleresearch.blogspot.com/2015/06/inceptionism-going-deeper-into-neural.html
Wo beide die Visualisierung bestimmter Klassen und bestimmter Ebenen zeigen und sagen:
Anstatt genau festzulegen, welche Funktion das Netzwerk erweitern soll, können wir das Netzwerk auch diese Entscheidung treffen lassen. In diesem Fall geben wir dem Netzwerk einfach ein beliebiges Bild oder Foto und lassen das Netzwerk das Bild analysieren. Wir wählen dann eine Ebene aus und bitten das Netzwerk, das zu verbessern, was es erkannt hat.