daha genel bir şekilde bu sorunu çözmek için, öncelikle değişkenler ne bakmak ve hangi sabit parametrelerdir.g(
içinde *
ağırlık:
Temelde= [1.5, -1, 1, 2]
ağırlık ağırlıkları girişi vektör verildi ve transfer fonksiyonug(x) = (sign(x)+1)/2
ve kadar bu giriş vektörü bulmak istiyoruz edilir) = +1
(satırın ve sütun vektörünün ürünü olarak), bu nedenle:
g(sum_over_i(w_i*in_i)) = 1 # product of vectors
g(w0*in0 + w1*in1 + w2*in2 + w3*in3) = 1 # roll out the sum
g(-1.5 - in1 + in2 + 2*in3) = 1 # replace the values of w and in
0.5*(sign(-1.5 - in1 + in2 + 2*in3)+1) = 1 # definition of g(x)
sign(-1.5 - in1 + in2 + 2*in3) = 1 # simplify
-1.5 - in1 + in2 + 2*in3 >= 0 # by def: [sign(x)=1 iff x>=0]
(
2^n
veya
8
durumlar vardır)
Normalde türevleri hesaplayarak bu denklemi çözmek, ancak girişler beri yılında yalnızca değerleri 0
veya 1
, biz sadece bütün davaları numaralandırabilmesidir alabilir:
in1 in2 in3 -1.5-in1+in2+2*in3
-----------------------------------
0 0 0 -1.5
0 0 1 0.5 *
0 1 0 -0.5
0 1 1 1.5 *
1 0 0 -2.5
1 0 1 -0.5
1 1 0 -1.5
1 1 1 0.5 *
Bu nedenle, yukarıdaki ifadenin pozitif olduğu numaralı değerlerini elde ederiz.
Teşekkürler gnovice, başka bir soruma cevap verebilir misiniz? Örneğime http://en.wikipedia.org/wiki/Artificial_neuron psödocode algoritmasını uygularsam, sonuç cevabınla aynı olur mu? –
@mary: Evet, bu sözde kod, çıktının değerini nasıl hesaplayacağınızı gösterir (eşik değeri 0 ile). Esasen yukarıda verdiğim formül kullanır: eğer formül doğru olarak değerlendirilirse (yani, sol taraftaki ağırlıklı girdilerin toplamı eşikten büyükse), nörondan sıfır olmayan bir çıktı vardır. Dikkat etmeniz gereken tek konu, bir ">" veya "> =" kullanılmasının gerekip gerekmediğidir (yani, ağırlıklı girişler için 0 toplamı 0 veya 1 çıktı veriyorsa). – gnovice
Ek açıklamalarınız için teşekkürler, gnovice. Bundan emin değildim. Cevabınız için çok teşekkürler! –