Beyaz kuğu, siyah kuğu, gri kuğu? Evrişimli sinir ağı, tanınmanıza yardımcı olur

Bu makale, evrişimli sinir ağı (CNN) kavramını bir dizi kuğu resmi aracılığıyla açıklayacak ve geleneksel bir çok katmanlı algılayıcı sinir ağındaki görüntüleri işlemek için CNN'yi kullanacaktır.

Görüntü analizi

Görüntülerdeki kuğuları tanıyabilen bir sinir ağı modeli oluşturmak istediğimizi varsayalım.

Kuğular, uzun boyun, beyaz renk gibi resimde bir kuğu olup olmadığını belirlemeye yardımcı olmak için kullanılabilecek belirli özelliklere sahiptir.

Kuğular, tanımlama amacıyla kullanılabilecek belirli özelliklere sahiptir.

Bazı görüntüler için kuğu olup olmadığını belirlemek zor olabilir, lütfen aşağıdaki resme bakın.

Ayırt edilemeyen kuğu görüntüsü

Bu özellikler hala yukarıdaki resimde var, ancak yukarıda önerilen özellikleri bulmamız bizim için zor. Ek olarak, bazı daha aşırı durumlar olacaktır.

Kuğu sınıflandırmasının aşırı durumu

En azından renkler tutarlı, değil mi? hala......

Bu siyah kuğuları unutma.

Daha kötü olabilir mi? Kesinlikle.

En kötü durum

Tamam, şimdi yeterince kuğu resmi var.

Sinir ağlarından bahsedelim.

Günümüzde, temelde görüntülerdeki özellikleri çok saf bir şekilde tespit etmekten bahsediyoruz. Araştırmacılar, bu sorunlarla başa çıkmak için çeşitli bilgisayarla görme teknolojileri geliştirdiler: SIFT, FAST, SURF, Brief, vb. Bununla birlikte, benzer bir sorun ortaya çıkar: dedektörler ya çok geneldir ya da çok tasarımlıdır, bu da onları çok basit ya da genellemeyi zorlaştırır.

· Test edilecek işlevi öğrenirsek ne yapmalıyız?

· Temsili öğrenmeyi (veya özellik öğrenmeyi) gerçekleştirebilecek bir sisteme ihtiyacımız var.

Temsil öğrenimi, sistemin belirli bir görevin ilgili özelliklerini otomatik olarak bulmasını sağlayan bir tekniktir. Manuel işlev projesini değiştirin. Birkaç teknik var:

· Denetimsiz (K-anlamı, PCA, ...)

· Denetim (Sup. Sözlük öğrenme, sinir ağı!)

Geleneksel sinir ağları ile ilgili sorunlar

Multilayer Perceptron (MLP) adı verilen geleneksel sinir ağına zaten aşina olduğunuz varsayılmaktadır. Bu içeriklere aşina değilseniz, MLP'nin İnternette nasıl çalıştığına dair yüzlerce eğitim vardır. Bunlar, nöronların bağlı düğümler tarafından uyarıldığı ve yalnızca belirli bir eşiğe ulaşıldığında etkinleştirildiği insan beyninde modellenmiştir.

Standart çok katmanlı algılayıcı (geleneksel sinir ağı)

MLP'nin özellikle görüntü işlemede birçok dezavantajı vardır. MLP, her giriş için bir algılayıcı kullanır (örneğin, bir görüntüdeki pikseller, RGB durumunda 3 ile çarpılır). Büyük görüntüler için, ağırlığın manipüle edilmesi hızla zorlaşır. 3 renk kanallı 224 x 224 piksellik bir görüntü için yaklaşık 150.000 ağırlık eğitilmelidir! Sonuç olarak, eğitim sırasında ve aşırı uyum sırasında zorluklar ortaya çıkar.

Diğer bir yaygın sorun, MLP'nin girdiye (görüntü) ve onun kaydırılmış versiyonuna farklı tepki vermesidir - bunlar, çeviriye göre değişmez değildir. Örneğin bir resmin sol üst köşesinde ve başka bir resmin sağ alt köşesinde bir kedi resmi belirirse, MLP kendini düzeltmeye çalışacak ve kedinin her zaman resmin bu kısmında görüneceğini düşünecektir.

Açıkçası, MLP görüntü işleme için en iyi fikir değil. Temel sorunlardan biri, görüntü MLP'ye düzleştirildiğinde, uzamsal bilginin kaybolacağıdır. Yakın düğümler, görüntünün özelliklerini tanımlamaya yardımcı oldukları için önemlidir.

Bu nedenle, görüntü özelliklerinin (piksellerin) uzamsal korelasyonundan yararlanmak için bir yola ihtiyacımız var, böylece nerede görünürse görünsün kediyi resimde görebiliriz. Aşağıdaki şekilde artıklık fonksiyonunu öğreniyoruz. Bu yöntem sağlam değildir çünkü kedi başka bir yerde görünebilir.

MLP kullanan kedi dedektörü, kedinin konumu değiştikçe değişir.

CNN yolculuğuna başlayın

Şimdi CNN'in çoğu sorunu çözmek için nasıl kullanılabileceğini tartışmaya devam edelim.

CNN, yakındaki piksellerin uzak piksellerle daha ilişkili olduğu gerçeğinden yararlanır.

Filtre adı verilen bir şey kullanarak, yakındaki piksellerin etkisini analiz ettik. Belirtilen boyutta bir filtre kullanın (temel kural 3x3 veya 5x5'dir) ve ardından filtreyi sol üst köşeden görüntünün sağ alt köşesine taşıyın. Görüntüdeki her nokta için, filtreye dayalı değeri hesaplamak için bir evrişim işlemi kullanılır.

Filtre herhangi bir şeyle ilgili olabilir.İnsan fotoğrafları için bir filtre burnu görmeyle ilgili olabilir ve bizim burun filtremiz görüntüdeki burnun yoğunluğunu, kaç defa ve içinde görmemizi sağlar. durum. MLP ile karşılaştırıldığında bu, sinir ağının öğrenmesi gereken ağırlıkların sayısını azaltır ve aynı zamanda bu özelliklerin konumu değiştiğinde sinir ağını terk etmeyeceği anlamına gelir.

Evrişim işlemi

Ağ üzerinden farklı işlevleri nasıl öğreneceğinizi ve ağın aynı işlevi öğrenmesinin mümkün olup olmadığını öğrenmek istiyorsanız (10 baş filtresi biraz gereksiz olacaktır), bu temelde olmayacaktır. Ağı oluştururken, filtrenin değerini rastgele belirliyoruz ve ardından ağ eğitimi sırasında sürekli olarak güncelliyoruz. Seçilen filtrelerin sayısı çok fazla olmadıkça, iki özdeş filtre üretme olasılığı çok çok azdır.

Aşağıda filtre veya çekirdek adı verilen bir örnek verilmiştir.

CNN'nin çekirdek filtresi örneği

Filtreler görüntüden geçtikten sonra, her filtre için bir özellik haritası oluşturulur. Daha sonra bu işlevler, etkinleştirme işlevi aracılığıyla elde edilir ve etkinleştirme işlevi, görüntüde belirli bir konumda belirli bir özelliğin olup olmadığını belirler. Daha sonra daha fazla filtre katmanı eklemek ve daha fazla özellik haritası oluşturmak gibi birçok şey yapabiliriz. Daha derin CNN'ler oluşturdukça, bu eşlemeler gittikçe daha soyut hale geliyor. Özellik haritasındaki maksimum değerleri seçmek ve bunları sonraki katmanlar için girdi olarak kullanmak için havuzlanmış katmanları da kullanabiliriz. Teorik olarak, havuz katmanında her türlü işlem yapılabilir, ancak gerçekte sadece maksimum havuz kullanılır, çünkü aşırı değerler bulmak istiyoruz - bu, ağımız bu özelliği gördüğünde!

Örnek CNN, görüntünün son sınıflandırmasına birkaç kategoriden biri olarak karar veren iki evrişimli katmana, iki birleştirilmiş katmana ve tamamen bağlantılı bir katmana sahiptir.

Şimdiye kadar bulduğumuz şeyi tekrarlamak için. MLP'yi biliyoruz:

· Görüntüleri iyi ölçeklendiremiyorum

· Piksel konumu ve komşu ilişkilendirmesi tarafından getirilen bilgileri göz ardı edin

· Çeviri işlenemiyor

CNN'in genel düşüncesi, görüntünün niteliklerine akıllıca uyum sağlamaktır:

· Piksel konumu ve mahallenin semantik anlamı vardır

· İlgi çekici unsurlar görüntünün herhangi bir yerinde görünebilir

MLP ve CNN'nin mimari karşılaştırması

CNN de katmanlardan oluşur, ancak bu katmanlar tam olarak bağlantılı değildir: Görüntü boyunca uygulanan filtreler, küp şeklinde ağırlık setleri vardır. Filtrenin her 2B dilimi bir çekirdek olarak adlandırılır. Bu filtreler, çeviri değişmezliğini ve parametre paylaşımını sağlar. Nasıl uygulanıyor? Tabii ki evrişimdir!

Bu örnek, bir çekirdek filtresi kullanarak bir görüntüye evrişimin nasıl uygulanacağını gösterir.

Şimdi bir soru var: Görüntünün kenarlarına ne olacak? Normal bir görüntüye evrişim uygularsak, sonuç filtrenin boyutuna göre altörneklenir. Ya bunun olmasını istemiyorsak? Dolgu kullanabilirsiniz.

dolgu

Bu görüntü, CNN'e tam dolgu ve aynı dolgunun nasıl uygulanacağını gösterir

Doldurma, esasen filtre çekirdeği tarafından oluşturulan özellik haritasını orijinal görüntü ile aynı boyutta yapar. Bu, derin CNN'ler için çok kullanışlıdır çünkü çıktıyı azaltmak istemiyoruz, bu nedenle sonucu tahmin etmek için ağın sonunda sadece 2x2'lik bir alan bırakıyoruz.

Filtreleri nasıl bağlarız?

Çok sayıda özellik haritamız varsa, nihai sonucu almamıza yardımcı olmak için bu özellikler ağda nasıl birleştirilebilir?

Her bir filtrenin tüm 3B giriş küpüyle birleştiği, ancak bir 2B özellik haritası oluşturacağı açık olmalıdır.

· Birden fazla filtremiz olduğundan, bir 3B çıktı elde ederiz: her filtre için bir 2B özellik haritası

· Özellik eşlem boyutu, bir evrişimli katmandan diğerine büyük ölçüde değişebilir: 32x32x16 giriş katmanı girin, eğer katmanda 128 filtre varsa, 32x32x128 çıktıdan çıkın.

· Bir görüntüyü döndürmek için filtrelerin kullanılması, görüntüdeki belirli bir öğenin varlığını vurgulayan bir özellik haritası oluşturacaktır.

Evrişimli katmanda, temelde farklı özellikleri çıkarmak için görüntüye birden çok filtre uygularız. Ama en önemlisi, bu filtreleri öğreniyoruz! Kaçırdığımız tek şey doğrusal olmamaktır.

Doğrusal Düzeltme Fonksiyonuna (ReLU) Giriş

CNN'nin en başarılı doğrusal olmama durumu, sigmoidlerdeki kaybolan gradyan problemini çözebilen doğrusal düzeltme fonksiyonudur (ReLU). ReLU'nun hesaplanması daha kolaydır ve seyreklik üretir (her zaman yararlı değildir).

Farklı katmanların karşılaştırılması

Evrişimli sinir ağlarında üç tür katman vardır: evrişimli katmanlar, havuz katmanları ve tam bağlantılı katmanlar. Bu katmanların her biri, optimize edilebilen ve giriş verileri üzerinde farklı görevler gerçekleştiren farklı parametrelere sahiptir.

Evrişimli tabakanın özellikleri

Evrişimli katman, orijinal görüntüye veya derin CNN'deki diğer özellik haritalarına filtreler uygulayan bir katmandır. Bu, ağdaki çoğu kullanıcı tanımlı parametrenin konumudur. En önemli parametreler çekirdek sayısı ve çekirdek boyutudur.

Havuz katmanının özellikleri

Havuzlama katmanları, evrişimli katmanlara benzer, ancak belirli bir filtreleme alanında maksimum değeri alan maksimum havuzlama veya filtreleme alanındaki ortalama değeri alan ortalama havuzlama gibi belirli işlevleri gerçekleştirirler. Bunlar genellikle ağın boyutsallığını azaltmak için kullanılır.

Tamamen bağlı katman işlevleri

Tamamen bağlı katmanlar, CNN'nin sınıflandırma çıktısının önüne yerleştirilir ve sınıflandırmadan önce sonuçları düzleştirmek için kullanılır. Bu, MLP'nin çıktı katmanına benzer.

Standart CNN mimarisi

CNN katmanı ne öğrenir?

· Her CNN katmanı gittikçe daha karmaşık filtreler öğrenir.

· Temel özellik algılama filtrelerini öğrenmenin ilk katmanı: kenarlar, köşeler vb.

· Orta katman, nesne kısmının filtresini algılamayı öğrenir. Yüzler için gözlere, buruna vb. Tepki vermeyi öğrenebilirler.

· Son katmanın daha yüksek temsili vardır: farklı şekil ve konumdaki tüm nesneleri tanımayı öğrenirler.

CNN'lerin örnekleri, belirli nesneleri ve bunların ortaya çıkan özellik haritalarını tanımak için eğitilir

Japon ligindeki entrika, Doğu Asya futbolunun zevkine katkıda bulundu.
önceki
Changan'ın ilk coupe SUV CS85'in şüpheli fiyatı ortaya çıktı: 150.000 ila 180.000 RMB
Sonraki
Bu operasyon nedir? Petya fidye yazılımı fidyesi 250.000 ABD Dolarına yükseldi!
Veri bilimcisi ile veri mühendisi arasındaki fark nedir?
SSD sabit sürücülerin fiyatı düştü ve şimdi işlerin yeniden yavaşlaması gerektiği görülüyor!
Samsung S10 Sanayi ve Bilgi Teknolojileri Bakanlığı sık sık yabancı medyaya maruz kaldı, netizenler gerçek makine kullanıldıktan sonra buna inanmadı
Yüksek Sesle Haber | Çin'in futbol endüstrisi, tam sermaye penetrasyonu hala "kapıyı durdurmaktan" yetersiz
Haftalık görüşmeler | Çin takımı Dünya Kupası'na da "katılabilir" CES fuarı teknoloji şirketleri için sadece bir sahne değil
Ele.me.com'un birleşme sonrası mücadele etkinliği Hisse fiyatı düşen Meituan gerçekten tutabilir mi?
Kod ayrıntıları: inanılmaz doğruluk! Kredi R ile bir kredi riski puanlama modeli oluşturun
İpuçları | Bitiremiyorsanız, karpuzu buzdolabına koymayın! Bu yöntemle iki gün fena değil
10 yıl sonra Android 1.6 ile HTC G1'i yeniden deneyimlemek: utanç özellikli telefona indirgenmiş
Sahte haberleri gizlemek ister misiniz? Test etmek için bu üçlü ilişkiyi kullanın
Toshiba'nın ilk QLC flash belleğinin kullanım ömrü TLC ile karşılaştırılabilir!
To Top