2017/02/28
0:00

パーセプトロン概論③

確率的勾配降下法の図
みなさんこんにちは。
人工知能ラボの助手です。

前回までは、パーセプトロンの理論について、
機械学習における3ステップに倣いながら
数式を追っていきました。


今日はその後半である、
③ 最も適したパラメータを決定
について説明していきます。


前回の記事に、

  ① パラメータを含む数式モデルを仮定
  ② パラメータを評価する基準を設定

の2項目については説明していますので、
まだ見ていない方は先にそちらを見てくださいね。


では、本題へ参りましょう!


③ 最も適したパラメータを決定

今後、最小化したい誤差 $E$ はベクトル表記の式を用います。
この誤差 $E$ を最小化するための手法として説明するのが、
確率的勾配降下法」と呼ばれるものになります。

この手法は最小二乗法と同じように、
$E$という関数(これは$ω$の関数)の
パラメータによる偏微分係数を$0$と置き、
最小となるパラメータ $ω$ を決定するというものです。

なかなかイメージができないかと思いますので、
イメージ図を使って説明します。
トップ図を見てください。
確率的勾配降下法の図

最初はある初期値 $ω_{old}$によって、$E($$ω_{old})$の値が決まっています。

このときの勾配ベクトル$\nabla E($$ω_{old})$を求めると、

$\displaystyle E = - \sum_n t_n \phi_n $
となります。

この勾配ベクトルと逆向きにすすむと、
すり鉢の底へ向かうように$E$の値が
小さくなっていくのがわかるでしょうか。

つまり、現在の場所から勾配ベクトルの
逆向きに進んだ場所を新たな場所とし、
その新たな場所での勾配ベクトルの逆向きを計算して、
また新たな場所へ進む。
ということを何度も繰り返して、$E$の最小化を図る手法なのです。


現在の場所を$ω_{old}$、新たな場所を$ω_{new}$とすると

$ω_{new} = ω_{old} - \nabla E_{(ω)}$

と表すことができます。
また、先ほど求めた勾配ベクトルの式を代入することで、

$ω_{new} = ω_{old} + \displaystyle \sum_n t_n \phi_n $

と表すことができ、これが最小化するアルゴリズムとなります。

このアルゴリズムだと、
最終的には原点に落ち着く為、勾配ベクトルが$0$となるので、
そこで場所の更新はストップします。

このトップ図ではイメージしやすいよう、$E$を$(ω_0 , ω_1)$ の2変数として
図示していますが、本質的には3変数でも同じです。


このように、勾配降下法では、
勾配ベクトルの逆向きにパラメータを修正していき、
誤差関数のすり鉢の底の部分まで下っていく手法のことを言います。

では、「確率的」とは何を指しているのでしょうか。

ここで、思い出してほしいのは
誤差$E$ が何についての和であったか、ということです。


この誤差は、正しく分類されなかった点についてのみの和でしたね。
例えばこれに該当する点が膨大に合った場合、どうでしょうか。

まず、1つ目の点について、$ t_n \phi_n $ を計算し、
次に、2つ目の点について計算して…と計算したのち、
その全てを $ω$ に足し合わせることが必要となります。
イメージするだけで大変ですし、時間もかかりそうですね。

そこで、正しく分類されていない点をランダムでどれか1つ選び、
その点についてパラメータを修正していきます。
このように、正しく分類されていない点をランダムに選ぶことから
確率的」と呼ばれているのです。



以上でパーセプトロンに関する理論的な説明は終了です。
たくさんの数式が出てきて、困惑されたかと思いますが、
これらに関しては、さらに理解を深めたい人のみで構わないので、
ほかの書籍やWebページも参考に、学んでみてください。

そうでない人も、パーセプトロン概論①で説明したような
パーセプトロンの簡単なモデルなどについては、
ぜひ覚えていてください。

この先、機械学習に触れることがあるならば、
必ず役に立つ時が来ます。
(具体的にはニューラルネットなどで特に必要となります。)


それでは今回はこのへんで。
みなさん、お疲れさまでした!


前回:TensorFlowによる回帰分析②