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{ω}$ を決めていきます。
これがパラメータの基準を設定したということになります。
さあ、かなり長く数学と戦ってきましたが、
みなさん、どうでしょうか。
なかなか難しい部分もあるとは思いますが、
一緒に頑張っていきましょう。
次回はこの続き、
③最も適したパラメータを決定
について説明していきます。
みなさん、お疲れさまでした!