Neural Networks Mimarisinin belirlenmesi


#1

Neural Network’ü oluştururken mimarisine nasıl karar veriyoruz? Örneğin

http://neuralnetworksanddeeplearning.com/chap1 şuradaki örnekte el yazısı tanıyabilen bir neural network oluşturulmak isteniyor ve kullanılan yapı şu şekilde;
image

Burada neden 1 adet hidden layer var, neden 2,3 vs. değil? Ya da neden hidden layer’daki nöron sayısı 15 de farklı bir sayı değil?


#3

Basitçe yapay sinir ağlarında, makine öğrenmesi literatüründe,
0 saklı katman (hidden layer) olursa linear olarak ayrışabilir fonksiyonları ifade edebilir,
1 saklı katman tüm sürekli fonksiyonları ifade edebilir.
2 saklı katman herhangi bir karar sınırını herhangi bir doğrulukta bilebilir…
teorik olarak katman sayısı arttıkça bu durum her türlü fonksiyonu her zamanda ifade edebilire doğru gider, tabi ki sınırlamaları vardır.
Nöron sayısı da girdi sayısının 2/3 olacak şekilde kural olarak kalmıştır.
Evrensel yakınsama (universal approaximation theorem) buna cevap veren teoremdir. Daha detaylı okumalar için kaynak: https://www.heatonresearch.com/2017/06/01/hidden-layers.html


#2

Doğru bir cevabı yok bu sorunun.

Computational power’ın yoksa intuition’ınla bir architecture yaratırsın; sonra deneyebileceğin kadar parametre üzerinden grid search yaparsın ya da yapmazsın.

Computational power’ın varsa da parameter search için reinforcement learning kullanıp, çıktısı olan networkle de asıl işini yaparsın.


#4

Bu bir çok parametreye dayalı bir problem herkesin dediği gibi kesin bir çözümü yok.
@Bahadır ve @neuroscitechie 'e ek olarak NG 'nin önerisi basit bir mimariyle başlayıp cıkıcak bias ve variance problemlerini analiz edip buna mimariyi daha komplike ya da basitleştirme yoluna gidebilirsin. Benim tavsiyem cözmeye calıştığın problem büyük ihtimalle birileri tarafından akademide çalışılmıştır ve sonuçlar elde edilmiştir bu makalelerde kullanılan mimarilerden esinlenip problemin sana spesifik kısımları için mimariyi olumlu yönde değiştirebilirsin ekleme çıkarmalar yaparak


#6

Yukarıdaki yorumlara ek olarak ben de birkaç teknik materayal paylaşayım.


#5

Mimariyi belirledikten sonra iş bitmiyor ekstradan hyperparamlarını da tunelaman gerekiyor mimarinden en iyi sonucu almak için, burda yine @Bahadir 'in dediği gibi computation power önemli bir aspect. Hyperparameter tuning icin pandas vs caviar methodlarını inceleyebilirsin, Ng 'nin sadece hyperparameter tunning ile ilgili güzel bir dersi var