Eser sahibi: Ioannis Kalfas
Çeviri: jieqiong
Redaksiyon: Ding Nanya
Bu makale var 3400 Kelimeler, önerilen okuma 13 dakika.
Bu makalede, evrişimli sinir ağı katmanındaki yapay nöronlar beynin görsel alanındaki nöronları simüle etmek için kullanılacak ve nihai çıktı vektörü sonuçları HMAX modeli altında yorumlanacaktır.
Beynimiz tuhaf. Milyonlarca yıldır evrim geçiren, çeşitli uyaranlara ve karşılaşılan koşullara cevap vermek için sürekli değişen ve uyum sağlayan büyülü bir organdır.Aklımızda farklı bir sümüksü madde torbası gibi görünür. İnşa etmenin yolu. Bu organ ve onu oluşturan milyarlarca nöron, zekayı ve onun nasıl üretildiğini anlamamız için en iyi araştırma nesnesidir. Bununla birlikte, kendimiz (yapay) zeka yaratmak ve sonra kendi yaratıcılığımızı açıklamak olan başka bir seçeneğimiz var.
Şekil 1: Beynimiz zeka oluşturmamıza yardımcı oluyorSon yıllarda akıllı makineler yaratmaya bir adım daha yaklaştık. En azından (bilgisayar) görüşü açısından, artık görüntüleri binlerce kategoriden doğru bir şekilde sınıflandırabilen bir sistemimiz var. Bu, evrişimli sinir ağları (CNN) (ve bunları eğitmek için kullanılan grafik işlem biriminin verimliliği) sayesindedir. Her kategoride eğitmek için yeterli görüntü varsa, CNN'ler içerideki yapay nöronların ağırlıklarını ayarlamayı öğrenebilir, böylece eğitimden sonra CNN'ler daha önce hiç görülmemiş görüntüleri sınıflandırabilir.
İlginç bir şekilde, CNN'ler bizden ilham alıyor Beynin görsel sistemi , Bunu yapmak için (burada, burada ve burada (bağlantı). Neyse ki, CNN'ler sinirbilim ile yakından ilgilidir. Nörofizyoloji (Leuven Üniversitesi'nde) perspektifinden araştırma yapma ve yapay sinir ağlarına olan tutkumu oynama fırsatım var. Ve beyin yapısını anlama merakı.
Şekil 2: Tipik bir CNN'nin mimarisiBu blog yazısında, konvolüsyonel sinir ağı katmanındaki yapay nöronlar aracılığıyla beynin görsel alanındaki nöronları simüle edeceğiz. "Modelleme" ile biyolojik bir nöronla aynı girdiye sahip olan ve benzer bir çıktı üretebilen bir fonksiyonun yaratılmasını kastediyorum.
def model_neuron (resim): gerçekçi yanıt döndürÖrneğimizde girdi, boş bir arka plan üzerinde bir siluetin (siyahla dolu bir şekil) bir görüntüsüdür.
Şekil 3: Örnek görüntü biyolojik bir nöronu göstermektedir (yeşil çerçeve yok)Biyolojik nöronlardan gelen veriler elektrofizyolojik deneylerle toplanır. Bu deneylerde, bir monitör aracılığıyla bir maymuna görüntüler (giriş uyarıcıları) gösterdik ve nöronların aktivitesini veya tepkisini kaydetmek için maymunun beynine bir elektrot yerleştirdik.
Burada bahsedilen aktivite veya yanıt genellikle birim zamanda nöronlar tarafından üretilen aksiyon potansiyellerinin (veya zirvelerin) sayısını ifade eder (örneğin, yanıt = 30 pik / saniye).
Şekil 4: Nöron buna heyecanla bakıyor ...Olgumuzda veriler, görsel sistemimizin "post" işlem aşamalarından biri olan alt temporal korteksten, daha doğrusu beynin superior temporal sulkus (MSB) kısmından toplanmaktadır.
Tahmin edebileceğiniz gibi, bu küçük alanlardaki nöronlar, vücut şekillerinin görüntülerine diğer görüntü türlerine (yüzler gibi) göre daha duyarlıdır. Resimde bir vücut şekli göründüğünde, beyinleri olmasa bile heyecanlı hissedecekler!
Temel operasyonTemel işlem kısmının teknik ayrıntılarını tartışmaya devam edelim, ancak teknik olmayan okuyucuları da sıkmamıza gerek yok.
Burada, "C65b" adı verilen tek bir nöronun verilerini inceleyeceğiz (nedenini sormayın, adı budur).
Bu nöron (Escher adında bir makak olan sahibinin gözünden) siyah şekiller ve beyaz arka plana sahip 605 görüntü ile sunulur. Bazı şekiller rastgele, bazıları hayvan veya insan vücuduna benziyor ve diğer şekiller diğer silüetlere benziyor (daha fazla ayrıntı için lütfen makalemizdeki "Malzemeler ve Yöntemler" bölümünü okuyun).
Malzemeler ve yöntemler:Bu görüntüler, seçtiğimiz CNN'nin giriş boyutuna uyacak şekilde ayarlandı (örneğin, 224x224). Onlara başka bir ön işlem uygulanmadı.
Laboratuvar deneylerinde her görüntü (uyarıcı) için ayrı bir emisyon oranı (tepe / saniye) kaydedeceğiz. Amacımız, nöronun her görüntüye gerçek biyolojik tepkisini (yani regresyon problemi) tahmin etmek için CNN katmanından yapay nöronların kullanılmasının mümkün olup olmadığını bulmaktır. Yapay nöronları nasıl kullanmalıyız? Spesifik yaklaşım, aynı görüntüleri CNN'e sunmamız ve özelliklerini her katmandan çıkarmamızdır.
CNN'lerin çalışma prensibini ve kasadaki "özellikler" in neler olduğunu ayrıntılı olarak açıklayalım.
Zaten bildiğiniz gibi, CNN katmanı, yüzlerce özellik haritasına bölünmüş binlerce yapay nörondan oluşur (bkz. Şekil 2). Her nörona gerçekleştirmesi için bazı matematiksel işlemler atanır.Bu işlem, nöronun girdisini ve ağırlığını, yani nöron ile girdisi arasındaki bağlantının ne kadar güçlü olduğunu içerir.
Örneğin, birinci evrişimli katmandaki bir nöron, ağırlığı ile giriş görüntüsünün küçük bir penceresi arasında bir evrişim işlemi gerçekleştirir (Şekil 2'de gösterildiği gibi). Temelde iki 2D matris arasındaki elemanların çarpımıdır , Ve sonra tümünü ekleyin). Buradaki fikir şudur ki, eğer bir nöron ağı eğiterek ona benzer bir ağırlık tespit ederse, aslında ağırlıklarını, girdi desenleri gibi görünmeleri için değiştirmiş oluyoruz.
Bu nedenle, bir nöronu bir model (veya özellik) detektörü olarak düşünebilir, gördüğü alanı, bazı tanıdık şeylerin ağırlık modelini kontrol edebilir ve bu aşinalığı belirtmek için bir "skor" verebilirsiniz. İlginç olan şey, nöronun haritalama işlevinin aynı ağırlığa sahip olmasıdır, bu nedenle temelde her özelliğin belirli bir model bulmak için tüm giriş görüntüsünü taraması gerekir (bu, ağırlıkların hesaplanmasına ve güncellenmesine yardımcı olur, çünkü güncellemeniz gerekmez. Her nöron).
Herhangi bir ortalama havuz katmanında, bir nöron, önceki katmanın küçük bir penceresinin ortalama değerini alır. Bu nedenle, maksimum havuz katmanındaki bir nöron, bu küçük pencerenin maksimum değerini elde eder. Buradaki fikir, giriş görüntüsünü bir kenara çekseniz, döndürseniz veya ölçekleseniz bile, havuzdaki nöronların benzer kalıpları algılamaya devam edeceğidir. Bu, CNN'lerin bu görüntü dönüşümlerine izin vermesini sağlar.
Yani, "özellikler" derken, nöronlarımızın (veya "örüntü algılayıcılarının") çıktısı olan bir grup sayıyı kastediyoruz.
"Aktivasyon" terimi, özelliklerle birbirinin yerine de kullanılabilir. Nörobilim bakış açısından, bunu anlamak daha kolaydır, çünkü bir nöronun girdi uyaranları altında "aktive" olma derecesini ifade eder. CNN'lerin nasıl çalıştığına dair ayrıntılara girmeyeceğim, çünkü İnternette bu sorunu iyi açıklayabilecek birçok harika kaynak var (örneğin, Carlosie'nin kursu, C. Olah'ın blogu, Adit Deshpande'nin blogu, hackernoon, vb.).
Karpathy'nin kursu: C. Olahın blogu: Adit Deshpandenin blogu: https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks/ hackernoon makalesi: https://hackernoon.com/visualizing-parts-of-convolutional-neural-networks-using-keras-and-cats-5cc01b214e59CNN katmanının VGG-16'sını kullanacağız. Herhangi bir regresyon problemi gibi, bir X tahmin matrisine ve bir hedef matris y'ye ihtiyacımız var. Örneğimizde, X, her satırın bir giriş görüntüsüne karşılık geldiği ve her sütun belirli bir CNN katman nöronunun aktivasyonuna karşılık gelen 2D bir matris olacaktır. Tüm CNN'nin nöronlarını düşünebilir ve büyük bir X matrisi oluşturabiliriz, ancak bu hesaplama açısından yoğun olacak ve katmanlar arasındaki farkı bilmemize izin vermeyecektir.
Bu nedenle, her CNN katmanı için X'in nr olacağı ayrı bir regresyon ayarı oluşturacağız.
Görüntünün nr değerini girin, CNN katman birimi etkinleştirilecektir.
Bu nedenle, VGG16'nın son katmanı için (fc81000 birimden oluşur), X matrisimiz 605x1000 olacaktır.
Y matrisi, biyolojik hücrenin girdi görüntülerimizin her birine (uyaran) tepkisini (tepe noktası) içerecek olan 605 uzunluğunda tek boyutlu bir vektör olacaktır.
Şekil 5: Regresyon problemimizdeki X ve Y matrisleriLütfen bu görüntülerin siyah-beyaz (ikili) olduğuna dikkat edin, ancak bunları CNN'e girmek için 3D cilt elde etmek için iki kez kopyalıyoruz (bnw görüntüyü 3 kez). Girişle nasıl etkileşim kurduklarını anlamak için Karpathy'nin CS231n kursundaki bu inanılmaz görselleştirme hakkında bilgi edinin (daha fazla ayrıntı için diğer blogları da okuyun).
Karpathy CS231n: https://cs231n.github.io/assets/conv-demo/index.htmlSezgisel olarak konuşursak, şimdiye kadar yaptığımız şey bir maymunun biyolojik nöronlarını CNN katmanında görünen yapay nöronlarla değiştirmektir. C65b nöronu ile aynı işlevi temsil etmek için yapay bir yol geliştirdik, Y'den X'e ulaşmak için etkili bir matematiksel yöntem bulmamız gerekiyor. Daha sonra, modelleme seçeneklerini ve bunun neden çözülebilecek basit bir doğrusal çoklu regresyon problemi olmadığını tartışacağız.
Temel tarih: CNN'lerin ve sinirbilimin öncüleriBir önceki yazıda CNN'lerin sinirbilimden ilham aldığından bahsetmiştim. Bunun neden böyle olduğunu size bildirmek için, görsel sinirbilimde kullanılan CNN'lerin ortaya çıkmasından önceki eski bir modelin bir örneğini vereceğim.
CNN'lerin sinirbilimi, bilgiyi işleme ve temsil etme biçimlerinden ilham alır.
Özellikle, evrişimli sinirsel ve maksimum havuzlamanın çalışması, görsel hesaplamanın yabancı bir kavramı değildir.
Ayrıca, serebral korteksin görsel işleyişini "giderek karmaşıklaşan bir fenomen seviyesi" olarak yorumlamaya çalışan eski, biyolojik olarak esinlenmiş HMAX modelinde de kullanılırlar.
Şekil 6: Bilgi beyne gözlerimizden girer ve daha sonra beyin bölgesindeki nöronlar aracılığıyla iletilir.Kenarlar, çizgiler, eğriler vb. Gibi basit görsel temsillerden başlayarak ve yavaş yavaş yüz veya tüm vücut gibi daha karmaşık temsiller gerçekleştirerek gittikçe karmaşıklaşan bir süreçte sindirilir. Bu, gözlem nesnesi hakkında daha fazla bilgi edinmemizi sağlayacaktır.
HMAX'ta evrişim işlemi, temel 4 yönü temsil eden önceden tanımlanmış bir ağırlık seti (Gabor filtresi) ile temsil edilir. bu nedenle İlk HMAX katmanı (S1) 4 yönde kenar benzeri özellikler arayan nöron (veya "desen detektörü"). Bu, 10 farklı görüntü boyutunda gerçekleşir. sonra, C1 adı verilen sonraki HMAX katmanında , Bu işlemlerin sonuçları birleştirilir (CNN'lerin maksimum havuzlama işlemiyle aynı).
Sıradaki doğru Toplama yanıtı (S2 katmanı) ile Başka bir havuz işlemi (C2 katmanı) HMAX modelinin son çıktı vektörünü verir (aşağıdaki Şekil 7'ye bakın).
Şekil 7: HMAX model mimarisiGörsel korteks modelinin geçmişini daha eksiksiz bir şekilde anlamak için, lütfen bu çok yapılandırılmış akademik ansiklopediyi okuyun:
Postscript (matematiksel modellemeyle ilgili daha teknik bölümler)Soru sormaktan çekinmeyin, bu makale daha basit olamaz ve bu makalenin var olması bile gerekmez.
Feragatname: Tüm veriler burada sağlanmıştır (Gönderdiğim herhangi bir "verinin" Leuven Üniversitesi'ne ait olduğundan şüphelenmeme rağmen) Bu konu hakkında daha fazla ayrıntı için, eNeuro yayınına başvurabilirsiniz:
Orijinal Başlık: Konvolüsyonel Sinir Ağları ile Görsel Nöronların Modellenmesi
Orijinal bağlantı: https://towardsdatascience.com/modeling-visual-neurons-with-convolutional-neural-networks-e9c01ddfdfa7
Çevirmen Profili
Li Jieqiong , Şu anda Çin Güney Finans ve Ekonomi Üniversitesi'nde MBA eğitimi alıyor, güncel araştırma yönü: finansal büyük veri. Şu anda py gibi diğer yazılımları, eğilimleri tahmin etmek için paketleri yakalamak gibi finansal pratik işlemlere nasıl uygulayacağımı öğreniyorum (stok / sanal para fiyatlarını tahmin etmiyorum). Muhtemelen finans alanında mimari tasarımı (feng shui yönü) en iyi anlayan uzun bacaklı kız. Süslü barmen lokomotif yıkama kumu. Yukarı sahada koştum ve sürdüm ve Zhangye İpek Yolu Mücadelesinde 3 gün boyunca 78 kilometre yürüdüm. Güzel manzara gitmeye hevesli ve rüzgar ve yağmur yürüyor.
Lütfen yeniden yazdırmak için THU verilerini belirtin