İçeriğe geç

9.3 · Seviye 2 · Sinir Ağları ve Derin Öğrenme

Başlatma ve normalizasyon

eğitimin baştan bozulmaması

Yapay Zekâ Akademisi — M09, Eğitimin Zanaatı · 2.567 kelime · 3 saha durumu · ≈ 12 dk okuma · 17 dk dinleme

Saha durumlarındaki kişiler ve kurumlar kurgusaldır; kaynaklar gerçektir. Belirli ürün ve modeller hakkındaki gözlemler yazıldıkları tarihte geçerlidir ve «Tarihli gözlem» etiketiyle yılı belirtilerek verilir. Yapay zekâ çıktıları doğrulanmadan karar dayanağı yapılmaz; dersler hukuki, tıbbi ya da mali danışmanlığın yerini tutmaz.

Açılış

Haziranın ilk pazartesi sabahı tedarikçinin mühendisi Murat Bey'in odasına bir eğitim kaydı getirdi. İkinci kamera için yeni bir deneme yapıyorlardı: genel fotoğraflarla önceden eğitilmiş büyük ağın yerine, kameranın kendi küçük işlemcisine sığacak daha küçük bir ağ, yalnız bandın fotoğraflarıyla, sıfırdan eğitilecekti. Fotoğraflar teknisyenlerin etiketlediği arşivdendi.

Kayıp üç gün boyunca aynı çizgide kalmıştı. Kaydın altındaki tablo her katmanın ağırlıklarına düşen eğimin ortalama büyüklüğünü veriyordu. Son katmanda sayılar okunur büyüklükteydi; girdiye doğru gidildikçe sıfırlar çoğalıyor, ilk üç katmanda eğim sıfırdan neredeyse ayırt edilemiyordu.

"Bu hafta sonu iki şeyi değiştirdik," dedi mühendis. "Ağırlıkların başlangıç değerlerini ve her katmanın arkasına bir düzeltme adımı." Yeni kaydı açtı. Pazartesi başlayan eğitimde kayıp ilk saatte düşmeye başlamıştı.

Aynur Hanım iki kaydı masaya koydu. "Aynı fotoğraflar, aynı ağ, aynı katman sayısı. Ağ henüz hiçbir şey öğrenmemişken verdiğiniz sayılar bu kadar fark eder mi? Neden?"

Murat Bey sözleşme ekine baktı. Eğitilen katmanlar, öğrenme oranı ve eşik yazılıydı; başlangıç değerleri için bir satır yoktu.

Tek fikir

Derin bir ağda sinyal ve eğim her katmanda ağırlıklarla çarpılır; başlangıç ölçeği biraz küçükse ikisi de söner, biraz büyükse patlar. Girdi sayısına göre ölçeklenmiş başlatma ve katman çıktılarını yeniden ortalayan normalleştirme bu çarpımı dengede tutar.

Nasıl çalışır

Ders 8.4'te geri yayılımın her ağırlığa düşen payı, yoldaki değişim hızlarının çarpımı olarak hesapladığını gördük. Aynı derste lojistik fonksiyonun eğiminin çeyreği hiç geçmediğini, on lojistik halkada çarpımın en fazla yaklaşık dokuz virgül beş çarpı on üzeri eksi yediye, yani milyonda birin altına indiğini hesaplamıştık. O olgunun bir adı var.

Çarpım öbür yöne de kayabilir.

Çarpanların bir bölümü aktivasyon fonksiyonundan, bir bölümü ağırlıklardan gelir. Ağırlıklar ise eğitimin ilk adımında henüz hiçbir şey öğrenmemiş, birinin seçtiği sayılardır.

Önce neden rastgele olduğuna bakalım. İki ara birimli küçük bir ağ düşün: tek girdi, iki lojistik ara birim, bir lojistik çıktı. Girdiden ara birimlere giden ağırlıklar sıfır virgül beş, ara birimlerden çıktıya gidenler bir olsun. Girdi bir, doğru cevap sıfırken iki ara birim de aynı çıktıyı, sıfır virgül altmış ikiyi verir. Geri geçişte ikisi aynı payı alır; ilk ağırlıkların eğimi her birinde sıfır virgül sıfır altı üçtür. Üç farklı örnekle üç adım atılınca ağırlıklar değişir ama ikizlik bozulmaz; iki birimli ağ, tek birimli ağ gibi çalışır. Ders 8.4'te Rumelhart ve arkadaşlarının simetriyi kırmak için küçük rastgele ağırlıklarla başladığını anmıştık. Rastgelelik simetriyi kırar; ölçek ise ayrı bir sorudur.

Ölçeği görmek için on katmanlı, her katmanda yüz birim bulunan bir zincir kurduk. Aktivasyon fonksiyonu koymadık ki ölçeğin etkisi tek başına görünsün. Bin rastgele girdinin standart sapmasını katman katman, sonra sondan geriye yollanan rastgele bir hata payının girdiye ulaşan büyüklüğünü ölçtük. Ağırlıklar ortalaması sıfır olan rastgele sayılardı; değişen yalnız yayılımlarıydı. Rastgele sayı üretecinin tohumu sıfırdı.

Ağırlıkların yayılımı1. katmandan sonra5. katmandan sonra10. katmandan sonraGirdiye ulaşan eğim
0,050,500,0310,00100,0011
0,101,000,991,061,08
0,201,9931,71.0801.100

Girdinin yayılımı birdi. Yüz girdili bir birimin toplamının yayılımı, kabaca girdi sayısının karekökü çarpı ağırlıkların yayılımıdır; yüzün karekökü on, on çarpı sıfır virgül sıfır beş de yarım eder. Her katman sinyali yarıya indirir ve on katmanda yarımın onuncu kuvveti, yaklaşık binde bir kalır. Yayılımı iki katına çıkarınca her katman sinyali ikiye katlar; on katmanda bin yirmi dört kat. Geri geçiş aynı ağırlıklardan geçtiği için eğim de aynı yolu izler.

Aktivasyon fonksiyonu eklenince sayılar değişir, mantık kalır. Hiperbolik tanjantla aynı zincirde ağırlık yayılımı sıfır virgül dört olunca son katman çıktılarının yüzde kırk beşi eksi bire ya da artı bire yüzde birden yakındır; Ders 8.2'de gördüğümüz doyma başlar. ReLU girdilerin yaklaşık yarısını sıfırladığı için aynı sezgi ölçeği biraz büyütmeyi ister: aynı hesapta yayılım sıfır virgül birken on ReLU katmanından sonra sinyal yüzde dört civarına iner, ikinin karekökü katına çıkınca bire yakın kalır.

Sezgi şu: bir birim kaç girdiden toplam alıyorsa, ağırlıkların yayılımı o sayının kareköküyle bölünmeli ki toplamın ölçeği girdilerinkine eşit kalsın.

Başlatma yalnız ilk adımı ayarlar. Eğitim ilerledikçe ağırlıklar değişir ve katmanların çıktıları yine kayabilir. İkinci araç bunu her adımda düzeltir.

Örnek grubu, Ders 9.1'deki mini yığındır. Diyelim ki kameranın ağında bir birim dört fotoğraflık bir grupta sıfır virgül sıfır sıfır dokuz, sıfır virgül sıfır on bir, sıfır virgül sıfır on bir ve sıfır virgül sıfır on yedi veriyor; sinyal sönmüş, sayılar küçük. Ortalamaları sıfır virgül sıfır on iki, yayılımları sıfır virgül sıfır sıfır üç. Ortalama çıkarılıp yayılıma bölününce dört sayı eksi bir, eksi üçte bir, eksi üçte bir ve artı üçte beş olur. Sönmüş sinyal yeniden okunur büyüklüğe gelir; sıralama ve aradaki oranlar korunur.

Öğrenilen ölçek ve kaydırma, gerekirse normalleştirmeyi geri alabilecek serbestliği ağa bırakır; her çıktıyı zorla sıfır ortalamaya sabitlemek ağın temsil gücünü kısabilirdi.

Neden işe yaradığı ise başka bir sorudur.

Sahada

Nerede yanılır

İyi bir başlangıç kuralı, ağın ilk adımdaki halini ayarlar; ikinci, onuncu, binci adımı değil. Glorot ve Bengio da eğim yayılımının eğitim ilerledikçe değiştiğini gözler. Başlangıçta sağlıklı görünen bir ağ birkaç bin adım sonra yine sönebilir ya da patlayabilir; katman başına eğim büyüklüğü eğitim boyunca kaydedilmelidir.

Kaybolan gradyanın belirtisi de yanıltıcıdır. Kayıp yavaş iniyorsa insanın ilk aklına gelen öğrenme oranını büyütmektir. Sorun ilk katmanlardaysa bu son katmanları daha hızlı oynatır, ilk katmanları yine kıpırdatmaz; gerçek bir patlamaya da yol açabilir. Açılıştaki eğitim kaydında asıl bilgi kayıp eğrisinde değil, katman katman eğim tablosundaydı.

Toplu normalleştirmenin kendi hataları birlikte işlenen gruptan gelir. Küçük gruplarda ortalama ve yayılım tahminleri gürültülüdür; aynı fotoğraf hangi grupta olduğuna göre farklı sayıya çevrilir. Gruplar rastgele değil de sıralı kurulursa bir başka tuzak açılır: Murat Bey'in arşivinde bütün gece fotoğrafları aynı gruplara düşerse, normalleştirme o grubun ortak karanlığını ortalamayla birlikte çıkarır. Kullanımda sabit istatistik bu ayrımı geri getirir ve ağ eğitimde görmediği bir girdiyle karşılaşır. Onur'un karışıklığı da bu ailedendir: hangi istatistiğin çalıştığı kodda bir ayardır ve ayar yanlış kalırsa model hata vermez, yalnız cevapları yanındaki örneklere göre oynar.

Uygulama

Bir hesap tablosuyla zincirin çarpanını kuracak, iki başlatma kuralını karşılaştıracak ve dört sayılık bir grupta normalleştirmeyi elle yapacaksın. Bütün sayılar dersin içinde.

  1. A sütununa sıfırdan ona kadar katman numaralarını yaz. B, C ve D sütunlarının sıfırıncı satırına bir yaz; bu, girdinin yayılımıdır.
  2. Her katmanda yüz girdi olsun. Bir katmanın çarpanı yüzün karekökü çarpı ağırlık yayılımıdır. B sütununda yayılım sıfır virgül sıfır beş, C sütununda sıfır virgül bir, D sütununda sıfır virgül iki için her satırı bir önceki satır çarpı çarpan olarak doldur.
  3. Eski yaygın kural ağırlıkları eksi bir bölü kök n ile artı bir bölü kök n arasında düzgün dağılımdan çekiyordu. Eksi a ile artı a arasındaki düzgün dağılımın varyansı a'nın karesinin üçte biridir. Yüz girdi için girdi sayısı çarpı varyansı hesapla, karekökünü alıp katman çarpanını bul ve on katmanda sinyalin ne kadarının kaldığını E sütununda göster.
  4. Glorot ve Bengio'nun önerisi sınırı altının karekökü bölü giren ve çıkan birim sayıları toplamının karekökü yapar. Giren de çıkan da yüz iken sınırı ve varyansı hesapla, girdi sayısıyla çarp.
  5. Dört sayıyı yaz: sıfır virgül sıfır sıfır dokuz, sıfır virgül sıfır on bir, sıfır virgül sıfır on bir, sıfır virgül sıfır on yedi. Ortalamalarını ve yayılımlarını bul, her birinden ortalamayı çıkarıp yayılıma böl. Sonra ölçek iki, kaydırma sıfır virgül beş alarak her sonucu ikiyle çarpıp sıfır virgül beş ekle.
  6. Onuncu satırdaki üç değeri dersin tablosuyla karşılaştır ve bir cümleyle yaz: açılıştaki ağın ilk katmanlarında eğimin sönmesi hangi sütuna benziyor?

Sayılar doğru gittiyse onuncu satırda B sütunu yaklaşık binde bir, C sütunu bir, D sütunu bin yirmi dört olur. Eski kuralda girdi sayısı çarpı varyans üçte birdir; katman çarpanı yaklaşık sıfır virgül elli sekiz, on katmanda sinyalin yaklaşık binde dördü kalır. Önerilen kuralda sınır yaklaşık sıfır virgül on yedi, varyans yüzde bir, girdi sayısıyla çarpımı tam bir. Normalleştirilen dört sayı eksi bir, eksi sıfır virgül otuz üç, eksi sıfır virgül otuz üç ve bir virgül altmış yedi; ölçek ve kaydırmadan sonra eksi bir virgül beş, eksi sıfır virgül on yedi, eksi sıfır virgül on yedi ve üç virgül seksen üç.

Defter: Hesap tablosundan üç satırı, onuncu katmandaki üç sinyal değerini ve eski kuralın binde dördünü "Başlangıç kaydı" adlı sayfaya geçir. Altına, bir eğitim raporunda başlatma için hangi üç bilginin yazılı olmasını isteyeceğini kendi cümlelerinle not et.

Hata köşesi

Yaygın yanlış"Başlangıç değerleri önemsizdir, eğitim nasılsa hepsini değiştirir."
Doğrusu

Eğitim ağırlıkları eğimle değiştirir, eğim de başlangıçtaki ağırlıklardan geçerek hesaplanır. Eşit başlayan birimler hiç ayrışmaz, çok küçük ölçekle başlayan katmanlar neredeyse hiç eğim almaz. Açılıştaki iki eğitimin farkı yalnız başlangıçtaydı.

Yaygın yanlış"Toplu normalleştirme varsa girdileri ölçeklemeye gerek yok."
Doğrusu

Toplu normalleştirme ağın içindeki birimlerin çıktılarını düzeltir; girdi sütunlarının birimlerini ve eksik değerlerini düzeltmez. Melis'in tablosundaki lira ve yıl sütunları ilk katmana ulaşmadan ölçeklenmelidir ve aynı ölçekleme sayıları canlı veride de kullanılır.

Sorumluluk

Başlatma kuralı, rastgele tohum ve normalleştirme ayarları, ağın baştan bozulup bozulmayacağını belirleyen kararlardır; raporda görünmezlerse sorgulanamazlar. Murat Bey'in sözleşme ekine bu yüzden yeni satırlar girer: hangi başlatma kuralının ve hangi tohumun kullanıldığı, toplu normalleştirmenin kullanımda hangi sabit istatistiklerle çalıştığı ve bu istatistiklerin hangi tarihteki, hangi vardiyanın fotoğraflarından hesaplandığı. Sayıları seçmekten tedarikçinin mühendisi sorumludur; eğitimin tekrarlanabildiğini ve kullanımdaki cevabın aynı fotoğrafa her seferinde aynı olduğunu doğrulamak Aynur Hanım'ın ekibine düşer. Yanlış bir ayarın bedelini gece vardiyasında boşuna atılan kutular ve kaçan ezikler öder.

Kapanış

  1. Derin bir ağda sinyal ve eğim her katmanda ağırlıklarla çarpılır; çarpan birden küçükse kaybolan gradyan, büyükse patlayan gradyan ortaya çıkar ve on katmanda yarım ile iki arasındaki fark binde birle bin arasındaki farka dönüşür.
  2. Ağırlıklar rastgele başlatılır ki birimler ayrışsın; ölçekleri birimin girdi sayısına göre seçilir ki sinyalin ve eğimin yayılımı katmanlar boyunca korunsun.
  3. Toplu normalleştirme her birimin çıktısını birlikte işlenen örneklerle ortalayıp ölçekler ve eğitimi hızlandırır; neden işe yaradığı tartışmalıdır, kullanımda sabit istatistiklerle çalışması ise denetlenmesi gereken bir ayardır.

Üç soru

  1. Aynur Hanım'ın sorusuna dön: ağ henüz hiçbir şey öğrenmemişken başlangıç sayıları neden eğitimin yürüyüp yürümeyeceğini belirleyebiliyor?
  2. Dersin tablosunda yayılım sıfır virgül sıfır beşten sıfır virgül ikiye yalnız dört kat büyüdü; onuncu katmandaki sinyal neden yaklaşık bir milyon kat değişti?
  3. Onur'un ağı aynı başvuruya neden iki farklı cevap verdi ve sabit istatistiğe geçmek bunu nasıl düzeltti?

Yanıtlar

  1. Geri yayılım her ağırlığın eğimini başlangıçtaki ağırlıklardan geçerek hesaplar. Ölçek çok küçükse ilk katmanlara ulaşan eğim sıfıra yakındır ve o ağırlıklar neredeyse değişmez; bütün ağırlıklar eşitse birimler hiç ayrışmaz.
  2. Değişim katman başına çarpanda değil, çarpanın on kez tekrarlanmasındadır. Sıfır virgül sıfır beşte çarpan yarım, sıfır virgül ikide iki olur; yarımın onuncu kuvveti yaklaşık binde bir, ikininki bin yirmi dörttür. İkisinin oranı yaklaşık bir milyondur, katman sayısı arttıkça fark daha da açılır.
  3. Canlı sistem eğitimdeki gibi o anda birlikte gelen başvuruların ortalamasıyla ve yayılımıyla normalleştiriyordu. Eğitim verisinden hesaplanmış sabit ortalama ve yayılım kullanılınca normalleştirme her başvuru için aynı doğrusal dönüşüm olur ve cevap yalnız başvurunun kendisine bağlı kalır.

Sonraki derse köprü

Başlatma ve normalleştirme eğitimin yürümesini sağlar; yürüyen bir eğitim ise derin bir ağı, yeterince uzun sürerse, bandın fotoğraflarını ezberlemeye kadar götürebilir. Ders 9.4, Erken durdurma ve bırakma, derin ağda aşırı öğrenmeye karşı kullanılan araçları ele alıyor: eğitimi ne zaman durdurmalı ve bir ağın birimlerini eğitim sırasında bilerek susturmak ezbere karşı nasıl işler?

Anlamadığın bir yer mi var?

Mentor yalnız bu dersin metnine dayanarak cevap verir. Metinde geçmeyen bir şey sorarsan uydurmaz, geçmediğini söyler.