2016-04-19 6 views
0

今2週間、私はニューロンネットワークを使って作業しています。私の活性化機能は通常のシグモイド機能ですが、インターネット上で読んだことがありますが、さまざまな解釈方法があります。ニューロンネットワークの "Bias"の使い方

現在、すべての入力値に重みを掛けて、バイアス(負のしきい値)を加算しています。私は、それはすべてが私のためにかなりよく働いたhttp://neuralnetworksanddeeplearning.com/chap1#sigmoid_neurons からこのすべてを取ったが、その後、私は、このページを発見:http://www.nnwj.de/backpropagation.html

前方伝播部分ではバイアスを全く使用し、私はそれがあるべきだと思うされていないので、教えてください、私はちょうど彼らがそこに行ったか、またはどのページが間違っているか見るためにばかげているのですか?

for(int v = 0; v < outputs[i].X; v++){ 
    outputs[i].set(v, biases[i].get(v)); 
     for(int k = 0; k < outputs[i-1].X; k++){ 
      outputs[i].increase(v, weights[i].get(v,k) * outputs[i-1].get(k)); 
     } 
    outputs[i].set(v, sigmoid(outputs[i].get(v))); 

System.out.println("Layer :" + i + " Neuron :" + v + " bias :" + biases[i].get(v) + " value :" + outputs[i].get(v)); 

     } 

これは私のコードを計算するための私のコードですが、1個のニューロンのための部分は、この部分で行われます。

outputs[i].set(v, biases[i].get(v)); 
for(int k = 0; k < outputs[i-1].X; k++){ 
    outputs[i].increase(v, weights[i].get(v,k) * outputs[i-1].get(k)); 
} 
outputs[i].set(v, sigmoid(outputs[i].get(v))); 

おそらく、あなたは私がやった正確に理解することはできませんが、私私の層を表し、kはすべて入力ニューロンであり、反復して入力ニューロンを投げ、そこに出力を加重します。 私はそれをしました、私はバイアスに私の出発価値を設定しました。

あなたは私が私の英語のため申し訳ありませんまた、この問題で私を助けることができる場合、私はとても幸せになる:)

答えて

0

一般にバイアス用語は、前方と後方のパスの両方に含まれるべきです。

私は第2ページでバイアス用語を参照したと思うのは、単純化のためにForwardpropagationセクションでは省略されていますが、Backpropagationセクションではなぜその追加のバイアス用語が必要なのか説明しています。

最初のものは2番目のものよりも面白いチュートリアルのようです。