フリーソフトでつくる音声認識システム

5章

Created by 2GMon

話の流れ

  • パーセプトロンの問題点
  • 誤差評価に基づく学習
  • Widrow-Hoffの学習規則
  • パーセプトロンとWidrow-Hoff

パーセプトロンの問題点

区分的線形識別関数を使えば線形分離できないデータも識別できるが、過学習してしまう

データの分布が重なっている場合はどうやっても識別できない

誤差評価に基づく学習

パーセプトロンは識別結果が誤りの場合に重みを修正する

誤差評価に基づく学習は識別関数の結果と教師信号の誤差が最小になるように重みを修正する

教師信号とは識別関数の望ましい出力値

誤差評価に基づく学習の定式化の前に記号等の整理をする


学習データ : ${\bf x}_1, \cdots, {\bf x}_n$

学習データ${\bf x}_p$に対するc個の識別関数の出力 : $g_1({\bf x}_p), \cdots , g_c({\bf x}_p)$

クラス$i$に対する教師信号 : $b_i$

あるデータ${\bf x}_p$がクラス$i$に属するとき $g_i({\bf x}_p) > g_j({\bf x}_p) \;\;\; (j = 1, \cdots, c, \; j \neq i)$

クラス$i$に属するデータ$p$に対応する教師ベクトル${\bf b}_p$を以下のように定める $$ {\bf b}_p = \{b_1, b_2, \cdots , b_c\} \;\; (b_i = 1, それ以外は0) $$


次項から誤差評価に基づく学習の定式化を行う

データ${\bf x}_p$のクラス$i$に対する誤差は以下の式で定義される$$ \epsilon_{ip} = g_i({\bf x}_p) - {\bf b}_i $$

データ${\bf x}_p$に対する全クラスの誤差の二乗和$J_p$は $$ \begin{align} J_p & = \frac{1}{2} \sum_{i = 1}^c \epsilon_{ip}^2 \\ & = \frac{1}{2} \sum_{i = 1}^c (g_i({\bf x}_p) - {\bf b}_p)^2 \\ & = \frac{1}{2} \sum_{i = 1}^c ({\bf w}_i^t {\bf x}_p - {\bf b}_p)^2 \end{align} $$

誤差は正と負両方あるので二乗和を考える

$\frac{1}{2}$は後で計算するときに便利だからつけているだけ

全ての学習データに対する誤差の和は $$ \begin{align} J & = \sum_{p = 1}^n J_p \\ & = \frac{1}{2} \sum_{p = 1}^n \sum_{i = 1}^c ({\bf w}_i^t {\bf x}_p - {\bf b}_p)^2 \end{align} $$

誤差評価に基づく学習では$ J $が最小になるように重みを修正する

Widrow-Hoffの学習規則

誤差の総和 $ J = \frac{1}{2} \sum_{p = 1}^n \sum_{i = 1}^c ({\bf w}_i^t {\bf x}_p - {\bf b}_p)^2 $ を最小化するためには最急降下法を用いる

この時、重みベクトル${\bf w}$の更新式は${\bf w} = {\bf w} - \rho \frac{\partial J}{\partial {\bf w}} $

レイヤ 0 Layer 1 J w レイヤ 2 レイヤ 3 $\frac{\partial J}{\partial {\bf w}}$

$$ \begin{align} \frac{\partial J}{\partial {\bf w}} & = \sum_{p = 1}^n \frac{\partial J_p}{\partial {\bf w}} \\ & = \frac{1}{2} \sum_{p = 1}^n \frac{\partial }{\partial {\bf w}} ({\bf w}^t {\bf x}_p - {\bf b}_p)^2 \\ & = \sum_{p = 1}^n ({\bf w}^t {\bf x}_p - {\bf b}_p){\bf x}_p \end{align} $$ なので

$ {\bf w} = {\bf w} - \rho \sum_{p = 1}^n ({\bf w}^t {\bf x}_p - {\bf b}_p){\bf x}_p $

パーセプトロンとWidrow-Hoff

識別関数の出力を0か1に限定して $$ \begin{align} T(u) & = 1 \;\;\; (u \ge 0) \\ T(u) & = 0 \;\;\; (u < 0) \\ g({\bf x}) & = T({\bf w}^t {\bf x}) \end{align} $$

教師信号を$b_i=1, b_j=0 \;\; (i \neq j)$とすれば、誤識別のパターンは2通りだけ $$ \begin{align} g_i({\bf x}_p) & = 0, b_i = 1 \\ g_j({\bf x}_p) & = 1, b_j = 0 \;\; (i \neq j) \end{align} $$

このときWidrow-Hoffの学習規則 $ {\bf w} = {\bf w} - \rho (g({\bf x}_p) - {\bf b}_p){\bf x}_p $ より、 $$ {\bf w} = {\bf w} + \rho {\bf x}_p \;\; (g_i({\bf x}_p) = 1, b_i = 0) \\ {\bf w} = {\bf w} - \rho {\bf x}_p \;\; (g_i({\bf x}_p) = 0, b_i = 1) $$

なので、パーセプトロンはWidrow-Hoffの学習規則の特殊な場合ということが分かる

閾値関数$T(u)$が表すように、パーセプトロンは誤識別したデータのみ重みを修正する

パーセプトロンは全てのデータを正しく識別できたときに終了する

Widrow-Hoffの学習規則は正しく識別できても、識別関数の出力値と教師信号に差があれば重みの修正を行う

Widrow-Hoffの学習規則は、全てのデータを正しく識別できなくても、誤差が最小になったときに終了する