Evrişimsel sinir ağı - Convolutional neural network

Gelen derin öğrenme , bir kıvrışımlı sinir ağı ( CNN veya ConvNet ) bir sınıftır yapay sinir ağına , en yaygın görsel görüntülerini analiz uygulanmıştır. Ayrıca, girdi özellikleri boyunca kayan ve özellik haritaları olarak bilinen çeviri eşdeğeri yanıtları sağlayan evrişim çekirdeklerinin veya filtrelerinin paylaşılan ağırlık mimarisine dayanan, kaymayla değişmez veya uzayda değişmez yapay sinir ağları ( SIANN ) olarak da bilinirler. Sezgisel olarak, çoğu evrişimli sinir ağı, değişmezin aksine , çeviriye yalnızca eşdeğerdir . Bunlar kullanım alanına sahip görüntü ve video tanıma , recommender sistemleri , görüntü sınıflandırma , görüntü segmentasyonu , tıbbi görüntü analizi , doğal dil işleme , beyin-bilgisayar arayüzleri ve mali zaman serileri .

CNN'ler, çok katmanlı algılayıcıların düzenli versiyonlarıdır . Çok katmanlı algılayıcılar genellikle tamamen bağlı ağlar anlamına gelir, yani bir katmandaki her nöron bir sonraki katmandaki tüm nöronlara bağlıdır . Bu ağların "tam bağlanabilirliği", onları fazla veriye yatkın hale getirir . Normalleştirmenin veya fazla takmayı önlemenin tipik yolları şunları içerir: eğitim sırasında parametreleri cezalandırma (ağırlığın azalması gibi) veya bağlantı kesme (atlanan bağlantılar, bırakma, vb.) CNN'ler, düzenlemeye yönelik farklı bir yaklaşım benimser: verilerdeki hiyerarşik modelden yararlanırlar. ve filtrelerinde kabartmalı daha küçük ve daha basit desenleri kullanarak artan karmaşıklıkta desenleri birleştirin. Bu nedenle, bir bağlantı ve karmaşıklık ölçeğinde, CNN'ler alt uçtadır.

Evrişimsel ağlar edildi ilham tarafından biyolojik arasındaki bağlantı desen ki süreçlerin nöronların hayvan organizasyonunu andıran görsel korteksin . Bireysel kortikal nöronlar , uyaranlara yalnızca alıcı alan olarak bilinen görme alanının sınırlı bir bölgesinde yanıt verir . Farklı nöronların alıcı alanları, tüm görsel alanı kaplayacak şekilde kısmen örtüşür.

CNN'ler, diğer görüntü sınıflandırma algoritmalarına kıyasla nispeten az ön işleme kullanır . Bu, ağın otomatik öğrenme yoluyla filtreleri (veya çekirdekleri) optimize etmeyi öğrendiği, geleneksel algoritmalarda ise bu filtrelerin elle tasarlanmış olduğu anlamına gelir . Öznitelik çıkarmada ön bilgiden ve insan müdahalesinden bu bağımsızlık büyük bir avantajdır.

Tanım

"Evrişimli sinir ağı" adı, ağın evrişim adı verilen matematiksel bir işlem kullandığını gösterir . Evrişimli ağlar, katmanlarından en az birinde genel matris çarpımı yerine evrişim kullanan özel bir tür sinir ağlarıdır.

Mimari

LeNet ve AlexNet evrişiminin karşılaştırılması, havuzlama ve yoğun katmanlar

Evrişimli bir sinir ağı, bir giriş katmanı, gizli katmanlar ve bir çıkış katmanından oluşur. Herhangi bir ileri beslemeli sinir ağında, girdileri ve çıktıları aktivasyon fonksiyonu ve son evrişim tarafından maskelendiği için herhangi bir orta katman gizli olarak adlandırılır . Evrişimli bir sinir ağında, gizli katmanlar, evrişimleri gerçekleştiren katmanları içerir. Tipik olarak bu , katmanın girdi matrisi ile evrişim çekirdeğinin bir nokta çarpımını gerçekleştiren bir katmanı içerir . Bu ürün genellikle Frobenius'un iç ürünüdür ve etkinleştirme işlevi genellikle ReLU'dur . Evrişim çekirdeği, katman için giriş matrisi boyunca kayarken, evrişim işlemi, bir sonraki katmanın girişine katkıda bulunan bir özellik haritası oluşturur. Bunu, havuzlama katmanları, tam bağlantılı katmanlar ve normalleştirme katmanları gibi diğer katmanlar takip eder.

Evrişimsel katmanlar

Bir CNN'de giriş, (giriş sayısı) x (giriş yüksekliği) x (giriş genişliği) x (giriş kanalları ) şeklinde bir tensördür . Bir evrişim katmanından geçtikten sonra, görüntü, şu şekle sahip bir aktivasyon haritası olarak da adlandırılan bir özellik haritasına soyutlanır: (giriş sayısı) x (özellik haritası yüksekliği) x (özellik haritası genişliği) x (özellik haritası kanalları ).

Evrişimsel katmanlar, girdiyi sarar ve sonucunu bir sonraki katmana iletir. Bu, görsel korteksteki bir nöronun belirli bir uyarana verdiği tepkiye benzer. Her evrişimsel nöron, verileri yalnızca kendi alıcı alanı için işler . Her ne kadar tam olarak bağlı ileri beslemeli sinir ağları özelliklerini ve sınıflandırmak verileri öğrenmek için kullanılabilir, bu mimari, yüksek çözünürlüklü görüntüler olarak büyük girişler için genellikle pratik değildir. Her pikselin ilgili bir girdi özelliği olduğu görüntülerin büyük giriş boyutu nedeniyle, sığ bir mimaride bile çok yüksek sayıda nöron gerektirecektir. Örneğin, 100 x 100 boyutundaki (küçük) bir görüntü için tam bağlantılı bir katman , ikinci katmandaki her nöron için 10.000 ağırlığa sahiptir . Bunun yerine evrişim, serbest parametre sayısını azaltarak ağın daha derin olmasına izin verir. Örneğin, görüntü boyutundan bağımsız olarak, her biri aynı paylaşılan ağırlıklara sahip 5 x 5 döşeme bölgesi kullanmak, yalnızca 25 öğrenilebilir parametre gerektirir. Daha az parametre üzerinde düzenli ağırlıkların kullanılması , geleneksel sinir ağlarında geri yayılım sırasında görülen kaybolan gradyanlar ve patlayan gradyanlar problemlerini önler . Ayrıca, evrişimli sinir ağları, evrişim ve/veya havuzlama sırasında ayrı özellikler arasındaki uzamsal ilişkiler dikkate alındığından, ızgara benzeri bir topolojiye (görüntüler gibi) sahip veriler için idealdir.

Havuz katmanları

Evrişimli ağlar, geleneksel evrişimli katmanlarla birlikte yerel ve/veya küresel havuzlama katmanlarını içerebilir. Havuzlama katmanları, bir katmandaki nöron kümelerinin çıktılarını bir sonraki katmandaki tek bir nöronda birleştirerek verilerin boyutlarını azaltır. Yerel havuzlama küçük kümeleri birleştirir, 2 x 2 gibi döşeme boyutları yaygın olarak kullanılır. Küresel havuzlama, özellik haritasının tüm nöronları üzerinde etkilidir. Popüler kullanımda iki yaygın havuzlama türü vardır: maksimum ve ortalama. Maksimum havuzlama , özellik haritasındaki her bir yerel nöron kümesinin maksimum değerini kullanırken, ortalama havuzlama ortalama değeri alır.

Tamamen bağlı katmanlar

Tam bağlantılı katmanlar, bir katmandaki her nöronu başka bir katmandaki her nörona bağlar . Geleneksel çok katmanlı algılayıcı sinir ağı (MLP) ile aynıdır . Düzleştirilmiş matris, görüntüleri sınıflandırmak için tamamen bağlı bir katmandan geçer.

alıcı alan

Sinir ağlarında, her bir nöron bir önceki katmandaki bazı konumlardan girdi alır. Evrişimli bir katmanda, her nöron, nöronun alıcı alanı olarak adlandırılan önceki katmanın yalnızca sınırlı bir alanından girdi alır . Tipik olarak alan bir karedir (örneğin 5'e 5 nöron). Oysa tam bağlantılı bir katmanda, alıcı alan önceki katmanın tamamıdır . Böylece, her evrişim katmanında, her bir nöron, girdideki önceki katmanlara göre daha geniş bir alandan girdi alır. Bunun nedeni, bir pikselin yanı sıra çevresindeki piksellerin değerini de hesaba katan evrişimin tekrar tekrar uygulanmasıdır. Genişletilmiş katmanlar kullanıldığında , alıcı alandaki piksel sayısı sabit kalır, ancak birkaç katmanın etkisi birleştirildiğinde boyutları büyüdükçe alan daha seyrek doldurulur.

Ağırlıklar

Bir sinir ağındaki her nöron, bir önceki katmandaki alıcı alandan alınan giriş değerlerine belirli bir fonksiyon uygulayarak bir çıkış değeri hesaplar. Girdi değerlerine uygulanan fonksiyon, bir ağırlık vektörü ve bir sapma (tipik olarak gerçek sayılar) tarafından belirlenir. Öğrenme, bu önyargıları ve ağırlıkları yinelemeli olarak ayarlamaktan oluşur.

Ağırlıkların vektörü ve önyargı filtreler olarak adlandırılır ve girdinin belirli özelliklerini (örneğin, belirli bir şekil) temsil eder . CNN'lerin ayırt edici bir özelliği, birçok nöronun aynı filtreyi paylaşabilmesidir. Bu, bellek ayak izini azaltır, çünkü her bir alıcı alanın kendi önyargı ve vektör ağırlığına sahip olmasının aksine, bu filtreyi paylaşan tüm alıcı alanlarda tek bir önyargı ve tek bir ağırlık vektörü kullanılır.

Tarih

CNN genellikle canlı organizmalarda beynin görme işlemesini gerçekleştirme şekliyle karşılaştırılır .

Görsel korteksteki alıcı alanlar

Hubel ve Wiesel tarafından 1950'lerde ve 1960'larda yapılan çalışmalar, kedi görsel kortekslerinin , görsel alanın küçük bölgelerine bireysel olarak yanıt veren nöronlar içerdiğini gösterdi . Gözlerin hareket etmemesi koşuluyla, görsel uyaranların tek bir nöronun ateşlenmesini etkilediği görsel alan bölgesi, onun alıcı alanı olarak bilinir . Komşu hücreler benzer ve örtüşen alıcı alanlara sahiptir. Alıcı alan boyutu ve konumu, tam bir görsel alan haritası oluşturmak için korteks boyunca sistematik olarak değişir. Her yarım küredeki korteks, kontralateral görme alanını temsil eder .

1968 tarihli makaleleri, beyindeki iki temel görsel hücre tipini tanımladı:

Hubel ve Wiesel, örüntü tanıma görevlerinde kullanılmak üzere bu iki hücre tipinin basamaklı bir modelini de önerdi.

Neocognitron, CNN mimarisinin kökeni

" Neocognitron ", 1980 yılında Kunihiko Fukushima tarafından tanıtıldı . Hubel ve Wiesel'in yukarıda bahsedilen çalışmalarından ilham aldı. Neocognitron, CNN'lerde iki temel katman türünü tanıttı: evrişimli katmanlar ve alt örnekleme katmanları. Evrişimli bir katman, alıcı alanları önceki katmanın bir parçasını kaplayan birimleri içerir. Böyle bir birimin ağırlık vektörüne (uyarlanabilir parametreler kümesi) genellikle filtre denir. Birimler filtreleri paylaşabilir. Aşağı örnekleme katmanları, alıcı alanları önceki evrişim katmanlarının yamalarını kapsayan birimleri içerir. Böyle bir birim, tipik olarak, kendi yamasındaki birimlerin aktivasyonlarının ortalamasını hesaplar. Bu altörnekleme, nesneler kaydırıldığında bile görsel sahnelerdeki nesneleri doğru şekilde sınıflandırmaya yardımcı olur.

Fukushima'nın uzamsal ortalamasını kullanmak yerine, cresceptron olarak adlandırılan neocognitronun bir varyantında, J. Weng ve ark. altörnekleme biriminin kendi yamasındaki birimlerin maksimum aktivasyonunu hesapladığı max-pooling adlı bir yöntem tanıttı. Maksimum havuzlama, modern CNN'lerde sıklıkla kullanılır.

Bir neocognitronun ağırlıklarını eğitmek için on yıllar boyunca birkaç denetimli ve denetimsiz öğrenme algoritması önerilmiştir. Ancak bugün, CNN mimarisi genellikle geri yayılım yoluyla eğitilir .

Neocognitron paylaşılan ağırlıklarına sahip birden fazla ağ pozisyonlarda yer birimleri gerektiren birinci CNN.

Evrişimli sinir ağları 1987 yılında Sinirsel Bilgi İşleme Çalıştayı'nda sunuldu, öğrenilen çarpmanın zaman içinde evrişimle değiştirilmesiyle zamanla değişen sinyalleri otomatik olarak analiz etti ve konuşma tanıma için gösterildi.

Zaman gecikmeli sinir ağları

Zaman gecikmesi sinir ağı (TDNN) tarafından 1987 yılında tanıtılan Alex Waibel ve ark. ve vardiya değişmezliği elde ettiği için ilk evrişimli ağlardan biriydi. Bunu, Geri Yayılım eğitimi ile birlikte ağırlık paylaşımını kullanarak yaptı . Böylece neocognitron'da olduğu gibi piramidal bir yapı da kullanırken, ağırlıkların lokal optimizasyonu yerine global optimizasyonunu gerçekleştirdi.

TDNN'ler, zamansal boyut boyunca ağırlıkları paylaşan evrişimsel ağlardır. Konuşma sinyallerinin zamandan bağımsız olarak işlenmesine izin verirler. 1990'da Hampshire ve Waibel, iki boyutlu bir evrişim gerçekleştiren bir varyantı tanıttı. Bu TDNN'ler spektrogramlar üzerinde çalıştığından, ortaya çıkan fonem tanıma sistemi hem zaman hem de frekans kaymalarına karşı değişmezdi. Bu , CNN'lerle görüntü işlemede çeviri değişmezliğine ilham verdi . Nöron çıktılarının döşenmesi zamanlanmış aşamaları kapsayabilir.

TDNN'ler artık uzak mesafe konuşma tanımada en iyi performansı elde ediyor.

Maksimum havuzlama

1990 yılında Yamaguchi ve ark. Belirli bir bölgenin maksimum değerini hesaplayan ve yayan sabit bir filtreleme işlemi olan maksimum havuzlama kavramını tanıttı. Bunu, konuşmacıdan bağımsız izole edilmiş bir kelime tanıma sistemi gerçekleştirmek için TDNN'leri maksimum havuzlama ile birleştirerek yaptılar. Sistemlerinde, her hece için bir tane olmak üzere, kelime başına birkaç TDNN kullandılar . Giriş sinyali üzerindeki her TDNN'nin sonuçları, maksimum havuzlama kullanılarak birleştirildi ve havuzlama katmanlarının çıktıları, daha sonra gerçek kelime sınıflandırmasını gerçekleştiren ağlara iletildi.

Gradyan inişiyle eğitilmiş CNN'lerle görüntü tanıma

Elle yazılmış Posta Kodu numaralarını tanıyan bir sistem , çekirdek katsayılarının zahmetli bir şekilde elle tasarlandığı evrişimleri içeriyordu.

Yann LeCun et al. (1989), elle yazılmış sayıların görüntülerinden doğrudan evrişim çekirdek katsayılarını öğrenmek için geri yayılımı kullandı. Öğrenme böylece tamamen otomatikti, manuel katsayı tasarımından daha iyi performans gösterdi ve daha geniş bir yelpazedeki görüntü tanıma problemlerine ve görüntü tiplerine uygundu.

Bu yaklaşım, modern bilgisayarlı görmenin temeli oldu .

LeNet-5

LeCun ve diğerleri tarafından geliştirilen öncü bir 7 seviyeli evrişim ağı olan LeNet-5 . Rakamları sınıflandıran 1998 yılında, 32x32 piksel görüntülerde sayısallaştırılan çekler ( İngiliz İngilizcesi : çekler ) üzerindeki elle yazılmış sayıları tanımak için birkaç banka tarafından uygulandı . Daha yüksek çözünürlüklü görüntüleri işleme yeteneği, daha büyük ve daha fazla evrişimli sinir ağları katmanları gerektirir, bu nedenle bu teknik, bilgi işlem kaynaklarının kullanılabilirliği ile sınırlıdır.

Shift değişmez sinir ağı

Benzer şekilde, W. Zhang ve diğerleri tarafından bir kayma değişmez sinir ağı önerildi. 1988'de görüntü karakter tanıma için. 1991'de mimari ve eğitim algoritması değiştirildi ve tıbbi görüntü işleme ve mamogramlarda meme kanserinin otomatik tespiti için uygulandı .

Farklı bir evrişim tabanlı tasarım 1988'de tek boyutlu elektromiyografi kıvrımlı sinyallerin de-evrişim yoluyla ayrıştırılmasına yönelik uygulama için önerildi . Bu tasarım 1989'da diğer evrişim tabanlı tasarımlara değiştirildi.

Sinirsel soyutlama piramidi

Sinirsel Soyutlama Piramidi
Sinirsel soyutlama piramidi

Evrişimli sinir ağlarının ileri beslemeli mimarisi, sinirsel soyutlama piramidinde yanal ve geri besleme bağlantıları ile genişletildi. Ortaya çıkan tekrarlayan evrişimsel ağ, yerel belirsizlikleri yinelemeli olarak çözmek için bağlamsal bilgilerin esnek bir şekilde dahil edilmesini sağlar. Önceki modellerin aksine, örneğin semantik bölütleme, görüntü yeniden yapılandırma ve nesne yerelleştirme görevleri için en yüksek çözünürlükte görüntü benzeri çıktılar üretildi.

GPU uygulamaları

CNN'ler 1980'lerde icat edilmiş olsa da, 2000'lerdeki atılımları, grafik işlem birimlerinde (GPU'lar) hızlı uygulamalar gerektirdi .

2004 yılında KS Oh ve K. Jung tarafından standart sinir ağlarının GPU'larda büyük ölçüde hızlandırılabileceği gösterildi. Uygulamaları, CPU üzerindeki eşdeğer bir uygulamadan 20 kat daha hızlıydı . 2005'te başka bir makale de makine öğrenimi için GPGPU'nun değerini vurguladı .

Bir CNN'nin ilk GPU uygulaması 2006 yılında K. Chellapilla ve diğerleri tarafından tanımlanmıştır. Uygulamaları, CPU üzerindeki eşdeğer bir uygulamadan 4 kat daha hızlıydı. Daha sonraki çalışmalarda, başlangıçta diğer sinir ağları türleri (CNN'lerden farklı), özellikle denetimsiz sinir ağları için GPU'lar da kullanıldı.

2010 yılında Dan Ciresan ve ark. En IDSIA birçok katmanı ile bile derin standart sinir ağları hızla olarak bilinen eski yöntemle denetimli öğrenme ile GPU üzerinde eğitilmiş olabilir gösterdi geri yayılım . Ağları , MNIST el yazısı rakamları karşılaştırmasında önceki makine öğrenimi yöntemlerinden daha iyi performans gösterdi . 2011'de bu GPU yaklaşımını CNN'lere genişlettiler ve etkileyici sonuçlarla 60'lık bir hızlanma faktörü elde ettiler. 2011'de, ilk kez insanüstü performans elde ettikleri bir görüntü tanıma yarışmasını kazanmak için bu tür CNN'leri GPU'da kullandılar. 15 Mayıs 2011 ve 30 Eylül 2012 arasında CNN'leri en az dört resim yarışmasını kazandı. 2012 yılında, onlar da önemli ölçüde çoklu görüntü için literatürde iyi performansa geliştirilmiş veritabanları dahil MNIST veritabanı , Norb veritabanı, HWDB1.0 veri kümesi (Çince karakterler) ve CIFAR10 veri kümesi (60000 32x32 etiketli bir veri kümesi RGB görüntüleri ) .

Daha sonra, benzer bir GPU tabanlı CNN, Alex Krizhevsky ve ark. kazandı ImageNet Büyük Ölçekli Görsel Tanıma Mücadelesi Microsoft tarafından 100'ün üzerinde katmanlarla 2012. Bir çok derin CNN ImageNet 2015 yarışmasını kazandı.

Intel Xeon Phi uygulamaları

GPU'ları kullanan CNN'lerin eğitimi ile karşılaştırıldığında , Intel Xeon Phi yardımcı işlemcisine pek dikkat edilmedi . Kayda değer bir gelişme, Kontrollü Hogwild with Arbitrary Order of Synchronization (CHAOS) adlı Intel Xeon Phi üzerinde konvolüsyonel sinir ağlarının eğitimi için bir paralelleştirme yöntemidir. CHAOS , Intel Xeon Phi'de bulunan hem iş parçacığı hem de SIMD düzeyinde paralellikten yararlanır .

Ayırt edici özellikler

Geçmişte, görüntü tanıma için geleneksel çok katmanlı algılayıcı (MLP) modelleri kullanılıyordu. Bununla birlikte, düğümler arasındaki tam bağlantı , boyutsallık lanetine neden oldu ve daha yüksek çözünürlüklü görüntülerle hesaplama açısından zorluydu. RGB renk kanallarına sahip 1000 × 1000 piksellik bir görüntünün 3 milyon ağırlığı vardır ve bu, tam bağlantı ile ölçekte verimli bir şekilde işlenemeyecek kadar yüksektir.

3 boyutta düzenlenmiş CNN katmanları

Örneğin, CIFAR-10'da görüntüler yalnızca 32×32×3 (32 geniş, 32 yüksek, 3 renkli kanal) boyutundadır, bu nedenle normal bir sinir ağının ilk gizli katmanındaki tek bir tam bağlı nöron 32* olacaktır. 32*3 = 3.072 ağırlık. Ancak 200×200 görüntü, 200*200*3 = 120.000 ağırlığa sahip nöronlara yol açacaktır.

Ayrıca, bu tür ağ mimarisi, verinin uzamsal yapısını hesaba katmaz, birbirinden uzak olan giriş piksellerini birbirine yakın piksellerle aynı şekilde ele alır. Bu , hem hesaplama hem de anlamsal olarak bir ızgara topolojisine (görüntüler gibi) sahip verilerdeki referans yerini yok sayar . Bu nedenle, nöronların tam bağlanabilirliği, uzamsal olarak yerel girdi modellerinin hakim olduğu görüntü tanıma gibi amaçlar için israftır .

Evrişimli sinir ağları, görsel bir korteksin davranışını taklit etmek için tasarlanmış çok katmanlı algılayıcıların çeşitleridir . Bu modeller, doğal görüntülerde bulunan güçlü uzamsal olarak yerel korelasyondan yararlanarak MLP mimarisinin ortaya çıkardığı zorlukları azaltır. MLP'lerin aksine, CNN'ler aşağıdaki ayırt edici özelliklere sahiptir:

  • Nöronların 3 boyutlu hacimleri. Bir CNN'nin katmanları 3 boyutta düzenlenmiş nöronlara sahiptir : genişlik, yükseklik ve derinlik. Evrişimsel bir katman içindeki her bir nöronun, kendisinden önceki katmanın yalnızca küçük bir bölgesine bağlı olduğu, buna alıcı alan adı verilir. Hem yerel hem de tamamen bağlı farklı katman türleri, bir CNN mimarisi oluşturmak için istiflenir.
  • Yerel bağlantı: Alıcı alanlar kavramını takip eden CNN'ler, bitişik katmanların nöronları arasında yerel bir bağlantı modeli uygulayarak uzamsal yerellikten yararlanır. Böylece mimari, öğrenilen " filtrelerin " uzamsal olarak yerel bir girdi modeline en güçlü tepkiyi üretmesini sağlar. Bu tür birçok katmanı istiflemek , giderek daha küresel hale gelen (yani daha geniş bir piksel alanı bölgesine yanıt veren) doğrusal olmayan filtrelere yol açar, böylece ağ önce girdinin küçük parçalarının temsillerini yaratır, sonra onlardan daha büyük alanların temsillerini birleştirir.
  • Paylaşılan ağırlıklar: CNN'lerde, her filtre tüm görsel alan boyunca çoğaltılır. Bu çoğaltılmış birimler aynı parametreleştirmeyi (ağırlık vektörü ve sapma) paylaşır ve bir özellik haritası oluşturur. Bu, belirli bir evrişim katmanındaki tüm nöronların, kendi özel yanıt alanlarında aynı özelliğe yanıt verdiği anlamına gelir. Birimlerin bu şekilde çoğaltılması, sonuçta ortaya çıkan aktivasyon haritasının , görsel alandaki girdi özelliklerinin konumlarının kaymaları altında eşdeğer olmasına izin verir , yani , katmanın bir adımı olduğu göz önüne alındığında, öteleme eşdeğerliği sağlarlar .
  • Havuzlama: Bir CNN'nin havuzlama katmanlarında, özellik haritaları dikdörtgen alt bölgelere ayrılır ve her dikdörtgendeki özellikler, genellikle ortalama veya maksimum değerleri alınarak bağımsız olarak tek bir değere indirgenir. Özellik haritalarının boyutlarını küçültmeye ek olarak, havuzlama işlemi , burada yer alan özelliklere bir dereceye kadar yerel öteleme değişmezliği sağlayarak CNN'nin konumlarındaki değişikliklere karşı daha sağlam olmasını sağlar.

Bu özellikler birlikte, CNN'lerin görme problemlerinde daha iyi genelleme elde etmelerini sağlar . Ağırlık paylaşımı , öğrenilen boş parametre sayısını önemli ölçüde azaltır , böylece ağı çalıştırmak için bellek gereksinimlerini azaltır ve daha büyük, daha güçlü ağların eğitimine olanak tanır.

Yapı taşları

Bir CNN mimarisi, giriş hacmini türevlenebilir bir fonksiyon aracılığıyla bir çıkış hacmine (örneğin sınıf puanlarını tutarak) dönüştüren farklı katmanlardan oluşan bir yığından oluşur. Birkaç farklı katman türü yaygın olarak kullanılmaktadır. Bunlar aşağıda daha ayrıntılı olarak tartışılmaktadır.

Alıcı alanlarına (kırmızı) bağlı bir evrişim katmanının (mavi) nöronları

evrişimsel katman

Evrişim katmanı, bir CNN'nin temel yapı taşıdır. Katmanın parametreleri, küçük bir alıcı alana sahip olan ancak giriş hacminin tüm derinliği boyunca uzanan bir dizi öğrenilebilir filtreden (veya çekirdeklerden ) oluşur . İleri geçiş sırasında, her filtre giriş hacminin genişliği ve yüksekliği boyunca kıvrılır , filtre girişleri ve giriş arasındaki nokta çarpımı hesaplar ve bu filtrenin 2 boyutlu bir aktivasyon haritasını üretir . Sonuç olarak, ağ , girdideki bazı uzamsal konumlarda belirli bir tür özellik algıladığında etkinleşen filtreleri öğrenir .

Derinlik boyutu boyunca tüm filtreler için aktivasyon haritalarının istiflenmesi, evrişim katmanının tam çıktı hacmini oluşturur. Böylece çıktı hacmindeki her giriş, girdideki küçük bir bölgeye bakan ve aynı aktivasyon haritasındaki nöronlarla parametreleri paylaşan bir nöronun çıktısı olarak da yorumlanabilir.

Yerel bağlantı

Tipik CNN mimarisi

Görüntüler gibi yüksek boyutlu girdilerle uğraşırken, nöronları önceki ciltteki tüm nöronlara bağlamak pratik değildir, çünkü böyle bir ağ mimarisi verilerin uzamsal yapısını hesaba katmaz. Evrişimli ağlar , bitişik katmanların nöronları arasında seyrek bir yerel bağlantı modelini zorlayarak uzamsal olarak yerel korelasyondan yararlanır : her nöron, giriş hacminin yalnızca küçük bir bölgesine bağlanır.

Bu bağlantının kapsamı , nöronun alıcı alanı olarak adlandırılan bir hiperparametredir . Bağlantılar uzayda yereldir (genişlik ve yükseklik boyunca), ancak her zaman giriş hacminin tüm derinliği boyunca uzanır. Böyle bir mimari, öğrenilen filtrelerin uzamsal olarak yerel bir girdi modeline en güçlü yanıtı üretmesini sağlar.

Konumsal düzenleme

Üç hiperparametre , evrişim katmanının çıktı hacminin boyutunu kontrol eder: derinlik, adım ve dolgu boyutu.

  • Derinlik çıkış ses giriş hacmi aynı bölgede bu bağlantı, bir katmandaki nöronların sayısını kontrol eder. Bu nöronlar, girdideki farklı özellikler için etkinleştirmeyi öğrenir. Örneğin, ilk evrişim katmanı ham görüntüyü girdi olarak alırsa, derinlik boyutu boyunca farklı nöronlar, çeşitli yönlendirilmiş kenarların veya renk bloblarının varlığında aktive olabilir.
  • Adım , genişlik ve yükseklik etrafındaki derinlik sütunlarının nasıl ayrılacağını kontrol eder. Adım 1 ise, filtreleri her seferinde bir piksel taşırız. Bu, sütunlar arasındayoğun şekilde örtüşen alıcı alanlara ve büyük çıktı hacimlerineyol açar. Herhangi bir tam sayı içinbir adım S , filtreninçıktı başına bir seferde S birimlerineçevrildiği anlamına gelir. Uygulamada,nadirdir. Daha büyük bir adım, alıcı alanların daha küçük örtüşmesi ve çıktı hacminin daha küçük uzaysal boyutları anlamına gelir.
  • Bazen girişi, giriş hacminin sınırında sıfırlarla (veya bölgenin ortalaması gibi diğer değerlerle) doldurmak uygundur. Bu dolgunun boyutu üçüncü bir hiper parametredir. Dolgu, çıktı hacminin uzamsal boyutunun kontrolünü sağlar. Özellikle, bazen girdi hacminin uzamsal boyutunun tam olarak korunması istenir, buna genellikle "aynı" dolgu denir.

Çıktı hacminin uzaysal boyutu, giriş hacmi boyutunun , evrişim katmanı nöronlarının çekirdek alan boyutunun , adımın ve sınırdaki sıfır dolgu miktarının bir fonksiyonudur . Belirli bir hacme "uyan" nöron sayısı şu şekildedir:

Bu sayı bir tamsayı değilse , adımlar yanlıştır ve nöronlar giriş hacmine simetrik bir şekilde sığacak şekilde döşenemez . Genel olarak, sıfır dolgunun adım atıldığında olacak şekilde ayarlanması , giriş hacminin ve çıkış hacminin uzamsal olarak aynı boyuta sahip olmasını sağlar. Ancak, önceki katmanın tüm nöronlarını kullanmak her zaman tamamen gerekli değildir. Örneğin, bir sinir ağı tasarımcısı dolgunun sadece bir kısmını kullanmaya karar verebilir.

parametre paylaşımı

Serbest parametre sayısını kontrol etmek için evrişimli katmanlarda bir parametre paylaşım şeması kullanılır. Bir yama özelliğinin bazı uzamsal konumlarda hesaplanması yararlıysa, diğer konumlarda da hesaplamanın yararlı olması gerektiği varsayımına dayanır. Derinlik dilimi olarak tek bir 2 boyutlu derinlik dilimini ifade eden her bir derinlik dilimindeki nöronlar, aynı ağırlıkları ve yanlılığı kullanmakla sınırlıdır.

Tek bir derinlik dilimindeki tüm nöronlar aynı parametreleri paylaştığından, evrişim katmanının her bir derinlik dilimindeki ileri geçiş , nöron ağırlıklarının giriş hacmiyle bir evrişimi olarak hesaplanabilir . Bu nedenle, ağırlık kümelerine , girdiyle kıvrılan bir filtre (veya çekirdek ) olarak atıfta bulunmak yaygındır . Bu evrişimin sonucu bir aktivasyon haritasıdır ve her farklı filtre için aktivasyon haritaları seti, çıktı hacmini üretmek için derinlik boyutu boyunca birlikte istiflenir. Parametre paylaşımı , CNN mimarisinin çeviri değişmezliğine katkıda bulunur .

Bazen parametre paylaşımı varsayımı mantıklı gelmeyebilir. Bu, özellikle bir CNN'ye giriş görüntülerinin belirli bir ortalanmış yapıya sahip olduğu durumlarda geçerlidir; bunun için farklı mekansal konumlarda tamamen farklı özelliklerin öğrenilmesini bekliyoruz. Pratik bir örnek, girdilerin görüntüde ortalanmış yüzler olduğu durumdur: görüntünün farklı bölümlerinde farklı göze veya saça özgü özelliklerin öğrenilmesini bekleyebiliriz. Bu durumda, parametre paylaşım şemasını gevşetmek ve bunun yerine katmanı "yerel olarak bağlı katman" olarak adlandırmak yaygındır.

Havuzlama katmanı

2x2 filtre ve adım = 2 ile maksimum havuzlama

CNN'lerin bir diğer önemli konsepti, doğrusal olmayan alt örneklemenin bir biçimi olan havuzlamadır . Maksimum havuzlamanın en yaygın olduğu havuzlamayı uygulamak için birkaç doğrusal olmayan işlev vardır . Bu bölmeler bu tür her bir alt-bölge için, maksimum çıkış olarak dikdörtgen bir dizi içine giriş görüntüsünü ve.

Sezgisel olarak, bir özelliğin tam konumu, diğer özelliklere göre kaba konumundan daha az önemlidir. Evrişimli sinir ağlarında havuzlama kullanımının arkasındaki fikir budur. Havuzlama katmanı, gösterimin uzamsal boyutunu aşamalı olarak azaltmaya , ağdaki parametre sayısını, bellek ayak izini ve hesaplama miktarını azaltmaya ve dolayısıyla fazla uydurmayı kontrol etmeye hizmet eder . Bu, aşağı örnekleme olarak bilinir. Bir CNN mimarisinde ardışık evrişimsel katmanlar (her biri tipik olarak bir ReLU katmanı gibi bir etkinleştirme işlevi tarafından takip edilir) arasına periyodik olarak bir havuz katmanı eklemek yaygındır . Havuzlama katmanları yerel çeviri değişmezliğine katkıda bulunurken, bir küresel havuzlama biçimi kullanılmadıkça bir CNN'de küresel çeviri değişmezliği sağlamazlar. Havuzlama katmanı genellikle girdinin her derinliğinde veya diliminde bağımsız olarak çalışır ve onu uzamsal olarak yeniden boyutlandırır. Maksimum havuzlamanın çok yaygın bir biçimi, etkinleştirmelerin %75'ini atarak girişteki her derinlik dilimini hem genişlik hem de yükseklik boyunca 2'ye kadar alt örnekleyen 2'lik bir adımla uygulanan 2x2 boyutunda filtrelere sahip bir katmandır:

Bu durumda her max işlemi 4 sayının üzerindedir. Derinlik boyutu değişmeden kalır (bu, diğer havuzlama biçimleri için de geçerlidir).

Maksimum havuzlamaya ek olarak, havuzlama üniteleri ortalama havuzlama veya 2 norm havuzlama gibi diğer işlevleri kullanabilir . Ortalama havuzlama geçmişte sıklıkla kullanılmıştır, ancak son zamanlarda uygulamada genellikle daha iyi performans gösteren maksimum havuzlamaya kıyasla gözden düşmüştür.

Temsil boyutunun hızlı uzamsal küçültülmesinin etkileri nedeniyle, daha küçük filtrelerin kullanılmasına veya havuz katmanlarının tamamen atılmasına yönelik yeni bir eğilim vardır.

2x2 boyutuna kadar ROI havuzu. Bu örnekte bölge teklifi (bir giriş parametresi) 7x5 boyutundadır.

" İlgi Bölgesi " havuzlaması (RoI havuzu olarak da bilinir), çıktı boyutunun sabit olduğu ve girdi dikdörtgeninin bir parametre olduğu maksimum havuzlamanın bir çeşididir.

Havuzlama, Fast R-CNN mimarisine dayalı nesne tespiti için evrişimli sinir ağlarının önemli bir bileşenidir .

ReLU katmanı

ReLU, doygun olmayan etkinleştirme işlevini uygulayan doğrultulmuş doğrusal birimin kısaltmasıdır . Negatif değerleri bir aktivasyon haritasından sıfıra ayarlayarak etkin bir şekilde kaldırır. Evrişim katmanlarının alıcı alanlarını etkilemeden , karar fonksiyonuna ve genel ağda doğrusal olmayanları tanıtır .

Diğer fonksiyonlar da, örneğin, lineer olmayan artırmak için doygun kullanılabilir hiperbolik tanjant , ve sigmoid fonksiyonu . ReLU genellikle diğer işlevlere tercih edilir, çünkü genelleştirme doğruluğuna önemli bir ceza vermeden sinir ağını birkaç kat daha hızlı eğitir .

Tamamen bağlı katman

Birkaç evrişimli ve maksimum havuzlama katmanından sonra, nihai sınıflandırma tamamen bağlı katmanlar aracılığıyla yapılır. Normal (evrişimsel olmayan) yapay sinir ağlarında görüldüğü gibi, tamamen bağlı bir katmandaki nöronlar, önceki katmandaki tüm aktivasyonlara bağlantılara sahiptir . Aktivasyonları bu nedenle matris çarpımı ve ardından bir sapma ofseti ( öğrenilmiş veya sabit bir önyargı teriminin vektör eklenmesi) ile bir afin dönüşüm olarak hesaplanabilir .

kayıp katmanı

"Kayıp katmanı" veya " kayıp işlevi ", eğitimin ağın tahmin edilen çıktısı ile gerçek veri etiketleri (denetimli öğrenme sırasında) arasındaki sapmayı nasıl cezalandıracağını belirtir . Belirli göreve bağlı olarak çeşitli kayıp işlevleri kullanılabilir.

Softmax kayıp fonksiyonu tek bir sınıfını tahmin etmek için kullanılan K birbirini dışlayan sınıfların. Sigmoid çapraz entropi kaybı, içinde K bağımsız olasılık değerlerini tahmin etmek için kullanılır . Öklid kaybı, gerçek değerli etiketlere geri dönmek için kullanılır .

hiperparametreler

Hiperparametreler, öğrenme sürecini kontrol etmek için kullanılan çeşitli ayarlardır. CNN'ler , standart bir çok katmanlı algılayıcıdan (MLP) daha fazla hiperparametre kullanır .

çekirdek boyutu

Çekirdek, birlikte işlenen piksel sayısıdır. Tipik olarak, örneğin 2x2 veya 3x3 gibi çekirdeğin boyutları olarak ifade edilir.

Dolgu malzemesi

Doldurma, bir görüntünün sınırlarına (tipik olarak) 0 değerli piksellerin eklenmesidir. Bu, sınır piksellerinin çıktıdan düşük değere alınmaması (kaybolmaması) için yapılır, çünkü bunlar normalde yalnızca tek bir alıcı alan örneğine katılırlar. Doldurma tipik olarak çekirdek boyutu -1'e ayarlanır. Böylece 3x3 çekirdek, görüntünün her tarafında 2 piksellik bir ped alacaktı.

adım

Adım, analiz penceresinin her yinelemede hareket ettiği piksel sayısıdır. 2'lik bir adım, her bir çekirdeğin öncekinden 2 piksel uzakta olduğu anlamına gelir.

Filtre sayısı

Özellik haritası boyutu derinlikle azaldığından, giriş katmanının yakınındaki katmanlar daha az filtreye sahip olma eğilimindeyken, daha yüksek katmanlar daha fazla filtreye sahip olabilir. Her katmanda hesaplamayı eşitlemek için , piksel konumu ile özellik değerlerinin çarpımı v a katmanlar arasında kabaca sabit tutulur. Girdi hakkında daha fazla bilginin korunması, toplam etkinleştirme sayısının (özellik haritalarının sayısı çarpı piksel konumlarının sayısı) bir katmandan diğerine azalmayacak şekilde tutulmasını gerektirir.

Özellik haritalarının sayısı, kapasiteyi doğrudan kontrol eder ve mevcut örneklerin sayısına ve görev karmaşıklığına bağlıdır.

Filtre boyutu

Literatürde bulunan yaygın filtre boyutları büyük farklılıklar gösterir ve genellikle veri setine göre seçilir.

Buradaki zorluk, belirli bir veri seti verildiğinde ve fazla uydurma olmadan uygun ölçekte soyutlamalar oluşturmak için doğru ayrıntı düzeyini bulmaktır .

Havuzlama türü ve boyutu

Maksimum havuzlama tipik olarak, genellikle 2x2 boyutunda kullanılır. Bu, girdinin büyük ölçüde aşağı örneklendiğini ve işlem maliyetini azalttığını gösterir.

Büyük girdi hacimleri, alt katmanlarda 4×4 havuzlamayı garanti edebilir. Daha fazla havuzlama , sinyalin boyutunu azaltır ve kabul edilemez bilgi kaybına neden olabilir . Çoğu zaman, örtüşmeyen havuzlama pencereleri en iyi performansı gösterir.

genişleme

Genişletme, bir çekirdek içindeki piksellerin yok sayılmasını içerir. Bu, önemli sinyal kaybı olmadan potansiyel olarak işlemeyi/belleği azaltır. 3x3 çekirdekte 2'lik bir genişleme, çekirdeği 7x7'ye genişletirken 9 (eşit aralıklı) pikseli işlemeye devam eder. Buna göre, 4'lük genişleme, çekirdeği 15x15'e genişletir.

Çeviri Denkliği

Genellikle CNN'lerin girdi kaymalarına değişmez olduğu varsayılır. Bununla birlikte, bir CNN içindeki birden fazla adıma sahip olmayan evrişim veya havuzlama katmanları , değişmezin aksine , girdinin çevirilerine eşdeğerdir . Bir yoksayar daha adım daha sonra ile Katmanlar Nyquist-Shannon örnekleme teoremi , ve potansiyel aliasing equivariance keser, giriş sinyalinin, özelliği (aynı zamanda kovaryans olarak da adlandırılır). Ayrıca, eğer bir CNN tamamen bağlı katmanları kullanıyorsa, tam bağlı katmanlar girdi kaymalarına değişmez olmadığından , çeviri eşdeğeri çeviri değişmezliği anlamına gelmez . Tam çeviri değişmezliği için bir çözüm, ağ boyunca herhangi bir alt örneklemeden kaçınmak ve son katmanda küresel ortalama havuzlama uygulamaktır. Ek olarak, kenar yumuşatma , uzamsal transformatör ağları, veri büyütme , havuzlama ile birleştirilmiş alt örnekleme ve kapsül sinir ağları gibi birkaç başka kısmi çözüm önerilmiştir .

Değerlendirme

Nihai modelin doğruluğu, genellikle test kümesi olarak adlandırılan, başlangıçtaki veri kümesi kümesinin bir alt bölümüne dayalıdır. Diğer zamanlarda k -kat çapraz doğrulama gibi yöntemler uygulanır. Diğer stratejiler, uyumlu tahmin kullanmayı içerir .

Düzenlileştirme yöntemleri

Düzenlileştirme bir çözmek için ek bilgi tanıtan bir süreçtir kötü sağlama sorununu veya önlemek için overfitting . CNN'ler çeşitli düzenleme türlerini kullanır.

ampirik

Bırakmak

Tam bağlantılı bir katman, parametrelerin çoğunu işgal ettiğinden, fazla uydurmaya eğilimlidir. Overfitting azaltmanın bir yöntemdir bırakma . Her eğitim aşamasında, bireysel düğümler ya olasılık ile ağdan "çıkarılır" (yoksayılır) ya da olasılık ile tutulur , böylece azaltılmış bir ağ kalır; bırakılan bir düğüme gelen ve giden kenarlar da kaldırılır. Bu aşamada veriler üzerinde yalnızca azaltılmış ağ eğitilir. Kaldırılan düğümler daha sonra orijinal ağırlıklarıyla ağa yeniden eklenir.

Eğitim aşamalarında genellikle 0,5'tir; girdi düğümleri için, genellikle çok daha yüksektir çünkü girdi düğümleri yoksayıldığında bilgi doğrudan kaybolur.

Eğitim bittikten sonraki test zamanında, ideal olarak tüm olası terk edilmiş ağların örnek bir ortalamasını bulmak isteriz ; ne yazık ki bu büyük değerler için mümkün değildir . Ancak, her bir düğümün çıktısının bir faktörle ağırlıklandırıldığı tam ağı kullanarak bir yaklaşıklık bulabiliriz , bu nedenle herhangi bir düğümün çıktısının beklenen değeri eğitim aşamalarındaki ile aynıdır. Bu, bırakma yönteminin en büyük katkısıdır: etkin bir şekilde sinir ağları oluşturmasına ve bu nedenle model kombinasyonuna izin vermesine rağmen , test zamanında yalnızca tek bir ağın test edilmesi gerekir.

Tüm eğitim verilerinde tüm düğümleri eğitmekten kaçınarak, bırakma, fazla uydurmayı azaltır. Yöntem ayrıca eğitim hızını önemli ölçüde artırır. Bu, model kombinasyonunu derin sinir ağları için bile pratik hale getirir . Teknik, düğüm etkileşimlerini azaltıyor gibi görünüyor ve onları yeni verilere daha iyi genelleyen daha sağlam özellikler öğrenmelerine yol açıyor.

DropConnect

DropConnect, her bir çıkış biriminden ziyade her bağlantının olasılıkla bırakılabileceği bir bırakma genellemesidir . Böylece her birim, önceki katmandaki birimlerin rastgele bir alt kümesinden girdi alır.

DropConnect, model içinde dinamik seyreklik sağladığı için bırakmaya benzer, ancak seyrekliğin bir katmanın çıktı vektörleri yerine ağırlıklar üzerinde olması bakımından farklılık gösterir. Diğer bir deyişle, DropConnect ile tam bağlantılı katman, eğitim aşamasında bağlantıların rastgele seçildiği seyrek bağlantılı bir katman haline gelir.

stokastik havuzlama

Dropout'un en büyük dezavantajı, nöronların tam olarak bağlı olmadığı evrişimsel katmanlar için aynı faydaları sağlamamasıdır.

Stokastik havuzlamada, geleneksel deterministik havuzlama işlemleri, her havuzlama bölgesindeki aktivasyonun havuzlama bölgesindeki faaliyetler tarafından verilen çok terimli bir dağılıma göre rastgele seçildiği bir stokastik prosedürle değiştirilir . Bu yaklaşım hiperparametreler içermez ve bırakma ve veri artırma gibi diğer düzenleme yaklaşımlarıyla birleştirilebilir .

Stokastik havuzlamanın alternatif bir görünümü, bunun standart maksimum havuzlamaya eşdeğer olması, ancak her biri küçük yerel deformasyonlara sahip olan bir girdi görüntüsünün birçok kopyası ile olmasıdır . Bu, MNIST veri setinde mükemmel performans sağlayan giriş görüntülerinin açık elastik deformasyonlarına benzer . Çok katmanlı bir modelde stokastik havuzlama kullanmak, daha yüksek katmanlardaki seçimler aşağıdakilerden bağımsız olduğundan, üstel sayıda deformasyon verir.

yapay veri

Modelin aşırı uyum derecesi, hem gücü hem de aldığı eğitim miktarı tarafından belirlendiğinden, daha fazla eğitim örneği içeren bir evrişimli ağ sağlamak, fazla uyumu azaltabilir. Bu ağlar genellikle mevcut tüm verilerle eğitildiğinden, bir yaklaşım ya sıfırdan (mümkünse) yeni veriler oluşturmak veya yenilerini oluşturmak için mevcut verileri bozmaktır. Örneğin, orijinal eğitim seti ile aynı etiketlere sahip yeni örnekler oluşturmak için giriş görüntüleri kırpılabilir, döndürülebilir veya yeniden ölçeklenebilir.

Açık

Erken durdurma

Bir ağın aşırı takılmasını önlemenin en basit yöntemlerinden biri, aşırı uyum oluşma şansı bulamadan eğitimi basitçe durdurmaktır. Öğrenme sürecinin durdurulması dezavantajı ile birlikte gelir.

Parametre sayısı

Aşırı sığmayı önlemenin bir başka basit yolu, tipik olarak her katmandaki gizli birimlerin sayısını veya ağ derinliğini sınırlayarak parametre sayısını sınırlamaktır. Evrişimli ağlar için filtre boyutu ayrıca parametre sayısını da etkiler. Parametre sayısının sınırlandırılması, ağın öngörücü gücünü doğrudan kısıtlayarak, veriler üzerinde gerçekleştirebileceği işlevin karmaşıklığını azaltır ve böylece fazla uydurma miktarını sınırlar. Bu, " sıfır norm " ile eşdeğerdir .

Kilo kaybı

Eklenen düzenleyicinin basit bir biçimi , ağırlık vektörünün ağırlıklarının toplamına ( L1 normu ) veya kare büyüklüğüne ( L2 normuna ) orantılı olarak, her düğümdeki hataya ek bir hata ekleyen ağırlık azalmasıdır. Kabul edilebilir model karmaşıklığı düzeyi, orantı sabiti ('alfa' hiperparametresi) artırılarak azaltılabilir, böylece büyük ağırlık vektörleri için ceza artırılabilir.

L2 düzenlileştirme, en yaygın düzenleme biçimidir. Doğrudan hedefteki tüm parametrelerin karelerinin büyüklüğünün cezalandırılmasıyla uygulanabilir. L2 düzenlemesi, ağır şekilde cezalandıran pik ağırlık vektörlerinin ve yaygın ağırlık vektörlerini tercih etmenin sezgisel yorumuna sahiptir. Ağırlıklar ve girdiler arasındaki çarpımsal etkileşimler nedeniyle bu, ağın bazı girdilerini çok kullanmak yerine tüm girdilerini biraz kullanmaya teşvik etme yararlı özelliğine sahiptir.

L1 düzenlemesi de yaygındır. Optimizasyon sırasında ağırlık vektörlerini seyrekleştirir. Başka bir deyişle, L1 düzenlemesine sahip nöronlar, en önemli girdilerinin yalnızca seyrek bir alt kümesini kullanır ve gürültülü girdilere neredeyse değişmez hale gelir. L2 düzenlemesi ile L1, birleştirilebilir; buna Elastik net düzenleme denir .

Maksimum norm kısıtlamaları

Diğer bir düzenleme biçimi, her nöron için ağırlık vektörünün büyüklüğü üzerinde mutlak bir üst sınır uygulamak ve kısıtlamayı uygulamak için öngörülen gradyan inişini kullanmaktır . Pratikte bu, parametre güncellemesini normal olarak gerçekleştirmeye ve ardından her nöronun ağırlık vektörünü tatmin edecek şekilde sıkıştırarak kısıtlamayı zorlamaya karşılık gelir . Tipik değerleri 3-4 mertebesindedir. Bazı makaleler, bu düzenlileştirme biçimini kullanırken iyileştirmeler bildirmektedir.

Hiyerarşik koordinat çerçeveleri

Havuzlama, üst düzey parçalar (bir yüz görüntüsündeki burun ve ağız gibi) arasındaki kesin uzamsal ilişkileri kaybeder. Bu ilişkiler, kimliğin tanınması için gereklidir. Her özelliğin birden fazla havuzda gerçekleşmesi için havuzların üst üste bindirilmesi, bilgilerin korunmasına yardımcı olur. Tek başına çeviri, geometrik ilişkilerin anlaşılmasını farklı bir yönelim veya ölçek gibi kökten yeni bir bakış açısına göre tahmin edemez. Öte yandan, insanlar tahminde bulunma konusunda çok iyidirler; yeni bir şekil gördükten sonra onu farklı bir bakış açısından tanıyabilirler.

Bu sorunla başa çıkmanın daha önceki yaygın bir yolu, ağın bu varyasyonlarla başa çıkabilmesi için ağı farklı yönlerde, ölçeklerde, aydınlatmada vb. dönüştürülmüş veriler üzerinde eğitmektir. Bu, büyük veri kümeleri için hesaplama açısından yoğundur. Alternatif, bir koordinat çerçeveleri hiyerarşisi kullanmak ve özelliğin şeklinin ve retinaya göre pozunun bir birleşimini temsil etmek için bir grup nöron kullanmaktır . Retinaya göre poz, retinanın koordinat çerçevesi ile içsel özelliklerin koordinat çerçevesi arasındaki ilişkidir.

Bu nedenle, bir şeyi temsil etmenin bir yolu, koordinat çerçevesini içine gömmektir. Bu, büyük özelliklerin, parçalarının pozlarının tutarlılığını kullanarak tanınmasını sağlar (örneğin, burun ve ağız pozları, tüm yüzün pozunun tutarlı bir tahminini yapar). Bu yaklaşım, alt düzey (örn. burun ve ağız) pozun tahmininde hemfikir olduğunda üst düzey varlığın (örn. yüz) mevcut olmasını sağlar. Pozu temsil eden nöronal aktivite vektörleri ("poz vektörleri"), ağın görsel varlıkların hiyerarşisini öğrenmesini ve bakış açıları arasında genellemeyi kolaylaştıran doğrusal işlemler olarak modellenen uzamsal dönüşümlere izin verir. Bu, insan görsel sisteminin , şekilleri temsil etmek için koordinat çerçevelerini dayatmasına benzer .

Uygulamalar

Görüntü tanıma

CNN'ler genellikle görüntü tanıma sistemlerinde kullanılır. 2012 yılında MNIST veri tabanında %0,23 hata oranı rapor edilmiştir. Görüntü sınıflandırması için CNN kullanımına ilişkin bir başka makale, öğrenme sürecinin "şaşırtıcı derecede hızlı" olduğunu bildirdi; aynı yazıda, 2011 yılı itibariyle yayınlanan en iyi sonuçlara MNIST veri tabanında ve NORB veri tabanında ulaşılmıştır. Daha sonra, AlexNet adlı benzer bir CNN , ImageNet Büyük Ölçekli Görsel Tanıma Yarışması 2012'yi kazandı .

Yüz tanımaya uygulandığında , CNN'ler hata oranında büyük bir azalma sağladı. Başka bir makale, "10'dan fazla öznenin 5.600 hareketsiz görüntüsünde" %97.6'lık bir tanıma oranı bildirdi. Manuel eğitimden sonra video kalitesini objektif bir şekilde değerlendirmek için CNN'ler kullanıldı ; sonuçtaki sistem çok düşük bir kök ortalama kare hatasına sahipti .

ImageNet Büyük Ölçekli Görsel Tanıma Mücadelesi milyonlarca resim ve obje sınıfları yüzlerce, nesne sınıflandırması ve tespitinde bir kriter. Büyük ölçekli bir görsel tanıma zorluğu olan ILSVRC 2014'te, hemen hemen her yüksek dereceli ekip, CNN'yi temel çerçeveleri olarak kullandı. Kazanan GoogLeNet (temeli DeepDream ) ortalama ortalama artış hassas , 0.06656 için bugüne kadar en iyi sonucu sınıflandırma hata 0.439329 nesne algılama, ve indirgendi. Ağı 30'dan fazla katman uyguladı. Evrişimli sinir ağlarının ImageNet testlerindeki performansı, insanlarınkine yakındı. En iyi algoritmalar, bir çiçeğin gövdesindeki küçük bir karınca veya elinde tüy kalem tutan bir kişi gibi küçük veya ince nesnelerle hala mücadele eder. Ayrıca, modern dijital kameralarda giderek yaygınlaşan bir fenomen olan filtrelerle bozulmuş görüntülerle de sorun yaşıyorlar. Aksine, bu tür görüntüler nadiren insanları rahatsız eder. Bununla birlikte, insanlar diğer konularda sorun yaşama eğilimindedir. Örneğin, nesneleri belirli köpek veya kuş türleri gibi ince taneli kategorilere ayırmada iyi değiller, oysa evrişimli sinir ağları bunu hallediyor.

2015'te çok katmanlı bir CNN, yüzleri baş aşağı da dahil olmak üzere çok çeşitli açılardan, kısmen kapatıldığında bile rekabetçi bir performansla tespit etme yeteneğini gösterdi. Ağ, çeşitli açılarda ve yönlerde yüzler ve yüzsüz 20 milyon görüntü içeren 200.000 görüntüden oluşan bir veritabanı üzerinde eğitildi. 50.000 yinelemede 128 görüntüden oluşan yığınlar kullandılar.

Video analizi

Görüntü veri alanlarıyla karşılaştırıldığında, CNN'lerin video sınıflandırmasına uygulanması konusunda nispeten az çalışma vardır. Video, başka bir (zamansal) boyuta sahip olduğu için görüntülerden daha karmaşıktır. Ancak, CNN'lerin video alanına bazı uzantıları araştırılmıştır. Bir yaklaşım, uzay ve zamanı girdinin eşdeğer boyutları olarak ele almak ve hem zaman hem de uzayda evrişimler gerçekleştirmektir. Başka bir yol, biri uzaysal ve diğeri zamansal akış için olmak üzere iki evrişimli sinir ağının özelliklerini birleştirmektir. Uzun kısa süreli bellek (LSTM) tekrarlayan birimleri, tipik olarak, çerçeveler arası veya klipler arası bağımlılıkları hesaba katmak için CNN'den sonra dahil edilir. Evrişimsel Geçitli Kısıtlı Boltzmann Makineleri ve Bağımsız Altuzay Analizine dayalı olarak uzay-zamansal özelliklerin eğitimi için denetimsiz öğrenme şemaları tanıtıldı .

Doğal dil işleme

CNN'ler ayrıca doğal dil işleme için de araştırılmıştır . CNN modelleri, çeşitli NLP problemleri için etkilidir ve anlamsal ayrıştırma , arama sorgusu alma, cümle modelleme, sınıflandırma, tahmin ve diğer geleneksel NLP görevlerinde mükemmel sonuçlar elde etmiştir . Tekrarlayan sinir ağları gibi geleneksel dil işleme yöntemleriyle karşılaştırıldığında , CNN'ler bir dizi dizi varsayımına dayanmayan farklı bağlamsal dil gerçekliklerini temsil edebilirken, RNN'ler klasik zaman dizisi modellemesi gerektiğinde daha uygundur.

Anomali tespiti

Zaman alanındaki anormallikleri tespit etmek için denetimsiz bir model tarafından frekans alanındaki (spektral kalıntı) zaman serilerinde 1 boyutlu kıvrımlara sahip bir CNN kullanıldı.

İlaç keşfi

CNN'ler ilaç keşfinde kullanılmıştır . Moleküller ve biyolojik proteinler arasındaki etkileşimi tahmin etmek, potansiyel tedavileri belirleyebilir. 2015 yılında Atomwise, yapı temelli rasyonel ilaç tasarımı için ilk derin öğrenme sinir ağı olan AtomNet'i tanıttı . Sistem, kimyasal etkileşimlerin 3 boyutlu temsillerini doğrudan eğitir. Görüntü tanıma ağlarının daha küçük, uzamsal olarak yakın özellikleri daha büyük, karmaşık yapılarda birleştirmeyi öğrenmesine benzer şekilde, AtomNet aromatiklik , sp 3 karbonlar ve hidrojen bağı gibi kimyasal özellikleri keşfeder . Daha sonra AtomNet, çoklu hastalık hedefleri için yeni aday biyomolekülleri , özellikle de Ebola virüsü ve multipl skleroz tedavilerini tahmin etmek için kullanıldı .

Sağlık riski değerlendirmesi ve yaşlanma keşfinin biyobelirteçleri

CNN'ler , zengin klinik verilerle (örneğin, NHANES çalışması tarafından sağlanan ölüm kaydı dahil) desteklenen bir haftalık insan fiziksel aktivite akışlarını temsil eden yeterince büyük bir zaman serisi verilerini analiz etmek için doğal olarak uyarlanabilir . Basit bir CNN, Cox-Gompertz orantılı tehlike modeliyle birleştirildi ve tüm nedenlere bağlı ölüm tahmincisi biçiminde yaşlanmanın dijital biyobelirteçlerinin bir kavram kanıtı örneğini üretmek için kullanıldı .

Dama oyunu

Dama oyununda CNN'ler kullanılmıştır . 1999'dan 2001'e kadar Fogel ve Chellapilla , evrişimli bir sinir ağının birlikte evrimi kullanarak denetleyici oynamayı nasıl öğrenebileceğini gösteren makaleler yayınladı . Öğrenme süreci, önceki insan profesyonel oyunlarını kullanmadı, bunun yerine dama tahtasında yer alan asgari bir bilgi setine odaklandı: taşların yeri ve türü ve iki taraf arasındaki taş sayısındaki fark. Sonuç olarak, program ( Blondie24 ) oyunculara karşı 165 oyunda test edildi ve en yüksek %0.4'lük sıralamada yer aldı. Ayrıca Chinook programına karşı "uzman" oyun seviyesinde bir galibiyet kazandı .

Gitmek

CNN'ler bilgisayar Go'da kullanılmıştır . Aralık 2014 yılında Clark ve Storkey bir CNN daha iyi performans verebilir insan profesyonel oyunların bir veritabanından denetimli öğrenme tarafından eğitilen gösteren bir bildiri yayınladı GNU Git ve karşı bazı oyunlar kazanmak arama Monte Carlo ağacına o kadar Fuego aldı zamanın bir kısmını da Fuego 1.1 Oyna. Daha sonra, 12 katmanlı büyük bir evrişimli sinir ağının, pozisyonların %55'inde profesyonel hareketi doğru bir şekilde tahmin ettiği ve 6 dan insan oyuncunun doğruluğuna eşit olduğu açıklandı . Eğitilmiş evrişimsel ağ, herhangi bir arama yapmadan doğrudan Go oyunlarını oynamak için kullanıldığında , oyunların %97'sinde geleneksel arama programı GNU Go'yu geride bıraktı ve on bin playout'u simüle eden Monte Carlo ağaç arama programı Fuego'nun performansıyla eşleşti (yaklaşık hareket başına bir milyon pozisyon).

Denemek için hamleleri seçmek ("politika ağı") ve MCTS'yi yönlendiren pozisyonları ("değer ağı") değerlendirmek için birkaç CNN , o sırada en iyi insan oyuncuyu yenen ilk kişi olan AlphaGo tarafından kullanıldı .

Zaman serisi tahmini

Tekrarlayan sinir ağları genellikle zaman serisi tahmini (ve genel olarak dizi modellemesi) için en iyi sinir ağı mimarileri olarak kabul edilir, ancak son çalışmalar evrişimli ağların karşılaştırılabilir veya daha iyi performans gösterebileceğini göstermektedir. Genişletilmiş evrişimler, tek boyutlu evrişimli sinir ağlarının zaman serisi bağımlılıklarını etkili bir şekilde öğrenmesini sağlayabilir. Evrişimler, RNN tabanlı çözümlerden daha verimli bir şekilde uygulanabilir ve kaybolan (veya patlayan) gradyanlardan etkilenmezler. Evrişimli ağlar, öğrenilecek çok sayıda benzer zaman serisi olduğunda gelişmiş bir tahmin performansı sağlayabilir. CNN'ler ayrıca zaman serisi analizindeki (örneğin, zaman serisi sınıflandırması veya nicel tahmin) daha ileri görevlere de uygulanabilir.

Kültürel Miras ve 3B veri kümeleri

Gibi arkeolojik bulgular olarak kil tabletleri ile çivi yazılı giderek kullanılarak elde edilir 3D tarayıcılar ilk kriter veri kümeleri gibi mevcut hale gelmektedir HeiCuBeDa ile hazırlanan neredeyse 2.000 normalize 2D ve 3D-veri setlerini temin GigaMesh Yazılım Çerçevesi . Bu nedenle , örneğin insanlık tarihinin en eski belgeleri arasında yer alan kil tabletlerin dönem sınıflandırması için, Geometrik Sinir Ağları (GNN'ler) ile birlikte eğriliğe dayalı ölçümler kullanılır.

İnce ayar

Birçok uygulama için eğitim verileri daha az kullanılabilir. Evrişimli sinir ağları, fazla uydurmayı önlemek için genellikle büyük miktarda eğitim verisi gerektirir . Yaygın bir teknik, ağı ilgili bir etki alanından daha büyük bir veri kümesi üzerinde eğitmektir. Ağ parametreleri bir kez birleştiğinde, ağ ağırlıklarına ince ayar yapmak için etki alanı içindeki veriler kullanılarak ek bir eğitim adımı gerçekleştirilir, bu aktarım öğrenmesi olarak bilinir . Ayrıca, bu teknik, evrişimli ağ mimarilerinin küçük eğitim setleri ile problemlere başarıyla uygulanmasına izin verir.

İnsan tarafından yorumlanabilir açıklamalar

Uçtan uca eğitim ve tahmin, bilgisayarla görmede yaygın bir uygulamadır . Bununla birlikte, kendi kendini süren arabalar gibi kritik sistemler için insan tarafından yorumlanabilir açıklamalar gereklidir . Görsel belirginlik , uzamsal ve zamansal dikkatteki son gelişmelerle , CNN tahminlerini doğrulamak için en kritik uzamsal bölgeler/zamansal anlar görselleştirilebilir.

İlgili mimariler

Derin Q ağları

Derin Q ağı (DQN), derin bir sinir ağını bir pekiştirici öğrenme biçimi olan Q-öğrenme ile birleştiren bir tür derin öğrenme modelidir . Daha önceki pekiştirmeli öğrenme ajanlarından farklı olarak, CNN'leri kullanan DQN'ler, pekiştirmeli öğrenme yoluyla doğrudan yüksek boyutlu duyusal girdilerden öğrenebilir.

Ön sonuçlar 2014'te, beraberindeki bir makaleyle Şubat 2015'te sunuldu. Araştırma, Atari 2600 oyununa bir uygulamayı tanımladı . Diğer derin pekiştirmeli öğrenme modelleri ondan önce geldi.

Derin inanç ağları

Evrişimsel derin inanç ağları (CDBN), evrişimli sinir ağlarına çok benzer bir yapıya sahiptir ve derin inanç ağlarına benzer şekilde eğitilmiştir. Bu nedenle CNN'lerin yaptığı gibi görüntülerin 2 boyutlu yapısını kullanırlar ve derin inanç ağları gibi ön eğitimden yararlanırlar . Birçok görüntü ve sinyal işleme görevinde kullanılabilecek genel bir yapı sağlarlar. CIFAR gibi standart görüntü veri kümelerinde kıyaslama sonuçları, CDBN'ler kullanılarak elde edilmiştir.

Önemli kütüphaneler

  • Caffe : Evrişimli sinir ağları için bir kütüphane. Berkeley Vizyon ve Öğrenim Merkezi (BVLC) tarafından düzenlendi. Hem CPU hem de GPU'yu destekler. C++ ile geliştirilmiştir ve Python ve MATLAB sarmalayıcılarına sahiptir.
  • Deeplearning4j : Çoklu GPU etkin Spark üzerinde Java ve Scala'da derin öğrenme . Bir C++ bilimsel bilgi işlem motorunda çalışan JVM üretim yığını için genel amaçlı bir derin öğrenme kitaplığı. Özel katmanların oluşturulmasına izin verir. Hadoop ve Kafka ile bütünleşir.
  • Dlib : C++'da gerçek dünya makine öğrenimi ve veri analizi uygulamaları yapmak için bir araç takımı.
  • Microsoft Bilişsel Araç Seti : Microsoft tarafından yazılmış, birden çok düğüm üzerinde ölçeklenebilirliği artıran çeşitli benzersiz özelliklere sahip bir derin öğrenme araç seti. C++ ve Python'da eğitim için tam teşekküllü arabirimleri ve C# ve Java'da model çıkarımı için ek desteği destekler .
  • TensorFlow : CPU, GPU, Google'ın tescilli tensör işleme birimi (TPU) ve mobil cihazlar için desteği olan Apache 2.0 lisanslı Theano benzeri kitaplık .
  • Theano : Popüler NumPy kitaplığıyla büyük ölçüde uyumlu bir API'ye sahip Python için referans derin öğrenme kitaplığı. Kullanıcının sembolik matematiksel ifadeler yazmasına izin verir, ardından otomatik olarak türevlerini oluşturur ve kullanıcıyı gradyanları veya geri yayılımı kodlama zorunluluğundan kurtarır. Bu sembolik ifadeler, hızlı, on-the-GPU uygulaması için otomatik olarak CUDA koduna derlenir .
  • Torch : C ve Lua ile yazılmış, makine öğrenimi algoritmaları için geniş desteğe sahip bilimsel bir hesaplama çerçevesi . Ana yazar Ronan Collobert'tir ve şu anda Facebook AI Research ve Twitter'da kullanılmaktadır.

Önemli API'ler

Ayrıca bakınız

Notlar

Referanslar

Dış bağlantılar