勾配降下法とバックプロパゲーションアルゴリズムについては知っています。理解できないのは、バイアスの使用が重要な場合と、それをどのように使用するかということです。
たとえば、AND
関数をマッピングするときに、2 つの入力と 1 つの出力を使用すると、正しい重みが得られません。ただし、3 つの入力 (そのうちの 1 つはバイアス) を使用すると、正しい重みが得られます。
ベストアンサー1
バイアスはほとんどの場合役に立つと思います。実際には、バイアス値によって活性化関数を左または右にシフトすることができ、これは学習を成功させるために非常に重要になる場合があります。
簡単な例を見ると分かりやすいかもしれません。バイアスのない 1 入力 1 出力のネットワークを考えてみましょう。
ネットワークの出力は、入力 (x) に重み (w 0 ) を掛けて、その結果を何らかの活性化関数 (シグモイド関数など) に渡すことによって計算されます。
このネットワークが w 0のさまざまな値に対して計算する関数は次のとおりです。
重み w 0を変更すると、基本的にシグモイドの「急勾配」が変わります。これは便利ですが、x が 2 のときにネットワークが 0 を出力するようにしたい場合はどうでしょうか。シグモイドの急勾配を変更するだけではうまくいきません。曲線全体を右にシフトできるようにする必要があります。
まさにそれがバイアスによって可能になります。次のように、ネットワークにバイアスを追加すると、次のようになります。
...すると、ネットワークの出力は sig(w 0 *x + w 1 *1.0) になります。w 1のさまざまな値に対するネットワークの出力は次のようになります。
w 1の重みを -5 にすると、曲線が右にシフトし、x が 2 のときに 0 を出力するネットワークが可能になります。