今から 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 はすべての入力ニューロンであり、入力ニューロンをスローし、出力に重みを追加することを繰り返しています。それを行う直前に、開始値をバイアスに設定しました。
この問題で私を助けてくれたらとても嬉しいです。また、私の英語で申し訳ありません:)