0

今から 2 週間、私はニューラル ネットワークに取り組んでいます。私のアクティベーション関数は通常のシグモイド関数ですが、インターネットで読んだことがあるのですが、さまざまな解釈方法が見つかりました。

現在、すべての入力値に重みを掛けて合計し、バイアス (負のしきい値) を追加しています。これはすべてhttp://neuralnetworksanddeeplearning.com/chap1#sigmoid_neuronsから取得し まし

順伝播部分では、バイアスはまったく使用されていません。そうすべきだと思います。教えてください。彼らがそこで何をしたか、どのページが間違っているかを見るのは愚かですか?

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 はすべての入力ニューロンであり、入力ニューロンをスローし、出力に重みを追加することを繰り返しています。それを行う直前に、開始値をバイアスに設定しました。

この問題で私を助けてくれたらとても嬉しいです。また、私の英語で申し訳ありません:)

4

1 に答える 1

0

一般に、バイアス項は順方向パスと逆方向パスの両方に含める必要があります。

あなたが参照した2ページ目では、単純化のためにForwardpropagationセクションでバイアス項が省略されていると思います.Backpropagationセクションでのみ、追加のバイアス項が必要な理由が説明されています.

最初のチュートリアルは、2 番目のチュートリアルよりも思慮深いチュートリアルのように見えます。

于 2016-04-20T06:30:32.393 に答える