Derin öğrenme

Tamamlandı

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ğının diyagramı. Yapay sinir ağının diyagramı.
Nöronlar elektrokimyasal uyaranlara yanıt olarak ateşlenir. Ateşlendiğinde sinyal bağlı nöronlara geçirilir. Her nöron, bir giriş değeri (x) ve bir ağırlık (w) üzerinde çalışan bir işlevdir. İşlev, çıkışın geçirilip geçirmeyeceğini belirleyen bir etkinleştirme işlevine sarmalanır.

Yapay sinir ağları, çok sayıda nöron katmanından oluşur ve temelde iç içe yerleştirilmiş bir işlevi tanımlar. Bu mimari, tekniğin derin öğrenme olarak ve onun ürettiği modeller genellikle derin sinir ağları (DNN) olarak adlandırılır. Derin sinir ağlarını 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 kullanabilirsiniz.

Bu modülde ele alınan diğer makine öğrenmesi tekniklerinde olduğu gibi derin öğrenme, bir veya daha fazla özelliğin (x) değerine göre bir etiketi (y) tahmin eden bir işleve eğitim verilerini sığdırmayı içerir. İşlev (f(x)), nöral ağın her katmanının x ve bunlarla ilişkili ağırlık (w) değerleri üzerinde çalışan işlevleri kapsüllediği iç içe bir işlevin dış katmanıdır. Modeli eğitmek için kullanılan algoritma, ŷ için çıkış değerlerini hesaplamak üzere eğitim verilerindeki özellik değerlerini (x) katmanlar arasında yinelemeli olarak beslemeyi, hesaplanan ŷ değerlerinin bilinen y değerlerinden ne kadar uzak olduğunu değerlendirmek için modeli doğrulamayı (modeldeki hata veya kayıp düzeyini belirler), ve sonra 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 sınıflandırma modelini 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ğının diyagramı.

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

  • Penguenin faturasının uzunluğu.
  • Penguenin fatura derinliği.
  • Penguenin paletlerinin 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 üç olası tür olabilir:

  • Adelie
  • Gentoo
  • Chinstrap

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 bunu, her sınıf için olasılıklardan oluşan bir etiketi tahmin ederek 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özleminin özellik vektöru, 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ılmıştır: [37.3, 16.8, 19.2, 30.0]
  2. Nöronların ilk katmanının işlevleri, x değeri ile w ağırlığını birleştirerek ağırlıklı 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 bağlanır (bazen tam bağlantılı ağ olarak da adlandırılan bir mimari), 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, üç olası penguen 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ğitilen, değerlendirilen ve iyileştirilen 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 üretir. Örneğin penguen sınıfı tahmini için çıkış [0,3) olabilir. 0.1. 0.6].
  4. Tahmin edilen ŷ değerlerini bilinen y değerleriyle karşılaştırmak ve farkı (kayıp olarak bilinir) toplamak için bir kayıpişlevi kullanılır. Örneğin, önceki adımda çıkışı döndüren büyük/küçük harf 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 servis talebi için toplam varyansı hesaplar ve 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 özelleştirilir .
  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.

Not

Ağ üzerinden tek tek geçirilen eğitim verilerinde 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.