Google DeepDream Ayrıntılı


12

Bu sitede Deep Dream hakkında birkaç soru gördüm, ancak hiçbiri DeepDream'in özellikle ne yaptığı hakkında konuşmuyor gibi görünüyor. Topladığım kadarıyla, objektif işlevi değiştirdiler ve ayrıca geri yayılımı değiştirdiler, böylece ağırlıkları güncellemek yerine giriş görüntüsünü güncellediler.

Herkesin Google'ın ne yaptığını tam olarak bilip bilmediğini merak ediyorum. Makalelerinden birinde, optimizasyonlarını gerçekleştirirken Bayesian öncelikleri empoze ettiklerinden bahsediyorlar ve bununla, her bir etiket için bir görüntü tükürmek için sinir ağını elde etmenin o kadar zor olmadığını hayal edebiliyorum - sadece etiketi ayarlayabiliriz ve sonra giriş vektörünü buna göre optimize edin.

Bununla birlikte, derin hayalin ilginç kısmı bunu katman başına yapması ve bu bağlamda ayrıntıları katman başına nasıl vurguladığı konusunda tam olarak emin değilim.

Kesinlikle, bir görüntüde beslemek size her bir nöronda değerler verecektir, ancak o zaman orijinal görüntüdeki ayrıntıları abartmak için bu bilgileri nasıl kullanabiliriz? Bununla ilgili detaylı yazılar bulmakta zorlandım.

Kaynaklar: Burada vzn benzer bir soruyu yanıtladı: https://cs.stackexchange.com/a/44857/49671

Bu bağlantıdan, burada Deepdream'in bir uygulaması var: http://auduno.com/post/125362849838/visualizing-googlenet-classes

Burada tartışıldığı gibi özelliklerin abartılmasını sunmazsa: http://googleresearch.blogspot.com/2015/06/inceptionism-going-deeper-into-neural.html

Her ikisinin de belirli sınıfların ve belirli katmanların görselleştirilmesini gösterdikleri ve söyledikleri:

Ağın hangi özelliği yükseltmesini istediğimizi tam olarak reçete etmek yerine, ağın bu kararı vermesine de izin verebiliriz. Bu durumda, ağı rasgele bir görüntü veya fotoğrafla besler ve ağın resmi analiz etmesine izin veririz. Daha sonra bir katman seçer ve ağdan tespit ettiği her şeyi geliştirmesini isteriz.


Yanıtlar:


7

DeepDream fikri şudur: ağdan bir katman seçin (genellikle kıvrımlı bir katman), seçilen katmandaki özellikleri çıkarmak için başlangıç ​​görüntüsünü ağdan geçirin, bu katmandaki degradeyi aktivasyonların kendilerine eşit olarak ayarlayın ve sonra yeniden çoğaltın görüntü.

Neden mantıklı geliyor? Sezgisel olarak, ağda maksimum düzeyde etkinleştirilen özellikleri güçlendirir. Bu degradeyi geri çoğaltarak, mevcut aktivasyonlardan herhangi birini artıracak bir resim güncellemesi yapacağız. Katmanda kedi benzeri bir dedektör varsa ve görüntü biraz kedi gibi görünen bir yama içeriyorsa, DeepDream bu yamayı daha kedi benzeri olacak şekilde güncelleyerek bu aktivasyonu artırır. Sonuç olarak, DeepDream görüntünün her yerinde kedi ve köpekleri bulmaya çalışıyor (ImageNet veri kümesinde çok sayıda köpek var, bu yüzden ağda köpekle ilgili birçok nöron var).

Eğer bakarsanız kodu , anahtar parçasıdır objective_L2: Bu kılan işlevi ve ardından backpropagates.dx=x

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.