単純パーセプトロン
- 線形分類器
- 学習は「ある事例$\bold{x}$の分類に失敗したら,パラメータ$\bold{w}$に$\bold{x}$を足す(または引く)」を繰り返すだけ
- $\bold{x}$が正しく分類できる方向に更新する
-
問題点
- パラメータの更新で$\bold{x}$が必ず正しく更新できるとは限らない
- パラメータを更新時に,以前のデータについての分類結果がどうなるかは気にしていない
-
目的関数は$ \min_{\bold{w}} \sum_t \max (0, -y^{(t)} \bold{w} \cdot \bold{x}^{(t)})$
- 誤分類のデータについて,0との差が小さくなるようにする
- 正分類のデータについては何も考えない
- パーセプトロン基準とよばれる
学習アルゴリズムの導出
- $l (\bold{x}^{(i)}, y^{(i)}, \bold{w}) = \max (0, -y^{(t)} \bold{w} \cdot \bold{x}^{(t)})$
- 学習時に操作できる変数は$\bold{w}$のみなので,(劣)勾配計算には$\bold{w}$の各要素で偏微分する
- $-y \bold{w} \cdot \bold{x} < 0$
- 関数は常に$0$なので,勾配は$\bold{0}$(零ベクトル)
- $-y \bold{w} \cdot \bold{x} > 0$
- $\frac{\partial -y \bold{w} \cdot \bold{x}}{ \partial w_k} = -y x_k$
- したがって,$\nabla_w \left( -y \bold{w} \cdot \bold{x} \right) = -y \bold{x}$
- $-y \bold{w} \cdot \bold{x} = 0$
- 劣勾配として$-y \bold{x}$が使える
- $-y \bold{w} \cdot \bold{x} < 0$
- したがって,
- $\bold{w}^{(t+1)} = \bold{w}^{(t)} + (y^{(t)} \bold{x}^{(t)})$ ($-y \bold{w} \cdot \bold{x} > 0$のとき)
- $\bold{w}^{(t+1)} = \bold{w}^{(t)}$ (それ以外)