Sinir ağım az önce ne öğrendi? Hangi özellikleri önemsiyor ve neden?


30

Bir sinir ağı, bir amaca ulaşmak için bir araç olarak veri setinin özelliklerini öğrenir. Bu yapıldığında, sinir ağının ne öğrendiğini bilmek isteyebiliriz. Özellikleri neydi ve neden bunları umursadı. Birisi bu problemi ilgilendiren işin vücuduna bazı referanslar verebilir mi?

Yanıtlar:


28

Bir sinir ağının ne öğrendiğini anlamak zor ama doğru o kadar çok iş var ki. Ağımızın aradığı şey hakkında kesinlikle bir fikir edinebiliriz.

Görüntüler için evrişimli bir sinir ağını düşünelim. İlk katmanımız için filtrelerini görüntünün üzerine kaydırdığımızı yorumluyoruz , bu nedenle ilk gizli katmanımız görüntünün küçük parçaları ile çeşitli filtrelerimiz arasındaki anlaşmaya tekabül ediyor. İlk temsil katmanımızın ne olduğunu görmek için bu filtreleri görselleştirebiliriz:K

alexnet katmanı 1

Bu resim, bir AlexNet'teki ilk filtre katmanına ait ve bu harika dersten alınmıştır: http://cs231n.github.io/understanding-cnn/ . Bu, ilk gizli katmanı, ham piksellerden oluşan görüntüyü temsil etmeyi öğrenme olarak yorumlamamıza izin verir, burada her bir koordinat, görüntünün küçük bir bölgesi ile bir filtrenin anlaşmasıdır. Bir sonraki katman bu filtre aktivasyonları ile çalışmaktadır.

[010141010].

0

Erhan ve arkadaşlarının (2009) bu makalesi buna katılıyor: ilk gizli katman görselleştirmelerinin ortak olduğunu (ve 2009'da geri döndüğünü) ancak daha derin katmanları görselleştirmenin zor olduğunu söylüyorlar. Bu kağıttan:

Bu araştırmanın temel deneysel bulgusu çok şaşırtıcı: bir iç birimin girdi görüntülerine, görüntü uzayındaki bir işlev olarak yanıtı tekdüze görünüyor veya en azından test edilen tüm rasgele başlatmalar için maksimum ve güvenilir bir şekilde bulundu. . Bu ilginç çünkü bu baskın modu bulmak oldukça kolaydır ve daha sonra gösterilmesi ünitenin yaptıklarının iyi bir karakterizasyonunu sağlar.

Chris Olah ve arkadaşları ( https://distill.pub/2017/feature-visualization/ ) bunun üzerine inşa edilir ve genel olarak ağın ne olduğunu anlamak için nasıl büyük aktivasyonlara yol açan görüntüler üretebileceğinizi tartışır (1). için bakıyor; veya (2) gerçek giriş görüntülerini çekin ve görüntünün farklı bölümlerinin ağı nasıl etkinleştirdiğini görün. Bu yazı üzerinde duruluyor (1).

Aşağıdaki resimde Olah ve arkadaşlarının bu makalesinden alınan yazarlar, ağın inceleyebileceğiniz farklı yönlerini tartıştılar. En soldaki resim, belirli bir nöronun aktivasyonunun giriş görüntüsü alanı üzerinde optimize edilmesinin sonucunu gösterir.

C. Olah ve diğ.

Bunu daha iyi anlamak istiyorsanız, bu makalenin tamamını okumanızı şiddetle tavsiye ediyorum ve referanslarını okuyarak bununla neler yapıldığını çok iyi anlamanız gerekir.

Tabi ki bu sadece insanların girdiği girişleri anlayabildiğimiz görüntüler içindi. Eğer yorumlamak için daha zor bir şeyle çalışıyorsanız, sadece büyük bir sayı vektörü gibi, o zaman böyle güzel görselleştirmeler yapamayabilirsiniz, ancak prensipte, çeşitli nöronları, katmanları vb. Değerlendirmek için hala bu teknikleri düşünebilirsiniz. .


2
Özellikle son paragraf için +1. Şahsen, insanların bu çok sayıda parametre hakkında görselleştirme yaptıklarını düşünüyorum.
Haitao Du

Elbette +1 güvenilir referanslar ile iyi yazılmış uzun cevap için.
Haitao Du

1
@ hxd1011 teşekkür ederim ve sanırım Olah ve diğerleri, bu makalede, tek bir nöronu maksimize eden şeyin ne olduğuna bakmanın gerçekten adil olmadığı, çünkü katmanın bir temeli olduğu ve katmanın temsil ettiği alandan daha fazlası olduğu için gerçekten adil olmadığını düşünüyorum. tam temel vektörler. Bu yüzden eğlenceli olmakla birlikte, bu görselleştirmelerin
birçoğu

1
Ayrıca yaygın bir yanılgı, birinci katman filtrelerini alırken, belirli bir nöronun çıktısını maksimize edecek bir resim yamasının tam olarak bu filtreye benzemesidir. Aslında değil, bir nöronun çıkışını maksimize eden bir yama, filtrenin sayısal değerlerine benzeyen hiçbir şeye benzemiyor, çünkü evrişim, şablon eşleşmesi değil. Farklı örneklerin var olduğuna inandığım yer orası.
Lugi

Olah ve diğ. blog yazısı güzel, ancak bir hata yapıyorlar - "maksimum aktivasyon için optimize ediyorlar" (tam olarak değil, ama yakın), eğitim setindeki resimlere benzeyen hiçbir şey bulamadılar ve CNN'lerin bizden farklı olarak "gördükleri" sonucuna vardılar. Sonuç açıkça doğru olsa da, akıl yürütme kusurludur - yüksek boyutlu bir dağılımın modu bu dağılımdan tipik bir örnek gibi görünmüyor. Başka bir deyişle, CNN'lerin kedileri sınıflandırması gerektiği için, dağılımın bir kedi değil, bir "kabus kedisi" olması gerektiği kesin.
DeltaIV

7

Sinir Ağı, "anlaşılması kolay" kurallar / veya öğrenilmiş olanı vermeyecek olan kara kutu modellerinden biridir.

Spesifik olarak, öğrenilenler modeldeki parametrelerdir, ancak parametreler büyük olabilir: yüz binlerce parametre çok normaldir.

Ek olarak, öğrenilen önemli özellikler konusunda da net değil, modelin tüm özellikleri kullandığını anlayabilir, sonuçları elde etmek için birçok karmaşık işlemle anlayabilirsiniz, düz İngilizce'de modelin her özelliği nasıl dönüştürdüğünü söylemek kolay değil.


Aslında, aktivasyon fonksiyonu olarak lojistik fonksiyonu olan bir katman sinir ağı (gizli katman olmadan) lojistik regresyon ile aynıdır. Lojistik regresyon, yorumlar açısından çok zengindir. İşte bir örnek. Ancak karmaşık sinir ağı / daha gizli katmanlarla, bu yorumlama geçerli olmayacaktır.

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.