単純パーセプトロン

  • 線形分類器
  • 学習は「ある事例$\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}$が使える
  • したがって,
    • $\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)}$ (それ以外)