Processing math: 0%
2017/02/24
0:00

パーセプトロン概論②


パーセプトロン幾何的説明図


皆さんこんにちは。
人工知能ラボの助手です。

前回はパーセプトロンの概要について説明しました。
今回は、パーセプトロンの原理について、少し数学を交えながら
その理論を紐解いていきましょう。



パーセプトロンは、よく「分類アルゴリズムの基礎」とも呼ばれ、
与えられたデータを完全に、とまではいかなくとも
なんらかの基準を設けること最善の分割をするような手法です。

今回はトップ画像のように、
マルとバツのデータがうまく分かれるように
平面を分割する直線を決めることを目標とします。

トップ図は本来3次元で描かれるべきですが、
とたんにイメージが難しくなるため、あえて2次元のグラフで説明します。
今回も例に倣い、この直線を誤差関数を用いて
決定していきます。
今回は数値計算を用いてパラメータの修正を繰り返すような
手法を用います。



まず、初めに、以前学んだ機械学習における3ステップを
復習しておきましょう。
この3ステップは覚えておくものでしたね。

  ① パラメータを含む数式モデルを仮定
  ② パラメータを評価する基準を設定
  ③ 最も適したパラメータを決定

それでは、順に考えていきましょう。


① パラメータを含む数式モデルを仮定

今回求めたいのは分割する直線ですので、
仮定するモデルは直線の式となります。
次のようにモデルを立てましょう。

f(x,y) = ω_0 + ω_1 x + ω_2 y

通常は、直線の式は、y = ax + b の形で書きますが、
今回は xy を対等に扱うために、この形にしています。

ここで、(x,y) 平面を分割する直線は、
f(x,y) = 0

と書くことができます。

さらに、分割された領域については、f(x,y)の符号で判断でき、
f(x,y) > 0 → 直線より上方の領域

f(x,y) < 0 → 直線より下方の領域

と判断することができます。

トップ図の例だと、f(x,y) = -10 + 3 x + 2 y
の場合を記していますが、境界線から離れるほど
f(x,y)の絶対値が大きくなるということが読み取れます。




ここで、トップ図にあるように、
t = +1のデータがf(x,y)>0 の領域に、
t = -1のデータがf(x,y)<0 の領域に
分類されていることが目標です。

押さえておきたいポイントとしては、
各データはそれぞれ、(x,y,t) の3つの値を持っています。

このとき与えられたデータ \bigl\{x_n , y_n , t_n\bigr\}_{n=1}^N について

f(x,y) × t_n > 0 → 分類が正解

f(x,y) × t_n < 0 → 分類が不正解
とすることで分類の正しさを判定できます。
このポイントは、 t_n = \pm\ 1
いずれのデータについても、このルールで判定できることです。

先ほども説明しましたが、今回は全ての(x_n , y_n ,t_n)について、
上記のルールを満たすような直線、
つまりパラメータ(ω_0 , ω_1 , ω_2)を決定することが目標となります。
そして、これを実現するために、パラメータの評価基準を設定します。



② パラメータを評価する基準を設定

パラメータの評価基準として、
正しく分類できなかった点のみに着目し、誤差とします。

この誤差は言い換えると、
誤って分類したものに対するペナルティとしてみなし、
ペナルティの合計値が小さくなるように直線を引き直す
ということを繰り返していきます。

トップ図にあるように、境界線から離れるほど
f(x,y)の絶対値が大きくなるという特徴を利用して、
n番目の点に対して、次のように表現します。

E_n = |f(x_n , y_n)|

すなわち、ペナルティの合計値は以下のようになります。

誤差\displaystyle E = \sum_{n} E_n = \sum_{n} |f(x_n , y_n)|

もう一度注意ですが、この誤差Eはあくまで
誤って分類された点、つまり

f(x,y) × t_n < 0

に限った和です。
誤って分類されたとしても、
境界線に近い点であればペナルティは小さいですし、
境界線から遠い点であればもちろん、誤差に及ぼすペナルティは大きくなります。

さらに、誤って分類された点については、
f(x,y) × t_n < 0 が成り立つため、
以下の関係式が成り立ちます。

|f(x_n , y_n)| = - f(x,y) × t_n

つまり、右辺は負のものにマイナスをかけているため、
左辺の絶対値記号を使わずに、ペナルティが表せるのですね。

以上より、誤差Eは次のように表すことができます。

\displaystyle E = - \sum_n (ω_0 + ω_1 x_n + ω_2 y_n ) t_n

また、ベクトル表記で、
\mathbf{ω} = \begin{pmatrix} ω_0 \\ ω_1 \\ ω_2 \\ \end{pmatrix}  \mathbf{φ} = \begin{pmatrix} 1 \\ x_n \\ y_n \\ \end{pmatrix}
とすれば
\displaystyle E = - \sum_n t_n \mathbf{ω}^\mathrm{T} \mathbf{φ}_n
と表すことができます。

これを最小にするようなパラメータ \mathbf{ω} を決めていきます。
これがパラメータの基準を設定したということになります。



さあ、かなり長く数学と戦ってきましたが、
みなさん、どうでしょうか。

なかなか難しい部分もあるとは思いますが、
一緒に頑張っていきましょう。

次回はこの続き、
③最も適したパラメータを決定
について説明していきます。

みなさん、お疲れさまでした!