データ解析入門
識別関数(4章)
画面操作キー(全画面,ワイド表示,ソースコードハイライト)
- Pressing 'f' toggles fullscreen viewing
- Pressing 'w' toggles widescreen
- Pressing 'h' highlights code snippets
識別関数(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章) 内山俊郎