Image for post
Image for post

Bu yazımı, yapay sinir ağı alanında bir seri oluşturarak yazmaya karar verdim. İlk başta, yapay sinir ağının tanımı ve torik bilgilerini yazmayı daha sonra matematiksel yapısını küçük bir veri seti üzerinden anlatacağım.

Sinir Ağı Nedir?

İnsan beyni, nöronlar arasındaki sinaptik bağlantıların ayarlanması ile olur. İnsanlar doğumlarından itibaren yaşayarak öğrenme sürecine girerler. Nöronlar birbirine bağlı elektrik sinyalleri üretir. Dendritler giriş sinyallerini alır ve bir akson aracılığıyla bir çıkış sinyali tetikler. O çıkış boyunca akson çıkış uçlarına yönlendirilir ve oradan diğer hücrelerin dendritlerine gider. İnsan beyninin aslında nasıl çalıştığı çok karmaşık ve gizemlidir.

Image for post
Image for post

Yapay sinir ağları katmanlar halinde organize edilir. Ağırlıklandırılmış şekilde birbirine bağlanmış birçok işlem biriminden(nöronlar) oluşan matematiksel sistemlerdir. İşlem birimi diğer nöronlardan sinyal alır; bunları birleştirir, dönüştürür ve sayısal bir sonuç ortaya çıkartır.

Image for post
Image for post
Biyolojik sinir yapısını ve yapay sinir yapısını inceleyelim.

ALGILAYICILAR

Algılayıcılar, 1950 ve 1960 ‘larda Warren McCullloch ve Walter Pitts’in daha önceki çalışmalarından esinlenerek Frank Rosenblatt tarafından geliştirildi. En basit sinir ağıdır. Bir algılayıcı x1, x2 gibi birden fazla giriş alır, bir işlem ve bir çıkıştan oluşur.

Image for post
Image for post

Örnekte, algılayıcının üç girişi vardır (x1, x2, x3). Girdilerin çıktıya önemini ifade eden ağırlıklar vardır. Bunlar w0, w1, w2 vb. şeklinde gösterilir. Nöronun çıkışı 0 veya 1 olan ∑ j w j x j toplamı bir eşik değerinden küçük veya büyük olmadığına göre belirlenir. Daha cebirsel bir ifade ile gösterirsek:

Image for post
Image for post

Temel matematik model budur. Algılayıcı koşulları ölçerek karar veren bir cihazdır diyebiliriz. Bir örnek üzerinden gidelim. Diyelim ki hafta sonu dondurma festivali olacağını duydunuz. Dondurmayı seviyorsun ve gidip gitmeyeceğine karar vermeye çalışıyorsun. Üç koşulu göz önüne getirerek karar verebilirsiniz:

· Hava güzel mi?

· Erkek arkadaşın veya kız arkadaşın sana eşlik etmek istiyor mu?

· Festival toplu taşıma araçlarına yakın mı? (Arabanız yok)

Bu üç şartı giriş olarak alıp ikili değişkenlerine karar verebiliriz. Hava güzel ise x1 = 1 değilse x1 = 0, arkadaşın gitmek istiyorsa x2 = 1 istemiyorsa x2 = 0, toplu taşımalara yakın ise x3 = 1 değilse x3 = 0.

Diyelim ki dondurmayı çok seviyorsunuz. Arkadaşınıza ve toplu taşımaya rağmen gitmek istiyorsunuz. Ama havanın bozuk olmasından nefret ediyorsunuz. Ve hava kötü ise gitmeyeceksiniz. Bu tür bir karar almayı modellemek için algılayıcıları kullanabilirsiniz. Hava durumu için w1 = 6 ve diğer koşullar için w2 = 2 w3 = 2 ağırlıklarını seçersek havanın kötü olması diğer koşullardan daha önemli olduğunu gösterir. Son olarak algılayıcı için eşik değerini 5 seçersek çıkışta sadece havanın iyi olup olmadığına bakacaktır. Diğer durumlar çıkışta bir fark yaratmaz. Yani gitmeyeceğinizi etkilemez.

Ağırlıkları ve eşiği değiştirerek farklı karar verme modelleri elde ederiz. Örneğin 3 eşiğini seçtiğimizi farz edelim. 3 koşulu da alacaktır. Başka bir değişle, farklı bir karar alma modeli oluşacak. Eşiği düşürmek festivale gitmeye daha istekli olduğunuz anlamına gelir. Örnekte gösterildiği gibi bir algılayıcının karar vermek için farklı şartlar koyduğudur. Ve karmaşık bir algı ağında oldukça ince kararlar verdiği makul görünmelidir.

Image for post
Image for post

Algılayıcıların ilk katmanları giriş katmanlarımız dır. İkinci katman ise ilk katmandan gelen algılayıcılara göre karar veriyor. Bu şekilde ikinci katmanlardaki bir algılayıcı birinci katmandaki algılayıcılardan daha karmaşık ve daha soyut bir karar verebilir.

Algılayıcıları basitleştirelim. ∑j w j x j > eşik basitleştirmek için 2 yol vardır. İlki ∑j wj xj ‘i w.x şeklinde yazmaktır (∑j w j x j ≡ w.x ); burada w ve x, sırayla bileşenler ağırlık ve girdi olan vektörlerdir. İkincisi eşiği eşitsizliğin diğer tarafına atmaktır. Algılayıcının bias ‘ı b ≡ -eşik olarak adlandırılır. Eşik yerine sapma kullanılarak, algılayıcı kuralları yeniden yazılabilir.

Image for post
Image for post

Büyük bir bias değerine sahip bir algılayıcı için, algılayıcının 1 çıkması kolaydır. Ama küçük ise 1 çıkması zordur. Bias ‘a giriş için sadece küçük bir değişikliktir.

Algılayıcıların kullanımının bir başka yolu, genellikle temel hesaplama olarak düşündüğümüz temel mantıksal fonksiyonlarıdır. Bunlar AND, OR ve NAND ‘dır. Örneğin, her biri -2 ağırlığında, 3 genel bias ‘a ve iki girişli bir algılayıcıya sahip olduğumuzu varsayalım. Burada;

Image for post
Image for post

=> 00 için “1” üretir. Çünkü (-2)*0+(-2)*0+3 = 3 Pozitif çıkar.

=> 01 için “1” üretir. Çünkü (-2)*0+(-2)*1+3 = 1 Pozitif çıkar.

=> 10 için “1” üretir. Çünkü (-2)*1+(-2)*0+3 = 1 Pozitif çıkar.

=>11 için “0” üretir. Çünkü (-2)*1+(-2)*1+3 = -1 Negatif çıkar.

NAND örneği, basit mantıksal işlemi yapabilmek için yine algılayıcıları kullanırız. Ancak diğer mantıksal ifadelerde tek bir doğru ile ayırabiliyor iken NAND iki doğru ile ayırmamız gerekiyor. NAND çok katmanlı yapıya örnektir. Aşağıda resim üzerinde gösterildiği gibi And ve Or da tek bir doğru ile ayırabiliyorken NAND da doğru çizemiyoruz.

Image for post
Image for post

NAND mantıksal işlem için;

Image for post
Image for post

==> x1 = 0 ve x2 = 0 için 0*.5+0*.5 < .25 olduğu için 0 çıkar.

0*.5+0*.5 < .75 olduğu için 0 ve 0*.5 + 0*-.5 < .25 olduğu için çıkış 0 olur.

==> x1 = 1 ve x2 = 0 için 1*.5+0*.5 > .25 1 çıkar.

1*.5+0*.5 < .75 için 0 çıkar. 1*.5 + 0*-.5 >.25 olduğu için sonuç 1 çıkar.

==> x1 = 0 ve x2 = 1 için 0*.5+1*.5 > .25 1 çıkar.

0*.5+1*.5 < .75 için 0 çıkar. 1*.5 + 0*.5 >.25 olduğu için sonuç 1 çıkar.

==> x1 = 1 ve x2 = 1 için 1*.5+1*.5 > .25 1 çıkar.

1*.5+1*.5 < .75 için 1 çıkar. (1*.5)+(1*-.5) <.25 olduğu için sonuç 0 çıkar.

Bunun sonucunda bazen gizli katmana ihtiyacımız var. Tek katmanlı yapay sinir ağı bazen problemimizi çözemeye biliyor. Bu önemli bir durumdur. Çalışma alanına göre ilk önce problemi doğru algılamak sonra doğru yöntemi kullanmak önemlidir.

KAYNAKLAR

http://neuralnetworksanddeeplearning.com/chap1.html

https://tr.wikipedia.org/wiki/Yapay_sinir_a%C4%9Flar%C4%B1

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store