Google DeepDream Diuraikan

12

Saya telah melihat beberapa pertanyaan di situs ini tentang Deep Dream, namun tidak satupun dari mereka yang benar-benar berbicara tentang apa yang dilakukan DeepDream, khususnya. Sejauh yang saya kumpulkan, mereka tampaknya telah mengubah fungsi tujuan, dan juga mengubah backpropagation sehingga alih-alih memperbarui bobot, mereka memperbarui gambar input.

Saya ingin tahu apakah ada yang tahu persis apa yang dilakukan Google. Mereka menyebutkan dalam salah satu artikel mereka yang memaksakan prior Bayesian ketika mereka melakukan optimasi mereka, dan dengan ini saya dapat membayangkan bahwa mendapatkan neural net untuk memuntahkan gambar untuk setiap label tidak begitu sulit - kita hanya dapat mengatur label, dan kemudian mengoptimalkan vektor input yang sesuai.

Namun, bagian yang menarik dari mimpi mendalam adalah bahwa ia melakukan ini per lapisan, dan dalam hal ini saya tidak begitu yakin bagaimana ini menekankan rincian dalam cara per lapisan.

Tentu saja, memberi makan dalam gambar akan memberi Anda nilai di setiap neuron, tetapi kemudian bagaimana kita dapat menggunakan informasi itu untuk membesar-besarkan detail dalam gambar asli? Saya kesulitan menemukan artikel terperinci tentang hal ini.

Referensi: Di ​​sini vzn menjawab pertanyaan serupa: /cs//a/44857/49671

Dari tautan itu, ada implementasi Deepdream, di sini: http://auduno.com/post/125362849838/visualizing-googlenet-classes

Kecuali itu tidak menawarkan fitur yang berlebihan seperti yang dibahas di sini: http://googleresearch.blogspot.com/2015/06/inceptionism-going-deeper-into-neural.html

Di mana mereka berdua menunjukkan visualisasi kelas tertentu, dan lapisan tertentu, dan berkata:

Alih-alih menentukan secara tepat fitur mana yang kita inginkan untuk diperkuat jaringan, kita juga dapat membiarkan jaringan membuat keputusan itu. Dalam hal ini kami hanya memberi makan jaringan gambar atau foto sewenang-wenang dan membiarkan jaringan menganalisis gambar. Kami kemudian memilih layer dan meminta jaringan untuk meningkatkan apa pun yang terdeteksi.

Bob
sumber
2
Kemungkinan duplikat Google's Dreamer Dalam
manlio

Jawaban:

7

Gagasan DeepDream adalah ini: mengambil beberapa lapisan dari jaringan (biasanya lapisan konvolusional), meneruskan gambar awal melalui jaringan untuk mengekstraksi fitur pada lapisan yang dipilih, mengatur gradien pada lapisan yang sama dengan aktivasi itu sendiri, dan kemudian backpropagate ke gambar.

Mengapa itu masuk akal? Secara intuitif, ini memperkuat fitur yang diaktifkan secara maksimal dalam jaringan. Dengan melakukan backpropagating gradient ini, kami akan membuat pembaruan gambar yang akan meningkatkan salah satu dari aktivasi yang ada. Jika ada detektor seperti kucing di lapisan dan gambar berisi beberapa tambalan yang terlihat agak seperti kucing, DeepDream meningkatkan aktivasi ini dengan memperbarui tambalan ini menjadi lebih seperti kucing. Akibatnya, DeepDream berusaha menemukan kucing dan anjing di mana-mana dalam gambar (dataset ImageNet memiliki banyak anjing, sehingga jaringan memiliki banyak neuron yang berhubungan dengan anjing).

objective_L2dx=x

Pepatah
sumber