2017/02/24
0:00

パーセプトロン概論②


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


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

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



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

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

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



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

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

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


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

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

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

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

ここで、$(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{ω}$ を決めていきます。
これがパラメータの基準を設定したということになります。



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

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

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

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