Kıvrımlı sinir ağları

Tamamlandı

Derin öğrenme modellerini her tür makine öğrenmesi için kullanabilirsiniz ancak bunlar özellikle görüntüler gibi büyük sayısal değer dizilerinden oluşan verilerle ilgilenmek için kullanışlıdır. Görüntülerle çalışan makine öğrenmesi modelleri, görüntü işleme adı verilen bir yapay zeka alanının temelini oluşturur ve derin öğrenme teknikleri son yıllarda bu alanda inanılmaz ilerlemeler elde ederek sorumlu olmuştur.

Derin öğrenmenin bu alandaki başarısının merkezinde, kıvrımlı sinir ağı veya CNN adı verilen bir model türü vardır. CNN genellikle görüntülerden özellikleri ayıklayarak ve ardından bu özellikleri tam olarak bağlı bir sinir ağına besleyerek çalışır ve bir tahmin oluşturur. Ağdaki özellik ayıklama katmanları, potansiyel olarak çok büyük bir piksel değeri dizisinden etiket tahminini destekleyen daha küçük bir özellik kümesine kadar özellik sayısını azaltma etkisine sahiptir.

CNN'deki katmanlar

CNN'ler, her biri özellikleri ayıklama veya etiketleri tahmin etme konusunda belirli bir görevi gerçekleştiren birden çok katmandan oluşur.

Convolution katmanları

Asıl katman türlerinden biri, görüntülerdeki önemli özellikleri ayıklayan bir kıvrımlı katmandır . Kıvrımlı katman, görüntülere filtre uygulayarak çalışır. Filtre, ağırlık değerleri matrisini içeren bir çekirdek tarafından tanımlanır.

Örneğin, 3x3 filtresi şu şekilde tanımlanabilir:

 1  -1   1
-1   0  -1
 1  -1   1

Görüntü aynı zamanda yalnızca piksel değerleri matrisidir. Filtreyi uygulamak için, filtreyi bir görüntüye "örtüştürür" ve filtre çekirdeği altındaki ilgili görüntü piksel değerlerinin ağırlıklı toplamını hesaplarsınız. Sonuç daha sonra, görüntüyle aynı boyutta olan yeni bir değerler matrisindeki eşdeğer 3x3 yamanın merkez hücresine atanır. Örneğin, 6 x 6 boyutunda bir görüntünün aşağıdaki piksel değerlerine sahip olduğunu varsayalım:

255 255 255 255 255 255 
255 255 100 255 255 255
255 100 100 100 255 255
100 100 100 100 100 255
255 255 255 255 255 255
255 255 255 255 255 255

Filtrenin görüntünün sol üst 3x3 yamasına uygulanması şu şekilde çalışır:

255 255 255      1  -1   1    (255 x 1)+(255 x -1)+(255 x 1) +
255 255 100  x  -1   0  -1  = (255 x -1)+(255 x 0)+(100 x -1) +   = 155
255 100 100      1  -1   1    (255 x1 )+(100 x -1)+(100 x 1)

Sonuç, yeni matriste karşılık gelen piksel değerine şu şekilde atanır:

 ?   ?   ?   ?   ?   ?  
 ?  155  ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?

Şimdi filtre birlikte taşınır () genellikle 1 boyutunda bir adım (yani bir piksel sağa doğru hareket ediyor) kullanılır ve bir sonraki pikselin değeri hesaplanır

255 255 255      1  -1   1    (255 x 1)+(255 x -1)+(255 x 1) +
255 100 255  x  -1   0  -1  = (255 x -1)+(100 x 0)+(255 x -1) +   = -155
100 100 100      1  -1   1    (100 x1 )+(100 x -1)+(100 x 1)

Böylece artık yeni matrisin bir sonraki değerini doldurabiliriz.

 ?   ?   ?   ?   ?   ?  
 ?  155 -155 ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?
 ?   ?   ?   ?   ?   ?

Aşağıdaki gibi yeni bir değer matrisi oluşturmak için görüntünün tüm 3x3 yamalarında filtreyi uygulayana kadar işlem yinelenir:

?   ?   ?    ?    ?   ?
?  155 -155 155 -155  ?
? -155 310 -155  155  ?
?  310 155  310   0   ?
? -155 -155 -155  0   ?
?   ?   ?    ?    ?   ?

Filtre çekirdeğinin boyutu nedeniyle kenardaki piksellerin değerlerini hesaplayamıyoruz; bu nedenle genellikle yalnızca bir doldurma değeri uygularız (genellikle 0):

0   0   0    0    0   0
0  155 -155 155 -155  0
0 -155 310 -155  155  0
0  310 155  310   0   0
0 -155 -155 -155  0   0
0   0   0    0    0   0

Konvolüsyon çıktısı genellikle negatif değerlerin 0 olarak ayarlanmasını sağlayan ve çoğu zaman Düzleştirilmiş Doğrusal Birim (ReLU) olarak bilinen bir aktivasyon fonksiyonuna geçirilir.

0   0   0    0    0   0
0  155  0   155   0   0
0   0  310   0   155  0
0  310 155  310   0   0
0   0   0    0    0   0
0   0   0    0    0   0

Elde edilen matris, bir makine öğrenmesi modelini eğitmek için kullanılabilecek özellik değerlerinin özellik haritasıdır.

Not: Özellik eşlemesindeki değerler bir piksel için en yüksek değerden (255) büyük olabilir, bu nedenle özellik haritasını bir görüntü olarak görselleştirmek istiyorsanız özellik değerlerini 0 ile 255 arasında normalleştirmeniz gerekir.

Convolution işlemi aşağıdaki animasyonda gösterilmiştir.

Bir filtre çekirdeği üçgenin bir görüntüsünün üzerine katlanarak uygulanır, bu da üç kenar ve köşeleri vurgulayan özellikleri ayıklar

  1. Bir resim, kıvrımlı katmana geçirilir. Bu durumda, görüntü basit bir geometrik şekildir.
  2. Görüntü, 0 ile 255 arasında değerler içeren bir piksel dizilerinden oluşur (renkli görüntüler için bu genellikle kırmızı, yeşil ve mavi kanal değerlerine sahip 3 boyutlu bir dizidir).
  3. Filtre çekirdeği genellikle rastgele ağırlıklarla başlatılır (bu örnekte, bir filtrenin piksel değerleri üzerindeki etkisini vurgulamak için değerler seçtik; ancak gerçek bir CNN'de ilk ağırlıklar genellikle rastgele bir Gauss dağılımından oluşturulur). Bu filtre, görüntü verilerinden bir özellik eşlemesi ayıklamak için kullanılır.
  4. Filtre görüntüde birleşerek her konumdaki ilgili piksel değerleriyle çarpılan ağırlıkların toplamını uygulayarak özellik değerlerini hesaplar. Negatif değerlerin 0 olarak ayarlandığından emin olmak için Düzeltılmış Doğrusal Birim (ReLU) etkinleştirme işlevi uygulanır.
  5. Birleştirmeden sonra özellik eşlemesi, genellikle görüntünün önemli görsel özniteliklerini vurgulayan ayıklanan özellik değerlerini içerir. Bu durumda özellik haritası, görüntüdeki üçgenin kenarlarını ve köşelerini vurgular.

Genellikle, bir kıvrımlı katman birden çok filtre çekirdeği uygular. Her filtre farklı bir özellik eşlemesi oluşturur ve tüm özellik eşlemeleri ağın bir sonraki katmanına geçirilir.

Havuzlama katmanları

Özellik değerleri görüntülerden çıkarıldıktan sonra, havuzlama (veya aşağı örnekleme) katmanları, çıkarılmış olan anahtar ayırt edici özellikleri korurken, özellik değerlerinin sayısını azaltmak için kullanılır.

En yaygın havuzlama türlerinden biri, görüntüye filtrenin uygulandığı en fazla havuz ve yalnızca filtre alanındaki en büyük piksel değerinin korunmasıdır. Örneğin, bir görüntünün aşağıdaki parçaya 2x2 havuzlama çekirdeği uygulamak 155 sonucunu üretir.

0   0
0  155

2x2 havuz filtresinin etkisinin, değer sayısını 4'ten 1'e düşürmek olduğunu unutmayın.

Evrişimli katmanlarda olduğu gibi, havuzlama katmanları da filtreyi tüm özellik haritasına uygulayarak çalışır. Aşağıdaki animasyon, bir görüntü haritası için max pooling örneğini göstermektedir.

Bir filtre çekirdeği bir üçgenin görüntüsü üzerine konvolüsyon uygulanarak, üç kenar ve köşeleri vurgulayan özellikler çıkarılır; bu özellikler bir görüntü haritası için maksimum havuzlama sağlar.

  1. Bir kıvrımlı katmandaki bir filtre tarafından ayıklanan özellik eşlemesi, bir özellik değerleri dizisi içerir.
  2. Özellik değerlerinin sayısını azaltmak için bir havuz çekirdeği kullanılır. Bu durumda çekirdek boyutu 2x2'dir, bu nedenle özellik değerlerinin sayısının dörtte biri kadar bir dizi oluşturur.
  3. Havuz çekirdeği özellik haritasında birleştirilmiştir ve her konumda yalnızca en yüksek piksel değerini korur.

Katmanları bırakma işlemi

Bir CNN'deki en zor zorluklardan biri, elde edilen modelin eğitim verileriyle iyi performans gösterdiği ancak eğitemediği yeni verilere iyi genelleştiremediği fazla uygunluktan kaçınmaktır. Fazla uygunluğu azaltmak için kullanabileceğiniz bir teknik, eğitim sürecinin özellik haritalarını rastgele ortadan kaldırdığı (veya "bırakdığı") katmanları dahil etmektir. Bu uygun görünmeyebilir, ancak modelin eğitim görüntülerine aşırı bağımlı olmayı öğrenmemesini sağlamanın etkili bir yoludur.

Fazla uygunluğu azaltmak için kullanabileceğiniz diğer teknikler arasında eğitim dönemleri arasında değişiklik gösteren veriler oluşturmak için eğitim görüntülerini rastgele çevirme, yansıtma veya eğme sayılabilir.

Katmanları düzleştirme

Görüntülerdeki önemli özellikleri ayıklamak için kıvrımlı ve havuz katmanlarını kullandıktan sonra, sonuçta elde edilen özellik eşlemeleri piksel değerlerinden oluşan çok boyutlu dizilerdir. Bir düzleştirme katmanı, özellik eşlemelerini tam olarak bağlı bir katmana giriş olarak kullanılabilecek değer vektörlerine düzleştirmek için kullanılır.

Tam bağlı katmanlar

Genellikle bir CNN, özellik değerlerinin bir veya daha fazla gizli katman aracılığıyla bir giriş katmanına geçirildiği ve bir çıkış katmanında tahmin edilen değerler oluşturduğu tam olarak bağlı bir ağ ile biter.

Temel bir CNN mimarisi şuna benzer olabilir:

Konvolüsyon katmanı, havuz katmanı, düşme katmanı, düzleştirme katmanı ve tam bağlı katmandan oluşan bir CNN

  1. Görüntüler, kıvrımlı bir katmana beslenir. Bu durumda iki filtre vardır, bu nedenle her görüntü iki özellik eşlemesi oluşturur.
  2. Özellik haritaları, 2x2 havuzlama çekirdeğinin özellik haritalarının boyutunu azalttığı bir havuzlama katmanına geçirilir.
  3. Bir bırakma katmanı, aşırı uyumu önlemeye yardımcı olmak için özellik haritalarından bazılarını rastgele bırakır.
  4. Düzleştirme katmanı, kalan özellik eşleme dizilerini alır ve bunları bir vektör halinde düzleştirir.
  5. Vektör öğeleri, tahminleri oluşturan tam olarak bağlı bir ağa beslenir. Bu durumda ağ, üç olası görüntü sınıfı (üçgen, kare ve daire) için olasılıkları tahmin eden bir sınıflandırma modelidir.

CNN modelini eğitma

Herhangi bir derin sinir ağında olduğu gibi bir CNN, birden çok dönem boyunca bir dizi eğitim verisi geçirilerek eğitilir ve her dönem için hesaplanan kayıplara göre ağırlıklar ve sapma değerleri ayarlanır. CNN söz konusu olduğunda, ayarlanmış ağırlıkların geri yayılımı, hem evrişimli katmanlarda kullanılan filtre çekirdeği ağırlıkları hem de tam bağlı katmanlarda kullanılan ağırlıkları içerir.