データ解析入門

識別関数(4章)

画面操作キー(全画面,ワイド表示,ソースコードハイライト)

識別関数(4章)

  • 識別関数とは
    • 「特徴ベクトル(入力ベクトル)を適切なクラスに識別(分類)するための関数」
    • 「クラス」はクラスタに似ているが,人間が与えた意味を持つ
  • 分類器を構成する方法は2つ(本章では前者について解説)
    • 直接的に識別関数を学習する
    • クラスに属する特徴ベクトルの生成モデルを用いて分類器構成
  • 識別関数の学習
    • クラスに属する特徴ベクトル(=学習パターン)を用いて学習
    • 学習パターンを用いる学習は「教師あり学習」
    • 学習パターンを用いないのは「教師なし学習」(クラスタリング)
  • 多数ある識別関数(+学習方法)の1つがパーセプトロン(1958)
    • ニューラルネットワークの1つ.最も単純かつ基本的な技術

パーセプトロン

  • パーセプトロン
    • 特徴ベクトル(=入力ベクトル)を識別関数で分類
    • オリジナルなパーセプトロンは,識別関数において内積を用いる
    • クラスタリング(3章)と関連付けるため,等価なユークリッド2乗距離に基づく形に変形して使用.→修正パーセプトロン
  • 修正パーセプトロン
    • クラスには代表ベクトルが1つあり,入力された特徴ベクトルを,2乗距離の意味で最も近い代表ベクトルのクラスに分類
    • クラス\(C^k\)に代表ベクトル\({\boldsymbol w}_k\)があるとき,入力ベクトル\({\boldsymbol x}\)は
    • \(c = \arg \min_k \|{\boldsymbol x} - {\boldsymbol w}_k\|^2\)(複数候補存在→1つを選択)
    • で表される\(c\)番目のクラスに分類する(\({\boldsymbol w}_k\)によるボロノイ分割
    • \(\arg \min_k\)は,「続く関数の値を最小にする\(k\)の集合」を表す

パーセプトロンの学習則

  • パーセプトロンの識別関数は,代表ベクトル\({\boldsymbol w}_k\)の集合が構成
  • 識別関数の学習(パーセプトロンの学習)は,代表ベクトルの学習
  • すべての学習パターン\({\boldsymbol x}\)を順番に選択して誤分類時に学習.学習パターンすべてが正しく分類できる(=収束する)まで続ける
    • 最近傍のクラス\(c\)が真のクラス\(t\)と異なる場合(誤分類)に学習,
      真のクラスの代表ベクトル\({\boldsymbol w}_t\)を学習パターン\({\boldsymbol x}\)に近づけ,
      誤分類先の代表ベクトル\({\boldsymbol w}_c\)を学習パターン\({\boldsymbol x}\)から離す
    • \[{\boldsymbol w}_t \leftarrow (1-\gamma){\boldsymbol w}_t + \gamma {\boldsymbol x}, \\ {\boldsymbol w}_c \leftarrow (1+\gamma){\boldsymbol w}_c - \gamma {\boldsymbol x}\]
    • クラスの識別境界(垂直二等分線)が移動.→正しく分類

パーセプトロンの学習の実際(1)

  • パーセプトロンの学習則で識別関数を学習する演習について説明
  • 学習パターンが必要.ラベル付きの特徴ベクトル(=入力ベクトル)
  • k-meansアルゴリズム等によるクラスタリング結果→学習パターン
  • JavaScriptアプリケーションなどで演習
    • k-meansアルゴリズムでクラスタリングを行い,学習パターンを生成してから実施
    • 1ラウンドで,すべての学習パターンを順番にチェックし,誤分類時に学習
    • すべての学習パターンで誤分類が起きなければ(「nLearn=0」),収束し終了.
    • 繰り返し回数(ラウンド数)の上限は1000.それまでに収束しなければ,強制終了.
    • 上記演習において,学習パターンは重みベクトルによりボロノイ分割されている.故に「収束可能」なデータ
    • 本演習では学習率が0.1の時は収束する.増減(0.01〜0.5)させると早く収束したり収束しなかったりする.→課題として実施

パーセプトロンの学習の実際(2)

  • 学習パターンや学習後の代表ベクトルを可視化してください
  • 演習で確認すべきこと.+教科書,演習問題4.2の実施
    • クラス(クラスタ)は,重みベクトル(代表ベクトルを含む)同士を結んだ線分の垂直二等分線で区切られること(ボロノイ分割)
    • パーセプトロンで学習した代表ベクトル(図左)は,クラスタの重心(図右)とは異なる(学習パターンを正しく分割するのみ)

パーセプトロンの評価

  • パーセプトロンは,学習パターン(教師)を正しく分類できるように学習
  • 知っていること(学習パターンのクラス)に答えられることは当たり前
  • パーセプトロンに限らず,教師あり学習の真の目的
    • 未知の入力ベクトルを,適切なクラスに分類すること
  • 一般には,学習パターンとは別に評価用データを用意し,
  • 評価用データに対する精度によって,分類器(パーセプトロンの識別関数)を評価する

さまざまな識別関数

  • k-NN(Nearest Neighbor)法
    • すべての学習パターンを代表ベクトルとする方法
    • 入力ベクトルに近い方からk個の代表ベクトルを選び,多数決でクラスを決定
  • 学習ベクトル量子化(LVQ)
    • 教師あり学習(「ベクトル量子化」は教師なし学習であり紛らわしい)
    • パーセプトロンは1クラスに1つの代表ベクトルであったが
    • LVQでは,1クラスに複数の代表ベクトルを用いる
  • サポートベクターマシン(SVM)
    • 分類するクラス数が2の線形分類器(パーセプトロンも線形分類器)
    • パーセプトロンは学習パターンを分離できれば良しとしたが
    • SVMでは,学習パターンと識別境界間のマージン(間隔)を最大化する. →未知の入力ベクトルに対する精度が向上
    • カーネル法を使うことで,非線形の識別境界(関数)も構成できる

<Thank You!>

データ解析入門(第4章) 内山俊郎