Derin öğrenme

Tamamlandı

Tip

Daha fazla ayrıntı için Metin ve resimler sekmesine bakın!

Derin öğrenme , insan beyninin öğrenme şekline öykünmeye çalışan gelişmiş bir makine öğrenmesi biçimidir. Derin öğrenmenin anahtarı, burada gösterildiği gibi matematiksel işlevleri kullanarak biyolojik nöronlarda elektrokimyasal aktivite simülasyonu yapan yapay bir sinir ağı oluşturmaktır.

Biyolojik sinir ağı Yapay sinir ağı
Doğal sinir ağı diyagramı. Yapay sinir ağı diyagramı.
Nöronlar elektrokimyasal uyaranlara yanıt olarak ateşler. Ateşlendiğinde sinyal bağlı nöronlara iletilir. Her nöron, bir giriş değeri (x) ve bir ağırlık (w) üzerinde çalışan bir işlevdir. İşlev, çıkışın iletilip iletilmeyeceğini belirleyen bir etkinleştirme işlevine sarılmıştır.

Yapay sinir ağları, temelde derin iç içe bir işlev tanımlayan birden çok nöron katmanından oluşur. Bu mimari, tekniğin derin öğrenme olarak ve onun ürettiği modeller genellikle derin sinir ağları (DNN) olarak adlandırılır. Regresyon ve sınıflandırmanın yanı sıra doğal dil işleme ve görüntü işleme için daha özel modeller de dahil olmak üzere birçok makine öğrenmesi sorunu için derin sinir ağlarını kullanabilirsiniz.

Bu modülde ele alınan diğer makine öğrenmesi tekniklerinde olduğu gibi derin öğrenme, eğitim verilerini bir veya daha fazla özelliğin (x) değerine göre bir etiketi (y) tahmin eden bir işleve uydurmayı içerir. İşlev (f(x)), nöral ağın her katmanının x üzerinde çalışan işlevleri ve bunlarla ilişkili ağırlık (w) değerlerini kapsüllediği iç içe bir işlevin dış katmanıdır. Modeli eğitmek için kullanılan algoritma, eğitim verilerindeki özellik değerlerini (x) katmanlar aracılığıyla yinelemeli olarak besleyerek ŷ için çıkış değerlerini hesaplamayı, hesaplanan ŷ değerlerinin bilinen y değerlerinden ne kadar uzakta olduğunu değerlendirmek için modeli doğrulamayı (modeldeki hata veya kayıp düzeyini belirtir), ve ardından kaybı azaltmak için ağırlıkları (w) değiştirin. Eğitilen model, en doğru tahminlerle sonuçlanan son ağırlık değerlerini içerir.

Örnek - Sınıflandırma için derin öğrenme kullanma

Derin sinir ağı modelinin nasıl çalıştığını daha iyi anlamak için penguen türleri için bir sınıflandırma modeli tanımlamak üzere sinir ağının kullanıldığı bir örneği inceleyelim.

Penguen türlerini sınıflandırmak için kullanılan sinir ağı diyagramı.

Özellik verileri (x), bir penguenin bazı ölçümlerinden oluşur. Özellikle, ölçümler şunlardır:

  • Penguenin gagasının uzunluğu.
  • Penguenin gaga derinliği.
  • Penguenin yüzgeçlerinin uzunluğu.
  • Penguenin ağırlığı.

Bu durumda , x dört değerden oluşan bir vektördür veya matematiksel olarak x=[x1,x2,x3,x4].

Tahmin etmeye çalıştığımız etiket (y) penguenin türüdür ve bunun olabileceği üç olası tür vardır:

  • Adelie
  • Gentoo
  • Çene kayışı

Bu, makine öğrenmesi modelinin bir gözlemin ait olduğu en olası sınıfı tahmin etmesi gereken bir sınıflandırma sorunu örneğidir. Sınıflandırma modeli, her sınıf için olasılıklardan oluşan bir etiketi tahmin ederek bunu gerçekleştirir. Başka bir deyişle, y üç olasılık değerinin vektördür; olası sınıfların her biri için bir tane: [P(y=0|x), P(y=1|x), P(y=2|x)].

Bu ağı kullanarak tahmin edilen penguen sınıfını çıkarsama işlemi şu şekildedir:

  1. Penguen gözlemi için özellik vektör, her x değeri için bir nörondan oluşan sinir ağının giriş katmanına beslenir. Bu örnekte giriş olarak şu x vektör kullanılır: [37.3, 16.8, 19.2, 30.0]
  2. Nöronların ilk katmanının işlevleri her biri x değerini ve w ağırlığını birleştirerek ağırlıklı bir toplamı hesaplar ve bir sonraki katmana geçirilecek eşiği karşılayıp karşılamadığını belirleyen bir etkinleştirme işlevine geçirir.
  3. Bir katmandaki her nöron, bir sonraki katmandaki tüm nöronlara (bazen tam bağlı ağ olarak adlandırılan bir mimari) bağlanır, böylece her katmanın sonuçları çıkış katmanına ulaşana kadar ağ üzerinden iletilir.
  4. Çıkış katmanı bir değer vektöru oluşturur; bu durumda, penguenin üç olası sınıfı için olasılık dağılımını hesaplamak için softmax veya benzer bir işlev kullanmak. Bu örnekte çıkış vektöru: [0.2, 0.7, 0.1]
  5. Vektör öğeleri 0, 1 ve 2 sınıfları için olasılıkları temsil. İkinci değer en yüksek değerdir, bu nedenle model penguen türünün 1 (Gentoo) olduğunu tahmin eder.

Sinir ağı nasıl öğrenir?

Sinir ağındaki ağırlıklar, etiketler için tahmin edilen değerleri hesaplama şeklinin merkezinde yer alır. Eğitim sürecinde model, en doğru tahminlerle sonuçlanacak ağırlıkları öğrenir . Şimdi bu öğrenmenin nasıl gerçekleştiğini anlamak için eğitim sürecini biraz daha ayrıntılı bir şekilde inceleyelim.

Eğitilmekte, değerlendirilmekte ve iyileştirilmekte olan bir sinir ağının diyagramı.

  1. Eğitim ve doğrulama veri kümeleri tanımlanır ve eğitim özellikleri giriş katmanına aktarılır.
  2. Ağın her katmanındaki nöronlar ağırlıklarını uygular (başlangıçta rastgele atanır) ve verileri ağ üzerinden besler.
  3. Çıkış katmanı , ŷ için hesaplanan değerleri içeren bir vektör oluşturur. Örneğin, penguen sınıfı tahmini için bir çıkış [0,3, 0,1, 0,6] olabilir.
  4. Kayıp işlevi, tahmin edilen ŷ değerlerini bilinen y değerleriyle karşılaştırmak ve farkı (kayıp olarak bilinir) toplamak için kullanılır. Örneğin, önceki adımda çıkışı döndüren durum için bilinen sınıf Chinstrap ise, y değeri [0,0, 0,0, 1,0] olmalıdır. Bu ve ŷ vektör arasındaki mutlak fark [0,3, 0,1, 0,4] şeklindedir. Gerçekte, kayıp işlevi birden çok durum için toplam varyansı hesaplar ve bunu tek bir kayıp değeri olarak özetler.
  5. Ağın tamamı temelde büyük bir iç içe işlev olduğundan, bir iyileştirme işlevi ağdaki her ağırlığın kayıp üzerindeki etkisini değerlendirmek ve genel kayıp miktarını azaltmak için bunların nasıl ayarlanabileceğini (yukarı veya aşağı) belirlemek için diferansiyel hesaplama işlevini kullanabilir. Belirli iyileştirme tekniği farklılık gösterebilir, ancak genellikle kaybı en aza indirmek için her ağırlığın artırıldığı veya azaltıldığı gradyan azalma yaklaşımını içerir.
  6. Ağırlıklarda yapılan değişiklikler, daha önce kullanılan değerleri değiştirerek ağdaki katmanlara geri yayılır.
  7. Kayıp en aza indirgenene ve model kabul edilebilir doğru tahminde bulunana kadar işlem birden çok yineleme ( dönem olarak bilinir) üzerinden tekrarlanır.

Uyarı

Ağ üzerinden tek tek geçirilen eğitim verilerindeki her bir durumu düşünmek daha kolay olsa da, gerçekte veriler matrisler halinde toplu olarak işlenir ve doğrusal cebirsel hesaplamalar kullanılarak işlenir. Bu nedenle, sinir ağı eğitimi en iyi vektör ve matris işleme için iyileştirilmiş grafik işleme birimlerine (GPU) sahip bilgisayarlarda gerçekleştirilir.