Podcast

AI 100: Sinir Ağları (Neural Nets)

Fularsız Entellik

2 yıl önce
Reklam Alanı (Deneme)

Bölüm Açıklaması

Yapay zeka serimizin dördüncü bölümü. Önce ilk 3 bölümün geniş bir özeti, sonra da 1940lardan bu yana, yapay zekanın en gizemli kolu olan sinir ağlarının gelişimi.

.

Konular:


(01:17) Amacımız

(04:36) Neden Tavsiye Sistemleri

(06:01) Neden Sinir Ağları

(10:25) Yapay Nöron

(12:27) Akıllı Termostat

(13:38) Lineer Sınıflandırıcılar

(14:49) Hebbian Öğrenme

(16:47) Öğrenme Algoritması

(17:55) Öğrenme hızı

(19:00) Frank Rosenblatt

(21:12) Connectionism

(22:52) Perceptron Mark 1

(26:34) Aktivasyon Fonksiyonu

(28:34) FeedForward

(30:47) Multi Layer Perceptron

(36:20) Öğrenme




Kaynaklar:


Yazı: Perceptron Learning Algorithm


Yazı: Professor’s perceptron paved the way for AI


Yazı: Hello, Perceptron: An introduction


Tutorial: Not another MNIST tutorial


Yazı Dizisi: Machine Learning for Beginners


Sinir Ağı Simülasyonu







Tüm bölümler ve daha fazlası için ⁠⁠podbeemedia.com⁠⁠'u ziyaret et!



----- Podbee Sunar -------

Bu podcast reklam içermektedir.

Bölüm Transkripti

5.479 kelime · ~27 dk okuma

Selam flarsızlar, Yapay Zeka serimizin dördüncü bölümüne teşrif ettiniz, şeref verdiniz. Asıl ben teşrif ettim gerçi, epey ara vermiştik. Bir takım projeler vardı, yakında paylaşacağım. Hem biraz da deniz tatili yaptım.

Çocuk henüz okula başlamadığı için halen böyle sezon öncesi ve sonrası tatil yapma lüksümüz var. Mayıs, Ekim en güzel zamanlar. Sonuna kadar kullanacağım o şansımızı. Yalnız tatilde boş boş durmayı sevmiyorum.

Bir yandan önümüzdeki 2-3 bölümü hazırladım. Bu hazırlığa ihtiyacımız da vardı çünkü konumuz sinir ağları. İngilizcesi Neural Networks. Genelde illa Türkçe olsun diye zorlamıyorum biliyorsunuz ama sinir ağları terimi yeterince anlaşılır, yeterince de yerleşik, beyne benzer bir şeyler olduğu imasını veriyor.

Transkriptin tamamını oku

O yüzden onu kullanacağım. Her yanımızda bunlarla çevrili. Tüm büyük sosyal medya, kısmen chat GPT gibi dil modelleri veya mid journey gibi görsel oluşturucularsa tamamen onlara dayalı. O yüzden görece yeni bir buluş olduğunu düşünebilirsiniz.

Yapay zekanın en son evresiymiş gibi düşünebilirsiniz. Ama gördüğümüz diğer her şey gibi bunun da kökü epey eskilere dayanıyor. 1940'lara 50'lere dayanıyor. Yalnız zaman makinemize hemen atlamıyoruz.

Önce birkaç dakikamızı seriye genel bakış için ayıralım. Uzun aralardan sonra iyi gelir biraz soluklanmak. Neredeydik, ne yapıyorduk bir bakalım. Benim amacım sizi bir sınava veya iş mülakatına hazırlamak değil.

Hiçbir serideki amacım bu değil. Milyon tane makine öğrenimi algoritması var. Her birini tek tek saymak ve karşılaştırmak için ne ben doğru öğretmenim ne de podcast buna uygun bir mecra. Bana esas zevk veren şey, bir iki tarihsel hikaye eşliğinde işin genel hatlarını anlamak ve bonus olarak konunun ötesindeki problem çözme becerimizi geliştirmek.

O yüzden basit senaryolardan başlayıp üstüne biraz koya koya gidiyor ve bir noktada bırakıyoruz. Bıraktığın noktanın doğru nokta olup olmadığını da bilmiyorum. Onu ayarlamak zor iş. Makinelerin aksine ben onlarca deneme yanılma yapıp öğrenemiyorum.

Bir atımlık hakkımız var her konu için. Geçenlerde Twitter üstünden ufak bir anket yapmıştım bunun hakkında. Dinleyenlerin yarısından biraz fazlası için detay seviyesi şu ana kadar iyiymiş. %30'u fazla basit, %15'i de fazla ağır bulmuş.

Fena değil. Bu bölümle birlikte o %30'un bir kısmı da çoğunluğa katılacaktır umarım. Çünkü epey ayrıntıya dalıyoruz. Buna karşın zorluk seviyesini aynı tutmak için süreyi uzatacağım.

Sakin sakin ilerleyeceğiz. Eee o son kalan %15'lik kısımda herhalde uykuya dalmadan önce beni dinleyenlerdir. Öyle bir kesim var biliyorsunuz. Yorumlarda yazıyorlar.

Sesi uyumak için çok iyi geliyor diyorlar. Valla küfür gibi iltifat. Ama neyse. Belki de uyanıkken dinleseler sevmeyecekler.

Hiç ellemeyelim. Böyle iyi. Şimdi, 3 bölüm içerik az buz değil, şu ana kadar ne yaptık ne ettik bir hatırlatmak istiyorum ve sinir ağları için sahneyi hazırlamak istiyorum. Ta 1950'lerde basit mantık yürüten programlar çıkmıştı.

Onların erken başarıları biraz fazla iyimser kehanetlere yol açmış, her problemi çözebilen programlar, her işi insan seviyesinde yapan genel yapay zekalar hayal edilmişti. Bunlar yerine belli bir alanda uzmanlaşmış sistemler daha gerçekçi bir hedefti. Hani doktora gidince şikayetlerinizi anlatıyorsunuz, o da soruyor ya, ateşin var mı, ağrın var mı, internette doktorlar hakkında kötü bir şeyler paylaştın mı diye, sonra ona göre bir teşhis koyuyor. Her seferinde bunu tekrarlamak yerine en iyi doktorları bir araya getirelim, bu süreci kurallaştıralım, hangi soruları soracağız, hangi çalışmalara bakacağız, bir sürü iften else tanımlayalım bir başka deyişle, 7-24 bedava doktor olsun.

Zamanla bu tip uzman sistemler hayatımızın ayrılmaz bir parçası haline geldiler. Birçoğunu zaten yapay zeka olarak saymıyoruz bile. Yalnız o sanal doktor vizyonu gerçekleşmedi. Çünkü kurallarla tanımlayamayacağımız kadar çok çeşitli durum var ve herhangi bir hatanın da maliyeti büyük.

Mahkemelerde sürünmek istemiyor kimse. Neyse ki problemlerin gayet standart ve hata maliyetinin de sıfıra yakın olduğu bir alan var. Oyunlar. Oyunlar sadece klasik uzman sistemler için değil, kendi kendine öğrenerek uzmanlaşan sistemler için de birebirdi.

Kaybedince çalışma mantığını rastgele biçimde biraz değiştirip tekrar dene. Kazanırsan o değişiklik kalıcı olur. Fakat oyunların güvenli dünyasından çıkınca işler biraz karışmıştı. Çünkü insan işin içine girmişti.

İnsanın tutarsızlığı bir yana, ekonomik gerçekler yüzünden öyle sonsuz deneme yanılma fırsatın yok. O yüzden daha verimli öğrenme yöntemleri gerekti. Bunlardan bazılarını YouTube, Spotify, Amazon gibi tavsiye sistemleri üstünden gördük. Kaldığımız yer burasıydı.

Bu arada bu seçim biraz garip gelmiş olabilir. Onca şey dururken niye tavsiye sistemleri? E bir düşünün, günlük hayatınızda yapay zeka ile en çok etkileşime girdiğiniz noktalar herhalde bunlardır. Hele ki sosyal medyanın da aynı mantıkla çalıştığını düşünürseniz, onlar da içerik tavsiyesinde bulunan sistemler.

Hepsi bizi tanımaya çalışırken bir yandan da bizi değiştiriyorlar, o yüzden onları anlamak önemli. Belki daha da önemlisi, öğrendiklerimizin diğer alanlara kolayca uygulanabilir oluşu. Aynı yöntemlerle borsadaki bir hissenin geleceğini de tahmin edebiliriz. Şarkıların veya ürünlerin özellikleri yerine, şirketin karlılığına, hissenin performansına, genel ekonomik verilere bakabiliriz.

Tüm bunların tarihçesi, gün gün, saat saat ne durumda oldukları belli. Ve hissenin fiyatı da belli. Aralarındaki ilişkiyi öğrenmek mümkün olmalı. En azından bir dereceye kadar.

Zira modelleyemeyeceğimiz bir sürü rastgele olay da oluyor. Zaten olmasaydı birileri bunu yapar, trilyonlar kazanırdı. Sırf borsa değil, kredi risk analizi, dolandırıcılıkla mücadele, finans dünyasının her köşesinde makine öğrenimi kullanılması şaşırtıcı değil. Dolayısıyla biz sadece dama oynamasını, efendim Spotify için playlist oluşturmasını öğrenmedik.

Biz kendini güncelleyen bir tahmin modeli oluşturmasını öğrendik. O zaman milyon dolarlık soru geliyor. Madem bunları yapabiliyoruz, sinir ağı denen o garip şeylere niye ihtiyacımız olsun ki? İlla insan beynine benzeteceğiz diye tüm bunları çöpe atmaya değer mi?

Birçok durumda hakikaten de değmez. Ama bir bakalım neyimiz eksik? Öncelikle cebirsel analizler yaparken kullandığımız özellikler önceden belliydi. Hisselerin performans ölçütleri veya bir caz parçasını tanımlayan dört yüzü aşkın teknik özellik gibi.

Birileri gelmiş, arkadaşlar tahminlerimizde bunları kullanacağız, x'ye z'lerimiz bunlar olacak, şimdi bunlar arasındaki ilişkiyi bulun demiş. Bunu demenin mümkün olmadığı durumlar var. Basit bir görsel işliyorsunuz diyelim. Resimdeki hayvanı tanımaya çalışıyorsunuz.

Kimse size işinize yarayacak özellikler sağlamıyor. Kuyruk uzunluğu, ayak sayısı, tüy miktarı gibi. Elinizde tek bir şey var, resmin piksel piksel ışık değerleri. Bu ham veriden işe yarar özellikleri kendiniz üreteceksiniz.

Kolay gelsin. Böyle durumlarda işimiz zor. İkinci sorun, o özelliklerle tahmin etmeye çalıştığımız şey arasındaki ilişkinin karmaşıklığı. Bu ilişki ne kadar lineerse, adı üstünde lineer regresyon bazlı yaklaşımlar o kadar işe yarıyorlar.

Peki ya ilişkiler daha karmaşıksa? Bir dereceye kadar bunu halledebileceğimizi geçen bölümde görmüştük. Müziğin temposu ve beğenimiz arasındaki ilişki lineer değildi mesela. Artık bu lineer kelimesinden korkmadığınızı varsayıyorum.

Yani kimsenin müzik zevki, tempo arttıkça o oranda artacak şekilde değişmiyor. Beğenimiz genelde orta tempolarda yoğunlaşıyordu, o yüzden çan eğrisi modeli kullanmıştık. İşin içinde de eğriler girdi mi bilin ki denklemler karışıyor. Çok daha karmaşık ilişkileri modellemek de mümkündü.

Sadece x'ler y'ler değil, x², x³, x üzeri 10 gibi terimler kullanarak öyle yılan gibi kıvrılabilen fonksiyonlar yaratabiliriz. Ne kadar çok terim, o kadar çok kıvraklık. O terimleri en uygun katsayıları bulmakta regresyonun işi, belli bir tarihçe veya eğitim setine bakarak fonksiyonun tam da gerektiği gibi kıvrılmasını sağlıyor. Bu sayede de o fonksiyonu kullanarak tahminler yapıyoruz.

İyi de kaç tane terim olacağına birinin karar vermesi lazım. Yani yılanın maksimum kıvraklığının önceden belirlenmesi lazım. Bu tip seçimlere hiperparametre seçimi deniyor. Parametreler modelin öğrenme sürecinde değiştirebildiği şeyler, hiperparametreler ise değişmiyor.

modelin genel yapısını anlatıyorlar. Aşırı basit bir yapı seçersek gerçek ilişkiyi anlayamayabiliriz. Tahminlerimiz isabetsiz olur. Aşırı karmaşık bir yapı seçmenin de ayrı dertleri vardı.

Overfitting tehlikesini hatırlıyorsunuz. Geçmiş verilere fazlasıyla iyi oturduğu için, muhtemelen oradaki rastgeleliği de modellediği için tahmin isabeti bir noktadan sonra tekrar düşüyordu. Dengeyi tutturmak gerek. Hem de her özellik için ayrı ayrı tutturmak gerek.

Yüzlerce özellik kullanıyorsak ne yapacağız? Aşırı karmaşık fonksiyonlar kullanmanın daha önce bahsetmediğim bir başka sıkıntısı da var. Uç noktalarda saçma sapan tahminlere yol açıyorlar. Herhangi bir polinomiyalın grafiğine bakarak bunu kolayca görebilirsiniz.

Uçlara gidildikçe öyle sakin sakin kıvrılmalarla kalmıyorlar, uçup gidiyorlar. Çünkü oralardaki davranışı üst derece terimler tarafından belirleniyor. Belki fonksiyonun içinde x üzeri 10 gibi bir terim var. Demek ki x'in yerine ne koyarsan, o özelliğin değeri neyse, onun 10.

kuvvetini alacak, aşırı büyük bir değer çıkacak, pozitif veya negatif ve toplam sonucu domine edecek. Nihayetinde bu fonksiyonlar eğitim verilerine göre şekillenirler. O aralıkta anlamlılar. Eğer gerçek hayatta karşına eğitimde görmediğin kadar büyük veya küçük bir değer çıkarsa belli bir özellik için ve onu fonksiyona yedirirsen sonunda anlamsız bir sonucu alabilirsin böyle uçuk kaçık.

Dolayısıyla eğitim setinin yeterince kapsamlı olması şart. Bu da ayrı bir potansiyel sorun. Şimdi henüz sinir ağları hakkında, kısmen beyni taklit etmeleri dışında hiçbir şey bilmiyoruz. Bizim için birer kara kutu.

Ve onlar da bu problemlere karşı tamamen bağışıklı değiller. Kapsamlı eğitim ihtiyacı olsun, overfitting tehlikesi olsun, aşırı basit kalma tehlikesi olsun hepsi var. Fakat problem tipine bağlı olarak çözümler daha pratik olabiliyor. Genel mimari hakkında birkaç önemli karar verdiniz mi?

hem kendi kendine türeteceği özellikleri hem de onları ne kadar ayrıntıyla modelleyeceğini kendisi halledebiliyor. Ve problem karmaşıklaştıkça bu avantajları da o kadar belirgin hale geliyor. Evet, uzun bir özet oldu ama artık sinir ağları olmadan neler yapabileceğimizi ve onlarsız nerelerde zorlanabileceğimizi genel hatları itibariyle anladık. Şimdi bu kara kutuyu açalım bakalım.

En başa 1940'lara dönüyoruz. Ortada henüz bir ağ bile yok. Tek bir yapay nörondan başlayacağız. Hani bilişsel devrimden bahsetmiştim ya, beyinle ilgili olan farklı disiplinler bir araya gelip fikir alışverişinde bulunuyorlardı.

Biyologlar nöronların nasıl çalıştığını anladıkça bilgisayarcılar da kopya çekip onu basitleştirmişler. Normal bir beyinde her nöronun birkaç bin bağlantısı var. Bunlar farklı şekillerde, farklı seviyelerde sinyal alıp iletiyorlar ve asenkron çalışıyorlar. Herkes kafasına göre işlem yapabiliyor.

Toplamda yüzlerce trilyon bağlantıdan bahsediyoruz. İnanılmaz bir sistem. O yüzden bunu epey basitleştirmeleri gerekti. İlk hayal edilen yapay nöronların alt tarafı birkaç girdisi ve tek bir çıktısı var.

Her şey binary, yani sıfır veya bir. Girdilerin toplamı belli bir aktivasyon eşiğinin üstündeyse nöron ateşleniyor ve bir sinyali çıkıyor. Yoksa susuyor. Bu haliyle hiçbir işe yaramayacakmış gibi gözüküyor ama bu kadarı bile temel mantıksal operasyonlar için yeterli.

Mesela eşik değeri bir buçuk olursa nöronun ateşlenmesi için iki girdiden de sinyal gelmesi şart olur. bir artı bir, bir buçuktan büyük olacak. Diğer girdi kombinasyonlarını da çıktı sıfır kalıyor. Ne yapmış olduk?

End operasyonu. Benzer şekilde OR, NOT gibi operasyonlar da kolayca halledilebilir. Dolayısıyla tüm aritmetik işlemler halledilebilir. Dolayısıyla yapay nöronlardan her türlü dijital devre, her türlü bilgisayar yapılabilir.

Tabii bunlar kağıt üstünde heyecan verici şeyler. Fiziksel dünyada o nöron neye karşılık gelecek, nasıl yaratılacak belli değil. Bugünlerde Neuromorphic Chip diye bir şey varmış. Nöron yapısını donanımda yaratmaya çalışıyorlar native olarak, epey yeni bir alan.

O dönemlerde ise transistörler daha yeni gelişiyordu ve bahsettiğim lojik kapılarını çok daha verimli bir şekilde oluşturduklarından dijital devrelerin yapıtaşı onlar olmuş. Neyse ki yapay nöron fikri unutulmadı. Herhangi bir yapıtaşı olmasalar da fiziken başka unsurlardan yahut tamamen yazılımsal olarak yaratılabilirlerdi ve biraz karmaşıklaşırlarsa en azından mantıksal bir yapı olarak değerli olabilirlerdi. Karmaşıklaşmak ne demek?

Önce girdi sinyalleri çeşitlendi. Sıfırla birle sınırlı kalmadılar. Termostat güzel bir örnek olarak aklıma geliyor. Termostatın tek bir girdisi var, o anki hava sıcaklığı.

Tek bir çıktısı var, klimayı açıp açmamak. Bir tane de sistem ayarı, istenilen sıcaklık. Ortam sıcaklığı o eşiğin üstündeyse klima açılıyor. Tamam, biraz daha akıllı bir termostat yapabilir miyiz?

Mesela sıcaklık değil de nem çok kötü yapıyor nem diye kafa ütülecek kadar akıllı olsun. Böyle kadim bir örgüt var biliyorsunuz. Her yaz ortaya çıkıp insanlığı nem tehlikesine karşı uyarıyorlar. Onların tasarladığı bir termostat nasıl olurdu?

Öyle bir nöronun iki girdisi olurdu. Sıcaklık ve nem. Nem daha önemli olduğu için ona birazcık ağırlık vermemiz lazım. Belki onu bir kat sayıyla çarpmamız lazım.

Ona göre klimayı açıp kapayacağız. Demek ki sistem ayarlarına bir yenisini ekleyeceğiz. Bağlantı ağırlıkları. Tıpkı biyolojik nöronlarda olduğu gibi her bağlantı aynı kuvvette değil.

Tavsiye sistemlerini de böyle hayal edebiliriz. Şarkının temposu, türü, şusubusu, düzünelerce sinyal geliyor, önemlerine göre bir takım ağırlıklarla çarpılıyorlar ve toplam sonuç belli bir değerin üstünde ise şarkıyı beğenir diyoruz. Ne kadar beğeneceğini söylemiyoruz. Beğenir veya beğenmez.

Klima açık veya kapalı. Bir veya sıfır. Çıktılar halen binary. Böyle sistemlere lineer sınıflandırıcı deniyor.

Sınıflandırıcı kısmı belli de lineer kısmı nereden geliyor? E aslında yapay nöron dediğimiz şey basit bir fonksiyondan ibaret değil mi? Girdiler değişkenlerimiz, ağırlıklar kat sayılarımız, aktivasyon eşiği de sabitimiz. Eğer tek bir girdi varsa, tek bir değişken varsa bu fonksiyonu bir çizgi olarak görselleştirebiliriz.

Çizginin altında kalan sonuçlarla üstünde kalanlar ayrılmış olurlar. Sınıflandırılmış olurlar. Girdi sayısı artınca da mantık değişmiyor ki. Sadece boyut sayısı artıyor.

Yani tüm girdileri bıçak gibi ikiye ayıran bir çok boyutlu tabakamız oluyor. Hiperdüzlem deniyor buna. Eğer problem basitse yani ilişkiler basitse ve ayarlarımızı doğru seçmişsek bu ayrım anlamlı olacaktır. Mesela boy ve kilo bilgilerine bakarak yeterince iyi bir cinsiyet ayrımı yapabiliriz diye tahmin ediyorum.

Çünkü genelde boy ve kilo arttıkça erkek olma ihtimali artıyor. En iyi ayrımı yapmamızı sağlayacak bir takım ağırlıklar ve eşik değeri vardır. Onu bulacağız. Daha önce gördüğümüz şeyler yani.

Sadece her şeyi nöron olarak yeniden hayal etmiş olduk. Ama o doğru ayarları nasıl bulacağız? Öğrenme işinin içine girince ufak ufak farklılaşmaya başlayacak her şey. Şimdi şöyle bir maziye bakalım.

1949 yılında nörobilimci Donald Hebb, Davranışın Organizasyonu isimli bir kitap yayınladı. Rahat olun, ben de okumadım. Kitabın en önemli bulgusu, sık sık birlikte ateşlenen nöronlar arasındaki bağlantının da giderek kuvvetlendiği ve bunun öğrenim için şart olduğu. Yani öğrenmenin fiziksel karşılığı bu bağların kuvvetlenmesi.

Akılda kalan bir sloganı da var. Neurons that fire together, wire together. Demek ki bizim yapay nöronların da ağırlıkları sabit olmamalı, değişmeli. Öğrenme veya eğitim dediğimiz bunları hata oranını azaltacak şekilde değiştirmek.

Daha önce bunu nasıl başarıyorduk? Eğer aptalsak akılsız başın cezasını ayaklar çekiyordu. Her olası ayarı tek tek deniyorduk. Mesela boya ve kiloya göre cinsiyet ayrımı yapan sistemde kaç ay bir de eşik değeri.

Teoride alabilecekleri değer sayısı sonsuz. Biz işi basitleştirip her biri için 100'er tane olası değer denesek 1 milyon kombinasyon ediyor. Şimdi her kombinasyonda da ne kadar başarılı olduklarını ölçmemiz lazım. Yani cinsiyetini bildiğim insanların boy ve kilo bilgilerini sisteme yedireceğim, kaç doğru tahmin yapmışım sayacağım.

E böyle 100 tane eğitim verisi olsa Demek ki toplam 100 milyon ölçüm yapacağım bu kıçı kırık sistemi optimize etmek için. Biraz daha zor bir problem düşünsek, daha fazla eğitim verisi daha çok girdi, maliyet geometrik olarak artıyor. Dolayısıyla bize daha akıllı bir yöntem lazım. E var böyle yöntemler, cebirsel olarak var.

Lojistik regresyon mesela. Lineer regresyonla karışmasın. O devamlılık arz eden şeyleri tahmin etmek de iyiydi. Bu da ikili sınıflandırma problemleri için iyi.

Detayına lüzum yok. Zaten başka yöntemler de var. Mühim olan bunların gayet güzel iş çıkardıkları. Fakat tüm eğitim setini kullanıyorlar.

Bir sürü veri kullanıyorlar. Bizim nöronunsa herhangi bir hafızası yok. Tüm sete aynı anda bakamıyor. Tek tek bakacak.

Dolayısıyla her seferinde biraz öğrenmesi lazım. Öyle bir yöntem geliştirmemiz lazım. Tamam, geliştirelim bakalım. Başlangıçta ağırlıklar ve eşik değerleri rastgele olacak, elimiz mahkum.

Bir tane örneği sisteme yedirdik, sınıflandırmasını yaptı baktık. Doğruysa ne âlâ. Yanlışsa ne yönde yanlış onu bulacağız. Mesela eşiğin altında çıkacağımıza üstünde mi çıkmışız?

Öyleyse ağırlıkları biraz düşürelim ki gelen sinyallerin toplamı o eşik değerini geçmesin. Yok eğer ters yönde yanılmışsak ağırlıkları biraz artırırız veya eşik değerini azaltırız. Gayet basit. Ama biraz fazla basit.

Her bağlantıyı aynı miktarda kuvvetlendirip zayıflatmak pek esnek bir öğrenme sağlamaz. Bir denklemdeki her katsayı aynı oranda artırıp azaltmak gibi. Onun yerine her ağırlığı farklı bir miktarda oynatabilsek şahane olacak. Her ağırlığa, her bağlantıya özel kullanabileceğim ne var?

Girdi değeri var. Öyleyse değişim için onu kullanalım. Mesela boy bağlantısının ağırlığını azaltmak istiyorsak o anki boy verisi kadar azaltalım, kilo bağlantısının da o anki kilo verisi kadar. Bir sonraki örneği işlerken artık bu yeni ağırlıkları kullanırız, sınıflandırmayı öyle yaparız.

Aynı adımları da tekrarlarız. Her örnekte bunu yapa yapa ağırlıklar yavaş yavaş bir dengeye oturacaktır, tahmin isabetimiz artacaktır. Buradaki tek tehlike şu yalnız. Girdi değerleri büyükse ağırlıktaki değişimler devasa olabilir.

Yani nörona gelen toplam sinyal değerleri çok artabilir veya azalabilir. Sistem bir o yana bir bu yana savrulur. Golf oynadığımızda hayal edelim. Zaten anca hayal ederiz.

Bir deliğin yakınına kadar gelmişiz, son deliğin. Yavaş bir vuruş yeterli olacak. Ama ayarımız bozuk. İlla ki tam güçle vurmamız lazım.

Vurduk, bu sefer top deliğin öte tarafına geçip uzaklaşacak. Şimdi oraya gidip ters yöne yavaşça vurmamız lazım. Ama yine hızlı vuruyoruz, bu sefer deliği tekrar geçip bu tarafa gelecek, bir türlü oyunu bitiremeyeceğiz. Bu tip savrulmaları engellemek için öğrenme hızı denen bir hiperparametre kullanılıyor.

0.1 gibi 0.01 gibi ufak bir sayı. Ağırlıklarda yapılacak değişim önce bununla çarpılıyor.

Hedefi ıskalamamak için ona ufak ufak adımlarla yaklaşmak gibi, o golf topuna yavaş yavaş vurmak gibi. Bazı durumlarda öğrenmeyi yavaşlatacaktır ama çok daha güvenli. Eh, işte sadece sıfırları birileri anlayan dandik bir nörondan her türlü sinyali alıp işleyen ve öğrenen bir nörona kadar geldik. Bunlara bazen Perceptron da deniyor.

Perceptron, gayet karizma bir isim. İyi bir Transformers karakteri olurmuş. Bu arada şimdi baktım, Perceptor diye bir Transformers robotu varmış. Az farklı kaçırmışlar.

Artık bunları tek tek bakmakla yetinmeyelim. Bunları birbirine bağlayalım, bir şeyler yapalım. İşe yarar bir ağ oluşturan ilk kişi Frank Rosenblatt diye bir araştırmacıydı. Rosenblatt acayip bir karakter bu arada.

Sosyal psikoloji okuyup doktora yapmış. Sonra bir şekilde aeronotik labında mühendis olarak çalışmaya başlamış ve donanmadan gelen fonlarla sinir ağlarına el atmış. Daha sonra da nörobiyoloji profesörü olacak ve eğitimden geçmiş farelerin beyninden dokular alıp diğer farelerin beynine koymayı deneyecek. Böyle çılgın projeler, beyinle ilgili ne varsa çalışmış adam.

Bir yandan astronomiye de meraklı olduğu için kocaman bir teleskop alıyor, sonra onu koymak için de bir çiftlik evi, araştırma grubundaki lisan süslü öğrencilerini bu eve yerleştiriyor. Her gün beraber dünyayı değiştireceklerine inanarak büyük bir şevkle çalışıyorlar, mesai bitince de rahatlamak için o teleskobu inşa edip gökyüzünü izliyorlar. Şahane hayat vallahi. Akademide cenneti yaşamışlar.

E biraz sosis partisi ama o kadar olur. Tüm bunlar da bir yarı ömre sığmış. 43. yaş gününde bir yelken kazasında ölmüş adamcağız.

Ölüş şekli bile klas ya. Hepimize böyle yelken yaparken, ne bileyim golf oynarken ölmek nasip olsun ama tabii ki geç yaşımızda. Şimdi Rosenblatt ve öğrencileri ne yaptılar tam olarak? Gördüğü basit şekilleri ayırt etmesini öğrenen bir makine yaptılar.

Mesela üçgen ve daire resimlerini ayırabiliyordu. Hatta daha basiti bir kart gösteriyorlar. O kartın sağında mı solunda mı bir işaret var, onları ayırabiliyordu. Yıl 1957-1958.

ImageNet, AlexNet gibi isimlere aşinaysanız, onlardan tam 55 sene önce aynı şeylerle uğraşılması sizi şaşırtmış olabilir. Ve hatırlayın, o meşhur Dartmouth Konferansı'nın hemen ertesi bu. Sembolik zekanın temellerinin atıldığı dönemler. Yani bir tarafta mantıksal düşünüp teoriyi ispatlayan makineler doğarken, Rosenblatt onların büyüsüne kapılmadan, gördüğümüz şeyin kedi mi köpek mi olduğunu nasıl anlıyoruz ve bunu bir makineye nasıl anlatabiliriz diye düşünüyordu.

Bu halen geçerli bir soru bu arada. Otonom araçlar yol işaretlerini artık tanıyabiliyorlar ama mesela dur işareti taşıyan birini gördüklerinde veya trafik ışığı taşıyan bir kamyon gördüklerinde kafaları karışıyor. Biz de daha önce böyle bir durumla karşılaşmamış olsak dahi olayı az çok çözebiliyoruz. Yani one-shot learning denen daha öncesi olmayan öğrenmelerde epey iyiyiz.

Bununla birlikte önceden gördüğümüz, önceden bildiğimiz şeyleri de çok hızlı algılayabiliyoruz. Etrafınıza bir bakının. Neredeyse hiç çaba sarf etmeden o kadar çok şey ayırt ediyorsunuz ki. Ve bu şeyler hareket ettiklerinde ya da siz birkaç adım atıp bakış açınızı değiştirdiğinizde retinanıza düşen ışık bilgisi tamamen farklı olmasına rağmen, dolayısıyla nöronların ateşlenme şekli de tamamen farklı olmasına rağmen kafanız karışmıyor.

Kendinizi yeni bir odada, yeni şeylerle çevrili sanmıyorsunuz. Aynı şey ses ve dil için de geçerli bu arada. Bir makinanın bu basit işleri, bize basit gözüken bu işleri yapmasının dünya satranş şampiyonunu yenmesinden çok daha zor olduğu tam olarak ne zaman anlaşıldı bilmiyorum. Belki Rosenblatt'ın en başından bir kuşkusu vardı.

Zaten görüntü ve ses tanımayı da işin başı olarak görüyordu. Zira beynin tamamının böyle çalıştığını düşünüyordu. Ona göre beynin derinlerinde bir yerinde öyle sembollerle düşünebilen ayrı bir zeka modülü yoktu. Zeka, yaratıcılık, hafıza, planlama, algı, sezgi bunların hepsi Beynin her yerindeydi.

Her yerinde yayılmış o bağlantılarda saklıydı. Bu yaklaşım connectionism olarak anılıyor. Ve işte ilk fiziksel örneği de Perceptron Mark 1 denen makinaydı. Mark 1, versiyon 1 demek.

Bazı kaynaklar daha sonraki versiyonlarla karıştırıp çorba ediyorlar, pek anlaşılmıyor. Ben azıcık basitleştirerek anlatayım. Görünürde üç tane katman var. İlk katman yapay bir retina.

Yüzlerce fotoselden oluşuyor. Her biri gösterilen resmin piksellerine karşılık geliyor. Oradaki ışık miktarını sinyal olarak taşıyorlar. İkinci katman 512 tane nörondan oluşuyor.

Neden 512 bilmiyorum. Girdi katmanı rastgele biçimde bunlara bağlı. Yani mesela ilk nöron retinanın köşelerindeki birkaç piksele bağlı. bağlı, ikinci nöron resmin ortalarına denk gelen birkaç piksele bakıyor, üçüncüsü ise her kısımdan ortaya karışık birkaç tane almış, bahtlarına ne çıkmışsa artık.

Bazı nöronlara kırk farklı girdi geliyor, bazısına daha az. Onların toplam değerine göre ateşlenip susuyorlar. Kritik detay bu bağlantıların sabit oluşu. Dolayısıyla bu katmanda hiçbir öğrenme yok.

Niye böyle yapmışlar? Amaçları insan gözünü taklit etmekti ve gözdeki sinirlerin beyne böyle bağlandığını düşünüyorlardı. Son olarak bir çıkış katmanımız var. O 512 nörondan gelen çıktılar buraya bağlanıyor.

Esas aksiyon da burada çünkü o bağlantıların kuvveti ayarlanabilir. Ağın öğrenen kısmı burası. Her yanlış cevap sonrası operatör bunu sisteme bildiriyor, yanlışsın diyor, aptal makine diyor. Oradaki ağırlıklar demin belirttiğim algoritma uyarınca değişiyorlar.

Şimdi gözünüzde bir canlandırın. Tonlarca ağırlıkta heyyüla gibi bir makina, her yerinden kablolar çıkmış. Onların üstünde birer potansiyometre var. Bunları motorlarla oynatıyorlar.

Teldeki elektrik direncini yani sinyalin kuvvetini değiştiriyorlar. Bağlantı ağırlıklarını değiştirmek gibi. Vızır vızır çalışan bir sürü motor. Yani gerçekten kazara elektrik şoku yese canlanıp bir robota dönüşecek gibi duruyordur herhalde.

Duruyordur da demeyeyim aslında. Ben gördüm bunu, ayıptır söylemesi. Bu aletle düzenli olarak görüşüyorduk. Smithsonian Amerikan Tarihi Müzesi'nde sergileniyor.

Zaten bunların müzeleri böyle. Yok ilk bilgisayarlar, yok ilk uzay mekikleri. Eski kültürlerin izleri pek yok da geleceğin planları var. Peki en sonunda makine neyi öğrenmiş olacak?

Üçgen fikrini, daire fikrini mi öğrenmiş olacak? Böyle platonik ideyalar yok bir tarafında. Sadece sayılar var. Girdiler, ağırlıklar, eşikler, ateşlenmeler, her şey sayı.

Öğrendiği şey, bazı piksel gruplarının ışık değerini temsil eden sayılara daha çok önem vermesi gerektiği, bazılarına daha az önem vermesi gerektiği. Sadece tek bir öğrenme katmanı olduğundan makinenin o heybetli görünüşüne rağmen matematiksel açıdan deminki örneklerden pek farkı yok. Eninde sonunda bir tane lineer denklem yaratıyor. Dolayısıyla ancak basit farkları algılayabiliyor.

O yüzden üçgen mi daire mi diye soruyorlar. Efendim şu fotoğraftaki hayvanın cinsi nedir veya kediyse hangi cins kedidir diye sorsa onları anlayamayacak. Onları anlaması için pikseller arasında kurması gereken ilişkiler çok daha karmaşık. Bu zayıflıklar, 69 yılında Marvin Minsky'nin yazdığı Perceptrons kitabında teorik açıdan dile getirilmiş.

Kitabın kötü bir ünü var bu arada. Sanki Rosenblatt'ınkinin değil, her türlü ağın aşırı basit kalacağını iddia etmiş veya öyle anlaşılmış. Minsky de ertesi sene Turing ödülünü kazanıyor, o alanın Nobel'i gibi bir şey. Ve sinir ağları bir nevi duraksama çağına giriyor.

Yalnız bunun faturasını Minsk'e yıkmak birazcık yanlış bence çünkü daha önceki bölümlerden de hatırlıyorsanız diğer yapay zeka yaklaşımları da o dönemler fonlarını kaybediyorlardı. Genel bir yapay zeka kışı başlıyor. Peki ne oldu da bu teknoloji müzelere gömülü kalmadı? Ne oldu da üçgenleri daireleri zar zor ayırabilen sistemlerden bugünlere gelebildik?

Modern sinir ağlarına geçişi üç kritik değişiklik sağlıyor. Kısmi ateşlenme yani sıfır ve bir dışında bir çıktı verebilme, derinleşme yani birden fazla öğrenen katman olması ve tüm ağırlıkları hızlıca güncelleyen yepyeni bir öğrenme yöntemi. Üç de lazımdı. Şimdi bunlara tek tek bakalım.

İlk değişimin gereğini sanırım en baştan beri seziyordunuz. Her şeyden önce sınıflandırma birçok problem için yeterli değil. Hatta sınıflandırma istediğim durumlarda bile yeterli değil. Çünkü cevaptan ne kadar emin olduğu bilgisini de isterim.

Mesela sistemin görevi bir röntgen filmine bakarak hastanın kanser olup olmadığını anlamaksa farklı güven aralıklarına göre farklı prosedürlerim olacak. Eğer sistem çok emin değilse bir doktoru mesela müdahil edeceğim. Her evet cevabı aynı değil. Böyle bir çıktı verebilmenin öğrenme sürecine de olumlu katkısı var.

Eskiden doğru tahmin yaptığımızda hiçbir şey değiştirmiyorduk. Yani aktivasyon eşiğini kıl payı geçtiği için kıl payı doğru cevabı veren bir sistem ile rahat rahat doğruyu bulan bir sistem arasındaki farkı anlayamıyorduk. Bu modeller sadece yanlışlarından öğrenebiliyorlar ve sadece yeterince iyi olacak kadar öğrenebiliyorlardı. Artık cevaplarından emin olana kadar öğrenmeye devam edebilirler.

Son olarak da bu fırsatı lineer olmayan ilişkileri anlayabilmek için de kullanacağız. Bunu nasıl yapacağız? Nörona ekleyeceğimiz son parametre aktivasyon fonksiyonu ile yapacağız. Aslında aktivasyon fonksiyonu hep vardı.

Vardı da belli bir eşikte bir anda sıfırdan bire sıçrayan bir adım fonksiyonu olarak vardı. Step Function. Onun yerine daha janjanlı şeyler kullanabiliriz. Sigmoid gibi veya ReLU fonksiyonları gibi.

Bu isimler hiç önemli değil. Sonuçta olan biten basit. Girdileri bağlantı ağırlıklarına göre topla, o değeri aktivasyon fonksiyonuna yedir, onun çıktısı neymiş bak. Bu arada aktivasyon eşiğine ne olduğunu merak ediyorsanız bir yere gitmedi.

İsmini değiştirdi sadece. Tanık koruma programına girdi. Bias deniyor artık. Ve nörona sabit bir girdi olarak ekleniyor.

Bunun etkisi aktivasyon fonksiyonunu biraz sağa veya sola kaydırmak oluyor, yani çıktığı biraz değiştirmek. Bu şekilde her nöron çok değişkenli bir nonlinear fonksiyon haline gelecek. Daha karmaşık problemleri öğrenebilmek demek. Özellikle de bunları birbirine bağlayabilirsek, yani çok katmanlı ağlar yaratabilirsek.

Bence konunun kalbi burası. Çok katmanlı A ne demek? O katmanlar ne yapıyorlar, ne işe yarıyorlar? Aslında matematiksel olarak her şeyi çoktan anladınız bile.

Zira deminden beri başınızın etini yorum. Nöron demek fonksiyon demektir, yani belli kurallara göre değişim demektir. A nöronunu B'ye bağlayınca fonksiyonları zincirleme bağlamış oluyoruz. Birinin çıktısı diğerinin girdisi oluyor.

Dış dünyadan gelen bilgiler A'dan geçerken bir değişime uğrayarak tek bir sayıya indirgenecekler. O sayı da şimdi B'ye girip başka bir değişime uğrayacak. Her bağlantıda olan şey bu. Başka bağlantılar eklersek, mesela A katmanına birkaç tane benzer nöron koyarsak ne olur?

Her biri dış dünyadan aynı bilgileri alacak ama ayarları biraz farklı olduğundan her birinin çıktısı da biraz farklı olacak. Sonra tüm bu çıktılar kol kola girip bir sonraki katmandaki nöronların her birine girecek, orada farklı birer sayıya indirgenecekler. Bu böyle böyle devam edecek. Her katman bir öncekinden çıkan tüm sayıları alıp kendine göre tek bir sayıya indirgeyen nöronlardan oluşuyor.

En son katmandan çıkan sayıları da biz yorumluyoruz. Duruma göre bunu bir sonraki kelimeye, bir sonraki şarkıya, hisse senedinin yarınki tahmini fiyatına dönüştürüyoruz artık, neyse. Bu tip ağlara feed forward deniyor. Çünkü bilgiler sürekli ileri akıyor, girişten çıkışa doğru.

Başka mimariler de mümkün. Her şeyi dümdüz birbirine bağlamak mesela, yahut beyindeki gibi, nöronların bir önceki katmana bağlanmaları, feedback looplar oluşturmaları. Hatta bazı yapay ağlarda bu looplar aynı nörondalar. Yani nöronun çıktısı hem sonraki katmana hem de kendisine girdiği oluyor.

Ne kadar karışık olursa olsun nihayetinde ağ dediğimiz şey bir dizi fonksiyonu alıp farklı farklı kombinasyonlarını oluşturmak. Ne kadar çok katman ve her katmanda ne kadar çok nöron olursa o kadar fazla kombinasyon mümkün olur. O kadar karışık ilişkiler kurulur. İyi de bu cebirsel ilişkiler kavramsal olarak neye karşılık geliyorlar?

Esas onu anlamak önemli. Ben de birçok şeyin matematiğini yapabiliyorum ama onları kafamda tam oturtamıyorum. Neredeyse tüm üniversite hayatım öyle geçti. Öyleyse orijinal Perceptron makinesini bu yeni nöronlarımızla yeniden tasarlayalım, olan biteni anlamaya çalışalım.

Hatırlarsanız Perceptron'un girdisi biraz karışıktı. Rastgele bağlantılar, öğrenemeyen nöronlar falan vardı. Bunları basitleştireceğiz. Bir resmimiz var.

Tüm pikseller doğrudan ilk katmandaki tüm nöronlara bağlansınlar. Aslında burada genel olarak kafa karıştırıcı bir ayrıntı var. Konuyu okurken siz de karşılaşabilirsiniz. Çoğu zaman diagramlarda girdiler de birer nöron olarak resmediliyorlar.

İsmi de zaten girdi katmanı, input layer. Sanki diğer katmanlara benzermiş gibi. Halbuki orada farklı işler dönüyor. Bir takım karanlık ilişkiler var, dış dünyadan gelen ham veriler hesaplamalara uygun hale getiriliyorlar.

Bunlar bizim için önemli değil, kod çalıştıracaksanız önemli. O yüzden bence en iyisi bunları hiç nöron olarak filan düşünmemek, girdi katmanı dış dünyadan gelen bilgilerdir demek. O kadar. Burada da 10x10'luk bir resmimiz olsun, 100 pikselin ışık değerlerinden oluşan 100 ayrı girdi var.

Peki, çıktı nasıl olsun? Eskiden üçgenle daireyi ayırıyorduk. Diyelim şimdi kare de var işin içinde. Üç tane şekli ayırt etmem gerekiyor.

Tek bir nöronla artık bunu da halledebiliriz. Üç olası şekil varsa sıfırla üç arası değişen bir aktivasyon fonksiyonu kullanabilirim. Ama bu sadece cevaptan emin olduğumuz durumlarda işe yarar. Diyelim ki bir şeklin üçgen olmadığından eminiz ama kare mi daire mi ona karar veremedik.

Eğer üç farklı çıktı nöronumuz olursa bu durumu anlatmamız kolay olur. Biri hiç ateşlenmez, iki tanesi de yarı güçte sinyal verir. Yani çıktı değerleri cevap olasılıklarına denk gelir. Bu zaten kendi başına faydalı da esasen ağın eğitimi içinde çok değerli olacak.

Sonradan göreceğiz. Şimdi gelelim ara katmanlara. Saklı katman da deniyor buna, hidden layer. Bunlardan kaç tane olacak?

Hangisinde kaç nöron olacak? Bu işin bir kullanım kılavuzu yok. Bilim olduğu kadar bir sanat adeta. Neyse ki bizim kafamız rahat arkadaşlar.

Birkaç nörondan oluşan tek bir ara katman olsun diye kestirip atalım. Yüz girdi, bunların hepsine birden bağlanacak. Onlar da üç tane çıktı nöronunun hepsine birden bağlanacaklar. Tamamen feed forward.

İşte bu basit mimariye çok katmanlı pörseptronda deniyor. Multi-layer pörseptron. Çok katmanlı çünkü artık birden fazla öğrenen katman var. Hem aradakilerin hem de çıktıkların ağırlıkları ve eşikleri değiştirilebilir.

Tamam mıyız? Ben bu sorunu çözmeye çalışsaydım, problemi küçük parçalara ayırırdım. Derdim ki bir kare nelerden oluşuyor? Köşelerden, dikey ve yatay çizgilerden.

Daire, eğrilerden. Üçgen, yatay ve eğik çizgilerden. Dolayısıyla benim elle tasarlayacağım bir ağ da orta katman bu öğelere hassas nöronlardan oluşmalı. Bir tanesi resim içinde birbirine komşu olan ve dikey olan pikselleri gördükçe daha çok yanmalı.

Başka bir tanesi bunun aynısını yatay olanlar için yapmalı. Bu ikisi de çıktı katmanındaki kare nöronunu ateşlemem için gerekliler. Yani o bağlantıların kat sayıları pozitif olacak. Ama eşik değeri de yeterince yüksek olacak ki sadece bir tanesinin yanması yetmesin.

Bununla birlikte eğrilere, çapraz çizgilere hassas olan o diğer nöronlardan gelen sinyaller şeklin kare olma ihtimalini düşüreceğinden o bağlantıların ağırlıkları da eksi değerde olmalı. Yani şekilde düz çizgiler görsem bile çok eğri de görüyorsam kare sinyalim zayıf kalmalı. Aynısını tüm nöronlar için oturup ayarlayacağım. Görülüyor ki yapmak istediğim aslında bir korelasyon motoru oluşturmak.

Tek tek pikseller arasındaki korelasyondan basit öğeleri, onların korelasyonundan da büyük şekilleri tahmin ediyorum. Her katman bir öncekinden daha karmaşık, daha soyut kararlar verebiliyor. Şimdi fark etmiş olabilirsiniz, ara katmandaki nöronların işi göründüğünden daha zor. Bir tanesi dikey çizgi tespit etsin dedik de bunu nasıl yapacak?

Yani hangi piksele ne kadar ağırlık verecek? Eğer çizginin nerede olacağını bilseydik bu basit olurdu. Ama çizgiler resmin herhangi bir yerinde olabilirse problem çözümsüz gözüküyor. Hisabet oranını artırmak için daha çok nöron veya bir katman daha ekleyebiliriz.

Böylece problemi daha da ufak parçalara ayırmış oluruz. Mesela bir nöron resmin üst köşesinde çizgi var mı? Ona göre yanıp söner bir başkası başka yer için. Çok daha akıllıca yöntemler mümkün.

Hatta daha iyi bir mimari de mümkün. Bizim için pek önemli değil de yeri gelmişken parantez açayım. Özellikle görsel işlemek için Convolutional Neural Network denen mimari kullanılıyor. Yani her pikseli ilk katmana toptan dağıtmak yerine resmi ufak parçalara bölüp farklı nöronlara dağıtıyorsun.

Orijinal Perceptron bu kesip biçme işini rastgele yapıyordu. Burada resmin bütünlüğü korunuyor. Normalde komşu olan pikseller benzer şeyler gösterecektir, onları belli nöronlarda gruplayalım fikri var. Sonraki katmanlarda bunları tekrar çorba ediyorlar.

Bu şekilde isabet oranı yükseliyormuş. Detaylarını eklediğim videolarda görürsünüz. Yalnız demin kilit bir şey söylemiştim. Ben bu sorunu çözmeye çalışsaydım diye başlamıştım.

Katmanların giderek karmaşık kararlar verebildiğini göstermek için bize anlamlı gelen kavramları onlara denk getirmiştim. Halbuki bir sinir ağı bu problemi bizim gibi çözmek zorunda değil. Genelde de öyle çözmüyor zaten. İlk katmandaki nöronların tek tek neye hassas olduklarına bakınca Hiç de öyle çubuktu, köşeydi, yok yatay çizgilerdi, böyle şeyler görünmüyor.

Bize rastgele gözüken pikselleri duyarlı oluyorlar. Demiştim ya, biz sisteme kullanması gereken özellikler tanımlamadık. Bunları kendisinin türetmesini bekliyoruz. E o da türetiyor.

Sadece türettiği şeyleri biz anlamıyoruz. Fakat onların kombinasyonları sonraki katmanlarda birleşip değişime uğradıkça giderek daha anlamlı hale geliyorlar. Sinir ağı tam bir keşmekeşten, bir kaostan birkaç adım içinde düzeni buluyor. Benim aklımın köşesinde hep şu soru vardı bunları okurken.

Rosenblatt ve ekibi bunları akıl edememiş mi? Neden daha fazla öğrenen ara katman eklememişlerdi? Sonuçta beyin öyle çalışıyor. Yani göz sinirlerinin bağlandığı nöronlar başkalarına, onlar başkalarına, onlar başkalarına böyle bir sürü seviye var.

Akıl ettiler etmesine de biz deminki örnekte sinir ağını neredeyse elle ayarladık veya zaten optimum şekilde ayarlandığını farz ettik. Gerçekte ise ağın o ayarları öğrenmesi lazım. Yalnız orijinal öğrenme algoritması tek bir seviye için işe yarıyordu. Hatırlayın, her şeyi iki sınıfa ayırıyorduk.

Biz de yanlışın yönüne bakarak ağırlıkları azaltıp arttırıyorduk sinyal oranında. Artık uğraştığımız problemlerde bu mümkün değil ki. Çoklu sınıflandırmalar veya ölçümler var. Bir yanlış yaptığında ağırlıkları azaltıp arttırman gerektiğin bariz değil.

Bariz olsa da zaten neyi ne kadar değiştireceğin bariz değil. Sistemin lineer olmaması bu demek. İlk katmandaki bir ağırlığı biraz arttırsan, bunun efendim 5 katman sonraki sonuçlara etkisi kim bilir ne olacak? Yeterince deliyseniz bunları tek tek ayarlamayı deneyebilirsiniz ama brute force yaklaşımların ne kadar kısa süre içinde etkisiz kalacağını gördük.

Örneğin chat GPT'nin ardındaki sinir ağında tam 175 milyar ayarlanabilir parametre var. GPT-4 için bu sayının 1.7 trilyon olduğu söyleniyordu. Gerçi hepsi aynı anda kullanılmıyormuş da.

Herhalükârda bunları tek tek deneyecek kadar da deli değilsinizdir. Belli ki daha iyi bir yöntem lazım. Derin ağlar, buradaki derinlik öğrenen katman sayısına gönderme, görece yeniler. Çünkü onların etkili biçimde öğrenmesini sağlayan teknikler ilk defa 70'lerde geliştirilmiş ve sinir ağlarına uygulanmaları ise 80'lerin ortalarının hatta sonunu bulmuş.

Backpropagation ve Gradient Descent'ten bahsediyorum. Vay vay vay! Ama artık bunları da sonraki bölümde bakalım. Sonraki bölüm sadece buna odaklanacağım, öğrenmeye odaklanacağım.

O yüzden muhtemelen kısa olacaktır. Artık ondan sonra da bu büyük dil modellerine rahatça dalabiliriz. Dediğim gibi sizi epey bekletmiştim, o yüzden bugün tüm patronlarıma teşekkür edeceğim. Sadece isim okutacak kadar destekleyenleri değil, irili ufaklı hatta tek bir ay bile desteklemiş olan herkese ve tabii ki geri kalan bedavacı flarsızlara size de sabrınız için teşekkür ediyorum.

Umarım bir şeyler öğrendiniz. Her zamanki gibi eğer ciddi bir yanlışım varsa, Teknik açıdan benden çok daha ileride olan arkadaşlar vardır aranızda. Beni uyarsınlar, o kısmı değiştirebilirim. Ama yüzeysel bir yanlışsa herhalde uğraşmayız.

Siz yine bana bir mesaj atın da ben de öğrenmiş olurum. Öyleyse hepinizle bir sonraki bölümde görüşmek üzere.

Bu transkript otomatik olarak oluşturulmuştur; küçük hatalar içerebilir.

Reklam Alanı (Deneme)