İçeriğe geç

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

Geri yayılım

hatanın katmanlar boyunca geri dağıtılması

Yapay Zekâ Akademisi — M08, Yapay Nöron · 2.587 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ış

Mayıs ortasında bir perşembe Burcu, istenmeyenler klasöründe iki gündür bekleyen bir iletiyi Onur'a gösterdi. Bornova'daki bir fırın yazmıştı: "Bahar kampanyasında kazandığımız indirim bu ayın faturasına yansımamış, kontrol eder misiniz?"

Onur süzgeci iki hafta önce yeniden kurmuştu. Kelime girdili algılayıcı "kazandınız" ile "fatura"nın aynı iletide geçmesini göremiyordu; o da kelimelerle çıktının arasına dört birimlik bir ara kat eklemişti. Yine de bu ileti çıktıdan yüzde seksen dokuz "istenmeyen" almıştı.

"Algılayıcıda ne yapıyordun?" diye sordu Burcu. "Yanlış bir iletiyi düzeltmek için."

"İletide geçen kelimelerin ağırlıklarını hata yönünde biraz kaydırıyordum. Hata çıktının hatasıydı, ağırlıklar da doğrudan çıktıya bağlıydı."

Onur ağırlık dosyasını açtı. Kelimelerden ara birimlere yüz yirmi, ara birimlerden çıktıya dört ağırlık vardı. Çıktının ne demesi gerektiğini Burcu'nun etiketi söylüyordu. Üçüncü ara birimin bu iletide ne demesi gerektiğini ise kimse yazmamıştı; o birimin bir doğru cevabı yoktu.

Burcu kâğıda dört kutu çizdi. "Hangisi yanlış yaptı?"

"Hepsi biraz," dedi Onur. "Asıl soru, bu yanlışın ne kadarının hangi sayıya yazılacağı."

Tek fikir

Geri yayılım, çıktıdaki hatayı ağın içine geriye doğru dağıtır: her ağırlığın payı, o ağırlıktan çıktıya giden yol üzerindeki değişim hızlarının çarpımıdır. Bu paylar gradyan inişine verilir ve ağırlıklar kaybı azaltan yöne kaydırılır.

Nasıl çalışır

Ders 4.6'da gradyanı iki yolla bulduk. Birincisi denemekti: bir ayarı onda bir artırıp kaybı yeniden hesaplamak. İkincisi kare hatanın eğimini doğrudan yazmaktı. Onur'un süzgecinde yüz yirmi dört ağırlık ve beş sabit terim var; deneme yolu her düzeltmede yüz yirmi dokuz ek hesap ister. Doğrudan yazmak gerekir, ama ara birimlerin ağırlıkları çıktıya bir aracı üzerinden bağlıdır.

Sayıyla görelim. Bir fırın un kilosunu otuz liraya alıyor ve her ekmeğe sıfır virgül dört kilo un harcıyor. Bir ekmek fazla pişirmek un harcamasını sıfır virgül dört kilo artırır; bir kilo fazla un maliyeti otuz lira artırır. Bir ekmek fazla pişirmek maliyeti sıfır virgül dört çarpı otuz, yani on iki lira artırır.

Ağda da aynısı olur. Bir ağırlık bir ara birimin toplamını değiştirir, o toplam ara birimin çıktısını, o çıktı son birimin toplamını, o toplam ağın cevabını, cevap da kaybı. Her halkanın değişim hızı yerel ve kolay hesaplanır. Çarpınca o ağırlığın kayba etkisi çıkar.

Bütün döngü dört adımdır. İleri geçişte cevap ve kayıp bulunur. Kayıp, Ders 4.5'te tanımladığımız gibi cevabın doğru cevaptan ne kadar uzak olduğunu tek sayıya çevirir. Geri geçişte eğimler hesaplanır. Son adım, Ders 4.6'daki gradyan inişi adımıdır: her ağırlıktan, eğimi çarpı öğrenme oranı çıkarılır.

Onur'un ağını kâğıda sığdıralım. Tek bir kelime girdisi, tek bir ara birim, tek bir çıktı. Girdi, iletide "kazan" kökü geçiyorsa bir. Ara birimin ağırlığı bir, sabiti sıfır. Çıktının ara birimden gelen ağırlığı iki, sabiti eksi sıfır virgül beş. İki birim de toplamını S biçimli lojistik eğriden geçirir. Kayıp, cevap ile doğru cevap arasındaki farkın karesi. Burcu'nun etiketine göre doğru cevap sıfır, yani "istenmeyen değil".

İleri geçiş. Ara birimin toplamı bir; lojistik fonksiyon onu sıfır virgül yetmiş üçe çevirir. Çıktının toplamı iki çarpı sıfır virgül yetmiş üç eksi sıfır virgül beş, yani sıfır virgül doksan altı; lojistik fonksiyondan sonra sıfır virgül yetmiş iki. Kayıp sıfır virgül yetmiş ikinin karesi, sıfır virgül elli iki.

Geri geçiş kayıptan başlar. Kaybın cevaba göre eğimi farkın iki katıdır: bir virgül kırk beş. Lojistik fonksiyonun eğimi, çıktısı çarpı bir eksi çıktısıdır; burada sıfır virgül yetmiş iki çarpı sıfır virgül yirmi sekiz, yani sıfır virgül yirmi. Çarpınca kaybın çıktı toplamına göre eğimi sıfır virgül yirmi dokuz çıkar. Bu sayı, çıktı biriminin hata payıdır.

O paydan iki şey okunur. Çıktı ağırlığının eğimi, bu payın o ağırlığın girdisiyle çarpımıdır: sıfır virgül yirmi dokuz çarpı sıfır virgül yetmiş üç, sıfır virgül yirmi bir. Çıktının sabitinin eğimi payın kendisidir. Ara birime düşen pay ise aynı sayının bu kez ağırlıkla çarpımıdır: sıfır virgül yirmi dokuz çarpı iki, sıfır virgül elli sekiz. Ara birimin kendi lojistik eğimi sıfır virgül yetmiş üç çarpı sıfır virgül yirmi yedi, yaklaşık sıfır virgül yirmi. Çarpınca ara birimin toplamına düşen pay sıfır virgül on bir olur. Girdi bir olduğu için birinci ağırlığın eğimi de sıfır virgül on birdir.

AyarElle zincir kuralıyla0,001 oynatınca
Çıktı ağırlığı (2)0,21160,2116
Çıktı sabiti (−0,5)0,28950,2894
Ara birim ağırlığı (1)0,11380,1138
Ara birim sabiti (0)0,11380,1138

Tablonun ikinci sütunu Ders 4.6'nın deneme yoluyla bulundu: her ayar tek başına binde bir artırıldı, kayıp yeniden hesaplandı, fark binde bire bölündü. İki yol dördüncü haneye kadar aynı sonucu verir.

Son adım gradyan inişi. Öğrenme oranı sıfır virgül beş olsun. Çıktı ağırlığı ikiden bir virgül seksen dokuza, çıktının sabiti eksi sıfır virgül altmış dörde, ara birimin ağırlığı sıfır virgül doksan dörde, sabiti eksi sıfır virgül sıfır altıya iner. Ağın cevabı tek adımda yüzde yetmiş ikiden yüzde altmış yediye düştü. Yanlışın en büyük payını çıktıya en yakın ayarlar aldı; ara birimin ağırlığına düşen pay, aradaki iki halkanın eğimiyle küçüldü.

Daha büyük bir ağda hesaba tek bir ekleme gerekir. Bir ara birim birden çok çıktıya bağlıysa, ona düşen pay her çıktıdan gelen payların toplamıdır. Kelimelerden gelen yüz yirmi ağırlığın her biri de bağlı olduğu ara birimin payını kendi girdisiyle çarpar. İletide geçmeyen kelimenin girdisi sıfırdır; o ağırlık bu iletiden hiçbir şey öğrenmez. Algılayıcıda da böyleydi; değişen, ara birimlerin artık bir doğru cevaba ihtiyaç duymadan pay alabilmesidir.

Deneme yolu her ayar için ağı bir kez daha çalıştırır; geri geçiş bütün eğimleri tek seferde verir.

Yöntemin kime ait olduğu da kolay cevaplanmaz.

Sahada

Nerede yanılır

Geri yayılımın verdiği eğim yereldir ve üç yerde yanıltır.

Birincisi başlangıçtır. Onur dört ara birimin bütün ağırlıklarını aynı sayıyla başlatsaydı, dört birim her iletide aynı toplamı, aynı çıktıyı ve geri geçişte aynı payı alırdı. Aynı payla aynı miktarda kayarlar ve sonsuza dek ikiz kalırlar; dört birim tek birim gibi çalışır. Kayıp yine düşer ve eğitim kaydı normal görünür. Rumelhart ve arkadaşları simetriyi kırmak için küçük rastgele başlangıç ağırlıkları kullanır. Başlangıcın rastgele olduğu ve hangi tohumla seçildiği kayda girmezse aynı eğitim tekrarlanamaz.

İkincisi zincirin uzunluğudur. Lojistik fonksiyonun eğimi hiçbir zaman çeyreği geçmez. Örnekte ara birimin payı, çıktınınkinin yarısından da azdı. Her lojistik halka payı en az dört kat küçültür; ağırlıklar büyük değilse on halkalık bir zincirde ilk katmana ulaşan pay, sondakinin milyonda birinden küçüktür. İlk katmanların ağırlıkları neredeyse kıpırdamaz, kayıp yavaşça düşer ve sorun eğitim kaydında öğrenme oranının küçüklüğü gibi görünür. Bu olgu Modül 9'da derin ağların eğitimi konuşulurken adıyla ele alınacak.

Üçüncüsü yüzeyin biçimidir. Ders 4.6'da Melis'in kayıp yüzeyinde tek bir çukur vardı. Ara birimli ağlarda yüzey böyle olmak zorunda değildir; makale de yöntemin en belirgin kusurunu, hata yüzeyinin yerel çukurlar içerebilmesi ve gradyan inişinin en alçak noktayı bulmasının garanti olmaması olarak yazar. Yazarların gözlemine göre ağlar kötü çukurlara nadiren takılıyordu, ama bu bir deneyimdi, ispat değil.

Uygulama

Kâğıt, kalem ve hesap makinesiyle Onur'un küçük ağının bir başka sürümünde bir ileri, bir geri geçişi izleyeceksin ve sonucunu deneme yoluyla sınayacaksın. Lojistik fonksiyon için hesap makinesinin üstel tuşu yeter: bir bölü bir artı e üzeri eksi toplam.

  1. Ayarlar şöyle: ara birim ağırlığı iki, ara birim sabiti eksi bir, çıktı ağırlığı üç, çıktı sabiti eksi bir. Girdi bir, doğru cevap sıfır, kayıp farkın karesi.
  2. İleri geçişi yap. Ara birimin toplamını, lojistik çıktısını, çıktı biriminin toplamını, ağın cevabını ve kaybı ayrı satırlara yaz. Ara sonuçları silme; geri geçişte lazım olacak.
  3. Kaybın cevaba göre eğimini bul, sonra çıktı biriminin lojistik eğimini, cevap çarpı bir eksi cevap olarak hesapla. İkisini çarparak çıktının hata payını yaz.
  4. Bu paydan çıktı ağırlığının ve çıktı sabitinin eğimini bul. Payı çıktı ağırlığıyla çarparak ara birime düşen payı, sonra ara birimin lojistik eğimiyle çarparak ara birimin toplamına düşen payı yaz. Ara birim ağırlığının ve sabitinin eğimini bul.
  5. Ara birim ağırlığını iki virgül sıfır bir yap, öteki ayarları değiştirmeden kaybı yeniden hesapla. Farkı sıfır virgül sıfır bire böl ve dördüncü adımdaki eğimle karşılaştır.
  6. Öğrenme oranı sıfır virgül beşle dört ayarı güncelle ve yeni kaybı hesapla.
  7. Hangi ayarın en büyük payı aldığını, hangisinin en küçüğünü aldığını ve aradaki farkın hangi halkadan geldiğini bir cümleyle yaz.

Sayılar doğru gittiyse şunları görürsün. Ara birimin çıktısı sıfır virgül yetmiş üç, ağın cevabı sıfır virgül yetmiş yedi, kayıp sıfır virgül elli dokuz. Çıktının hata payı sıfır virgül yirmi yedi; çıktı ağırlığının eğimi sıfır virgül yirmi, ara birim ağırlığınınki sıfır virgül on altı. Oynatma farkı yüzde bire bölününce sıfır virgül on altıya yakın bir sayı verir. Adımdan sonra kayıp sıfır virgül elliye iner.

Defter: "Hatanın yolu" başlıklı sayfaya ileri geçişin beş satırını, geri geçişin eğimlerini ve oynatma sonucunu koy. Altına, Burcu'nun iletisinin bir gün yeniden yanlış süzüleceğini düşünerek, hangi kayıtların eğitimi tekrarlanabilir kılacağını iki cümleyle yaz.

Hata köşesi

Yaygın yanlış"Geri yayılım ağın öğrenme yöntemidir."
Doğrusu

Geri yayılım yalnız eğimleri hesaplar. Ağırlıkları kaydıran gradyan inişidir; öğrenme oranını, adım sayısını ve hangi örneklerin kullanılacağını ise bir insan seçer. Aynı geri yayılım farklı bir güncelleme kuralıyla da kullanılabilir.

Yaygın yanlış"Bir ağırlığın eğimi büyükse hatanın sorumlusu odur."
Doğrusu

Eğim, o ağırlık biraz değişirse kaybın ne kadar değişeceğini söyler; bir neden ya da kusur iddiası değildir. Açılış örneğinde çıktı ağırlığı en büyük payı aldı, çünkü kayba en yakın halkaydı. Yanlış etiketlenmiş bir eğitim örneği ya da eksik bir kelime girdisi hiçbir ağırlıkta görünmez.

Sorumluluk

Geri yayılım, bir yanlışın sayısal payını her ağırlığa dağıtır; kararın payını dağıtmaz. Fırının faturası iki gün gecikti ve bunun bedelini fırın ile destek ekibi taşıdı. Onur bu iletiyle eğitimi güncellemeye karar verirse, hangi iletilerin eklendiğini, başlangıç tohumunu, öğrenme oranını ve adım sayısını kaydetmekten sorumludur. Burcu'nun etiketleri ağın doğru cevaplarıdır; geri yayılım onları sorgulamaz, ne yazılmışsa ona doğru iter. Bu yüzden her güncellemeden sonra sonuç, eğitimde hiç kullanılmamış iletilerle doğrulanır ve yanlış süzülme oranı tarihiyle yazılır.

Kapanış

  1. Zincir kuralı, uçtaki değişim hızını aradaki adımların değişim hızlarının çarpımı olarak verir; geri yayılım bu çarpımı kayıptan başlayıp birim birim geriye doğru hesaplar.
  2. Bir eğitim adımı dört parçadır: ileri geçiş, kayıp, geri geçiş ve gradyan inişi; elle bulunan eğim, ayarı küçük bir miktar oynatarak denetlenebilir.
  3. Eğim yerel bir duyarlılıktır, bir kusur iddiası değildir; eşit başlangıç, uzun lojistik zincirler ve yerel çukurlar onu yanıltır, kayıtları tutmak ve sonucu doğrulamak insana kalır.

Üç soru

  1. Onur'un ara birimlerinin bir doğru cevabı yoktu. Geri yayılım onlara yine de nasıl bir hata payı verebiliyor?
  2. Açılış örneğinde çıktı ağırlığının eğimi sıfır virgül yirmi bir, ara birim ağırlığınınki sıfır virgül on bir çıktı. Aradaki fark nereden geliyor?
  3. Melis'in hatası neden yalnız eğitim kaybı artınca görünür oldu ve sayısal denetim onu nasıl yakaladı?

Yanıtlar

  1. Ara birimin payı, çıktı biriminin hata payının o ara birimi çıktıya bağlayan ağırlıkla çarpımıdır; ardından ara birimin kendi lojistik eğimiyle çarpılır. Böylece ara birimin ne demesi gerektiğini kimse yazmadan, çıktının hatasından ona düşen pay zincir kuralıyla hesaplanır.
  2. Çıktı ağırlığının eğimi hata payını yalnız ara birimin çıktısıyla çarpar. Ara birim ağırlığına ulaşmak için pay önce çıktı ağırlığıyla, sonra ara birimin sıfır virgül yirmi civarındaki lojistik eğimiyle çarpılır. Kayba uzak halkalar bu ek çarpanlarla küçülür.
  3. Ters işaretli eğim ağırlıkları yokuş yukarı kaydırır, bu yüzden kayıp düşmek yerine artar; hesabın kendisi hata vermez. Her ağırlığı binde bir oynatıp kaybın gerçekten nasıl değiştiğini ölçmek, elle yazılan eğimden bağımsız bir doğrulama sağlar ve işaret farkını hemen gösterir.

Sonraki derse köprü

Geri yayılım ağa yalnız şu anki yerinden hangi yönün yokuş aşağı olduğunu söyler; ağın varabileceği en iyi ağırlıkları görmez. Ders 8.5, Evrensel yaklaşım ve sınırı, yeterince ara birimi olan bir ağın neredeyse her kuralı yaklaşık olarak temsil edebileceği iddiasını ele alıyor ve şunu soruyor: bir ağın bir kuralı temsil edebilmesi, geri yayılım ile gradyan inişinin o ağırlıkları bulacağı anlamına gelir mi?

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.