Derin Öğrenmeye Yüzeysel Giriş: Artificial Neural Network(ANN)

Derin Öğrenmeye Yüzeysel Giriş: Artificial Neural Network(ANN)

“Her derin öğrenme için ANN’dir denemez ancak ANN bir derin öğrenmedir.”
Çağla Öztürk19 Ağu 2024

Yapay Sinir Ağları, derin öğrenmenin bir alt kümesidir. Derin öğrenme sürecinde en yaygın ve en etkili modeller çok katmanlı yapay sinir ağlarıdır. FNN,CNN,RNN,LSTM gibi birden fazla yapay sinir ağı mimarisi bulunmaktadır. Bunlardan en temel yapay sinir ağı yapısına sahip olan Artificial Neural Network’tür. Kısaca ANN olarak ifade edilir. Yapay sinir ağları, sinir hücrelerinin (veya nöronların) katmanlar halinde düzenlendiği bir yapıyı ifade eder. Bu katmanlara “layer” (katman) denmektedir.

ANN, temelinde birden fazla tekrar edilmiş lojistik regresyondur. Lojistik regresyon ile arasındaki fark ise layer sayısıdır. Lojistik regresyonda 2 layer; input ve output mevcut iken ANN’de; input ve output arasında bir de hidden layer vardır. Hidden(gizli) denmesinin sebebi ise hiddenların inputu görmemesidir. Hiddenların inputu görmemesi demek, inputtan hidden’a geçildiğinde hidden’ın input gibi çalışıyor olması demektir.

ANN, 2-Layer ve L-Layer olmak üzere 2 başlık altında incelenebilir. 2 kez tekrar etmesi 2 Layer, 2 ve daha fazla (kaç kez tekrar edecekse) tekrar etmesi L Layer olarak ifade edilir. 2 Layer olarak ifade edilmesinin sebebi ise ANN’de inputların söylenmemesidir. Bu sebeple kaç layer olduğu sorulduğunda 2 layer diyoruz.

Hidden sayısı aynı zamanda deep learning’deki deep kavramını oluşturur. Hidden sayısı ne kadar fazla ise o kadar derin öğrenme yapılmış olur.

Peki bu ne kadar derin olmalı yani ne kadar hidden gerekiyor ? Bu kavram biraz göreceli olmakla birlikte çalışmadan çalışmaya değişiklik göstermektedir. Basit bir ifade ile anlatmak gerekirse; bir deniz düşünelim. Yüzme bilmeyen biri için 2 metre derin ancak yüzme bilen için derin değildir. 10 metre ise yüzme bilen için bile derin denilebilir.

Lojistikte Sigmoid fonksiyon kullanıyorken, ANN’de Tanh fonksiyon kullanıyoruz. Neden tanh kullanıyoruz? Hidden unitlerde daha iyi çalıştığı için.

Sigmoid fonksiyonu tüm datayı 0 ile 1 arasına sıkıştırıyorken, Tanh fonksiyonu -1 ile 1 arasına sıkıştırmaktadır. Bunun anlamı Tanh fonksiyonu’nun ortalamasının 0’a daha yakın olmasıdır. Bu datamı daha iyi merkezde tuttuğum anlamına gelmektedir. Yanlılık durumunu gidermiş oluyoruz. Oysaki sigmoid’de ort 0.5’e daha yakındır. Ancak bizim istediğimiz şey ortalamanın 0’a daha yakın olmasıdır. Tanh dışında Relu gibi başka fonksiyonlar da mevcuttur ancak burada bilmemiz gereken en önemli şey 1.layer’da Sigmoid fonksiyonu kullanmıyoruz. 1.layer’da activation function kullanılmasının sebebi ise; öğrenirken datanın non-linearity’sini arttırmaktır. Yani karmaşıklığın artmasıdır. Karmaşıklığın olmasının iyi tarafı; ne kadar karmaşık şeyler öğrenilirse datayı o kadar iyi öğrenecek olmasıdır.

Aşağıda yer alan grafikte Lojistik Regresyo’nun çalışma mantığını görüyoruz. İnputlar var, onların belli ağırlıkları var ve bias ile birlikte bir z değeri elde ediliyor. Bu da sigmoid fonksiyona sokuluyor ve y_head değeri elde ediliyor.


 

 

2.grafikte ise ANN 2-Layer çalışma mantığını görüyoruz. Burada da inputlar var, onların belli ağırlıkları ve bias ile birlikte bir z^(1) değeri elde ediliyor. Bu değer de yukarıda bahsettiğimiz tanh fonksiyonuna sokuluyor. Buradan bir A^(1) değeri elde ediliyor. Lojistik regresyonda elde edilen y_head değeri gibi. Buradaki fark lojistik regresyonda bu işlemin bitmesiydi. Şimdi hidden layerlardayız, inputlarım hidden layerlar. 1 tur daha ileri gideceğiz. Yani buradaki 1.layer tamamlandı. Hidden layer da inputlar gibi değerlendirilip ağırlıkları ile çarpılarak, bias eklenerek z^(2) değeri elde ediyoruz. Bunu sigmoid fonksiyona sokuyoruz ve A^(2) değeri elde ediyoruz. Nihayetinde lojistik regresyondaki y_head değerini elde etmiş oluyoruz.

 

 

L-layer da aynı çalışma mantığına sahip olmakla birlikte burada karmaşıklık daha fazladır. Daha önce de bahsettiğimiz gibi yapı ne kadar karmaşık olursa, model o kadar çok şey öğrenir. Node sayısı ve layer sayısı arttıkça problemin karmaşıklığı artar. Bununla birlikte karşılaşılan dezavantajlar ise; memory ihtiyacının artması, Run süresinin de uzamasıdır.

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.