CS 230 - Derin Öğrenme

Derin Öğrenme püf noktaları ve ipuçları el kitabı
Star

Afshine Amidi ve Shervine Amidi tarafından


Ayyüce Kızrak ve Yavuz Kömeçoğlu tarafından çevrilmiştir

Veri işleme

Veri artırma Derin öğrenme modelleri genellikle uygun şekilde eğitilmek için çok fazla veriye ihtiyaç duyar. Veri artırma tekniklerini kullanarak mevcut verilerden daha fazla veri üretmek genellikle yararlıdır. Temel işlemler aşağıdaki tabloda özetlenmiştir. Daha doğrusu, aşağıdaki girdi görüntüsüne bakıldığında, uygulayabileceğimiz teknikler şunlardır:

Orijinal Çevirme Rotasyon (Yönlendirme) Rastgele kırpma/kesme
• Herhangi bir değişiklik yapılmamış görüntü • Görüntünün anlamının korunduğu bir eksene göre çevrilmiş görüntü • Hafif açılı döndürme
• Yanlış yatay kalibrasyonu simule eder
• Görüntünün bir bölümüne rastgele odaklanma
• Arka arkaya birkaç rasgele kesme yapılabilir
Renk değişimi Gürültü ekleme Bilgi kaybı Kontrast değişimi
• RGB'nin nüansları biraz değiştirilmesi
• Işığa maruz kalırken oluşabilecek gürültü
• Gürültü ekleme
• Girdilerin kalite değişkenliğine daha fazla toleranslı olması
• Yok sayılan görüntüler
• Görüntünün parçalardaki olası kayıplarını kopyalanması
• Gün içindeki ışık ve renk değişimim kontrolü

Not: Veriler genellikle eğitim sırasında artırılır.


Küme normalleştirme Bu, $\{x_i\}$ kümesini normalleştiren, $\gamma, \beta$ hiperparametresinin bir adımıdır. $\mu_B$ ve $\sigma_B^2$'ye dikkat ederek, kümeyi düzeltmek istediklerimizin ortalaması ve varyansı şu şekilde yapılır:

\[\boxed{x_i\longleftarrow\gamma\frac{x_i-\mu_B}{\sqrt{\sigma_B^2+\epsilon}}+\beta}\]
Genellikle tam-tüm bağlı/evrişimli bir katmandan sonra ve doğrusal olmayan bir katmandan önce yapılır. Daha yüksek öğrenme oranlarına izin vermeyi ve başlangıç durumuna güçlü bir şekilde bağımlılığı azaltmayı amaçlar.


Bir sinir ağının eğitilmesi

Tanımlamalar

Dönem (Epok/Epoch) Bir modelin eğitimi kapsamında, modelin ağırlıklarını güncellemek için tüm eğitim setini kullandığı bir yinelemeye ifade etmek için kullanılan bir terimdir.


Mini-küme gradyan (bayır) iniş Eğitim aşamasında, ağırlıkların güncellenmesi genellikle hesaplama karmaşıklıkları nedeniyle bir kerede ayarlanan tüm eğitime veya gürültü sorunları nedeniyle bir veri noktasına dayanmaz. Bunun yerine, güncelleme adımı bir toplu işdeki veri noktalarının sayısının ayarlayabileceğimiz bir hiperparametre olduğu mini kümelerle yapılır. Veriler mini-kümeler halinde alınır.


Yitim fonksiyonu Belirli bir modelin nasıl bir performans gösterdiğini ölçmek için, $L$ yitim (kayıp) fonksiyonu genellikle $y$ gerçek çıktıların, $z$ model çıktıları tarafından ne kadar doğru tahmin edildiğini değerlendirmek için kullanılır.


Çapraz-entropi kaybı Yapay sinir ağlarında ikili sınıflandırma bağlamında, çapraz entropi kaybı $L(z,y)$ yaygın olarak kullanılır ve şöyle tanımlanır:

\[\boxed{L(z,y)=-\Big[y\log(z)+(1-y)\log(1-z)\Big]}\]

Optimum ağırlıkların bulunması

Geriye yayılım Geri yayılım, asıl çıktıyı ve istenen çıktıyı dikkate alarak sinir ağındaki ağırlıkları güncellemek için kullanılan bir yöntemdir. Her bir ağırlığa göre türev, zincir kuralı kullanılarak hesaplanır.


Bu yöntemi kullanarak, her ağırlık kurala göre güncellenir:

\[\boxed{w\longleftarrow w-\alpha\frac{\partial L(z,y)}{\partial w}}\]

Ağırlıkların güncellenmesi Bir sinir ağında, ağırlıklar aşağıdaki gibi güncellenir:

• Adım 1: Bir küme eğitim verisi alın ve kaybı hesaplamak için ileriye doğru ilerleyin.
• Adım 2: Her ağırlığa göre kaybın derecesini elde etmek için kaybı tekrar geriye doğru yayın.
• Adım 3: Ağın ağırlıklarını güncellemek için gradyanları kullanın.


Parametre ayarlama

Ağırlıkların başlangıçlandırılması

Xavier başlangıcı (ilklendirme) Ağırlıkları tamamen rastgele bir şekilde başlatmak yerine, Xavier başlangıcı, mimariye özgü özellikleri dikkate alan ilk ağırlıkların alınmasını sağlar.


Transfer öğrenme Bir derin öğrenme modelini eğitmek çok fazla veri ve daha da önemlisi çok zaman gerektirir. Kullanım durumumuza yönelik eğitim yapmak ve güçlendirmek için günler/haftalar süren dev veri setleri üzerinde önceden eğitilmiş ağırlıklardan yararlanmak genellikle yararlıdır. Elimizdeki ne kadar veri olduğuna bağlı olarak, aşağıdakilerden yararlanmanın farklı yolları:

Eğitim boyutu Görselleştirme Açıklama
Küçük Tüm katmanlar dondurulur, softmax'taki ağırlıkları eğitilir
Orta Çoğu katmanlar dondurulur, son katmanlar ve softmax katmanı ağırlıklar ile eğitilir
Büyük Önceden eğitilerek elde edilen ağırlıkları kullanarak katmanlar ve softmax için kullanır

Yakınsamayı optimize etmek

Öğrenme oranı (adımı) Genellikle $\alpha$ veya bazen $\eta$ olarak belirtilen öğrenme oranı, ağırlıkların hangi hızda güncellendiğini belirler. Sabitlenebilir veya uyarlanabilir şekilde değiştirilebilir. Mevcut en popüler yöntemin adı Adam'dır ve öğrenme hızını ayarlayan bir yöntemdir.


Uyarlanabilir öğrenme oranları Bir modelin eğitilmesi sırasında öğrenme oranının değişmesine izin vermek eğitim süresini kısaltabilir ve sayısal optimum çözümü iyileştirebilir. Adam optimizasyonu yöntemi en çok kullanılan teknik olmasına rağmen, diğer yöntemler de faydalı olabilir. Bunlar aşağıdaki tabloda özetlenmiştir:

Yöntem Açıklama $w$'ların güncellenmesi $b$'nin güncellenmesi
Momentum • Osilasyonların azaltılması/yumuşatılması
• SGD (Stokastik Gradyan/Bayır İniş) iyileştirmesi
• Ayarlanacak 2 parametre
$\displaystyle w-\alpha v_{dw}$ $\displaystyle b-\alpha v_{db}$
RMSprop • Ortalama Karekök yayılımı
• Osilasyonları kontrol ederek öğrenme algoritmasını hızlandırır
$\displaystyle w-\alpha\frac{dw}{\sqrt{s_{dw}}}$ $\displaystyle b\longleftarrow b-\alpha\frac{db}{\sqrt{s_{db}}}$
Adam • Uyarlamalı Moment tahmini/kestirimi
• En popüler yöntem
• Ayarlanacak 4 parametre
$\displaystyle w-\alpha\frac{v_{dw}}{\sqrt{s_{dw}}+\epsilon}$ $\displaystyle b\longleftarrow b-\alpha\frac{v_{db}}{\sqrt{s_{db}}+\epsilon}$

Not: diğer yöntemler içinde Adadelta, Adagrad ve SGD.


Düzenlileştirme

Seyreltme Seyreltme, sinir ağlarında, $p >0$ olasılıklı nöronları silerek eğitim verilerinin fazla kullanılmaması için kullanılan bir tekniktir. Modeli, belirli özellik kümelerine çok fazla güvenmekten kaçınmaya zorlar.

Not: Çoğunlukla derin öğrenme kütüphanleri, 'keep' ('tutma') parametresi $1−p$ aracılığıyla seyreltmeyi parametrize eder.


Ağırlık düzenlileştirme Ağırlıkların çok büyük olmadığından ve modelin eğitim setine uygun olmadığından emin olmak için, genellikle model ağırlıklarında düzenlileştirme teknikleri uygulanır. Temel olanlar aşağıdaki tabloda özetlenmiştir:

LASSO Ridge Elastic Net
• Katsayıları 0'a düşürür
• Değişken seçimi için iyi
Katsayıları daha küçük yapar Değişken seçimi ile küçük katsayılar arasında ödünleşim sağlar
Lasso Ridge Elastic Net
$...+\lambda||\theta||_1$
$\lambda\in\mathbb{R}$
$...+\lambda||\theta||_2^2$
$\lambda\in\mathbb{R}$
$...+\lambda\Big[(1-\alpha)||\theta||_1+\alpha||\theta||_2^2\Big]$
$\lambda\in\mathbb{R},\alpha\in[0,1]$

Erken durdurma Bu düzenleme tekniği, onaylama kaybı bir stabilliğe ulaştığında veya artmaya başladığında eğitim sürecini durdurur.


İyi uygulamalar

Küçük kümelerin ezberlenmesi Bir modelde hata ayıklama yaparken, modelin mimarisinde büyük bir sorun olup olmadığını görmek için hızlı testler yapmak genellikle yararlıdır. Özellikle, modelin uygun şekilde eğitilebildiğinden emin olmak için, ezberleyecek mi diye görmek için ağ içinde bir mini küme ile eğitilir. Olmazsa, modelin normal boyutta bir eğitim setini bırakmadan, küçük bir kümeyi bile ezberleyecek kadar çok karmaşık ya da yeterince karmaşık olmadığı anlamına gelir.


Gradyanların kontrolü Gradyan kontrolü, bir sinir ağının geriye doğru geçişinin uygulanması sırasında kullanılan bir yöntemdir. Analitik gradyanların değerini verilen noktalardaki sayısal gradyanlarla karşılaştırır ve doğruluk için bir kontrol rolü oynar.

Tip Sayısal gradyan Analitik gradyan
Formül $\displaystyle\frac{df}{dx}(x) \approx \frac{f(x+h) - f(x-h)}{2h}$ $\displaystyle\frac{df}{dx}(x) = f'(x)$
Açıklamalar • Maliyetli; Kayıp, boyut başına iki kere hesaplanmalı
• Analitik uygulamanın doğruluğunu anlamak için kullanılır
• Ne çok küçük (sayısal dengesizlik) ne de çok büyük (zayıf gradyan yaklaşımı) seçimi yapılmalı, bunun için ödünleşim gerekir
• 'Kesin' sonuç
• Doğrudan hesaplama
• Son uygulamada kullanılır