İçeriğe geç

4.6 · Seviye 1 · Makineler Nasıl Öğrenir

Gradyan inişi

kaybı adım adım azaltmak; öğrenme oranı

Yapay Zekâ Akademisi — M04, Öğrenme Problemi · 2.503 kelime · 3 saha durumu · ≈ 11 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ış

Şubatın son perşembesi Melis, iki hafta önce eğittiği hasar tutarı modelinin kayıt dosyasını açtı. Dosya iki sütundan ibaretti: adım numarası ve o adımdaki kayıp. İlk satırlarda kayıp her adımda neredeyse yarıya iniyordu, birkaç yüz satır sonra virgülden sonraki üçüncü haneden başka bir şey kıpırdamıyordu. Programa düğmeye basmaktan başka bir şey söylememişti.

Ayın başında aynı işi kâğıtta yapmıştı. Eski eksper şefinin cetvelindeki yirmi ile onu silmiş, yerine on sekiz ile on iki yazmıştı; beş dosyaya bakarak, bir sayıyı biraz oynatıp farkların küçülüp küçülmediğine bakarak. Yarım saat sürmüştü.

"Orada iki sayı vardı," dedi Elif'e. "Bu modelde kırk sütunun her birinin bir çarpanı var, bir de sabit terim. Her birine on aday değer denesem kaç ihtimal eder?"

Elif hesap makinesini uzattı. Kırk bir sayının her biri için on değer, birin yanına kırk bir sıfır demekti. Saniyede bir milyar ihtimal deneyen bir makine evrenin yaşı boyunca çalışsa bu sayının yanına yaklaşamazdı.

Elif ayar dosyasını açtı. Satırlardan birinde "öğrenme oranı: sıfır virgül sıfır bir" yazıyordu. Altında geçen yıldan kalmış bir not vardı: bir meslektaşı eğitimi hızlandırmak için bu sayıyı on katına çıkarmış, kayıp sütunu üçüncü satırda büyümeye başlamış, onuncu satırda program sayıyı tutamayıp durmuştu.

Melis notu iki kez okudu. "Program her adımda hangi yöne gideceğini nereden biliyor? Bu sayıyı da kim, neye bakarak yazıyor?"

Tek fikir

Model, kaybın her ayara göre ne yönde değiştiğini ölçer ve her ayarı kaybın azaldığı yöne doğru küçük bir adım kaydırır; bunu yüzlerce kez tekrarlar. Adımın boyunu insan seçer: çok küçükse iniş sürünür, çok büyükse dipten taşar.

Nasıl çalışır

4.5'teki on günlük çizelgede model tek bir sayı söylüyordu ve üç adayı karşılaştırmak yetiyordu. Şimdi soruyu iki ayarlı bir model için soralım: Melis'in beş dosyası ve a çarpı x artı b ailesi. Bir parçalı dosyada otuz, iki parçalıda kırk yedi, üç parçalıda altmış sekiz, dört parçalıda seksen üç, beş parçalıda yüz iki bin lira ödenmişti. Kayıp olarak 4.5'teki ortalama kare hatayı kullanıyoruz.

a ile b'nin her çifti için bir kayıp değeri vardır. Eski cetvelin çifti, yirmi ile on, yirmi beş virgül iki verir. On dokuz ile dokuz üç virgül iki, Melis'in on sekiz ile on ikisi bir virgül iki verir. Bunu bir arazi gibi düşünebiliriz: a doğu-batı yönü, b kuzey-güney yönü, kayıp ise o noktadaki yükseklik. Her çift arazide bir noktadır ve aradığımız şey en alçak noktadır.

Haritamız yok. Elimizde yalnız bulunduğumuz noktanın yüksekliğini ölçen bir alet var. Bir tarlaya dökülen su da haritaya bakmaz; durduğu yerde toprak hangi yana eğikse o yana akar. Biz de aynısını yapacağız: bulunduğumuz yerde hangi yönün aşağı indiğini ölçüp oraya doğru yürüyeceğiz.

Eğimi ölçmenin en sade yolu denemektir. Cetvelin çiftinde a'yı onda bir artırıp yirmi virgül bir yapalım ve kaybı yeniden hesaplayalım: yirmi sekiz virgül elli bir çıkar, üç virgül otuz bir artış. Bu kez a'yı yerinde bırakıp b'yi onda bir artıralım: kayıp yirmi altı virgül sıfır bire çıkar, sıfır virgül seksen bir artış. Demek ki bu noktada iki yönde de yokuş yukarıdayız ve a yönü b yönünden yaklaşık dört kat daha diktir.

Deneyerek ölçmek her ayar için kaybı bir kez daha hesaplamayı gerektirir; kırk bir ayarda kırk bir ek hesap. Kare hatada eğim doğrudan da hesaplanabilir. Her dosyada tahminden gerçeği çıkarırız. Cetvelin çiftinde bu farklar sıfır, üç, iki, yedi ve sekizdir. a'nın eğimi için her farkı o dosyanın parça sayısıyla çarpıp toplarız, seksen eder; b'nin eğimi için farkları olduğu gibi toplarız, yirmi eder. İkisini de beşe bölüp ikiyle çarparız. a'nın eğimi otuz iki, b'ninki sekiz çıkar. Denemeyle bulduğumuz sayıların on katına çok yakındırlar, çünkü orada onda birlik bir adım atmıştık.

Gradyan yukarıyı gösteriyorsa aşağı inmek için tersine gitmek yeter.

Kaydırmanın miktarı için bir çarpan gerekir. Eğimin kendisi bir uzunluk değildir; "otuz iki" a'yı otuz iki birim azalt demek değildir.

İlk adımı elle atalım. Öğrenme oranı sıfır virgül sıfır iki olsun. a'nın eğimi otuz iki, çarpınca sıfır virgül altmış dört; a yirmiden on dokuz virgül otuz altıya iner. b'nin eğimi sekiz, çarpınca sıfır virgül on altı; b ondan dokuz virgül seksen dörde iner. Yeni çiftle kayıp sekiz virgül elli dokuz. Tek adımda üçte birine yakın bir yere düştü.

Aynı yerden iki farklı öğrenme oranıyla yola çıkalım. Tablodaki her satır, bir önceki satırdaki çiftte hesaplanan eğimle atılmış bir adımın sonucudur.

AdımOran 0,02: abkayıpOran 0,1: abkayıp
020,0010,0025,2020,0010,0025,20
119,369,848,5916,809,2045,04
219,029,763,9721,1210,4882,13
318,849,732,6715,178,91151,43
1018,629,782,0948,8918,7411.791,26
40018,0411,841,20ıraksadı

Sıfır virgül sıfır ikilik oran istikrarla iner ve dört yüz adımda Melis'in kâğıtta bulduğu çiftin hemen yanına varır. Sıfır virgül birlik oranda ise ilk adım doğru yöne atılır ama o kadar uzundur ki çukurun öbür yamacında, başladığı yerden daha yüksek bir noktaya konar. Oradaki eğim daha diktir, bir sonraki adım daha da uzun olur. a yirmiden on altı virgül sekize, oradan yirmi bir virgül on ikiye, sonra on beş virgül on yediye savrulur ve her salınım bir öncekinden geniştir; kayıp her adımda neredeyse iki katına çıkar. Elif'in meslektaşının notunda yaşanan buydu.

Öbür uç da kendi derdini taşır. Oran sıfır virgül sıfır bir olunca iniş ıraksamaz ama sürünür: dört yüz adımda b ancak on bir virgül otuz dokuza varır ve aynı yakınlığa ulaşmak sıfır virgül sıfır ikinin iki katı adım ister.

Sahada

Nerede yanılır

Melis'in tablosundaki sıfır virgül sıfır ikilik inişe bir daha bakalım. İlk üç adımda kayıp yirmi beşten iki virgül altmış yediye düştü. On adımda iki virgül sıfır dokuz, yirmi adımda bir virgül doksan sekiz. Kayıt dosyasını okuyan biri yirminci adımda eğitimi durdurup "kayıp düşmeyi bıraktı, bitti" diyebilir. O anda a on sekiz virgül elli yedi, b ise dokuz virgül doksan üçtür; dibin b'si on ikidir. Kayıp eğrisi yassılaşmıştır ama ayarlar hâlâ yoldadır.

Nedeni arazinin biçimidir. a'yı bir artırıp b'yi üç azaltmak üç parçalı dosyanın tahminini hiç değiştirmez, öteki dosyalarınkini de az değiştirir; on dokuz ile dokuz çiftinin kaybının yalnız üç virgül iki çıkması bundandır. Kayıp yüzeyi yuvarlak bir çanak değil, uzun ve dar bir vadidir. Yamaçlar diktir, iniş önce hızla vadi tabanına düşer; taban ise neredeyse düzdür ve iniş orada yavaşlar. Dik yamaç oranın üst sınırını koyar, düz taban yolculuğu uzatır. Oranı büyütmek tabanda hızlandıracakken yamaçlarda ıraksatır.

Bu durumda kayıp sayısı modelin ne söylediği hakkında yanlış bir güven verir. Bir virgül doksan sekiz ile bir virgül iki birbirine yakın görünür, ama birinci çiftin sabit terimi dokuz, ikincisininki on iki bin liradır. 4.1'de sabit terimi işçilik bedeli diye okumanın tehlikesini görmüştük; yarıda kesilmiş bir iniş o tehlikeyi büyütür.

Deniz'in yaptığı düzeltme burada da işe yarar. Parça sayısını üçten farkı olarak ölçersek, yani iki parçaya eksi bir, dört parçaya artı bir dersek, vadi yuvarlaklaşır. O zaman sıfır virgül ikilik bir oran ıraksamaz ve on adımda a on sekize varır; eski ölçüye çevrilen sabit terim de on iki bin liranın otuz lira yakınına gelir.

Bir uyarı daha. Melis'in yüzeyinde tek bir çukur vardır. Kırk sütunlu, binlerce ayarlı modellerde yüzey çoğu zaman böyle değildir; iniş yakınındaki bir çukura varıp orada durabilir. Ders kitabının açıkça yazdığı gibi, pratikte çoğu zaman en dip değil, yeterince düşük bir nokta kabul edilir.

Uygulama

Gradyan inişinin ilk adımlarını Melis'in beş dosyasıyla, elle atacaksın; iki öğrenme oranından biri seni dibe, öteki uçuruma götürecek. Kalem ve hesap makinesi yeterli, boş bir hesap tablosu işi hızlandırır.

  1. Beş dosyayı bir sütuna yaz: parça sayısı bir ile beş arası, ödenen tutar otuz, kırk yedi, altmış sekiz, seksen üç ve yüz iki bin lira.
  2. a yirmi, b on ile her dosyanın tahminini hesapla. Tahminden gerçeği çıkararak beş farkı bul, karelerini al ve ortalamasını yaz. Bu senin sıfırıncı satırındaki kayıptır.
  3. a'nın eğimi için her farkı parça sayısıyla çarp, topla, beşe böl, ikiyle çarp. b'nin eğimi için farkları doğrudan topla, beşe böl, ikiyle çarp.
  4. Öğrenme oranı sıfır virgül sıfır iki ile yeni a'yı ve b'yi bul: her birinden kendi eğiminin oranla çarpımını çıkar. Kaybı yeniden hesapla.
  5. İkinci ve üçüncü adımı aynı yolla at. Her adımda eğimi yeni çiftle yeniden hesapla, eski eğimi kullanma.
  6. Başa dön ve aynı üç adımı sıfır virgül bir ile at.
  7. İki kayıp sütununu karşılaştır. Hangisinde a her adımda aynı yönde ilerliyor, hangisinde işaret değiştiriyor? Sıfır virgül birde dördüncü adımın kaybını tahmin et, sonra hesapla.

Hesabın doğru gittiyse sayılar şöyle çıkar. Sıfır virgül sıfır ikide kayıp yirmi beş virgül ikiden sekiz virgül elli dokuza, üç virgül doksan yediye ve iki virgül altmış yediye iner; a on sekiz virgül seksen dörde, b dokuz virgül yetmiş üçe gelir. Sıfır virgül birde kayıp kırk beş virgül sıfır dörde, seksen iki virgül on üçe ve yüz elli bir virgül kırk üçe çıkar; a on altı virgül sekiz, yirmi bir virgül on iki ve on beş virgül on yedi arasında sallanır. Dördüncü adımda kayıp iki yüz seksen virgül sekiz iki olur, yine neredeyse iki katı.

Bir hesap tablosu kullanıyorsan oranı bir hücreye yaz ve satırları aşağı doğru çoğalt. Oranı sıfır virgül sıfır sekiz yap; kayıp bir süre salınarak ama küçülerek iner. Sıfır virgül sıfır dokuz yap; salınım bu kez büyür.

Defter: "İniş" sayfasına iki kayıp sütununu ve a'nın izlediği yolu geçir; altına, salınımın hangi adımda başladığını gördüğünü ve eğitimi durdurmak için kayıp sütununun yanında başka neye bakacağını iki cümleyle yaz.

Hata köşesi

Yaygın yanlış"Öğrenme oranını büyütmek modeli daha hızlı eğitir."
Doğrusu

Bir sınıra kadar doğrudur. Melis'in dosyalarında sıfır virgül sıfır ikiden sıfır virgül sıfır sekize çıkmak dibe varışı hızlandırır; sıfır virgül sıfır dokuz ise hiç varmaz. Sınır veriye ve kaybın biçimine bağlıdır, önceden bilinmez; bu yüzden oran kayıp eğrisine bakılarak seçilir ve kayıt altına alınır.

Yaygın yanlış"Kayıp düşmeyi bıraktıysa en iyi ayarlar bulunmuştur."
Doğrusu

Düşüşün yavaşlaması dibe varıldığını değil, eğimin küçüldüğünü gösterir. Uzun, düz bir vadi tabanında kayıp neredeyse yerinde sayarken ayarlar hâlâ yol alıyor olabilir; çok ayarlı bir modelde iniş dip olmayan bir çukurda da durabilir. Durma kararı, ayarların değişimine ve ayrı bir dosya kümesindeki başarıma da bakılarak verilir.

Sorumluluk

Gradyan inişi yönü kendisi bulur, ama adımın boyunu, kaç adım atılacağını ve ne zaman durulacağını bir insan seçer. Elif bu yüzden model belgesine 4.1'de eklediği üç satırın altına dördüncüsünü yazdı: öğrenme oranı, adım sayısı, durma ölçütü ve kayıp eğrisinin kendisi. Meslektaşının ıraksayan denemesi gürültülü bir hata verdi; asıl tehlike sessiz olanıdır, yarıda kesilmiş ve kimsenin fark etmediği bir iniş. Karşılık tutarı o modelden hesaplanır ve yanlışın bedelini poliçe sahibi ile şirketin bilançosu taşır. Eğitimi kuran kişi, durma kararının gerekçesini yazmaktan ve sonucu ayrı bir dosya kümesiyle doğrulamaktan sorumludur.

Kapanış

  1. Gradyan, kaybın her ayara göre eğimini gösterir; gradyan inişi her ayarı eğiminin tersine küçük bir adım kaydırır ve bunu tekrarlayarak kaybı adım adım azaltır.
  2. Öğrenme oranı adımın boyudur: çok küçükse iniş sürünür, belli bir sınırın üstündeyse ayarlar salınarak ıraksar; sınır kayıp yüzeyinin en dik yönüne bağlıdır.
  3. Kaybın düşmeyi bırakması dibe varıldığını kanıtlamaz; oranı, adım sayısını ve durma kararını seçen kişi bunları kayda geçirir ve sonucu ayrı veriyle doğrular.

Üç soru

  1. Cetvelin çiftinde a'nın eğimi otuz iki, b'ninki sekiz çıktı. Bu iki sayı neyi söyler ve gradyan inişi onlarla ne yapar?
  2. Sıfır virgül birlik oranla atılan ilk adım doğru yöne gittiği halde kayıp neden arttı?
  3. Elif'in model belgesine öğrenme oranını ve durma ölçütünü yazması neden yalnız teknik bir ayrıntı değildir?

Yanıtlar

  1. a'yı biraz artırmanın kaybı b'yi aynı miktarda artırmaktan dört kat daha hızlı büyüttüğünü ve ikisinin de artı işaretli olduğunu, yani iki ayarı da artırmanın yokuş yukarı çıktığını söyler. Gradyan inişi ikisini de azaltır; her birini kendi eğimiyle orantılı olarak, a'yı b'den dört kat daha fazla.
  2. Adım çukurun dibini aştı ve öbür yamaçta daha yüksek bir noktaya kondu. Oradaki eğim daha dik olduğundan bir sonraki adım daha uzun oldu; her adım bir öncekinden büyük salındı ve kayıp neredeyse ikiye katlanarak büyüdü.
  3. Aynı veri ve aynı modelle farklı oranlar ya da yarıda kesilen bir eğitim farklı ayarlar, dolayısıyla farklı karşılık tutarları verir. Bu seçimler yazılmazsa bir sonuç yeniden üretilemez, yanlış çıktığında da kimin hangi kararı verdiği bulunamaz.

Sonraki derse köprü

Dibe adım adım indik ve dört yüz adımda Melis'in kâğıtta bulduğu çiftin hemen yanına vardık. İki ayarlı, düz çizgili ve kare hatalı bir problemde dibe yürümek gerekmez; eğimin sıfır olduğu yer kalemle doğrudan bulunabilir. Ders 4.7, Elle bir doğru uydur, bir atölye olarak bu hesabı ve kaybı kâğıt üzerinde baştan sona yapmayı konu ediyor.

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.