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);
            }
        }
예제 #2
0
        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;
            }
        }
예제 #3
0
        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;
            }
        }