public void ileriHesaplama(int[] veriler) { // Giriş katmanının değeri ile ağırlığının çarpılarak toplanması ve toplanan sonuçların bias eklenerek sigmoid fonksiyonuna sokuluyor. // Daha sonra ise Çıkış value'ye atanıyor. for (int i = 0; i < gizlikatmanSayisi; i++) { Noron noron = gizliKatman.gizliKatmanNoronlari[i]; double toplam = 0; for (int j = 0; j < girisKatmaniSayisi; j++) { Noron girisNoron = girisKatmani.girisKatmanNoronlari[j]; toplam += girisNoron.value * girisNoron.agirliklar[i]; } noron.value = Sigmoid(toplam + noron.bias); } // Gizli katmanının değeri ile ağırlığının çarpılarak toplanması ve toplanan sonuçların bias eklenerek sigmoid fonksiyonuna sokuluyor. // Daha sonra ise Çıkış value'ye atanıyor. for (int i = 0; i < cikisKatmani.cikisKatmanNoronlari.Length; i++) { Noron noron = cikisKatmani.cikisKatmanNoronlari[i]; double toplam = 0; for (int j = 0; j < this.gizlikatmanSayisi; j++) { Noron gizliNoron = gizliKatman.gizliKatmanNoronlari[j]; toplam += gizliNoron.value * gizliNoron.agirliklar[i]; } noron.cikisValue += Sigmoid(toplam + noron.bias); } }
public GizliKatman(int gizliKatmanSayisi, int cikisKatmanSayisi) { gizliKatmanNoronlari = new Noron[gizliKatmanSayisi]; for (int i = 0; i < gizliKatmanSayisi; i++) { Random rnd = new Random(); Noron noron = new Noron(); // Gizli Katmanın değerlerini 0'lanır //noron.value = 0; noron.value = GetRandomNumber(-1, 1); // Gizli katman sayısı kadar ağırlık oluşturuldu noron.agirliklar = new double[cikisKatmanSayisi]; // Her bir noron için random sayılar atandı; for (int j = 0; j < cikisKatmanSayisi; j++) { noron.agirliklar[j] = GetRandomNumber(-1, 1); } noron.bias = this.bias; // Oluşturduğumuz noronu dizimize ekliyoruz. gizliKatmanNoronlari[i] = noron; } }
public CikisKatmani(int cikisKatmanSayisi) { cikisKatmanNoronlari = new Noron[cikisKatmanSayisi]; for (int i = 0; i < cikisKatmanSayisi; i++) { Noron noron = new Noron(); // Çıkış katmanın değerleri 0'lanır noron.cikisValue = 0; cikisKatmanNoronlari[i] = noron; } }