İçeriğe geç

8.6 · Seviye 2 · Sinir Ağları ve Derin Öğrenme · Atölye

Küçük bir ağı elle izle

iki katmanlı ağda bir ileri ve bir geri geçişi hesaplamak

Yapay Zekâ Akademisi — M08, Yapay Nöron · 2.308 kelime · 3 saha durumu · ≈ 10 dk okuma · 15 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ış

Zeynep Hanım bilim şenliği panosunun yarısını boş bıraktı. Öbür yarıda sınıfın nisan boyunca hazırladığı fasulye posteri duruyordu. Boş yarıya ne geleceğini salı günü sınıfa söyledi: YA DA tablosunu öğrenen bir ağ, ama bilgisayarda değil, kâğıtta.

Elçin'in iki hafta önceki ağı tahtada hâlâ duruyordu: öndeki iki nöron, arkalarında birer kesme, en sonda çıkış. Zeynep Hanım kesmeleri sildi ve yerlerine yumuşak S eğrisini, lojistik fonksiyonu çizdi. "Bilgisayardaki ağlar kesmeyle değil, bununla eğitiliyor. Ağırlıklara dokunmadan dört satırı yeniden hesaplayın."

Berk hesap makinesiyle ilk satırı bitirdi, Mert ikincisini. Her satırda ağın cevabı yüzde kırk iki ile kırk dört arasında çıktı. Doruk kâğıtları yan yana dizdi. "Kesme varken her satırı biliyordu. Eğriyi koyunca hiçbirini bilmiyor."

"O zaman ağırlıkları biz seçmeyelim," dedi Zeynep Hanım. "Bir satır verelim, ağ kendi düzeltsin. Biz yalnız hesabı yapalım."

Panoya dokuz kart çizdi. Berk ileri geçişi ve kaybı alacaktı, Elçin çıktı biriminin payını, Mert gizli birimlerin payını, Doruk güncellemeyi ve yeniden hesabı. Son kart kimseye verilmedi; üstüne "denetim" yazdı.

Berk kartlara baktı. "Bir satır için dokuz ağırlık mı değişecek? Hangisinin ne kadar değişeceğini kim söyleyecek?"

Tek fikir

Küçük bir ağda tek bir eğitim örneğiyle yapılan bir ileri ve bir geri geçiş, kâğıtta dokuz ayrı sayıya iner; her ağırlığın düzeltmesi, ona bağlı birimin hata payı ile o ağırlığa gelen girdinin çarpımıdır ve sayısal oynatmayla denetlenebilir.

Nasıl çalışır

Ders 8.4'te bir girdili, tek ara birimli bir ağda hatanın yolunu izledik; yol tekti, pay da bir halkadan ötekine çarpılarak geçiyordu. Zeynep Hanım'ın ağında iki girdi, iki gizli birim ve bir çıkış var. İki yeni şey ortaya çıkar. Çıkışın hata payı artık iki gizli birime bölünür ve her birine kendi bağlantı ağırlığı oranında gider. Ağırlıkların bir kısmı ise bu örnekten hiçbir şey öğrenmez, çünkü taşıdıkları girdi sıfırdır.

Bu hesabın düzenini aşağıda kaynağını verdiğimiz ders kitabı dört kısa kurala bağlar ve her birini söze çevirebiliriz.

Birinci kural çıkış içindir: çıkış biriminin hata payı, kaybın ağın cevabına göre eğimi ile lojistik fonksiyonun o noktadaki eğiminin çarpımıdır. İkinci kural gizli katman içindir: bir gizli birimin payı, bağlı olduğu sonraki birimlerin paylarının bağlantı ağırlıklarıyla çarpılıp toplanması, ardından o birimin kendi lojistik eğimiyle çarpılmasıdır. Üçüncü kural sabit terim içindir: bir birimin sabitinin eğimi, o birimin payının kendisidir. Dördüncü kural ağırlık içindir: bir ağırlığın eğimi, o ağırlığa gelen sayı ile ağırlığın vardığı birimin payının çarpımıdır.

Lojistik fonksiyonun eğimi, Ders 8.4'te gördüğümüz gibi, çıktısı çarpı bir eksi çıktısıdır. Kaybı bu derste de cevap ile doğru cevap arasındaki farkın karesi olarak alıyoruz; kaybın cevaba göre eğimi bu yüzden farkın iki katıdır.

Elle yapılan bir hesabın doğru olup olmadığını ayrı bir yolla sınamak gerekir.

Ders 4.6'da ve 8.4'te bu yolu "deneme yolu" diye kullandık; burada ona görevini veren adla anıyoruz. Oynatmanın bir inceliği vardır. Ayarı yalnız yukarı oynatırsan bulduğun eğimin hatası oynatma miktarıyla birlikte küçülür. Hem yukarı hem aşağı oynatıp iki kaybın farkını oynatmanın iki katına bölersen hata çok daha hızlı küçülür.

Sahada

Nerede yanılır

Elle izlenen bir eğitim adımı sınıfı doğal olarak şu yargıya götürür: kayıp düştüyse ağ öğreniyordur. Atölyenin sayıları bu yargının nerede kırıldığını gösteriyor.

Adım yalnız bir satırla atıldı. O satırda cevap yüzde kırk üç virgül altmış altıdan yüzde kırk dokuz virgül yetmişe çıktı, kayıp sıfır virgül otuz ikiden sıfır virgül yirmi beşe indi. Aynı yeni ağırlıklarla dört satır yeniden hesaplanınca başka bir tablo çıkar. Sıfır sıfır ve bir bir satırlarında doğru cevap sıfırdır, ağın cevabı ise ikisinde de yükselmiştir; o iki satırın kaybı arttı. Ağ bir satırı düzeltirken ötekileri o satıra benzetmiştir.

İkinci kırılma hesaplanan payın büyüklüğündedir. Nielsen'in gözlemi burada sayıya döner: çıkış birimi sıfıra ya da bire dayandığında lojistik eğimi sıfıra yaklaşır ve pay, ağın ne kadar yanıldığından bağımsız olarak küçülür. Ağ en emin olduğu yanlıştan en az şeyi öğrenir. Atölyede çıkışın lojistik eğimi sıfır virgül yirmi beşe, yani en büyük değerine yakındı. Ağ doğru cevabı sıfır olan bir satıra yüzde doksan dokuz deseydi, hata çok daha büyük olduğu hâlde pay sıfır virgül sıfır iki civarında, atölyedekinin onda birinden küçük çıkardı.

Üçüncü kırılma denetimin kendisindedir. Kaybı dört hanede yuvarlarsan binde birlik oynatma kaybı hiç değiştirmez ve eğim sıfır görünür; denetim, hesabın değil yuvarlamanın sonucunu verir. ReLU'lu bir ağda da Onur'un gördüğü gibi kırılma noktasının yanındaki birimler doğru bir hesabı yanlış gösterebilir.

Uygulama

Bu atölyede panodaki dokuz kartı sen dolduracaksın. Gereken kâğıt, kalem ve üstel tuşu olan bir hesap makinesi; lojistik fonksiyonu, bir bölü bir artı e üzeri eksi toplam olarak hesaplarsın. Ağ şöyle kurulu.

Birinci gizli birim iki girdiyi birer ağırlıkla toplar ve eksi sıfır virgül beş ekler. İkinci gizli birim iki girdiyi yine birer ağırlıkla toplar ve eksi bir virgül beş ekler. Çıkış birinci gizli birimin çıktısını artı bir, ikincisininkini eksi bir ağırlıkla alır ve eksi sıfır virgül beş ekler. Her birim toplamını lojistik fonksiyondan geçirir. Eğitim örneği YA DA tablosunun bir sıfır satırıdır: birinci girdi bir, ikinci girdi sıfır, doğru cevap bir. Kayıp farkın karesi, öğrenme oranı sıfır virgül beş.

  1. İleri geçiş. İki gizli birimin toplamını ve lojistik çıktısını, sonra çıkışın toplamını ve ağın cevabını ayrı satırlara yaz. Ara sayıları dört hanede tut ve silme.
  2. Kayıp. Cevap ile bir arasındaki farkın karesini al.
  3. Çıkışın hata payı. Kaybın cevaba göre eğimini, yani iki çarpı cevap eksi biri bul; cevap çarpı bir eksi cevap olarak lojistik eğimi bul; ikisini çarp.
  4. Çıkış ağırlıklarının eğimleri. Payı birinci gizli birimin çıktısıyla, sonra ikincisininkiyle çarp. Çıkışın sabitinin eğimi payın kendisidir.
  5. Gizli birimlere düşen paylar. Çıkışın payını önce artı bir, sonra eksi birle çarp. Her gizli birimin lojistik eğimini bul ve kendi payıyla çarp.
  6. Gizli ağırlıkların eğimleri. Her gizli birimin payını birinci girdiyle, ikinci girdiyle ve sabit için birle çarp; altı eğim yaz.
  7. Güncelleme. Dokuz ayarın her birinden, eğimi çarpı sıfır virgül beşi çıkar.
  8. Yeniden ileri geçiş. Yeni ayarlarla birinci adımı tekrarla ve yeni kaybı eskisiyle karşılaştır.
  9. Denetim. İlk ayarlara dön, yalnız birinci girdiden birinci gizli birime giden ağırlığı bir virgül sıfır bir yap, kaybı altı hanede hesapla. Farkı sıfır virgül sıfır bire böl ve altıncı adımdaki eğimle karşılaştır. Sonra aynı ağırlığı sıfır virgül doksan dokuz yapıp iki kayıp arasındaki farkı sıfır virgül sıfır ikiye böl.
KartBüyüklükDeğer
1Gizli birimlerin toplamı (1. ve 2.)0,5000 ve −0,5000
1Gizli birimlerin çıktısı0,6225 ve 0,3775
1Çıkışın toplamı ve ağın cevabı−0,2551 ve 0,4366
2Kayıp0,3174
3Kaybın cevaba göre eğimi, lojistik eğim−1,1269 ve 0,2460
3Çıkışın hata payı−0,2772
4Çıkış ağırlıklarının eğimi (1., 2.), sabitin eğimi−0,1725, −0,1046, −0,2772
5Gizli birimlere gelen pay−0,2772 ve +0,2772
5Gizli birimlerin lojistik eğimi0,2350 ve 0,2350
5Gizli birimlerin hata payı−0,0651 ve +0,0651
6Birinci gizli birim: 1. girdi, 2. girdi, sabit−0,0651, 0, −0,0651
6İkinci gizli birim: 1. girdi, 2. girdi, sabit+0,0651, 0, +0,0651
7Birinci gizli birim yeni ayarları1,0326, 1, −0,4674
7İkinci gizli birim yeni ayarları0,9674, 1, −1,5326
7Çıkışın yeni ayarları1,0863, −0,9477, −0,3614
8Yeni cevap ve yeni kayıp0,4970 ve 0,2530
9Kayıp, oynatma öncesi ve sonrası0,317450 ve 0,316799
9Tek yönlü ve iki yönlü sayısal eğim−0,0650 ve −0,0651

Çıkışın toplamında son hanede bir fark bulursan yuvarlamadandır. Tabloyu okurken üç yere dikkat et. Çıkışın payı iki gizli birime zıt işaretle gitti: çıkış ağırlığı artı olan birim büyütülecek, eksi olan küçültülecek. İkinci girdiden gelen iki ağırlığın eğimi tam sıfırdır, çünkü bu satırda ikinci girdi sıfırdı; Nielsen'in düşük etkinlikli birim gözleminin en uç hâli. En büyük düzeltmeyi kayba en yakın sabit aldı; sıfır olmayanlar arasında en küçüğünü girdiye en yakın ağırlıklar.

Defter: Dokuz kartın tablosunu "Elle eğitim" adlı bir sayfaya kendi sayılarınla geçir ve tablodaki değerlerden ayrılan her satırın yanına, hatanın hangi kartta başladığını yaz. Altına iki satır ekle: bir sıfır satırında atılan adımın bir bir satırına ne yaptığı, ve bu ağ dört satırı birden öğrenecekse bir adımda hangi satırların hesaba girmesi gerektiği.

Hata köşesi

Yaygın yanlış"Sayısal türev denetimi geçtiyse ağ doğru öğreniyor."
Doğrusu

Denetim yalnız eğimlerin kayba göre doğru hesaplandığını gösterir. Yanlış etiket, yanlış seçilmiş bir kayıp, fazla büyük bir öğrenme oranı ya da tek satırla yapılan bir eğitim, kusursuz eğimlerle birlikte var olabilir; Aynur Hanım'ın satırı bu yüzden ayrı başlıkta duruyor.

Yaygın yanlış"İkinci girdinin ağırlıklarının eğimi sıfır çıktığına göre bu ağırlıklar işe yaramıyor."
Doğrusu

Eğim yalnız bu örnekte sıfırdır, çünkü bu örnekte ikinci girdi sıfırdı. Sıfır bir satırında aynı ağırlıklar düzeltme alır, birinci girdinin ağırlıkları ise hiç almaz. Bir ağırlığın önemi tek örnekten okunmaz.

Yaygın yanlış"Oynatma ne kadar küçükse denetim o kadar iyi olur."
Doğrusu

Kâğıtta ve hesap makinesinde yuvarlama vardır. Binde birlik oynatmada kayıp ancak altıncı hanede değişir; dört hanede yuvarlanan bir kayıpla bu fark kaybolur ve doğru bir eğim sıfır görünür.

Sorumluluk

Panodaki dokuz kartın her sayısı bir öğrencinin hesabıdır ve bir hata ötekilere taşınır; bu yüzden denetim kartını Zeynep Hanım kimseye bırakmadı, sınıfla birlikte doldurdu. Posterin ne iddia edeceğine de o karar verir. Kâğıtta yapılan iş, bir satırla atılmış bir adımdır; "ağ YA DA'yı öğrendi" cümlesi bu adımdan çıkmaz, çünkü aynı adım iki satırın kaybını artırdı. Posterde yazılabilecek olan, yapılan hesabın sınırıyla birlikte doğrulanmış sonuçtur: bir satırda kayıp sıfır virgül otuz ikiden sıfır virgül yirmi beşe indi, doğru cevabı sıfır olan iki satırda arttı.

Kapanış

  1. Bir eğitim adımı küçük bir ağda dokuz karta iner: ileri geçiş, kayıp, çıkışın payı, çıkış eğimleri, gizli paylar, gizli eğimler, güncelleme, yeniden hesap ve denetim.
  2. Her ağırlığın eğimi, ona gelen sayı ile vardığı birimin payının çarpımıdır; sıfır gelen ağırlık o örnekten bir şey öğrenmez, çıkışın payı gizli birimlere bağlantı ağırlıkları oranında ve işaretiyle dağılır.
  3. Sayısal türev denetimi hesabın doğruluğunu sınar, öğrenmenin başarısını sınamaz; tek satırla atılan bir adım o satırı düzeltirken ötekileri bozabilir.

Üç soru

  1. Atölyede birinci gizli birimin payı eksi, ikincisininki artı çıktı. Bu fark nereden geliyor ve iki birimin ayarları ne yöne kaydı?
  2. Melis'in elle bulduğu eğimler oynatmayla bulunanların her satırda tam yarısıydı. Bu neden kodun zincir kuralı kısmında bir hataya değil, bir kural farkına işaret ediyor?
  3. Bir sıfır satırıyla atılan adımdan sonra bir bir satırının kaybı neden arttı?

Yanıtlar

  1. Çıkışın payı iki gizli birime, onları çıkışa bağlayan ağırlıklarla çarpılarak gider. Birinci birimin ağırlığı artı bir, ikincininki eksi birdi; aynı pay bu yüzden zıt işaretle ulaştı. Eğimi eksi olan birinci birimin ağırlığı ve sabiti büyüdü, eğimi artı olan ikinci birimin ağırlığı ve sabiti küçüldü; ikisi de ağın cevabını bire doğru itti.
  2. Zincir kuralının bir halkasında hata olsaydı ağırlıktan ağırlığa farklı oranlar çıkardı, çünkü her ağırlığın eğimi farklı halkalardan geçer. Bütün eğimlerin aynı sabit sayıyla çarpılması, ortak bir çarpanın, burada kaybın yarımlı ya da yarımsız yazılmasının, iki hesapta farklı alındığını gösterir.
  3. Adım yalnız bir sıfır satırının kaybını azaltacak yönde atıldı ve ağın cevabını yükseltti. Bir bir satırı da aynı gizli birimlerden ve aynı çıkıştan geçer; çıkışın sabiti büyüyünce o satırın cevabı da yükseldi. Doğru cevabı sıfır olduğu için cevabın yükselmesi kaybını artırdı.

Sonraki derse köprü

Atölyede bir satırla bir adım attık ve öteki satırların bedel ödediğini gördük; tabloyu öğretmek için dört satırın hepsini bir biçimde hesaba katmak gerekiyor. Ders 9.1, Mini yığın ve dönem, verinin modele parça parça verilmesini ele alıyor: bir adımın eğimi tek bir örnekten mi, bütün tablodan mı, yoksa bir parçasından mı hesaplanmalı, ve eğitim tablonun üzerinden kaç kez geçmeli?

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.