用語集 · 機械学習

ニューラルネットワーク

別名:Neural network、artificial neural network、deep learning、weights、ニューラルネット、人工ニューラルネットワーク、深層学習、ディープラーニング、重み

単純なユニットを層状に重ねて作った関数。各ユニットは入力に学習済みの重みを掛けて足し合わせ、その結果を非線形関数に通します。

ニューラルネットワークは、重みと呼ばれる調整可能な数値をたくさん持つ柔軟な関数です。重みが十分にあり、その値が適切なら、入力から出力へのほとんどどんな対応でも近似できます。学習とは、その値を探すことです。

1つの層

各層は入力ベクトル xx を受け取り、重み行列 WW を掛け、バイアスベクトル bb を足し、各要素に単純な非線形関数 σ\sigma を適用します。

h=σ(Wx+b)h = \sigma(Wx + b)

層を積み重ねると、深いネットワークになります。非線形関数がなければ、積み重ねた層は1回の行列の掛け算にまとまってしまい、直線的な(線形の)関係しか学べません。

活性化関数

σ\sigma のよくある選択肢は次のとおりです。

名前式
ReLUmax⁡(0,x)\max(0, x)
tanhtanh⁡(x)\tanh(x)
ELUx>0x > 0 なら xx、そうでなければ ex−1e^x - 1

学習

ネットワークの誤差は損失関数で測ります。誤差逆伝播法は連鎖律を使って、各重みが誤差にどれだけ寄与したかを計算し、勾配を求めます。そして勾配降下法で、誤差が減るようにすべての重みを少しずつ動かします。これを何百万回も繰り返します。

このプロジェクトでは

このプロジェクトのネットワークは、今の基準では小さなものです。各方策(ポリシー)は、256ユニットの隠れ層2つと ELU 活性化を持つMLPで、重みは約125,000個です。大規模言語モデルには数千億個あります。身体の状態をモーターの補正量に対応させるには小さなネットワークで十分で、CPU 上で1秒に50回、高速に動きます。

関連用語

この用語が出てくる記事

← すべての用語