1. ホーム
  2. machine-learning

[解決済み】ニューラルネットワークにおけるバイアスの役割とは?[クローズド]

2022-03-23 10:46:16

質問

勾配降下法、バックプロパゲーションアルゴリズムは知っている。バイアスを使うことが重要なのはどんなときで、どのように使うのでしょうか?

例えば AND 関数は、2つの入力と1つの出力を使用する場合、正しい重みを与えません。しかし、3つの入力(そのうちの1つはバイアス)を使用すると、正しい重みが与えられます。

解決するには?

バイアスは、ほとんどの場合、役に立つと思うんです。 事実上 バイアスの値によって活性化関数を左右にずらすことができる これは、学習を成功させるために重要なことかもしれません。

簡単な例を見てみましょう。 1入力1出力のネットワークで、バイアスがかかっていないものを考えてみよう。

ネットワークの出力は、入力 (x) に重み (w) を掛けることによって計算されます。 <サブ 0 のような活性化関数(シグモイド関数など)を通過させる。)

このネットワークが計算する関数は、wのさまざまな値に対して次のとおりです。 <サブ 0 :

重さを変えるw <サブ 0 は本質的にシグモイドの急勾配を変更するものです。 これは便利ですが、xが2のときに0を出力するようにしたい場合はどうしたらよいでしょうか? シグモイドの急勾配を変えるだけではうまくいきません。 曲線全体を右へ移動させたい場合 .

それこそ、バイアスがあればできることです。 そのネットワークにバイアスを加えると、こんな感じです。

...すると、ネットワークの出力は、sig(w <サブ 0 *x + w <サブ 1 *1.0). 以下は、wの値をいろいろ変えた場合のネットワークの出力の様子です。 <サブ 1 :

w のウェイトが -5 であること <サブ 1 は曲線を右にシフトし、x が 2 のとき 0 を出力するネットワークを作ることができる。