google-site-verification: googlec11dd3c59de6bdc4.html
人工知能はどこまで人間に迫るのか
How close will artificial intelligence get to humans?
深層学習

13)誤差逆伝搬法(Back Propagation)

単純なニューラルネットワークの誤り訂正学習の限界は、出力層のノードへの結合の重みしか修正できないということであった。これに対して出力層よりも前の隠れ層へのノードへの結合の重みを修正できる学習法として提案されたのがRumallhart et al.(1986)による誤差逆伝搬法である。

誤差逆伝搬法ではノードの活性化関数を不連続なしきい関数から微分可能な関数に変更することで、出力層での誤差評価R(W)への任意の結合重みwの寄与を偏微分係数ðR(W)/ð wとして計算できるようにした。ここでWはネットワークのすべての結合の重みをまとめたものである。微分可能な活性化関数としてはシグモイド関数がよく使われる。

これによって、勾配降下法などの通常の最適化手法によって、出力と正解との間の誤差が小さくなるようにすべての重みを修正することが可能になった。

誤差を最小化して任意関数を近似することが出来る。 そのアルゴリズムは次の通りである:

・ネットワークに学習のためのサンプルを与える。
・ネットワークの出力を求め、出力層における誤差を求める。その誤差を用い、各出力ニューロンについて誤差を計算する。
・個々のニューロンの期待される出力値と倍率 (scaling factor)、要求された出力と実際の出力の差を計算する。これを局所誤差と言う。
・各ニューロンの重みを局所誤差が小さくなるよう調整する。
・より大きな重みで接続された前段のニューロンに対して、局所誤差の責任があると判定する。
・そのように判定された前段のニューロンのさらに前段のニューロン群について同様の処理を行う。

このアルゴリズムの名が暗示するように、エラー(および学習)は出力ノードから後方のノードへと伝播する。技術的に言えば、バックプロパゲーションはネットワーク上の変更可能な重みについて、誤差の傾斜を計算するものである。この傾斜はほとんどの場合、誤差を最小にする単純なアルゴリズムである確率的最急降下法で使われる。「バックプロパゲーション」という用語はより一般的な意味でも使われ、傾斜を求める手順と確率的最急降下法も含めた全体を示す。バックプロパゲーションは通常すばやく収束して、対象ネットワークの誤差の局所解(区間を限定したときの極小値、極値参照)を探し出す。

バックプロパゲーションを行う場合、ネットワークは少なくとも三層以上でなければならない(入力層、中間層、出力層)。また、多層ネットワークの中間層が意味のある関数を表すには、非線形の活性化関数でなければならない。線形な活性化関数の多層ネットワークは、単層ネットワークと等価である。非線形の活性化関数としては、ロジスティック関数(中でも tanh などのシグモイド関数)、ソフトマックス関数、ガウス関数などが一般的であったが、中間層の活性化関数としては現在はmax(x, 0) が最善であるとされている。(Wikipediaより)

トップページへ