Perceptronメモ

線形識別モデル

  • 識別=入力ベクトルがどのクラスに属するか
    • 線形識別=どのクラスに属するかを表す境界が「超平面」によって決まる
  • 各入力ベクトルから直接クラスを推定する識別関数を作成
    • この識別関数に入力ベクトルをいれることで、どのクラスに属するかを判定する

(単純)パーセプトロンアルゴリズム

  • 線形識別モデルの一つ、ニューラルネットワークの一つ
  • Frank Rosenblatt(1928-1969)
  • 2クラスの分類モデル
  • y(x)=sgn(w^T \Phi(x))
    • y(x) : 入力ベクトルxに対する出力
    • sgn(a) : a>=0のとき+1, a<0のとき-1
    • w : パーセプトロンのパラメータ(学習でこのパラメータを求める)
    • Φ(x) : 入力ベクトルxを非線形変換した特徴ベクトル(一般にバイアス成分Φ_0(x)=1を含む)
  • 上記のパラメータwを決定するのが「学習」
  • 実際に学習したwを使って、上記の式を計算してy(x)を求めるのが「予測」
学習アルゴリズム(確率的勾配降下法, stochastic gradient descent)
  • 学習パターンx_nが与えられたとき、現在のwを使って分類してみて
    • 正しく分類された→なにもしない
    • 正しく分類されなかった→その特徴ベクトルΦ(x_n)が正しく分類されるように、現在のwからΦ(x_n)を加えるor差し引く
  • w^{(t+1)}=w^{(t)} - \eta \nabla E_P(w)=w^{(t)} + \eta \Phi_n t_n
    • η : 学習率パラメータ(慎重に選ばないといけない。=1としていい)
    • t : 学習のステップ回数
    • 学習中にwが変化すると誤分類集合も変化する→収束しない可能性、いろんな解があり得る
  • 学習パターンが線形分離可能な場合は「パーセプトロンの収束定理」より、有限回の繰り返しで厳密解に収束することが保証されている
    • でも実際はこの繰り返し回数はかなり多い
  • 学習パターンが線形分離不可能な場合は、決して収束しない
    • 収束が遅いのか、そもそも収束しないか判定できない
プログラム例

その他