En canlı evrişimli sinir ağının ayrıntılı açıklaması: algoritma düşüncesinden programlama gerçekleştirmeye

1 Xinzhiyuan önerilir

Yazar: Zhang Juefei

Xin Zhiyuan Rehberi Ali mühendisi olan bu makalenin yazarı sırasıyla "evrişim" ve "sinir ağı" kavramlarını, elle boyanmış evrişimli sinir ağı diyagramlarını ve ayrıntılı yorumları adım adım açıklıyor. Son olarak, örnek olarak el yazısı rakam tanımayı alın, CNN'i uygulamak için kaggle veri seti gibi keras kitaplığını kullanın ve kodu ve veri setini ekleyin.

Bir, kıvrım

2 boyutta konuşuyoruz. F (x, y) ve g (x, y) olmak üzere iki fonksiyon vardır. F ve g'nin evrişimi yeni bir fonksiyondur. Aşağıdaki formülle elde edilir:

Bu formülün anlamı şudur: negatif sonsuzdan pozitif sonsuzluğa tüm s ve t değerlerini gözden geçirin, konumdaki g değerini (s, t) konumundaki f değeriyle çarpın ve sonra "toplayın" (integral anlamı Yukarıda) birlikte, (x, y) konumundaki c'nin değeridir. Açıkça söylemek gerekirse, evrişim bir tür "ağırlıklı toplam" dır. (X, y) 'yi merkez olarak alın, g'nin merkezden aldığı değeri f'nin (s, t) cinsinden değeriyle çarpın ve hepsini toplayın. Evrişim formülünü ayrık biçimde yazmak daha açıktır:

100 × 100 boyutunda gri tonlamalı bir resmi temsil ediyorsa, değer aralığındaki tam sayı, görüntünün (x, y) noktasındaki gri tonlamalı değeridir. Aralığın dışındaki (x, y) üzerindeki değerlerin tümü 0'dır. S ve t {-1,0,1} aldığında ve diğer tüm konumlar 0 olduğunda bir değeri olsun. 3x3 ızgara şeklinde görülebilir. Aşağıda gösterildiği gibi:

Şekil 1

Her küçük ızgaradaki değer, görüntünün (x, y) noktasındaki gri değeridir. Her küçük kutudaki değer (s, t) içindeki değerdir.

şekil 2

Yukarıdaki şekilde gösterildiği gibi, merkezi (0, 0) (5, 6) ile hizalayın. İlgili fonksiyon değerlerini ilgili 9 pozisyonda çarpın ve ardından C (5, 6) evrişim değerini elde etmek için 9 ürünü toplayın. Her konum için C değerini hesaplayın ve yeni bir görüntü elde edin. İki sorun var:

  • Tüm değerlerin toplamı 1.0'a eşit değilse, C

  • Kenardaki bir nokta için, çevreleyen konumun görüntünün kenarını aşması mümkündür. Şu anda, görüntünün kenarının dışındaki değer 0 olarak kabul edilebilir. Veya sadece kenarın ötesinde olmayan noktaların CC'sini hesaplayın

  • Yukarıdaki işlem aslında dijital görüntüyü gerçekleştirmektir. Ayrık Evrişim Operasyon, aynı zamanda Filtrele . Aranan Evrişim çekirdek veya filtre . Farklı filtreler farklı roller oynar. Boyut 3 × 3 ise, her ızgaradaki değerin 1/9 olduğunu düşünün. Daha sonra filtreleme, orijinal görüntünün her noktası için etrafındaki 3 × 3 aralıktaki 9 görüntü noktasının gri ortalamasının hesaplanmasına eşdeğerdir. Bu bir bulanıklık olmalı. Etkiye bakın:

    resim 3

    Soldaki görüntü, Lena'nın orijinal gri tonlamalı görüntüsüdür. Ortadaki görüntü, hafif bulanık bir görüntü elde etmek üzere filtrelemek için 1/9 değerine sahip 3 × 3 filtre kullanır. Filtre kapsamı küçük olduğu için bulanıklık derecesi yüksek değildir. Sağdaki filtre 9 × 91/81 değeriyle seçilir ve bulanıklık etkisi daha belirgindir. Filtrelerin başka birçok kullanımı vardır. Örneğin, aşağıdaki filtre:

    Lena grafiğini filtrelemek için kullanmayı deneyin. Filtrenin normalize edilmediğini (toplamın 1.0 olmadığını), bu nedenle filtrelenmiş değerin dahil edilmeyebileceğini unutmayın. Minimum değeri çıkararak, maksimum / minimum farka bölerek, 255 ile çarparak ve yukarı yuvarlayarak, sonuç değeri gri tonlamalı bir görüntüye normalleştirilir.

    Şekil 4

    Bu filtre, görüntünün kenarlarını algılar. Sobel operatörüdür. Görüntü bulanıklığı, kenar algılama vb. Hepsi insanlar tarafından tasarlanmış özel olarak tasarlanmış filtrelerdir. 9 × 9 yaparsanız rastgele Filtrenin etkisi nedir?

    Şekil 5

    Yukarıda gösterildiği gibi, efekt de bulanıklığa benzer. Bir pikselin değeri etrafındaki 9 × 9 aralığında kullanıldığından rastgele Ağırlıklı toplam "parçalama macunu" ile eşdeğerdir. Ancak tüylü olduğu ve yağlanmadığı görülmektedir.

    Şu anda, yardımcı olamıyoruz ama düşünemiyoruz, eğer insanlar tarafından tasarlanmış bir filtre değil, rastgele bir filtre ise, belirli bir hedefe ve istediğimize yakın oluncaya kadar belirli bir yönteme göre kademeli olarak ayarlanmışsa, uygulanabilir. Ne? Konvolüsyonel Sinir Ağı (CNN) fikri budur. Ayarlanabilir filtre CNN'nin "evrişim" kısmıdır ve filtrenin nasıl ayarlanacağı CNN'nin "sinir ağı" kısmıdır.

    İkincisi, sinir ağı

    Yapay sinir ağı (Neural Network, NN) bir hesaplama modeli olarak, geçmişi bilgisayarlardan bile öncedir. W.S.McCulloch ve W. Pitts, 1940'larda yapay nöron modelleri önerdi. Ancak tek bir yapay nöron XOR'u bile hesaplayamaz. Yapay zeka alanında bir dev olan Marvin Minsky, bu hesaplamalı modelin geleceği olmadığına inanıyor. O zamanlar, insanlar birden fazla yapay nöronu bir ağa bağlamanın XOR problemini hesaplayamamanın üstesinden gelebileceğini fark etmişlerdi, ancak o sırada çok katmanlı yapay sinir ağları için hiçbir eğitim yöntemi bulunamadı, böylece yapay sinir ağı modeli yıllarca bastırıldı. İnsanlar çok katmanlı yapay sinir ağları için bir eğitim yöntemi bulana kadar, yapay sinir ağlarının parlak bir şekilde başlattığı değildi.

    Yapay nöron, insan sinir hücrelerini matematiksel bir modelle basitçe simüle eder. İnsan sinir hücrelerinde birden fazla dendrit ve bir uzun akson vardır. Bir nöronun aksonu, diğer nöronların dendritlerine bağlanır ve ona sinir uyarılarını iletir. Bir nöron, birkaç dendritinden gelen sinyallere dayanarak aksonundan diğer nöronlara sinir uyarıları gönderip göndermeyeceğine karar verir.

    Resim 6

    Yapay bir nöron, biyolojik nöronların matematiksel bir modellemesidir. Aşağıya bakınız.

    Şekil 7

    Yapay nöronların girdisidir. a yapay nöronun çıktısıdır. Yapay nöron, girdilerin ağırlıklı toplamını ekler ve bias değerini ekler ve son olarak bir f fonksiyonunu uygular, yani:

    Yukarıdaki formülün sonunda, bu formülün vektör formudur. P giriş vektörü, W ağırlık vektörü ve b sapma skalerdir. f, "etkinleştirme işlevi" olarak adlandırılır. Aktivasyon işlevi birçok şekilde olabilir. Örneğin, Sigmoid işlevi:

    Bu, tek bir yapay nöronun tanımıdır. Yapay bir sinir ağı, bu tür yapay nöronları bir ağa bağlar: bir nöronun çıktısı, başka bir nöronun girdisi olarak kullanılır. Sinir ağları çeşitli topolojik yapılara sahip olabilir. Bunların en basiti "çok katmanlı, tamamen bağlı ileri sinir ağı" dır. Girişi, ağın ilk katmanındaki her bir nörona bağlıdır. Bir önceki katmandaki her bir nöronun çıktısı, bir sonraki katmandaki her bir nöronun girişine bağlanır. Son nöron katmanının çıktısı, tüm sinir ağının çıktısıdır.

    Aşağıdaki şekil üç katmanlı bir sinir ağıdır. 10 elemanlı bir vektör olan 10 girişi kabul eder. İlk katman ve ikinci katmanın her biri 12 nörona sahiptir. Son katmanda 6 nöron vardır. Başka bir deyişle, bu sinir ağı 6 elementli bir vektör çıkarır.

    Figür 8

    Tüm sinir ağının hesaplanması matris formunda verilebilir. Tek katmanlı yapay sinir ağının formülünü veriyoruz. Her katmandaki nöron sayısı farklıdır, girdi / çıktı boyutları da farklıdır ve hesaplama formülündeki matris ve vektörün satır ve sütun sayıları da farklıdır, ancak form aynıdır. Düşündüğümüz katmanın ilk katman olduğunu varsayalım. Bir girişi kabul eder ve bir nörona (çıktı) sahiptir, bu durumda bu katmanın hesaplanması aşağıdaki gibidir:

    Üst simge i, i'inci katmanı temsil eder. Çıktı vektörü, n yuan, çünkü i'inci katmanda n nöron var. İ'inci katmanın girdisi, yani i-1'inci katmanın çıktısı, bir m-eleman vektörüdür. Ağırlık matrisi W, n × m'lik bir matristir: n nöron, her nöronun m ağırlığı vardır. Bir n vektörü elde etmek için W'yi i -1 katmanıyla m vektörü çıktısıyla çarpın, n öğeli bias vektörünü ekleyin ve ardından sonucun her öğesine f etkinleştirme işlevini uygulayın ve son olarak i'inci katman için n öğeli çıktı vektörünü elde edin .

    Çok külfetli değilse, i-1'inci katmanın çıktısını genişletebilir ve sonunda büyük bir formül yazabilirsiniz. Tümüyle bağlı ileri sinir ağının hesaplama formülüdür. Tüm sinir ağının aslında bir vektörden vektöre işlevi olduğu görülebilir. Ne işlev olduğuna gelince, ağ topolojisine ve her bir nöronun ağırlık ve önyargı değerine bağlıdır. Ağırlıklar ve önyargı değerleri rastgele verilirse, bu sinir ağı işe yaramaz. İstediğimiz şey yararlı bir sinir ağı. İstediğimiz davranışı sergilemelidir.

    Bu hedefe ulaşmak için, önce amaç işlevinden örneklenmiş bir dizi "girdi-çıktı çifti" içeren bir eğitim seti hazırlayın. Eğitim setinin girdisi sinir ağına gönderilir ve elde edilen çıktı kesinlikle doğru çıktı değildir. Çünkü bu sinir ağının davranışı başlangıçta rastgeledir.

    Sinir ağına bir eğitim örneği girin ve çıktı ile doğru çıktı (vektör) arasındaki farkın modulo karesini (öz ve benliğin iç çarpımı) hesaplayın. Ardından, e'yi elde etmek için tüm n numunelerin farkının karesinin ortalamasını alın:

    e, ortalama kare hatası mse olarak adlandırılır. E ne kadar küçükse, sinir ağının çıktısı doğru çıktıya o kadar yakın olur. Sinir ağının davranışı istenen davranışa daha yakındır.

    Amaç, e'yi küçültmektir. Burada e, toplam ağırlığın ve önyargı değerinin bir fonksiyonu olarak kabul edilebilir. Bu, sınırsız bir optimizasyon problemi haline gelir. Küresel bir minimum nokta bulunabiliyorsa ve e değeri kabul edilebilir bir aralık içindeyse, sinir ağının iyi eğitilmiş olduğu düşünülebilir. Amaç işlevine iyi uyabilir. Burada optimize edilecek fonksiyon, hepsi e ile temsil edilebilen, topluca Maliyet Fonksiyonu olarak adlandırılan, mse'den başka fonksiyonlar da olabilir.

    Klasik sinir ağı eğitim algoritması Geri Yayılımdır (BP). BP algoritması, optimizasyon teorisinde (Gradient Descend) gradyan iniş yöntemine aittir. E hatasını tüm ağırlıkların W ve tüm ofsetlerin B fonksiyonu olarak alın. Algoritmanın amacı, bağımsız değişken uzayda global minimum e'yi bulmaktır.

    Öncelikle, tüm ağırlıkları W ve tüm önyargı değerleri B'yi rasgele başlatın ve ardından bu noktada hata fonksiyonunun e gradyan yönünün tersine bağımsız değişken uzayda bir adım ileri gidin (bu yönün üst yönü en küçüktür ve fonksiyon değeri en hızlı düşer) uzun. Adım boyutuna öğrenme hızı (Öğrenme Oranı, ) denir. Tekrarlanan yinelemelerden sonra çözüm, hata yüzeyinin global minimum noktasına hareket eder.

    Aşağıdaki şekil, matlab ile eğitilmiş çok basit bir sinir ağıdır. Sadece tek giriş ve tek çıkışa sahiptir. Giriş katmanında iki nöron ve çıkış katmanında bir nöron vardır. Tüm ağda 4 ağırlık artı 3 önyargı vardır. Şekil, diğer ağırlıklar sabitlendiğinde ve yalnızca birinci katmandaki ilk nöronun ağırlıkları ve ofsetleri bağımsız değişkenler olarak kullanıldığında mse yüzeyini ve algoritma yinelendiğinde çözümün yörüngesini gösterir.

    Resim 9

    Nihai algoritma, global optimal çözüme (kırmızı +) yakınsamadı. Ancak çözüm bir kanyonun dibine taşındı. Taban çok düz olduğu için çözüm "hareket edemez". Elde edilen çözüm, optimal olandan çok daha kötü değil.

    Biraz daha karmaşık bir sinir ağı için, e'den W'ye ve B'nin işlevi çok karmaşık bir işlev olacaktır. Gradyanı bulmak için, her ağırlık ve sapma değeri için fonksiyonun kısmi türevini hesaplamanız gerekir. Neyse ki, her ağırlık veya önyargı değerinin kısmi türev formülü daha karmaşık olmayacaktır çünkü ağırlık veya önyargı değeri çıktı katmanından daha uzaktır. Hesaplama sürecinde bir ara miktar vardır ve her katmanın ağırlık ve önyargı değerinin kısmi türevi, ikinci katmana göre birleşik bir biçimde hesaplanabilir. Her katman daha sonra hesaplama sürecinde oluşturulan sonuçları önceki katmana aktarır. Bu, "geri yayılım" adının kökenidir - ileri, ters yönde. Bu, ağ çıktısını hesaplarken, hesaplama sonucunun geriye doğru iletilmesinin tersidir. Bu şekilde, gradyanı elde etmek için tüm ağırlıkların ve önyargı değerlerinin kısmi türevleri katman katman hesaplanabilir. Spesifik türetme burada verilmemiştir, [1] Bölüm 8 ve [2] Bölüm 11'e başvurabilirsiniz. Sinir ağının "derin" parametrelerini eğitmemizi sağlayan geri yayılımdır. "Derin Öğrenmenin" anlamı budur.

    Gradyan iniş yönteminin birçok çeşidi vardır. Adım boyutu ayarlanarak yakınsama hızı iyileştirilebilir; dürtü artırılarak çözümün içine düşmesi önlenebilir. Kısmi En iyi nokta. Her seferinde tüm numunelerin mse'sini hesaplamak değil, rastgele bir şekilde numunelerin bir kısmını alıp ağırlıklarına göre güncellemek de mümkündür. Bu, hesaplama miktarını azaltabilir. Gradyan inişi, hata fonksiyonunun birinci dereceden doğasına dayanır. Eşlenik yöntem, Newton yöntemi vb. Gibi ikinci dereceden özelliklere dayalı optimizasyon için başka yöntemler de vardır. Uygulamalı bir matematik konusu olarak optimizasyon, makine öğreniminin önemli bir teorik temelidir ve teori ve uygulamada birçok sonuç ve yöntem vardır. [1] 'e bakın.

    Üç, evrişimli sinir ağı

    Şimdi iki evrişim filtresi ve sinir ağı fikrini birleştirin. Evrişim filtresi, bir dizi ağırlıktan başka bir şey değildir. Sinir ağı, başka topolojik yapılara da sahip olabilir (tamamen bağlı olanlar hariç). Aşağıdaki şekilde gösterildiği gibi bir sinir ağı kurabilirsiniz:

    Resim 10

    Sinir ağı bir girdi kabul eder ve bir çıktı üretir. Şekilde soldaki düzlem n × n ızgaralar içerir ve her ızgara bir tamsayı değeridir. Bu sinir ağının girdi görüntüsü ve girdisidir. Sağdaki düzlem de n × n ızgaralardır ve her ızgara bir nörondur. Her nöron, iki boyutlu konum ilişkisine göre çevresindeki 3 × 3 aralığındaki giriş değerine bağlanır. Her bağlantının bir ağırlığı vardır. Tüm nöronlar bu şekilde bağlanır (şekilde yalnızca bir tanesi çizilir ve giriş görüntüsünün kenarının dışındaki bağlantının 0 sabitine bağlı olduğu kabul edilir). Sağ katmandaki her bir nöronun çıktısı, sinir ağının çıktısıdır.

    Bu ağ, iki noktada tamamen bağlı bir sinir ağından farklıdır. Birincisi, tam olarak bağlı değil. Sağ katmandaki nöronlar tüm girdilere değil, sadece bir kısmına bağlıdır. Buradaki kısım, giriş görüntüsünün kısmi bir alanıdır. CNN'in görüntünün yerel özelliklerini kavrayabildiğini, alphaGO'nun oyunun yerel durumundan bilgi aldığını ve bunun ne anlama geldiğini sık sık duyuyoruz. Bu şekilde, daha az bağlantı olduğu için ağırlık çok daha azdır. Ağırlıklar aslında daha da az çünkü her bir nöronun 9 ağırlığı diğer nöronlarla paylaşılıyor. Tüm nöronlar bu ortak 9 ağırlık setini kullanır ve değerleri saptırmaz. Yani bu sinir ağının aslında ayarlanması gereken sadece 9 parametresi var.

    İlk bölümü izleyen öğrenciler, bu sinir ağının sadece bir evrişim filtresi olmadığını görebiliyorlar mı? Sadece evrişim çekirdeğinin parametreleri belirsiz ve onu eğitmemiz gerekiyor - bu "eğitilebilir bir filtre". Bu sinir ağı, özellikle basit bir topolojiye sahip bir CNN'dir.

    Bu sinir ağını eğitmek için sobel operatörü tarafından filtrelenen görüntüyü hedef değer olarak kullanmayı deneyin. Ağa giriş gri ölçekli alan haritasıdır ve doğru çıktı, Şekil 4'te gösterildiği gibi sobel operatörü tarafından filtrelenen lena haritasıdır. Bu yalnızca giriş ve çıkış resimleri çifti eğitim setini oluşturur. Ağ ağırlıkları rastgele başlatılır ve 2000 tur için eğitilir. Aşağıda gösterildiği gibi:

    Resim 11

    Sol üstten sağa doğru: ilk rastgele filtre çıktısı, her 200 eğitim turundan sonra filtre çıktısı (10 kare) ve son kare, eğitim için kullanılan hedef görüntü olan obel operatörünün çıktısıdır. İlk 200 turdan sonra, sinir ağının çıktısı ile sobel operatörünün çıktısı arasında hiçbir fark olmadığı görülebilir. İkinci turların çıktısı temelde aynıdır. Giriş ve çıkışların ortalama kare hatası aşağıda gösterildiği gibi eğitim turlarıyla değişir:

    Resim 12

    1500 turdan sonra, mse temelde 0'dır. Eğitim tamamlandıktan sonra ağın ağırlığı:

    Sobel operatörüyle karşılaştırın:

    Eğitimli filtrenin negatif sayılarının sol yerine sağda listelendiğini unutmayın. Çünkü evrişimi hesaplamak için sobel operatörünü kullanırken, kitaplık işlevi filtreyi "bağlar". Bu önemli değil. Anahtar, pozitif bir sütun, bir negatif sütun ve ortada bir sıfır sütundur. Pozitif / negatif sütun değerlerinin oranı yaklaşık 1: 2: 1'dir. Yaklaşık sobel operatörüdür. Bir sinir ağını eğiterek bir sobel operatörüne rastgele bir filtre eğitiyoruz. Optimizasyonun büyüsü budur. AlphaGO'nun sihirli çekirdeği de burada: optimizasyon.

    CNN'de böyle bir filtre katmanına evrişimli katman adı verilir. Evrişimli bir katman, her biri bir kanal veya özellik haritası olarak adlandırılan birden fazla filtreye sahip olabilir. Evrişimli katmanın çıktısına belirli bir etkinleştirme işlevi Sigmoid, tanh, vb. Uygulanabilir. Aktivasyon fonksiyonu aynı zamanda bir CNN katmanı oluşturur - aktivasyon katmanı, böyle bir katmanın eğitilebilir parametreleri yoktur.

    Havuzlama katmanı adı verilen başka bir katman var. Ayrıca hiçbir parametresi yoktur ve boyut azaltmada rol oynar. Girişi örtüşmeyen n × n bölgelere bölün. Her alan bir değer içerir. Bu değerden bir değer hesaplanır. Hesaplama yöntemi ortalama, maksimum maksimum vb. Olabilir. N = 2 varsayıldığında, 4 giriş tek çıkış olur. Çıktı görüntüsü, giriş görüntüsünün 1 / 4'ü boyutundadır. İki boyutlu katman, tek boyutlu bir vektöre yassılaştırılırsa, tamamen bağlı bir ileri sinir ağı daha sonra bağlanabilir.

    Bu bileşenleri birleştirerek bir CNN elde edilir. Doğrudan orijinal görüntüyü girdi olarak ve son regresyon veya sınıflandırma probleminin sonucunu çıktı olarak alır.Hem filtreli görüntü işleme ve dahili olarak uydurma işlevine sahiptir ve tüm parametreler birlikte eğitilir. Bu evrişimli sinir ağıdır.

    Dört, bir örnek ver

    El yazısı numara tanıma. Veri setinde toplam 42.00028 × 28 el yazısı dijital gri tonlamalı resim bulunmaktadır. On sayının (0-9) örnek boyutu kabaca eşittir. Aşağıdaki şekil bunlardan bazılarını göstermektedir (ilk 100):

    Figür 13

    Eğitim için numune setinin% 75'ini ve test için kalan% 25'ini kullanın. Aşağıdaki yapıya sahip bir CNN oluşturun:

    Figür 14

    CNN, 8 katmana sahiptir (giriş katmanı dahil değildir). Giriş olarak 28 × 28 gri tonlamalı bir resim olan 784 elemanlı bir vektörü kabul eder. 784 elemanlı giriş vektörünü 1 × 28 × 28 dizisine dönüştüren CNN'nin ilk katmanına bir yeniden şekillendirme katmanı yerleştirildiğinden, resim 28 × 28'e dönüştürülmez ve sonra girilmez. İlk 1 ×, yalnızca bir kanal olduğu anlamına gelir, çünkü bu gri tonlamalı bir görüntüdür ve RGB kanalı yoktur.

    Sonra evrişimli bir katman koyun. 32 filtre içerir, bu nedenle çıktı boyutu 32 × 28 × 28'dir. 32 filtre, her biri 28 × 28 boyutunda 32 görüntü (kanal) üretir. Ardından, 32 filtreden oluşan bir evrişimli katman ve çıktı boyutu da 32 × 28 × 28'dir.

    Boyutluluğu azaltmak için bir Havuzlama katmanı arkaya bağlanır. 2 × 2 ortalama Havuzlama katmanı çıktı boyutunu yarı yarıya azaltır: 32 × 14 × 14. Sonra bir düzleştirme katmanı var, hesaplama yok ve parametre yok, sadece verinin şeklini değiştirin: 32 × 14 × 14, 6272 eleman vektörüne düzleştirilmiş.

    6272 element vektörü, bir sonraki üç katmanlı, tamamen bağlı sinir ağına gönderilir. Bu ağdaki nöron sayısı 1000 × 1000 × 10'dur. İki gizli katmanın her biri 1000 nörona sahiptir ve son çıktı katmanı 10 sayıyı temsil eden 10 nörona sahiptir. Altıncı çıktı 1 ise ve kalan çıktılar 0 ise, bu, ağın el yazısıyla yazılan sayının "5" olduğunu belirlediği anlamına gelir ("0" sayısı ilk çıktıdır, bu nedenle "5" altıncı çıktıdır). "5" sayısı şu şekilde kodlanmıştır:

    Eğitim seti ve test setinin dijital etiketleri bu şekilde kodlanır (tek sıcak kodlama).

    Tamamen bağlı sinir ağının bu bölümünün aktivasyon işlevi Sigmoid kullanır. Bu benim modası geçmiş ve yüzeysel bir anlayışımdan geliyor: Daha fazla "eğimli" Sigmoid, ağa doğrusal olmayışa katkıda bulunmak için kullanılır. Aslında, çağdaş derin öğrenme, biyolojik sinirlerin davranışından esinlenmiştir ve tek taraflı doğrusal Relu gibi diğer bazı mükemmel aktivasyon işlevlerini tasarlamıştır.

    Hata işlevi, ortalama kare hatası mse'yi kullanır. Optimizasyon algoritması, gradyan inişinin bir çeşidi olan rmsprop'u kullanır. Öğrenme oranını dinamik olarak ayarlar (adım boyutu ). Eğitim süreci 10 tur sürmektedir. Buradaki 10 turun, mevcut çözümün çözüm alanında yalnızca 10 adım hareket ettiği anlamına gelmediğini unutmayın. Bir tur, 31.500 eğitim örneğinin tamamının bir yineleme için ağa gönderildiği anlamına gelir. Her ağırlık güncellemesi, toplu olarak 32 numune ile algoritmaya gönderilir. Aşağıdaki şekil, eğitimle MS'in düşüşünü göstermektedir:

    Figür 15

    Aşağıdaki şekil, sınıflandırma doğruluğunun eğitime göre nasıl değiştiğini göstermektedir:

    Figür 16

    Bu CNN'nin test setindeki doğruluğu% 96,7'dir ve her sayının doğruluğu / geri çağırma / f1 skoru aşağıdaki gibidir:

    Test setindeki 10 tip basamak sınıflandırması için CNN'nin karışıklık matrisi şöyledir:

    Figür 17

    Sinir ağını eğittikten sonra, en ilginç şey iç ağırlıklarını bir şekilde göstermektir. Bu gizemli ve açıklanamayan bağlantı güçlerini görmek sonunda görünüşte anlamlı davranışlar üretiyor, bu da bize beyindeki nöronal bağlantıların aslında hafızamızı, kişiliğimizi, duygularımızı oluşturduğunu hatırlatıyor ... büyüleyici.

    CNN, bu tür şeyler için daha uygundur. Çünkü evrişimli katman bir filtre olacak şekilde eğitilmiştir. Giriş görüntüsünü filtrelemek ve CNN'in "gördüklerini" görmek için bu filtreleri kullanın. Aşağıdaki şekil, Şekil 13'ün 8. satırındaki ve 8. sütunundaki el yazısıyla yazılmış "6" sayısını filtrelemek için birinci ve ikinci evrişimli katmanlardan 32 filtre kullanır. 32 kanal aşağıdaki gibi görüntülenir:

    Figür 18

    Figür 19

    Bazıları kenarları vurgular (daha büyük çıktı değeri), bazıları "6" daireyi vurgular, vb. Bunlar, CNN'in filtrelemenin ilk adımından sonra "gördüğü" bilgilerdir. Aşağıdaki sinir katmanlarından geçtikten sonra, soyutlama seviyesi katman katman artar ve el yazısı rakamları tanır.

    Son olarak kodu ekleyin. CNN, keras kitaplığını kullanır. Veri seti kaggle'dan gelir: burada.

    5. Kaynakça

    [1] "Optimizasyona Giriş" (Amerika Birleşik Devletleri) Edwin K. P. Chong (Amerika Birleşik Devletleri) Stanislaw H. Zak

    [2] "Sinir Ağı Tasarımı" (Amerika) Martin T. Hagan (Amerika) Howard B. Demuth (Amerika) Mark Beale

    Orijinal bağlantı: https://zhuanlan.zhihu.com/p/25249694

    [AI Unicorn'u Arıyor] Xinzhiyuan, 10 büyük başkentle güçlerini birleştirdi

    2017 Girişimcilik Yarışması'nı başlatın

    AI Girişimcilik Yarışması, Xinzhiyuan ve 10 ana akım AI girişim sermayesi kuruluşundan oluşur: Blue Run Ventures, Sequoia Capital China Fund, Hillhouse Smart Artificial Intelligence Fund, Blue Lake Capital, Blue Elephant Capital, IDG Capital, Gaorong Capital, CITIC Jiantou Securities, Mingshi Capital ve Songhe Yuanwang Fund tarafından ortaklaşa başlatılan, Xinzhiyuan sponsorluğunda, Pekin Zhongguancun Bilim Parkı Yönetim Komitesi ve Zhongguancun Bilim Parkı Haidian Park Yönetim Komitesi tarafından desteklenen, AI teknoloji liderleri ve yatırım liderlerinin bir araya gelmesidir. Büyük olay. Xinzhiyuan, risk sermayesi kaynaklarıyla geleceğin iddialı AI tek boynuzlu atlarına bağlanmak için güçlü bir fırsat sunuyor ve en iyi risk sermayesi TS sizi bekliyor.

    Orijinal metni okumak ve çevrimiçi başvuru formunu doldurmak için makalenin altına tıklayın. Seçime katılmak için kayıt formu gereklidir.

    Daha fazla bilgiye sahipseniz (BP, vb.), Xzy100@aiera.com.cn adresine gönderebilirsiniz.Lütfen e-postanın konusuna şirket adını belirtin. Herhangi bir sorunuz varsa, posta kutusuna bir mektup da gönderebilirsiniz.

    "Polis Eğitim Kampı" "Arabaların Tanrısı" nın gerçekçi bir versiyonunu sahneledi! Uçmak için flick drift 6!
    önceki
    Bilgi ekonomisi çok mu sıcak? Usta henüz sahaya girmedi, ancak zaferin anahtarı nedir?
    Sonraki
    Bu yerlere gittiğinizde bu lezzetleri kaçırmayın
    RMB şortlarının dövüldüğü gün gelebilir, merkez bankası bir kez daha kılıcı parlatır ve şortlar darbe alır.
    İlk kez araba nasıl alınır? Çok fazla bilgi!
    Yüzü kaydırarak erişim kontrolünün bir geleceği var! Bu endüstriler devler olmadan para kazanabilir
    Sonbaharda Çin'deki en güzel 15 ginkgo izleme noktasına hiç gitmedim. Kapınızın önünde bir tane var mı?
    Dış medya: İran, dünya ekonomisinin ciddi sonuçları olacağını veya boğazın tıkanacağını ve petrol fiyatlarının keskin bir şekilde yükseleceğini mi iddia ediyor?
    Dedektif her gün ne yapar? Gerçekten "ölüme doğması" gerekiyor mu?
    LeCun önerilir! GAN almak için 50 satır PyTorch kodu
    Bu vizeleri bir daha asla göremeyebilirsiniz
    Çok düşük bir peşinat ve ultra uzun garanti ile bu SUV "çalışkanlık ve tasarruflu temizlik" olarak adlandırılabilir!
    Dünyanın pek çok ülkesi İran petrolünü ABD dolarına koyamayabilir, bundan kimler yararlanacak?
    Neden geç kalmamalısın? Bu açıklama akıllara durgunluk veriyor!
    To Top