Pattern Recognition

  1. 1. Pattern recognition紹介
    1. 1.1. 機械学習・統計的学習とは
    2. 1.2. 特徴抽出
    3. 1.3. 特徴ベクトル
    4. 1.4. 特徴の型
  2. 2. 識別規則と学習法
    1. 2.1. 識別規則の構成法
      1. 2.1.1. 教師付き学習(Supervised learning)
      2. 2.1.2. 教師なし学習(unsupervised learning)
    2. 2.2. 汎化能力
      1. 2.2.1. 学習データとテストデータの作り方
      2. 2.2.2. ホールドアウト法(Holdout法)
        1. 2.2.2.1. 非線形回帰
      3. 2.2.3. 交差確認法(Cross Validation:CV)
        1. 2.2.3.1. K-分割交差検証法(K-fold cross validation)
      4. 2.2.4. 一つ抜き法(LOOCV)
      5. 2.2.5. ブートストラップ法(bootstrap)
    3. 2.3. 汎化能力の評価法とモデル選択
      1. 2.3.1. バイアス・分散トレードオフ
  3. 3. ベイズ識別規則
    1. 3.1. ベイズの定理
      1. 3.1.1. 事後確率
      2. 3.1.2. 事前確率
      3. 3.1.3. 尤度
      4. 3.1.4. 周辺確率
    2. 3.2. 例題1
      1. 3.2.1. クラス条件付き確率を求める
      2. 3.2.2. 同時確率を求める
      3. 3.2.3. 周辺分布を求める
      4. 3.2.4. 事後確率を求める
    3. 3.3. 尤度比(事前確率の比率)
    4. 3.4. 誤り率最小化
    5. 3.5. 最小損失基準
      1. 3.5.1. 最小損失基準に基づく識別の例
    6. 3.6. 期待損失最小化
    7. 3.7. ROC曲線
      1. 3.7.1. 混同行列(Confusion Matrix)
      2. 3.7.2. ROCによる性能評価
      3. 3.7.3. 動作点の選択
    8. 3.8. 課題3.1
    9. 3.9. 課題3.2
  4. 4. 確率モデルと識別関数
    1. 4.1. 観測データの線形変換
      1. 4.1.1. 平均ベクトル
      2. 4.1.2. 共分散行列
      3. 4.1.3. 標本平均ベクトルと標本共分散行列
      4. 4.1.4. 観測データの標準化
      5. 4.1.5. 観測データの無相関化
      6. 4.1.6. 観測データの白色化
    2. 4.2. 確率モデル
    3. 4.3. d次元正規分布関数
    4. 4.4. 正規分布から導かれる識別関数
    5. 4.5. 確率モデルパラメータの最尤推定
    6. 4.6. 正規分布の最尤推定
  5. 5. k最近傍法(KNN)
    1. 5.1. 最近傍法とボロノイ境界
    2. 5.2. ボロノイ図
    3. 5.3. 鋳型の数と識別性能
    4. 5.4. kNN法
      1. 5.4.1. 最適な最近傍数kを求める
    5. 5.5. 漸近仮定とkNN誤り率の期待値
    6. 5.6. kNN法の改善
      1. 5.6.1. 誤り削除型KNN法(Edited kNN)
      2. 5.6.2. 圧縮型kNN(Condensed kNN)
      3. 5.6.3. 分枝限定法
      4. 5.6.4. 近似最近傍探索
  6. 6. 線形識別関数
    1. 6.1. 超平面の方程式
    2. 6.2. 最小2乗誤差基準によるパラメータの推定
      1. 6.2.1. 正規方程式
    3. 6.3. 多クラス問題への拡張
      1. 6.3.1. 一対多
      2. 6.3.2. 一対一
      3. 6.3.3. 最大識別関数法
    4. 6.4. 線形判別分析
      1. 6.4.1. フィッシャーの線形判別関数
      2. 6.4.2. 判別分析法
      3. 6.4.3. 判別分析2値化法
      4. 6.4.4. 多クラス問題への拡張
      5. 6.4.5. あやめデータの判別空間の構成
    5. 6.5. 課題6.1
    6. 6.6. 課題6.2
    7. 6.7. 課題6.3
  7. 7. ロジスティック回帰
    1. 7.1. ロジスティック回帰モデル
      1. 7.1.1. オッズ比について
    2. 7.2. パラメータの最尤推定
    3. 7.3. 多クラス問題への拡張と非線形変換
    4. 7.4. 非線形基底関数による変換とロジスティック回帰
    5. 7.5. ピマインディアンデータのロジスティック回帰
  8. 8. パーセプトロン型学習規則(Perceptron)
    1. 8.1. パーセプトロン
      1. 8.1.1. 学習の難しさの尺度
      2. 8.1.2. マージンの大きさ
      3. 8.1.3. パーセプトロンの収束定理
    2. 8.2. 誤差伝搬法(BP)
      1. 8.2.1. 多層パーセプトロン
      2. 8.2.2. 誤差逆伝搬法の学習規則
      3. 8.2.3. 実行例-手書き数字の学習
    3. 8.3. 誤差逆伝搬法の学習特性
      1. 8.3.1. 初期値依存性
      2. 8.3.2. 隠れ素子の数
        1. 8.3.2.1. 実行例-初期値依存性と隠れ素子の数による誤り率の変化
      3. 8.3.3. 過学習と正則化
        1. 8.3.3.1. 実行例-あやめデータにおける正則化項の効果
      4. 8.3.4. 隠れ層の数と識別能力
      5. 8.3.5. 学習回路の尤度
  9. 9. サポートベクトルマシン(SVM)
    1. 9.1. サポートベクトルマシンの導出
      1. 9.1.1. 最適識別超平面
      2. 9.1.2. KKT条件
        1. 9.1.2.1. サポートベクトル
    2. 9.2. 線形分離可能でない場合への拡張
      1. 9.2.1. KKT条件
      2. 9.2.2. ソフトマージン最大化
    3. 9.3. 非線形特徴写像
      1. 9.3.1. 多項式カーネル
      2. 9.3.2. 動径基底関数カーネル
      3. 9.3.3. ピマインディアンデータのSVMによる識別
    4. 9.4. ν-サポートベクトルマシン
      1. 9.4.1. ピマインディアンデータへのν-SVMの適用
    5. 9.5. 1クラスサポートベクトルマシン
      1. 9.5.1. ピマインディアンの外れ値検出
  10. 10. 部分空間法
    1. 10.1. 部分空間
    2. 10.2. 主成分分析(Principal Component Analysis PCA)
      1. 10.2.1. 画像データの主成分分析
    3. 10.3. 特異値分解
    4. 10.4. 部分空間法
      1. 10.4.1. CLAFIC法
      2. 10.4.2. 手書き数字の部分空間法による認識
    5. 10.5. カーネル主成分分析
    6. 10.6. カーネル部分空間法
  11. 11. クラスタリング(Cluster analysis)
    1. 11.1. 類似度と非類似度
      1. 11.1.1. 距離の公理
      2. 11.1.2. ミンコフスキー距離(Minkowski distance)
    2. 11.2. 非階層型クラスタリング(K-平均法)
      1. 11.2.1. アルゴリズムK-平均法
    3. 11.3. 階層型クラスタリング(融合法)
      1. 11.3.1. アルゴリズム融合法
      2. 11.3.2. データの連結方法
      3. 11.3.3. 階層的クラスタリングの分析例
    4. 11.4. 確率モデルによるクラスタリング
      1. 11.4.1. 混合分布モデル
      2. 11.4.2. 識別可能性
      3. 11.4.3. 色彩強度の混合モデルによる推定
      4. 11.4.4. 完全データの対数尤度
      5. 11.4.5. EMアルゴリズム(Expectation-Maximum)
      6. 11.4.6. 2コンポーネントの正規混合モデルの推定
  12. 12. 識別器の組み合わせによる性能評価
    1. 12.1. ノーフリーランチ定理
    2. 12.2. 決定木
      1. 12.2.1. 決定木と線形モデル
      2. 12.2.2. 心臓病データ
      3. 12.2.3. トップダウン的な手法
      4. 12.2.4. 決定木に関する諸定義
      5. 12.2.5. ノード分割規則
      6. 12.2.6. 木の剪定
    3. 12.3. バギング(bagging)
    4. 12.4. アダブースト(AdaBoost)
    5. 12.5. ランダムフォレスト(random forests)
      1. 12.5.1. ランダムフォレストによるデータ解析
      2. 12.5.2. あやめデータによる性能評価
  13. 13. 总结-机器学习与数据挖掘
    1. 13.1. 问题
    2. 13.2. 监督式学习(分类・回归)
    3. 13.3. 聚类
    4. 13.4. 降维
    5. 13.5. 结构预测
    6. 13.6. 异常检测
    7. 13.7. 神经网络
    8. 13.8. 强化学习
    9. 13.9. 理论
  14. 14. 参考文献

CS专业课学习笔记

Pattern recognition紹介

パターン認識は自然情報処理のひとつ。画像・音声などの雑多な情報を含むデータの中から、一定の規則や意味を持つ対象を選別して取り出す処理である

パターン認識が扱う問題

  • 前立腺がんのリスク因子を特定する
  • 録音された音声を分類する
  • 個人属性情報(demographics)や、食習慣、検診記録から心臓発作になるかどうか予測する
  • スパムメールを検出する
  • 手書きの郵便番号を識別する
  • 組織サンプルの遺伝子情報を使って癌のクラスわけを行う
  • 衛星写真から、土地の利用目的分類を行う

機械学習・統計的学習とは

機械学習とは、人間が自然に行っている学習能力と同様に機能をコンピュータで実現しようとする技術や手法のこと。

統計的学習はモデリングに重点を置くのに対して、機械学習は、最適化理論からの学習のアプローチである場合は多い。

元々は、人工知能分野の一部として研究されていたが、機械学習は統計学と密接な関わりを持つようになり「統計的学習」と言われるようになった

応用分野:

  • パターン認識
  • データマイニング
  • 自然言語処理
  • 音声処理、画像処理
  • バイオインフォマティクス(Bioinformatics)
  • 脳科学
  • 農業
  • 経済・金融

パターン認識はICT(information and Computer Technology)の要素技術

特徴抽出

入力データから抽出されるたくさんの特徴をまとめること

例: 硬貨の識別問題なら、硬貨の重さ、サイズ、穴の有無など

特徴ベクトル

特徴量をベクトルの形に並べたもの

このような特徴量のベクトルを入力として、予め用意しておいた「型・類型」に当てはめること

例: 硬貨の識別問題なら、1, 5, 10, 50, 100, 500円,(それ以外)のどれかの「パターン(型)」に対応させる

この識別(分類分け)するためにの規則のことを識別規則という

識別規則を作るためには、入力データとそのクラスを対にした、たくさんのデータ(学習データ)を学習する必要がある

学習データを用いて設計したシステムが、未知の入力データに対しても正しいクラスを識別できるかが問題で、そのような能力を汎化能力という。汎化性能の高い識別器を作ることが目的

特徴の型

抽出された特徴量は、定性的特徴(非数値データ)と定量的特徴(数値データ)に大別される

  • 非数値データはさらに、名義尺度順序尺度に分類される
    • 性別と血液型は順序関係がないから、名義尺度である
    • 一方、S, A, Bの成績評価や癌の進行を表すステージは順序関係があるので、順序尺度である
  • 数値データもさらに、比例尺度間隔尺度に分類される
    • 比例尺度は長さや重さなどゼロを基準に倍数の意味がある尺度である
    • 感覚尺度はテストの点や気温など、数値の間隔が意味を持つ尺度である

定性的な特徴を表現するために、符号を用いる。例えば、二つのクラスラベル([勝・敗])([合格・不合格])を表すのに、「1と-1」や「-1と1」で符号化する

パターン認識で扱う、型や類型などのクラスは定性的特徴である

識別規則と学習法

代表的な識別規則の構成法

  • 事後確率による方法: ベイズの最大事後確率法(線形判別分析)
  • 距離による方法: 最近傍法
  • 関数値による方法: パーセプトロン型学習回路(ニューラルネットワーク、ロジスティック回帰)、サポートベクターマシン
  • 決定木による方法

識別規則の構成法

入力データx\mathbf{x}からクラスCiω={C1,,Ck}C_i \in \omega = \lbrace C_1, \cdots, C_k \rbraceへの写像を識別規則という

代表的な識別規則には、事後確率による方法、距離による方法、関数値による方法、決定木による方法がある

  • 事後確率による方法: 特徴ベクトルの空間に確率分布を仮定し、事後確率が最大のクラスに分類する
    • ベイズ識別規則が代表例で、線形判別分析もこのクラスに該当する
  • 距離による方法: 入力ベクトルx\mathbf{x}の各クラスの代表ベクトルとの距離を最小にするクラスに分類する
    • 最近傍法が代表例
  • 関数値による方法: 関数の正負、あるいは最大値(他クラスの場合)でクラスを決める
    • パーセプトロン型学習回路(ニューラルネットワーク、ロジスティック回帰)、サポートベクターマシンが代表例
  • 決定木による方法: 識別規則の真偽に応じて次の識別規則を順序適用し、決定木でクラスを決める

教師付き学習(Supervised learning)

識別規則が関数値による方法としよう: y=f(x)\mathbf{y} = f(\mathbf{x})

2クラス問題の線形識別関数の場合、識別規則は

y=f(x;w)=w1x1++wdxd=wTx\begin{aligned} \mathbf{y} = f(\mathbf{x};\mathbf{w}) = w_1x_1 + \cdots + w_dx_d = \mathbf{w}^T\mathbf{x} \end{aligned}

ここで、x\mathbf{x}は入力ベクトル(特徴量のベクトル)、w\mathbf{w}はパラメータで、識別クラスはyyの正負によって決まるとする。

学習の目的は、パラメータw\mathbf{w}を調整すること

学習データは入力データ(特徴ベクトル)x\mathbf{x}とクラスデータyy(教師データ)のペア(x,y)(\mathbf{x}, y)である

2クラスの識別問題を正負の値で識別する場合, クラスデータをt{1,1}t \in \lbrace -1, 1 \rbraceで表すとする.

他クラスの場合は, ダミー変数表現を用いてt=(0,1,0,0,0,0,0,0,0,0)T\mathbf{t} = (0, 1, 0, 0, 0, 0, 0, 0, 0, 0)^Tのように表すと, この表現は, 10クラスある中の2番目のクラスに属していることを表している.

学習データがNN個あるとき, 入力データと教師データの対を次のように表す.

(xi,ti),i=1,,N(\mathbf{x}_i, \mathbf{t}_i), \quad i = 1, \cdots, N

教師なし学習(unsupervised learning)

入力データのクラスを自動的に生成する場合がある。クラスタリング(Cluster analysis)など。この時、クラスデータyyは存在しないので、教師なし学習という。自己組織型学習ともいう

一部のデータに教師を付き、他は教師なしで学習を行うことを半教師付き学習(形質導入学習)という

汎化能力

学習とは、学習データに対する識別関数の出力値と教師データとの誤差が最小になるように、識別関数のパラメータを調整することである。

しかし、学習で得られた識別関数が学習データに含まれていない未知データに対して上手く働くという保証はない。

そこで、学習データから取り除いておいたテストデータを用いて性能評価を行い、未知データに対する動作をテストデータに対する誤り率という形で予測することが行われている。

未知のデータに対する識別能力を汎化能力という

未知のデータに対する識別誤差を汎化誤差という

学習データとテストデータの作り方

  • 手元にあるデータを分割して学習データセット: DL\mathcal{D}_Lテストデータセット: DT\mathcal{D}_Tを作る
  • 特徴量ベクトルdd次元とし, その確率分布pL,pTp_L, p_Tと表す
  • 学習データセットDL\mathcal{D}_Lを使って, DT\mathcal{D}_Tをテストしたときの誤り率ϵ(pL,pT)\epsilon(p_L, p_T)と表す.
  • 母集団の特徴ベクトルの確率分布をppとし, 真の分布とする.
  • pLp_LpTp_Tはランダムなサンプルから推定された確率分布なので, 真の分布ppの各特徴と同じにならない. このずれを偏り(バイアス))という
  • 真の誤り率ϵ(p,p)\epsilon(p,p)は真の分布ppに従う学習データを用いて識別規則を作成し, 真の分布ppに従うテストデータを用いてテストした場合の誤り率を表す
  • 再代入誤り率とは, pLp_Lからサンプリングしたデータを用いて識別規則を作成し, 同じデータでテストしたときの誤り率である

手元にあるデータを学習用とテスト用に分割する代表的な方法には、次のようなものがある。

ホールドアウト法(Holdout法)

手元のデータを2分割し, 一方を学習データ(pL)(p_L), もう一方をテスト(pT)(p_T)のために取り置いて誤り率を推定するために使用する

  • ホールドアウト誤り率といい, ϵ(pL,pT)\epsilon(p_L,p_T)で表す.

真の誤り率と再代入誤り率, ホールドアウト誤り率の関係は次の通り

EDL{ϵ(pL,pL)}ϵ(p,p)EDT{ϵ(pL,pL)}\color{blue}{E_{\mathcal{D}_L} \lbrace \epsilon(p_L, p_L) \rbrace \leq \epsilon(p, p) \leq E_{\mathcal{D}_T } \lbrace \epsilon(p_L, p_L) \rbrace}

手元のデータが大量にある場合を除いて, 良い性能評価を与えない欠点がある

非線形回帰

次の関数からデータが生成されているとする

f(x)=0.5+0.4×sin(2πx)+ϵ=h(x)+ϵf(x) = 0.5 + 0.4 \times \sin(2 \pi x) + \epsilon = h(x) + \epsilon

関数h(x)h(x)を次のpp次多項式で近似する

y(x;a)=a0+a1x++apxp,a=(a0,,ap)Ty(x;\mathbf{a}) = a_0 + a_1x + \cdots + a_px^p, \quad \mathbf{a} = (a_0, \cdots, a_p)^T

近似の良さは平均二乗誤差(MSE; mean square error)で評価する

MSE=(y(x;D)h(x))2p(x)dx=E{(y(x;D)h(x))2}\color{blue}{MSE = \int (y(x;\mathcal{D}) - h(x))^2 p(x)dx = E \lbrace (y(x;\mathcal{D}) - h(x))^2 \rbrace}

交差確認法(Cross Validation:CV)

手元の各クラスのデータをmm個のグループに分割し, m1m - 1個のグループのデータを使って識別器を学習し, 残りの一つのグループでテストを行う.

これをmm回繰り返し, それらの誤り率の平均を性能予測値とする.

ii番目のグループを除いて学習し, ii番目のグループでテストしたときの誤り率をϵi\epsilon_{-i}とすると, 識別規則の誤り率は

ϵ=1mi=1mϵi\epsilon = \frac{1}{m} \sum^m_{i=1} \epsilon_{-i}

となる.

K-分割交差検証法(K-fold cross validation)

データを均等にKK分割する(K=5)(K = 5)

一つ抜き法(LOOCV)

交差検証法において, データの数とグループの数を等しくした場合. ジャックナイフ法ともいう

一つ抜き交差確認法 (LOOCV), 学習データ(青いところ)を使ってテストデータ(ベージュ)を予測する. 全部のパターンで計測した予測誤差の平均が CV.

ブートストラップ法(bootstrap)

再代入誤り率のバイアス補正に使用する. NN個のデータで学習したデータで再代入誤り率を計算し,ϵ(N,N)\epsilon(N, N)と表す

NN個のデータからNN回復元抽出して, 学習データを作成し, 再代入誤り率を計算し, ϵ(N,N)\epsilon(N^*, N^*)とする

バイアスは, 元のデータ集合 N をテストデータとして得られる誤識別率ϵ(N,N)\epsilon(N^*, N)との差

bias=ϵ(N,N)ϵ(N,N)bias = \epsilon(N^*, N^*) - \epsilon(N^*, N)

で推定する. ブートストラップサンプルをいくつも作って, 誤識別率の平均値を計算しそれをbias\overline{bias}とすれば, 誤識別率の予測値ϵ\epsilon

ϵ=ϵ(N,N)bias\epsilon = \epsilon(N, N) - \overline{bias}

で与えられる

汎化能力の評価法とモデル選択

学習データによってパラメータ調整を行い、誤り率を評価しても、目標以上の精度が出ない場合は識別関数を変える必要がある。誤り率が最も小さくなるパラメータを選択する方法をモデル選択という

バイアス・分散トレードオフ

近似した関数は目標関数h(x)h(x)との誤差の項(バイアス)と訓練データから生まれる誤差の項(分散)に整理できる

  • バイアス
    • h(x)h(x)との誤差
    • モデル精度の悪さ
  • 分散
    • 訓練データから生まれる誤差
    • モデル作成の不安定さ(再現性の悪さ)
  • モデルが単純
    • 性能は良くないが、教師データに対して安定
    • 高バイアス・低バリアンス
  • モデルが複雑
    • 性能は良いが、教師データに対して不安定(過学習など)
    • 低バイアス・高バリアンス
  • 過学習
    • 訓練誤差は小さくなっているが汎化誤差(テスト誤差)が大きく乖離した状態を過適合/過剰適合/過学習と呼ぶ

ベイズ識別規則

医者の診断では, いろんな検査項目をもとに, 健康かそうでないかを判断する. 検査項目の値が高くても健康な人もいるし, 正常の範囲内でも健康でないかもしれない. このように, 検査項目の値の影響は確率的である.

ベイズ識別規則では, 入力データx\mathbf{x}とクラスy\mathbf{y}に確率分布を仮定する.

病気の診断では, 検査対象を調べると健康な人と病気の人の割合が大きく異なることが一般的である. このときクラスの学習データのサンプル数に偏りが生じる (不均衡データ; Umbalanced data という).

ROC曲線とは, このようなデータに対して有効な性能評価法である.

ベイズの定理

ベイズ識別規則は, 次の事後確率最大になるクラスにデータを分類する.

観測データをx\mathbf{x}, 識別クラスをCi(i1,,K)C_i (i - 1, \cdots, K)とする

これはベイズの定理と呼ばれる. 同時分布

p(Ci,x)=p(Ci  x)p(x)=p(x  Ci)P(Ci)p(C_i, \mathbf{x}) = p(C_i \ |\ \mathbf{x}) p(\mathbf{x}) = p(\mathbf{x} \ |\ C_i) P(C_i)

となる.

クラス識別は, 事後確率が最大になるクラスにデータ x\mathbf{x} を割り付ければ良い, すなわち, 入力データ x\mathbf{x} に対して, 2クラス Ci,CjC_i, C_j の事後確率を計算し, P(Ci  x)>P(Cj  x)P(C_i \ |\ \mathbf{x}) > P(C_j \ |\ \mathbf{x}) ならば, x\mathbf{x}CiC_i に属すると識別する

多クラスの識別は, 識別クラス = arg maxip(x  Ci)P(Ci)\argmax_i p(\mathbf{x} \ |\ C_i) P(C_i) とすれば良い.

事後確率

事後確率 P(Ci  x)P(C_i \ |\ \mathbf{x}) は観測データ x\mathbf{x} が与えられたもとで, そのデータがクラス CiC_i に属する条件付き確率である

事前確率

事前確率 P(Ci)P(C_i) はデータ分析者は, 各クラス CiC_i の生起確率を予め用意しないといけない.

尤度

クラス条件付き確率 (尤度) p(x  Ci)p(\mathbf{x} \ |\ C_i) はクラスが与えられたもとで,観測データの確率分布を表している.

周辺確率

周辺確率 p(x)p(\mathbf{x}) は, 観測データ x\mathbf{x} の生起確率である. 周辺分布は, 同時分布から, 興味のない変数を積分や総和を取ることで消去することで得られた. このような操作を周辺化という.

p(x)=i=1Kp(Ci,x)p(\mathbf{x}) = \sum_{i=1}^K p(C_i, \mathbf{x})

例題1

以下の手順で健康か否かの事後確率を求める.

  1. クラス条件付き確率を求める. 周辺分布P(S  G),P(T  G)P(S \ |\ G), P(T \ |\ G)と同時分布P(S,T  G)P(S,T \ |\ G)の両方で
  2. 同時確率を求める. P(S,T,G)P(S, T, G)
  3. 周辺確率を求める. P(S,T)P(S, T)
  4. 事後確率を求める. P(G  S,T)P(G \ |\ S, T)
  • SSTT の間には条件付き独立性を仮定する
  • クラス事前確率は表から明らかなので, 次のようにして計算する

P(G=1)=8001000=45,P(G=0)=2001000=15\begin{aligned} P(G = 1) = \frac{800}{1000} = \frac{4}{5}, \quad P(G = 0) = \frac{200}{1000} = \frac{1}{5} \end{aligned}


クラス条件付き確率を求める

SS に関するクラス条件付き確率は次の通り

P(S=1  G=1)=320800=25,P(S=0  G=1)=480800=35P(S=1  G=0)=160200=45,P(S=0  G=0)=40200=15\begin{aligned} &P(S = 1 \ |\ G = 1) = \frac{320}{800} = \frac{2}{5}, \quad P(S = 0 \ |\ G = 1) = \frac{480}{800} = \frac{3}{5} \\\\ &P(S = 1 \ |\ G = 0) = \frac{160}{200} = \frac{4}{5}, \quad P(S = 0 \ |\ G = 0) = \frac{40}{200} = \frac{1}{5} \end{aligned}

TT に関するクラス条件付き確率は次の通り

P(T=1  G=1)=640800=45,P(T=0  G=1)=160800=15P(T=1  G=0)=40200=15,P(T=0  G=0)=160200=45\begin{aligned} &P(T = 1 \ |\ G = 1) = \frac{640}{800} = \frac{4}{5}, \quad P(T = 0 \ |\ G = 1) = \frac{160}{800} = \frac{1}{5} \\\\ &P(T = 1 \ |\ G = 0) = \frac{40}{200} = \frac{1}{5}, \quad P(T = 0 \ |\ G = 0) = \frac{160}{200} = \frac{4}{5} \end{aligned}

次に、GGを与えた時に、SSTTの条件付き同時確率を求める。P(S,T  G)P(S,T \ |\ G)GGが1あるいは0の場合に、SSTTの両方の変数の関係性を表している。

ここで、条件付き独立性を仮定しているので、同時確率が周辺確率の積で得られる

P(S=1,T=1  G=1)=P(S=1  G=1)P(T=1  G=1)=825P(S=0,T=1  G=1)=1225P(S=1,T=0  G=1)=225P(S=0,T=0  G=1)=325P(S=1,T=1  G=0)=425P(S=0,T=1  G=0)=125P(S=1,T=0  G=0)=1625P(S=0,T=0  G=0)=425\begin{aligned} &\color{blue}{P(S = 1, T = 1 \ |\ G = 1) = P(S = 1 \ |\ G = 1) \cdot P(T = 1 \ |\ G = 1) = \frac{8}{25}} \\\\ &P(S = 0, T = 1 \ |\ G = 1) = \frac{12}{25} \\\\ &P(S = 1, T = 0 \ |\ G = 1) = \frac{2}{25} \\\\ &P(S = 0, T = 0 \ |\ G = 1) = \frac{3}{25} \\\\ &P(S = 1, T = 1 \ |\ G = 0) = \frac{4}{25} \\\\ &P(S = 0, T = 1 \ |\ G = 0) = \frac{1}{25} \\\\ &P(S = 1, T = 0 \ |\ G = 0) = \frac{16}{25} \\\\ &P(S = 0, T = 0 \ |\ G = 0) = \frac{4}{25} \end{aligned}

同時確率を求める

GGを与えた時のSSTTの条件付き確率を求めたので、その確率に周辺確率を乗じることで得ることができる。

P(S=1,T=1,G=1)=P(S=1,T=1  G=1)P(G=1)=32125P(S=0,T=1,G=1)=48125P(S=1,T=0,G=1)=8125P(S=0,T=0,G=1)=12125P(S=1,T=1,G=0)=4125P(S=0,T=1,G=0)=1125P(S=1,T=0,G=0)=16125P(S=0,T=0,G=0)=4125\begin{aligned} &\color{blue}{P(S = 1, T = 1, G = 1) = P(S = 1, T = 1 \ |\ G = 1) \cdot P(G = 1) = \frac{32}{125}} \\\\ &P(S = 0, T = 1, G = 1) = \frac{48}{125} \\\\ &P(S = 1, T = 0, G = 1) = \frac{8}{125} \\\\ &P(S = 0, T = 0, G = 1) = \frac{12}{125} \\\\ &P(S = 1, T = 1, G = 0) = \frac{4}{125} \\\\ &P(S = 0, T = 1, G = 0) = \frac{1}{125} \\\\ &P(S = 1, T = 0, G = 0) = \frac{16}{125} \\\\ &P(S = 0, T = 0, G = 0) = \frac{4}{125} \end{aligned}

周辺分布を求める

先程求めたSSTTGGの3変数の同時確率から、変数GGを消去してあげれば、SSTTの周辺分布が得られる

GGの消去方法は、GGは離散なのでGGの台で総和を取れば良い

P(S=1,T=1)=P(S=1,T=1,G=1)+P(S=1,T=1,G=0)=36125P(S=0,T=1)=P(S=0,T=1,G=1)+P(S=0,T=1,G=0)=49125P(S=1,T=0)=P(S=1,T=0,G=1)+P(S=1,T=0,G=0)=24125P(S=0,T=0)=P(S=0,T=0,G=1)+P(S=0,T=0,G=0)=16125\begin{aligned} \color{blue}{P(S = 1, T = 1) = P(S = 1, T = 1, G = 1) + P(S = 1, T = 1, G = 0) = \frac{36}{125}} \\\\ P(S = 0, T = 1) = P(S = 0, T = 1, G = 1) + P(S = 0, T = 1, G = 0) = \frac{49}{125} \\\\ P(S = 1, T = 0) = P(S = 1, T = 0, G = 1) + P(S = 1, T = 0, G = 0) = \frac{24}{125} \\\\ P(S = 0, T = 0) = P(S = 0, T = 0, G = 1) + P(S = 0, T = 0, G = 0) = \frac{16}{125} \end{aligned}

事後確率を求める

S,T,GS, T, Gの同時確率をSSTTの周辺確率で除せば良い

P(G=1  S=1,T=1)=P(S=1,T=1,G=1)P(S=1,T=1)=89P(G=1  S=0,T=1)=P(S=0,T=1,G=1)P(S=0,T=1)=4849P(G=1  S=1,T=0)=P(S=1,T=0,G=1)P(S=1,T=0)=13P(G=1  S=0,T=0)=P(S=0,T=0,G=1)P(S=0,T=0)=34P(G=0  S=1,T=1)=P(S=1,T=1,G=0)P(S=1,T=1)=19P(G=0  S=0,T=1)=P(S=0,T=1,G=0)P(S=0,T=1)=149P(G=0  S=1,T=0)=P(S=1,T=0,G=0)P(S=1,T=0)=23P(G=0  S=0,T=0)=P(S=0,T=0,G=0)P(S=0,T=0)=14\begin{aligned} &P(G = 1 \ |\ S = 1, T = 1) = \frac{P(S = 1, T = 1, G = 1)}{P(S = 1, T = 1)} = \frac{8}{9} \\\\ &P(G = 1 \ |\ S = 0, T = 1) = \frac{P(S = 0, T = 1, G = 1)}{P(S = 0, T = 1)} = \frac{48}{49} \\\\ &P(G = 1 \ |\ S = 1, T = 0) = \frac{P(S = 1, T = 0, G = 1)}{P(S = 1, T = 0)} = \frac{1}{3} \\\\ &P(G = 1 \ |\ S = 0, T = 0) = \frac{P(S = 0, T = 0, G = 1)}{P(S = 0, T = 0)} = \frac{3}{4} \\\\ &P(G = 0 \ |\ S = 1, T = 1) = \frac{P(S = 1, T = 1, G = 0)}{P(S = 1, T = 1)} = \frac{1}{9} \\\\ &P(G = 0 \ |\ S = 0, T = 1) = \frac{P(S = 0, T = 1, G = 0)}{P(S = 0, T = 1)} = \frac{1}{49} \\\\ &P(G = 0 \ |\ S = 1, T = 0) = \frac{P(S = 1, T = 0, G = 0)}{P(S = 1, T = 0)} = \frac{2}{3} \\\\ &P(G = 0 \ |\ S = 0, T = 0) = \frac{P(S = 0, T = 0, G = 0)}{P(S = 0, T = 0)} = \frac{1}{4} \end{aligned}

これで、入力データS,TS, Tの情報からGGの事後確率を得ることができた。後は、各条件の時に事後確率の大小を比較して識別すれば良い

  • 事後確率を次の表にまとめると(赤字が健康と識別された確率)
(S,T)(S, T) (1, 1) (0, 1) (1, 0) (0, 0)
P(G=1S,T)P(G = 1 \vert S, T) 89\color{red}{\frac{8}{9}} 4849\color{red}{\frac{48}{49}} 13\frac{1}{3} 34\color{red}{\frac{3}{4}}
P(G=0S,T)P(G = 0 \vert S, T) 19\frac{1}{9} 149\frac{1}{49} 23\color{red}{\frac{2}{3}} 14\frac{1}{4}
  • 条件付きベイズ誤り率は次の通り

ϵ=s,t{0,1}min{P(G=1  S,T),P(G=0  S,T)}pS,T(S,T)=19×36125+149×49125+13×24125+14×16125=17125\begin{aligned} \epsilon^* &= \sum_{s, t \in \lbrace 0, 1 \rbrace} \min \lbrace P(G = 1 \ |\ S, T), P(G = 0 \ |\ S, T) \rbrace \cdot p_{S, T}(S, T) \\\\ &= \frac{1}{9} \times \frac{36}{125} + \frac{1}{49} \times \frac{49}{125} + \frac{1}{3} \times \frac{24}{125} + \frac{1}{4} \times \frac{16}{125} \\\\ &= \frac{17}{125} \end{aligned}

  • S,T=1S, T = 1の場合、事後確率の高い健康のクラスに識別される
  • 喫煙の習慣があって、お酒を飲まない人は事後確率の高い不健康のクラスに識別される
  • 喫煙も飲酒の習慣のある人の方が、喫煙も飲酒もしない人よりも健康である確率が高い

喫煙も飲酒の習慣もある人の場合、健康のクラスに識別されるので、19\frac{1}{9}の不健康の人も健康に識別されてしまう。これがS,T=1S, T = 1の場合の誤り率

以下、SSTTの全ての場合について誤り率を求めて、その条件の同時確率で重み付けをすれば良い。求めた誤り率は1712513.6%\frac{17}{125} \simeq 13.6 \%

尤度比(事前確率の比率)

クラス条件付き確率と事前確率の積で識別している

{p(x  Ci)P(Ci)>p(x  Cj)P(Cj)Cip(x  Ci)P(Ci)<p(x  Cj)P(Cj)Cj\begin{aligned} \begin{cases} p(\mathbf{x} \ |\ C_i) \cdot P(C_i) > p(\mathbf{x} \ |\ C_j) \cdot P(C_j) \Rightarrow C_i \\\\ p(\mathbf{x} \ |\ C_i) \cdot P(C_i) < p(\mathbf{x} \ |\ C_j) \cdot P(C_j) \Rightarrow C_j \end{cases} \end{aligned}

この式より, 尤度比で識別規則を構成してもよい

{p(x  Ci)p(x  Cj)>P(Cj)P(Ci)Cip(x  Ci)p(x  Cj)<P(Cj)P(Ci)Cj\begin{aligned} \begin{cases} \frac{p(\mathbf{x} \ |\ C_i)}{p(\mathbf{x} \ |\ C_j)} > \frac{P(C_j)}{P(C_i)} \Rightarrow C_i \\\\ \frac{p(\mathbf{x} \ |\ C_i)}{p(\mathbf{x} \ |\ C_j)} < \frac{P(C_j)}{P(C_i)} \Rightarrow C_j \end{cases} \end{aligned}

尤度比が事前確率の比 P(Cj/Ci)=hijP(C_j / C_i) = h_{ij} よりも大きければクラス ii に識別する.

誤り率最小化

ベイズ識別規則の誤り率 ϵ(x)\epsilon(\mathbf{x}) は事後確率の小さい方なので

ϵ(x)=min{P(C1  x),P(C2  x)}\epsilon(\mathbf{x}) = \min \lbrace P(C_1 \ |\ \mathbf{x}), P(C_2 \ |\ \mathbf{x}) \rbrace

これを条件付きベイズ誤り率という. ベイズ誤り率は条件付きベイズ誤り率の期待値

ϵ=E{ϵ(x)}=R2p(x  C1)P(C1)dx+R1p(x  C2)P(C2)dx\epsilon^* = E\lbrace \epsilon(\mathbf{x}) \rbrace = \int_{R_2} p(\mathbf{x} \ |\ C_1) P(C_1)dx + \int_{R_1} p(\mathbf{x} \ |\ C_2) P(C_2)dx

ベイズの識別規則によって識別境界が定められているとすると,

  • R2R_2の領域ではP(x  C1)P(C1)<P(x  C2)P(C2)P(\mathbf{x} \ |\ C_1) P(C_1) < P(\mathbf{x} \ |\ C_2) P(C_2)
  • R1R_1の領域ではP(x  C2)P(C2)<P(x  C1)P(C1)P(\mathbf{x} \ |\ C_2) P(C_2) < P(\mathbf{x} \ |\ C_1) P(C_1)

最小損失基準

誤りを犯すことによる危険性 (リスク) を考える. 誤りによって発生する危険性はクラス間で対称ではないから.

LijL_{ij}は真のクラスがCjC_jのときCiC_iと判断することによる損失を表す

データ x\mathbf{x} をクラス CiC_i と判断したときの損失は

r(Ci  x)=k=1KLikP(Ck  x)r(C_i \ |\ \mathbf{x}) = \sum_{k = 1}^K L_{ik} P(C_k \ |\ \mathbf{x})

  • P(Ck  x)P(C_k \ |\ \mathbf{x})は観測データx\mathbf{x}CkC_kと判断する確率

識別規則は, 損失がもっとも小さいクラスに識別する

識別クラス=arg minir(Ci  x)\text{識別クラス} = \argmin_i r(C_i \ |\ \mathbf{x})

このとき損失の期待値

r=E{r(x)}=R1+R2min{r(C1  x),r(C2  x)}p(x)dxr = E\lbrace r(\mathbf{x}) \rbrace = \int_{R_1 + R_2} \min \lbrace r(C_1 \ |\ \mathbf{x}), r(C_2 \ |\ \mathbf{x}) \rbrace p(\mathbf{x})d\mathbf{x}

最小損失基準に基づく識別の例

期待損失最小化

期待損失は次のようにして計算された

r=E{r(x)}=R1(L11p(x  C1)P(C1)+L12p(x  C2)P(C2))dx+R2(L21p(x  C1)P(C1)+L22p(x  C2)P(C2))dxr = E\lbrace r(\mathbf{x}) \rbrace = \int_{R_1} (L_{11} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{12} p(\mathbf{x} \ |\ C_2) P(C_2))d\mathbf{x} + \int_{R_2} (L_{21} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{22} p(\mathbf{x} \ |\ C_2) P(C_2))d\mathbf{x}

期待損失が最小になるクラスに識別すればよいので, 識別規則は次のようになった

L11p(x  C1)P(C1)+L12p(x  C2)P(C2)<L21p(x  C1)P(C1)+L22p(x  C2)P(C2)C1L_{11} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{12} p(\mathbf{x} \ |\ C_2) P(C_2) < L_{21} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{22} p(\mathbf{x} \ |\ C_2) P(C_2) \Rightarrow C_1

L11p(x  C1)P(C1)+L12p(x  C2)P(C2)>L21p(x  C1)P(C1)+L22p(x  C2)P(C2)C2L_{11} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{12} p(\mathbf{x} \ |\ C_2) P(C_2) > L_{21} p(\mathbf{x} \ |\ C_1) P(C_1) + L_{22} p(\mathbf{x} \ |\ C_2) P(C_2) \Rightarrow C_2

L11,L22L_{11}, L_{22} は正しく識別できているので, 損失を考える必要はない, そこで L11<L12,L22<L21L_{11} < L_{12}, L_{22} < L_{21} を仮定しよう. すると次の識別規則が得られる.

(L21L11)p(x  C1)P(C1)>(L12L21)p(x  C2)P(C2)C1(L_{21} - L_{11}) p(\mathbf{x} \ |\ C_1) P(C_1) > (L_{12} - L_{21}) p(\mathbf{x} \ |\ C_2) P(C_2) \Rightarrow C_1

ROC曲線

識別性能の指標に受信者動作特性曲線 (ROC 曲線) がある

ROC曲線は, 偽陽性率と真陽性率の関係をグラフに表したもの

偽陽性率も真陽性率も, 本来偽 (真) であるものの中から計算されるので, 真のクラスと偽のクラスのデータ数に大きな差があってもROC は大きく影響を受けない.

ベイズ識別規則のように識別境界を移動することで識別クラスを制御できるものがある.

混同行列(Confusion Matrix)

2クラス問題では, 対象 x\mathbf{x} が1つに属していると判断する場合を p(positive), 属していないと判断する場合を, n (negative) と表記する.

  • p,np^*, n^*x\mathbf{x}真のクラスを表すとする
  • この識別の様子を混同行列としてまとめることができる
識別クラスp 識別クラスn 行和
pp^* TP(True Positive): 真陽性 FN(False Negative): 偽陰性 P=TP+FNP = TP + FN
nn^* FP(False Positive): 偽陽性 TN(True Negative): 真陰性 N=FP+TNN = FP + TN
  • Positive:陽性と判断
  • Negative:陰性と判断
  • True:判断が正しい
  • False:判断が誤り

偽陽性率:健康な人の中で陽性が出てしまった割合

FalsePositiverate=FPFP+TN=FPNFalse-Positive-rate = \frac{FP}{FP + TN} = \frac{FP}{N}

真陽性率:病気の人の中で陽性を正しく出せた割合

TruePositiverate=TPTP+FN=TPPTrue-Positive-rate = \frac{TP}{TP + FN} = \frac{TP}{P}

正確度:正しく当てられた割合

Accuracy=TP+TNTP+FP+FN+TNAccuracy = \frac{TP + TN}{TP + FP + FN + TN}

適合率:陽性を出した中でそれが合っていた割合。モデルの正確性を表す

Precision=TPTP+FPPrecision = \frac{TP}{TP + FP}

再現率:適合している全文書からどれだけ検索できているかを示す網羅性の指標。真の陽性に対してどれだけ真と答えられたか

Recall=TPTP+FN=TPPRecall = \frac{TP}{TP + FN} = \frac{TP}{P}

F-値:PrecisionとTrue-Pisitive rateの調和平均。(適合率と再現率はトレードオフの関係にあるから)

Fvalue=2×Precision×TPratePrecision+TPrate=21Precision+1RecallF_{value} = \frac{2 \times Precision \times TP-rate}{Precision + TP-rate} = \frac{2}{\frac{1}{Precision} + \frac{1}{Recall}}

ROCによる性能評価

ROC曲線の下側の面積を ROC曲線下面積(AUC)(area under anROC curve) といい, 識別器の性能評価尺度

  • 完全な識別器の ROC 曲線は, 原点, (0,1), (1,1) を通る直線で, AUCは 1 になる.
  • 原点と (1,1) を結んだ 45 度線は, ランダムな識別器の ROC 曲線で, AUC は 0.5 となる.

どの識別器も AUC は (0.5, 1) の間の値となり, 大きいほど性能が良い.

動作点の選択

動作点 (真陽性率と偽陽性率の組み合わせ) をどこに選択すべきか?

最小損失識別規則は, L11=L22=0L_{11} = L_{22} = 0 とすれば,

p(x  p)p(x  n)>L12P(n)L21P(p)pp(x  p)p(x  n)<L12P(n)L21P(p)n\begin{aligned} \frac{p(\mathbf{x} \ |\ p^*)}{p(\mathbf{x} \ |\ n^*)} > \frac{L_{12}P(n^*)}{L_{21}P(p^*)} \Rightarrow p \\\\ \frac{p(\mathbf{x} \ |\ p^*)}{p(\mathbf{x} \ |\ n^*)} < \frac{L_{12}P(n^*)}{L_{21}P(p^*)} \Rightarrow n \end{aligned}

損失の期待値 rr

r=R1(L12p(x  n)P(n))dx+R2(L21p(x  p)P(p))dx=L12P(n)ϵ2+L21P(p)ϵ1\begin{aligned} r &= \int_{R_1} (L_{12}p(\mathbf{x} \ |\ n^*) P(n^*))dx + \int_{R_2} (L_{21}p(\mathbf{x} \ |\ p^*) P(p^*))dx \\\\ &= L_{12}P(n^*) \epsilon_2 + L_{21}P(p^*) \epsilon_1 \end{aligned}

となる

ROC空間の定義で書けば,

1ϵ1=L12P(n)L21P(p)ϵ2+(1rL21P(p))=αϵ2+h(r)\begin{aligned} 1 - \epsilon_1 &= \frac{L_{12}P(n^*)}{L_{21}P(p^*)} \epsilon_2 + (1 - \frac{r}{L_{21}P(p^*)}) \\\\ &= \alpha \epsilon_2 + h(r) \end{aligned}

となる.

課題3.1

次のデータはある疾病に関して, 病気の人(G=1G = 1で表す)100人と, 健康な人(G=0G = 0)900人の検査値が一定数以上の場合を S=1S = 1, 一定値以下を S=0S = 0, 男性を T=1T = 1, 女性を T=0T = 0 とした 1000 人の仮想的なデータである. 検査値と性別から, 病気であるかどうかを識別したい. SSTT の間には条件付き独立性 P(S,T  G)=P(S  G)P(T  G)P(S, T \ |\ G) = P(S \ |\ G)P(T \ |\ G) が成り立つと仮定する. このとき, 以下の問に答えなさい.

サンプル数 検査値 xx がある値以上(S=1S = 1) 性別(T=1(T = 1)
病気の人(G = 1) 100 80 70
健康な人(G = 0) 900 300 180

(1) 検査値に関するクラス条件付き確率を P(S  G)P(S \ |\ G) を求めよ

SS に関するクラス条件付き確率は次の通り

P(S=1  G=1)=80100=45,P(S=0  G=1)=20100=15P(S=1  G=0)=300900=13,P(S=0  G=0)=600900=23\begin{aligned} &P(S = 1 \ |\ G = 1) = \frac{80}{100} = \frac{4}{5}, \quad P(S = 0 \ |\ G = 1) = \frac{20}{100} = \frac{1}{5} \\\\ &P(S = 1 \ |\ G = 0) = \frac{300}{900} = \frac{1}{3}, \quad P(S = 0 \ |\ G = 0) = \frac{600}{900} = \frac{2}{3} \end{aligned}

(2) 事後確率 P(G=1  S=1,T=1)P(G = 1 \ |\ S = 1, T = 1) を計算せよ

TT に関するクラス条件付き確率

P(T=1  G=1)=70100=710P(T = 1 \ |\ G = 1) = \frac{70}{100} = \frac{7}{10}

P(S,T  G)P(S, T \ |\ G)のクラス条件付き確率

P(S=1,T=1  G=1)=45×710=1425P(S = 1, T = 1 \ |\ G = 1) = \frac{4}{5} \times \frac{7}{10} = \frac{14}{25}

同時確率P(S,T,G)P(S, T, G)

P(S=1,T=1,G=1)=P(S=1,T=1  G=1)×P(G=1)=1425×1001000=7125P(S = 1, T = 1, G = 1) = P(S = 1, T = 1 \ |\ G = 1) \times P(G = 1) = \frac{14}{25} \times \frac{100}{1000} = \frac{7}{125}

周辺確率P(S,T)P(S, T)

P(S=1,T=1)=P(S=1,T=1,G=1)+P(S=1,T=1,G=0)=7125+350=29250P(S = 1, T = 1) = P(S = 1, T = 1, G = 1) + P(S = 1, T = 1, G = 0) = \frac{7}{125} + \frac{3}{50} = \frac{29}{250}

事後確率P(G=1  S=1,T=1)P(G = 1 \ |\ S = 1, T = 1)

P(G=1  S=1,T=1)=P(S=1,T=1,G=1)P(S=1,T=1)=1429P(G = 1 \ |\ S = 1, T = 1) = \frac{P(S = 1, T = 1, G = 1)}{P(S = 1, T = 1)} = \frac{14}{29}

(3) ベイズ誤り率を求めよ.

  • 事後確率を次の表にまとめると(赤字が健康と識別された確率)
(S,T)(S, T) (1, 1) (0, 1) (1, 0) (0, 0)
P(G=1S,T)P(G = 1 \vert S, T) 1429\frac{14}{29} 767\frac{7}{67} 111\frac{1}{11} 181\frac{1}{81}
P(G=0S,T)P(G = 0 \vert S, T) 1529\color{red}{\frac{15}{29}} 6067\color{red}{\frac{60}{67}} 1011\color{red}{\frac{10}{11}} 8081\color{red}{\frac{80}{81}}
  • 条件付きベイズ誤り率は次の通り

ϵ=s,t{0,1}min{P(G=1  S,T),P(G=0  S,T)}pS,T(S,T)=1429×29250+767×67500+111×33125+181×243500=110\begin{aligned} \epsilon^* &= \sum_{s, t \in \lbrace 0, 1 \rbrace} \min \lbrace P(G = 1 \ |\ S, T), P(G = 0 \ |\ S, T) \rbrace \cdot p_{S, T}(S, T) \\\\ &= \frac{14}{29} \times \frac{29}{250} + \frac{7}{67} \times \frac{67}{500} + \frac{1}{11} \times \frac{33}{125} + \frac{1}{81} \times \frac{243}{500} \\\\ &= \frac{1}{10} \end{aligned}

(4) 損失を L11=L22=0,L12=5,L21=10L_{11} = L_{22} = 0, L_{12} = 5, L_{21} = 10 とした場合の識別結果を求めよ

損失行列は

[L11L12L21L22]=[05100]\begin{aligned} \begin{bmatrix} L_{11} & L_{12} \\ L_{21} & L_{22} \end{bmatrix} = \begin{bmatrix} 0 & 5 \\ 10 & 0 \end{bmatrix} \end{aligned}

L11L_{11} は真のクラスが G=0G = 0 のとき G=0G = 0 と判断するときの損失, L21L_{21} は真のクラスが G=0G = 0 のとき G=1G = 1 と判断するときの損失, L12L_{12} は真のクラスが G=1G = 1 のとき G=0G = 0 と判断するときの損失であるから、識別クラスは事後確率に損失をかけて大きい値のクラスになる.

(1,1)(1, 1) (0,1)(0, 1) (1,0)(1, 0) (0,0)(0, 0)
L21P(G=1S,T)L_{21}P(G = 1 \mid S,T) 14029\color{red}{\frac{140}{29}} 7067\frac{70}{67} 1011\frac{10}{11} 1081\frac{10}{81}
L12P(G=0S,T)L_{12}P(G = 0 \mid S,T) 7529\frac{75}{29} 30067\color{red}{\frac{300}{67}} 5011\color{red}{\frac{50}{11}} 40081\color{red}{\frac{400}{81}}
識別クラス 1 0 0 0

最小損失基準に基づく、以下の識別結果になる

  • S=1,T=1S = 1, T = 1: 病気の人
  • S=0,T=1S = 0, T = 1: 健康な人
  • S=1,T=0S = 1, T = 0: 健康な人
  • S=0,T=0S = 0, T = 0: 健康な人

課題3.2

次の混同行列から, 偽陽性率, 真陽性率, 適合率, 正確度, F 値を求めよ.

識別クラスpp 識別クラスnn
pp^* TP: 20 FN: 80
nn^* FP: 150 TN: 750
  • 偽陽性率: FPN=150150+750=16\frac{FP}{N} = \frac{150}{150 + 750} = \frac{1}{6}
  • 真陽性率: TPP=2020+80=15\frac{TP}{P} = \frac{20}{20 + 80} = \frac{1}{5}
  • 適合率: TPTP+FP=2020+150=217\frac{TP}{TP + FP} = \frac{20}{20 + 150} = \frac{2}{17}
  • 正確度: TP+TNP+N=20+75020+80+150+750=77100\frac{TP + TN}{P + N} = \frac{20 + 750}{20 + 80 + 150 + 750} = \frac{77}{100}
  • F値: 21/適合率+1/再現率=21217+115=427\frac{2}{1/\text{適合率} + 1/\text{再現率}} = \frac{2}{\frac{1}{\frac{2}{17}} + \frac{1}{\frac{1}{5}}} = \frac{4}{27}
    • 再現率 = 真陽性率

確率モデルと識別関数

学習データ xi\mathbf{x}_i は, 母集団からのランダムサンプルであるから, 誤差を伴う観測が一般的である. また, 特徴ベクトルは単位や変数変換の仕方によりばらつきが変わったり, 分布の形状が変化する.

そこで, 単位変換や相関係数に依存しない変数変換の方法を学ぶ.

母集団分布を記述する確率モデルを定義し, 確率モデルを使ったベイズ識別規則を紹介する.

観測データの線形変換

平均ベクトル

観測データは, d次元の特徴ベクトル x=(x1,,xd)T\mathbf{x} = (x_1, \cdots, x_d)^Tとする. x\mathbf{x}の確率分布 (密度関数) を p(x)p(\mathbf{x}) とするとき, 平均ベクトルを次のように表す.

μ=(μ1,,μd)T=(E{x1},,E{xd})T\mu = (\mu_1, \cdots, \mu_d)^T = (E \lbrace x_1 \rbrace, \cdots, E \lbrace x_d \rbrace)^T

ここで E{xi}E \lbrace x_i \rbraceii 番目の特徴ベクトルの期待値演算で, x\mathbf{x}が連続型の場合

μi=E{xi}=Rdxip(x)dx=xip(xi)dx\mu_i = E \lbrace x_i \rbrace = \int_{\mathcal{R}^d} x_i p(\mathbf{x}) \, d\mathbf{x} = \int_{-\infty}^{\infty} x_i p(x_i) \,dx

となる.

p(xi)p(x_i) は d次元密度関数p(x)p(\mathbf{x})周辺分布であった.

p(xi)=p(x1,,xd)dx1dxi1dxi+1dxdp(x_i) = \int_{-\infty}^{\infty} \cdots \int_{-\infty}^{\infty} p(x_1, \cdots, x_d) \,dx_1 \cdots \,dx_{i-1} \,dx_{i+1} \cdots \,dx_d

共分散行列

観測データの平均ベクトル周りのばらつきの尺度を分散共分散行列で表す

Σ=Var[x]=E{(xμ)(xμ)T}=[σij]i.j=1,,d\begin{aligned} \Sigma &= Var[\mathbf{x}] = E\lbrace (\mathbf{x} - \mu) (\mathbf{x} - \mu)^T \rbrace \\ &= [\sigma_{ij}]_{i.j = 1, \cdots, d} \end{aligned}

  • σij\sigma_{ij}xix_ixjx_jの平均周りの2次モーメントして以下のようにして計算した

σij=E{(xiμi)(xjμj)}=(xiμi)(xjμj)p(xi,xj)dxidxj\sigma_{ij} = E\lbrace (x_i - \mu_i) (x_j - \mu_j) \rbrace = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} (x_i - \mu_i) (x_j - \mu_j) p(x_i, x_j) \,dx_i \,dx_j

標本平均ベクトルと標本共分散行列

データ分析者は, データの母集団分布p(x)p(\mathbf{x})を特定する術がありませんから, 観測データを使って, 母平均ベクトル(μ)(\mathbf{\mu})や母分散共分散行列(Σ)(\mathbf{\Sigma})を推定する必要がある

NN個の観測データをx1,,xN\mathbf{x}_1, \cdots, \mathbf{x}_Nと表したとき, 標本平均ベクトルは次の様にして計算した

x=1Ni=1Nxi\overline{\mathbf{x}} = \frac{1}{N} \sum_{i=1}^N \mathbf{x}_i

また, 標本分散共分散行列S\mathbf{S}の第i,ji, j要素は次のようにして計算する

Sij=1Nn=1N(xnixi)(xnjxj)S_{ij} = \frac{1}{N}\sum_{n=1}^N (x_{ni} - \overline{x_i}) (x_{nj} - \overline{x_j})

xix_ixjx_jの関連性の指標を相関係数といい, 母相関係数と標本相関係数は次の様にして定義された

ρij=σijσiσj,rij=SijSiSj\begin{aligned} \rho_{ij} = \frac{\sigma_{ij}}{\sigma_i \sigma_j}, \quad r_{ij} = \frac{S_{ij}}{S_i S_j} \end{aligned}

ただし, σi2=σij2\sigma_i^2 = \sigma_{ij}^2またSi2=SiiS_i^2 = S_{ii}である.

観測データの標準化

観測データの個々の特徴量の分布は, 測定単位のとり方でばらつきが大きくもなるし小さくもなる. そこで, 単位変換の影響を取り除いたデータを用いた方が望ましい分析結果が得られる.

  • 個々の特徴量を平均0, 分散1に変換することを標準化という.

平均μ\mu, 分散σ2\sigma^2をもつXXの線形変換Y=aX+bY = aX + bの期待値と分散の性質を思い出すと

E(Y)=E(aX+b)=aE(X)+b,Var(Y)=Var(aX+b)=a2Var(X)E(Y) = E(aX+b) = aE(X) + b, \quad Var(Y) = Var(aX+b) = a^2 Var(X)

変換z=xμσz = \frac{x - \mu}{\sigma}の期待値と分散は, それぞれ0と1になる.

E(Z)=E(Xμσ)=E(X)μσ=μμσ=0Var(Z)=Var(Xμσ)=Var(Z)σ2=σ2σ=1\begin{aligned} &E(Z) = E(\frac{X - \mu}{\sigma}) = \frac{E(X) - \mu}{\sigma} = \frac{\mu - \mu}{\sigma} = 0 \\\\ &Var(Z) = Var(\frac{X - \mu}{\sigma}) = \frac{Var(Z)}{\sigma^2} = \frac{\sigma^2}{\sigma} = 1 \end{aligned}

観測データの無相関化

データ間の相関を取り除く処理のことを無相関化という

分散共分散行列Σ\mathbf{\Sigma}の固有値をλ1λ2λd\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_dとし, その固有値に対応する固有ベクトルをs1,s2,,sd\mathbf{s}_1, \mathbf{s}_2, \cdots, \mathbf{s}_dとすると, 対称行列である分散共分散行列Σ\mathbf{\Sigma}は次のように対角化された

Σ=SΣST,Λ=STΣS\mathbf{\Sigma} = \mathbf{S} \mathbf{\Sigma} \mathbf{S}^T, \quad \mathbf{\Lambda} = \mathbf{S}^T \mathbf{\Sigma} \mathbf{S}

そこで, データX\mathbf{X}の線形変換Y=ST(X)\mathbf{Y} = \mathbf{S}^T(\mathbf{X})を考えると, Y\mathbf{Y}の平均は

E(Y)=E(ST(X))=STμE(\mathbf{Y}) = E(\mathbf{S}^T(\mathbf{X})) = \mathbf{S}^T \mathbf{\mu}

であり, 分散共分散行列は

Var(Y)=Var(STX)=E{[ST(Xμ)][ST(Xμ)]T}=STE{(Xμ)(Xμ)T}S=STΣS=Λ\begin{aligned} Var(\mathbf{Y}) &= Var(\mathbf{S}^T \mathbf{X}) = E\lbrace [\mathbf{S}^T (\mathbf{X} - \mathbf{\mu})][\mathbf{S}^T (\mathbf{X} - \mathbf{\mu})]^T \rbrace \\\\ &= \mathbf{S}^T E \lbrace (\mathbf{X}- \mu) (\mathbf{X} - \mu)^T \rbrace \mathbf{S} \\\\ &= \mathbf{S}^T \mathbf{\Sigma} \mathbf{S} = \mathbf{\Lambda} \end{aligned}

  • Λ\mathbf{\Lambda}は, 固有値が対角に並んだ対角行列であったので, その非対角要素は0であった.

観測データの白色化

全ての特徴量を無相関化かつ標準偏差を1に正規化し, 平均ベクトルを0に中心化する操作を白色化という

白色化の変換公式は以下のように定義すればよい.

u=Λ12ST(Xμ)\mathbf{u} = \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu)

u\mathbf{u}の平均ベクトルは

E(u)=E(Λ12ST(Xμ))=Λ12ST{E(Xμ)=0E(\mathbf{u}) = E(\mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu)) = \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T \lbrace E(\mathbf{X} - \mu) = \mathbf{0}

となり, 分散共分散行列は

Var(u)=Var(Λ12ST(Xμ))=E{Λ12ST(Xμ)(Xμ)TSΛ12}=Λ12STΣSΛ12=Λ12ΛΛ12=Λ12Λ12Λ12Λ12=Id\begin{aligned} Var(\mathbf{u}) &= Var(\mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu)) \\\\ &= E \lbrace \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T (\mathbf{X} - \mu) (\mathbf{X} - \mu)^T \mathbf{S} \mathbf{\Lambda}^{-\frac{1}{2}} \rbrace \\\\ &= \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{S}^T \mathbf{\Sigma} \mathbf{S} \mathbf{\Lambda}^{-\frac{1}{2}} \\\\ &= \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{\Lambda} \mathbf{\Lambda}^{-\frac{1}{2}} \\\\ &= \mathbf{\Lambda}^{-\frac{1}{2}} \mathbf{\Lambda}^{\frac{1}{2}} \mathbf{\Lambda}^{\frac{1}{2}} \mathbf{\Lambda}^{-\frac{1}{2}} \\\\ &= \mathbf{I_d} \end{aligned}

確率モデル

パラメトリックモデル: 確率モデルを仮定し, 学習データからその確率モデルのパラメータを推定して識別規則を構成する手法

  • ベイズ識別規則, 判別分析, ロジスティック回帰

ノンパラメトリックモデル: 確率モデルを用いずに, 識別規則を構成する手法

  • k最近傍法, サポートベクターマシン(SVM), 分類木, ヒストグラム法

1次元正規分布の密度関数は

N(x  μ,σ2)=12πσexp((xμ)2σ2)\mathcal{N}(x \ |\ \mu, \sigma^2) = \frac{1}{\sqrt{2\pi} \sigma} \exp(-\frac{(x - \mu)^2}{\sigma^2})

となり, 平均μ\mu, と標準偏差σ\sigma(分散σ2\sigma^2)が形を決める

d次元正規分布関数

d次元正規分布の密度関数は

N(x  μ,Σ)=1(2π)d/2Σ1/2exp(12(xμ)TΣ1(xμ))\mathcal{N}(\mathbf{x} \ |\ \mathbf{\mu}, \mathbf{\Sigma}) = \frac{1}{(2\pi)^{d/2} |\mathbf{\Sigma}|^{1/2}} \exp(-\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu}))

任意の点x\mathbf{x}μ\mathbf{\mu}の間の距離をマハラノビス距離といい, 次のように表す

d(x,μ)=(xμ)TΣ1(xμ)d(\mathbf{x}, \mathbf{\mu}) = \sqrt{(\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu})}

ユークリッド距離を共分散で割っているので, 各変数のバラつき方を考慮した距離になっている

正規分布から導かれる識別関数

ii番目のクラスのクラス条件付き確率dd次元正規分布だと仮定し,ベイズの誤り率最小識別規則を満たす識別関数を求めよう. クラス事前確率をP(Ci)P(C_i)とすると, 事後確率は

P(Ci  x)P(Ci)(2π)d/2Σ1/2exp(12(xμ)TΣ1(xμ))P(C_i \ |\ \mathbf{x}) \propto \frac{P(C_i)}{(2\pi)^{d/2} |\mathbf{\Sigma}|^{1/2}} \exp(-\frac{1}{2} (\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu}))

各クラスに表れる共通項を省略して整理して, 評価値を表せば,

g(xi)=(xμi)TΣi1(xμi)+lnΣi2lnP(Ci)g(x_i) = (\mathbf{x} - \mu_i)^T \mathbf{\Sigma}_i^{-1} (\mathbf{x} - \mu_i) + \ln |\mathbf{\Sigma}_i| - 2\ln P(C_i)

となるので, 識別クラスとしてこの値の最も小さなクラスを選択すれば良い.

識別クラスは 識別規則 = arg mini[gi(x)]\argmin_i[g_i(\mathbf{x})]となるので, クラスi,ji, j識別境界は, 次のような2次曲面になる

fij(x)=gi(x)gj(x)=xTSx+2cTx+F=0f_{ij}(\mathbf{x}) = g_i(\mathbf{x}) - g_j(\mathbf{x}) = \mathbf{x}^T \mathbf{S} \mathbf{x} + 2\mathbf{c}^T \mathbf{x} + F = 0

ここで

S=Σi1Σj1,cT=μjTΣj1μiTΣi1F=μiTΣi1μiμjTΣj1μj+lnΣiΣj2lnP(Ci)P(Cj)\begin{aligned} &\mathbf{S} = \mathbf{\Sigma}_i^{-1} - \mathbf{\Sigma}_j^{-1}, \quad \mathbf{c}^T = \mathbf{\mu}_j^T \mathbf{\Sigma}_j^{-1} - \mathbf{\mu}_i^T \mathbf{\Sigma}_i^{-1} \\\\ &F = \mathbf{\mu}_i^T \mathbf{\Sigma}_i^{-1} \mathbf{\mu}_i - \mathbf{\mu}_j^T \mathbf{\Sigma}_j^{-1} \mathbf{\mu}_j + \ln \frac{|\mathbf{\Sigma}_i|}{|\mathbf{\Sigma}_j|} - 2\ln \frac{P(C_i)}{P(C_j)} \end{aligned}

  • Σi1=Σj1\mathbf{\Sigma}_i^{-1} = \mathbf{\Sigma}_j^{-1}を仮定すれば, 線形識別関数fij(x)=2cTx+F=0f_{ij}(\mathbf{x}) = 2\mathbf{c}^T \mathbf{x} + F = 0になる

確率モデルパラメータの最尤推定

最尤法: 確率分布の未知母数の推定する方法

学習データxi\mathbf{x}_iはパラメータθ\thetaをもつ真の分布f(x  θ)f(\mathbf{x} \ |\ \theta)から独立に得られた標本とする. 確率モデルの母数θ\thetaは未知であるから, 学習データから推定しないといけない.

NN個の学習データの同時分布を考えると, サンプルの独立性から

f(x1,,xN  θ)=i=1Nf(xi  θ)f(\mathbf{x}_1, \cdots, \mathbf{x}_N \ |\ \theta) = \prod_{i = 1}^N f(\mathbf{x}_i \ |\ \theta)

が成り立つ.

同時分布関数はxi\mathbf{x}_iの関数だが, 学習データは既に得られた標本を使えばいいので, 上の関数をθ\thetaの関数と考えると, 尤度関数が定義できる

L(θ)=f(x1,,xN  θ)L(\theta) = f(\mathbf{x}_1, \cdots, \mathbf{x}_N \ |\ \theta)

この尤度関数を最大にするθ\thetaを求めることを最尤法といい, 最尤推定量は次のように定義される

θ^=arg maxθL(θ)=arg maxθL(θ)\hat{\theta} = \argmax_{\theta} L(\theta) = \argmax_{\theta} \mathcal{L}(\theta)

ここでL(θ)=lnL(θ)\mathcal{L}(\theta) = \ln L(\theta)対数尤度関数という.

正規分布の最尤推定

最尤推定量は, 対数尤度関数の最大化で求まるので, 最大化の1階の条件L(θ)θi=0\frac{\partial \mathcal{L}(\mathbf{\theta})}{\partial \theta_i} = \mathbf{0}を解けば良い

1変量正規分布の母数, θ=(μ,σ2)T\mathbf{\theta} = (\mu, \sigma^2)^Tの最尤推定を考えよう.

尤度関数は次のとおり

L(μ,σ2)=i=1N12πσexp((xiμ)22σ2)=(2πσ2)N/2exp(12σ2i=1N(xiμ)2)L(\mu, \sigma^2) = \prod_{i=1}^N \frac{1}{\sqrt{2\pi} \sigma} \exp(-\frac{(x_i - \mu)^2}{2\sigma^2}) = (2\pi \sigma^2)^{-N/2} \exp(-\frac{1}{2\sigma^2} \sum_{i=1}^N (x_i - \mu)^2)

対数尤度関数は次のとおり

L(μ,σ2)=N2ln(2π)N2lnσ212σ212σ2i=1N(xiμ)2\mathcal{L}(\mu, \sigma^2) = -\frac{N}{2} \ln (2\pi) - \frac{N}{2} \ln \sigma^2 - \frac{1}{2\sigma^2} - \frac{1}{2\sigma^2} \sum_{i=1}^N (x_i - \mu)^2

最大化の1階の条件より, 正規分布のパラメータの最尤推定量

L(μ,σ2)μ=1σ2i=1N(xiμ)=0μ^=1Ni=1NxiL(μ,σ2)σ2=N21σ2+2(2σ2)2i=1N(xiμ)2=0σ2^=1Ni=1N(xiμ^)2\begin{aligned} &\frac{\partial \mathcal{L}(\mu, \sigma^2)}{\partial \mu} = \frac{1}{\sigma^2} \sum_{i=1}^N (x_i - \mu) = 0 \Rightarrow \hat{\mu} = \frac{1}{N}\sum_{i=1}^N x_i \\\\ &\frac{\partial \mathcal{L}(\mu, \sigma^2)}{\partial \sigma^2} = -\frac{N}{2} \frac{1}{\sigma^2} + \frac{2}{(2\sigma^2)^2} \sum_{i=1}^N (x_i - \mu)^2 = 0 \Rightarrow \hat{\sigma^2} = \frac{1}{N} \sum_{i = 1}^N (x_i - \hat{\mu})^2 \end{aligned}

  • 標本平均と標本分散 (不偏分散 (N − 1 で割る方) ではない) になる.

k最近傍法(KNN)

最近傍法: 入力データと全ての学習データ (鋳型; template) との距離を計算し,最も近い鋳型が所属するクラスに識別する方法

k最近傍法KNN: 最も近い鋳型のクラスに識別する代わりに, 最も近いkk個の鋳型の所属するクラスの数が最も多いクラスに識別する方法

kNN法は計算量が多いのが欠点だが, その緩和策と近似最近傍探索を勉強する.

最近傍法とボロノイ境界

KK個のクラスをΩ={C1,,Ck}\Omega = \lbrace C_1, \cdots, C_k \rbraceとする. ii番目のクラスの学習データ数N(i)N(i)とし, その集合をSi={x1(i),,xN(i)(i)}S_i = \lbrace \mathbf{x}_1^{(i)}, \cdots, \mathbf{x}_{N(i)}^{(i)} \rbraceと表す.

最近傍法では, 入力データx\mathbf{x}と各学習データxj(i)\mathbf{x}_j^{(i)}の類似度をユークリッド距離d(x,xj(i))=xxj(i)d(\mathbf{x}, \mathbf{x}_j^{(i)}) = \parallel \mathbf{x} - \mathbf{x}_j^{(i)} \parallelで計算する.

学習データのことを鋳型ともいう. ttは学習データとの距離が大きいときにリジェクトするための値である.

リジェクトは誤り率が大きいときに判断を保留することである.

最近傍法の識別規則:

識別クラス={arg mini{minjd(x,xj(i))},mini,jd(x,xj(i))<tリジェクト,minjd(x,xj(i))},mini,jd(x,xj(i))t\begin{aligned} \text{識別クラス} = \begin{cases} \argmin_i \lbrace \min_j d(\mathbf{x}, \mathbf{x}_j^{(i)}) \rbrace, \quad &\min_{i, j} d(\mathbf{x}, \mathbf{x}_j^{(i)}) < t \\ \text{リジェクト}, \quad \min_j d(\mathbf{x}, \mathbf{x}_j^{(i)}) \rbrace, \quad &\min_{i, j} d(\mathbf{x}, \mathbf{x}_j^{(i)}) \geq t \end{cases} \end{aligned}

ボロノイ図

最近傍法は入力データに最も近い鋳型を見つけること

各鋳型は隣接する鋳型と等距離にある境界 (ボロノイ境界) で囲まれた支配領域 (ボロノイ領域) をもつ. 入力データが支配領域に入った鋳型が最も近い鋳型になる.

鋳型の集合をS={x1,,xN}\mathbf{S} = \lbrace \mathbf{x}_1, \cdots, \mathbf{x}_N \rbraceとする. ボロノイ境界xi,xjS\mathbf{x}_i, \mathbf{x}_j \in \mathbf{S}から等距離の点の集合である.

B(xi,xj)={x  d(xi,x)=d(xj,x)}B(\mathbf{x_i}, \mathbf{x}_j) = \lbrace \mathbf{x} \ |\ d(\mathbf{x}_i, \mathbf{x}) = d(\mathbf{x}_j, \mathbf{x}) \rbrace

xi\mathbf{x}_ixj\mathbf{x}_jを結んだ直線 (法線ベクトルn\mathbf{n}) の中心x\overline{\mathbf{x}}を通り, 直交する超平面になる.

(xx)Tn=0,x=(xi+xj)/2,n=xixj(\mathbf{\overline{x}} - \mathbf{x})^T \mathbf{n} = 0, \quad \mathbf{\overline{x}} = (\mathbf{x_i} + \mathbf{x}_j) / 2, \quad \mathbf{n} = \mathbf{x}_i - \mathbf{x}_j

この超平面は,xi\mathbf{x}_iを含む半空間とxj\mathbf{x}_jを含む半空間に2分割する.

D(xi,xj)={x  d(xi,x)<d(xj,x)}D(xj,xi)={x  d(xj,x)<d(xi,x)}\begin{aligned} D(\mathbf{x}_i, \mathbf{x}_j) = \lbrace \mathbf{x} \ |\ d(\mathbf{x}_i, \mathbf{x}) < d(\mathbf{x}_j, \mathbf{x}) \rbrace \\ D(\mathbf{x}_j, \mathbf{x}_i) = \lbrace \mathbf{x} \ |\ d(\mathbf{x}_j, \mathbf{x}) < d(\mathbf{x}_i, \mathbf{x}) \rbrace \end{aligned}

xi\mathbf{x}_iボロノイ領域の定義は次のとおり

VR(xi,S)=xjS,jiD(xi,xj)\begin{aligned} VR(\mathbf{x}_i, \mathbf{S}) = \bigcap_{x_j \in S, j \neq i} D(\mathbf{x}_i, \mathbf{x}_j) \end{aligned}

VR(xi,S)VR(\mathbf{x}_i, \mathbf{S})は開集合なので, 境界も含めて閉包VR(xi,S)\overline{VR(\mathbf{x}_i, \mathbf{S})}と表すとボロノイ図は次のように定義される.

V(S)=xi,xjS,ij=VR(xi,S)VR(xj,S)V(\mathbf{S}) = \bigcup_{x_i, x_j \in \mathbf{S}, i \neq j} = \overline{VR(\mathbf{x_i}, \mathbf{S})} \cap \overline{VR(\mathbf{x_j}, \mathbf{S})}

例題:

xi=(1,0)T,x2=(0,1)T\mathbf{x}_i = (1, 0)^T, \mathbf{x}_2 = (0, 1)^Tの場合のボロノイ境界を求めよ.

x1,x2x_1, x_2の中点:

x=(12,12)T\overline{\mathbf{x}} = (\frac{1}{2}, \frac{1}{2})^T

2点x1x_1x2x_2を結ぶ法線ベクトル:

n=x1x2=(10)(01)=(11)\mathbf{n} = \mathbf{x}_1 - \mathbf{x}_2 = \binom{1}{0} - \binom{0}{1} = \binom{1}{-1}

従って、法線ベクトルn=(11)\mathbf{n} = \binom{1}{-1}直交する直線の方程式:

xy+c=01212+c=0c=0x - y + c = 0 \Rightarrow \frac{1}{2} - \frac{1}{2} + c = 0 \Rightarrow c = 0

xy=0x - y = 0

鋳型の数と識別性能

各クラスからMM個のデータをランダムに選び, 10×M10 \times M 個のデータから 1つ抜き法で汎化誤差を推定した. これを20回繰り返したときの鋳型の数と汎化誤差の関係を図示した.

kNN法

最近傍の鋳型をkk個取ってきて, それらが最も多く所属するクラスに識別する方法をkk最近傍法という

鋳型の集合をTN={x1,,xN}T_N = \lbrace \mathbf{x}_1, \cdots, \mathbf{x}_N \rbrace,それらが属するクラスの集合をΩ={C1,,CK\Omega = \lbrace C_1, \cdots, C_Kとする.

入力x\mathbf{x}にもっとも近いkk個の鋳型の集合をk(x)={xi1,,xik}k(\mathbf{x}) = \lbrace \mathbf{x}_{i_1}, \cdots, \mathbf{x}_{i_k} \rbraceとし, これらの鋳型のうちクラスjjに属する鋳型の数をkjk_jとする.k=k1++kKk = k_1 + \cdots + k_Kが成り立つ.

kk最近傍法の識別規則:

識別クラス={j,{kj}=max{k1,,kK}リジェクト,{k1,kK}=max{k1,,kK}\begin{aligned} \text{識別クラス} = \begin{cases} j, \quad &\lbrace k_j \rbrace = \max \lbrace k_1, \cdots, k_K \rbrace \\ \text{リジェクト}, \quad &\lbrace k_1, \cdots k_K \rbrace = \max \lbrace k_1, \cdots, k_K \rbrace \end{cases} \end{aligned}

  • 近傍kk個の鋳型の内、数が最も多いクラスjjと識別する
  • 近傍kk個の鋳型の内、数が最も多いクラスが複数存在する場合はrejectする

ピマインディアンデータのkk最近傍法による識別境界

最適な最近傍数kを求める

kNN 法では, 最近傍法と同様に, 学習データ数が多くなれば誤り率は減少する. ピマ・インディアンデータでは, 学習データを大きくすることはできない. 1つ抜き法では, 全ての学習データが利用できるので , kkが60以上になるところで安定した誤り率を示す.

漸近仮定とkNN誤り率の期待値

条件付きベイズ誤り率は, 事後確率の小さい方であった.

ϵ(x)=min{P(C1  x),P(C2  x)}\epsilon(\mathbf{x}) = \min \lbrace P(C_1 \ |\ \mathbf{x}), P(C_2 \ |\ \mathbf{x}) \rbrace

ベイズ誤り率は, その期待値

ϵ=ϵ(x)p(x)dx\epsilon^* = \int \epsilon(\mathbf{x}) p(\mathbf{x}) \, d\mathbf{x}

入力x\mathbf{x}の最近傍鋳型をx1NN\mathbf{x}_{1NN}とする. NN個の鋳型の集合をTN\mathcal{T}_Nとする.

漸近仮定が成り立つとき, kNN誤り率とベイズ誤り率の間には次の関係が成り立つ.

limNTNd(x,x1NN)0\lim_{N \rightarrow \infty} \mathcal{T}_N \Rightarrow d(\mathbf{x}, \mathbf{x}_{1NN}) \rightarrow 0であれば,

  • NN: 鋳型の数
  • TN\mathcal{T}_N: NN個の鋳型の集合
  • d(x,x1NN)d(x, x_{1NN}): 入力xxと、最近傍鋳型x1NNx_{1NN}の距離

12ϵϵ2NNϵ4NNϵϵ3NNϵ1NN2ϵ\frac{1}{2}\epsilon^* \leq \epsilon_{2NN} \leq \epsilon_{4NN} \leq \cdots \leq \epsilon^* \leq \cdots \leq \epsilon_{3NN} \leq \epsilon_{1NN} \leq 2\epsilon^*

  • kkは偶数の時、誤り率が低い
  • kkは奇数の時、誤り率が高い

kNN法の改善

誤り削除型KNN法(Edited kNN)

kNNで識別境界を作成した時に、不正解の識別領域に含まれる鋳型を削除する

  • 削除すると識別境界が変わるので、最適的に削除を行う

圧縮型kNN(Condensed kNN)

識別に関係ない鋳型を削除する

  • 削除前と後で、誤り率が同じになるように選ぶ

分枝限定法

分枝法と限定法を用いて、近傍の探索を効率化させる

  • 分枝法: クラスタリングによって木構造のように組織化する
  • 限定法: 分枝法で作成した木構造をもとに近傍の探索を行う

近似最近傍探索

次元が大きくなると, 制約された時間の中で正確な解を求めるのが困難なため, 近似最近傍探索を行う.

学習データの集合をP={xi}(i=1,,N)P = \lbrace \mathbf{x}_i \rbrace (i = 1, \cdots, N)とし, 入力データq\mathbf{q}の最近傍解x\mathbf{x}^*ϵ\epsilon-近似解x\mathbf{x}を次を満たすx\mathbf{x}とする.

d(q,x)d(\mathbf{q}, \mathbf{x}^*)の値は, 2分木等の最良優先探索を使って求める.

線形識別関数

線形識別関数はf(x)=wTx+w0f(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + w_0と表すことができる. w\mathbf{w}を線形識別関数の係数ベクトル, w0w_0をバイアスという.

入力データの次元をddとすれば, 識別境界はd1d - 1次元の超平面となる.

線形識別関数の定義の目的:

  • 線形識別関数が2つのクラスを超平面で区別
  • 多クラス問題への拡張

ここでは, 2乗誤差最小化基準とフィッシャーの判別関数を紹介する.

超平面の方程式

dd次元の入力ベクトルをx=(x1,,xd)T\mathbf{x} = (x_1, \cdots, x_d)^T, 係数ベクトルをw=(w1,,wd)T\mathbf{w} = (w_1, \cdots, w_d)^T,バイアス項をw0w_0とすれば, 2 クラス問題の識別関数は, 次のように表される.

f(x)=wTx+w0f(\mathbf{x}) = \mathbf{w}^T\mathbf{x} + w_0

識別境界をf(x)=0f(\mathbf{x}) = 0とすれば, 識別規則は,

識別クラス={C1,(f(x)0)C2,(f(x)<0)\begin{aligned} \text{識別クラス} = \begin{cases} C_1, \quad (f(\mathbf{x}) \geq 0) \\ C_2, \quad (f(\mathbf{x}) < 0) \end{cases} \end{aligned}

識別境界では, wTx=w0\mathbf{w}^T\mathbf{x} = -w_0が成り立つので, 両辺を係数ベクトルのノルムw\parallel \mathbf{w} \parallelで正規化して

wTwx=w0w\begin{aligned} \frac{\mathbf{w}^T}{\parallel \mathbf{w} \parallel} \mathbf{x} = -\frac{w_0}{\parallel \mathbf{w} \parallel} \end{aligned}

となる.

n=ww,Δw=w0w\mathbf{n} = \frac{\mathbf{w}}{\parallel \mathbf{w} \parallel}, \Delta_w = -\frac{w_0}{\parallel \mathbf{w} \parallel}とおけば,

nTx=Δw\mathbf{n}^T\mathbf{x} = \Delta_w

となるので, 識別境界は, f(x)=nTxΔw=0f(\mathbf{x}) = \mathbf{n}^T\mathbf{x} - \Delta_w = 0と表される.

識別境界上の任意の点のベクトルP\mathbf{P}を考えると,

f(P)=nTPΔw=0f(\mathbf{P}) = \mathbf{n}^T\mathbf{P} - \Delta_w = 0

が成り立つので

f(x)=nTxΔw=nT(xP)=0f(\mathbf{x}) = \mathbf{n}^T\mathbf{x} - \Delta_w = \mathbf{n}^T(\mathbf{x} - \mathbf{P}) = 0

となる.

識別境界は単位法線ベクトルnnをもつ超平面となる.

例題:

最小2乗誤差基準によるパラメータの推定

目的:

  • 最小2乗誤差基準による線形識別関数のパラメータが正規方程式により得られること
  • 多クラス問題への拡張

正規方程式

最小2乗誤差基準は, 識別関数の出力値と教師入力との差を最小にするパラメータを求める手法.

f(x)=w0+w1x1++wdxd=wTxf(\mathbf{x}) = w_0 + w_1x_1 + \cdots + w_dx_d = \mathbf{w}^T\mathbf{x}

入力ベクトルxi\mathbf{x}_iが所属するクラスは, 教師入力tit_iにより, 次のように与える.

ti={+1,x1C11,x1C2\begin{aligned} t_i = \begin{cases} +1, \quad \mathbf{x}_1 \in C_1 \\ -1, \quad \mathbf{x}_1 \in C_2 \end{cases} \end{aligned}

学習データ数をNN, 学習用の入力ベクトルを並べた行列をX\mathbf{X}, 教師入力を並べたベクトルをt\mathbf{t}とすれば, 出力値の教師入力の差を2乗誤差で評価した評価関数E(w)E(\mathbf{w})は次のようになる.

E(w)=i=1N(tif(xi))2=(tXw)T(tXw)=tTt2tTXw+wTXTXw\begin{aligned} E(\mathbf{w}) &= \sum_{i=1}^N (t_i - f(\mathbf{x}_i))^2 \\\\ &= (\mathbf{t} - \mathbf{X}\mathbf{w})^T (\mathbf{t} - \mathbf{X}\mathbf{w}) \\\\ &= \mathbf{t}^T\mathbf{t} - 2\mathbf{t}^T \mathbf{X}\mathbf{w} + \mathbf{w}^T \mathbf{X}^T \mathbf{X}\mathbf{w} \end{aligned}

評価関数E(w)=tTt2tTXw+wTXTXwE(\mathbf{w}) = \mathbf{t}^T\mathbf{t} - 2\mathbf{t}^T \mathbf{X}\mathbf{w} + \mathbf{w}^T \mathbf{X}^T \mathbf{X}\mathbf{w}下に凸な関数, 故に, w\mathbf{w}での微分が0になるパラメータがE(w)E(\mathbf{w})の最小を与える.

評価関数を最小にするw\mathbf{w}は, 次のようにして求める.

E(w)w=2XTt+2XTXw=0\frac{\partial E(\mathbf{w})}{\partial \mathbf{w}} = -2\mathbf{X}^T \mathbf{t} + 2\mathbf{X}^T \mathbf{X}\mathbf{w} = 0

これを解いて,

w^=(XTX)1XTt\hat{\mathbf{w}} = (\mathbf{X}^T\mathbf{X})^{-1} \mathbf{X}^T \mathbf{t}

学習データに対する予測値t^\hat{t}

t^=Xw^=X(XTX)1XTt\hat{\mathbf{t}} = \mathbf{X}\hat{\mathbf{w}} = \mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1} \mathbf{X}^T \mathbf{t}

行列X(XTX)1XT\mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1} \mathbf{X}^Tは, 教師データt\mathbf{t}予測値t^\hat{\mathbf{t}}に変換する行列であり, 射影行列(ハット行列)と呼ばれる.

例題:

多クラス問題への拡張

K(> 2)クラスの識別関数の作り方:

  • 一対多
    • 識別不能領域(空白クラス)発生
  • 一対一
    • 識別不能領域(空白クラス)発生
  • 最大識別関数法
    • 識別不能領域解消

一対多

一対多では, 1 つのクラスと他のすべてのクラスを識別するK1K - 1個の2クラス識別関数fj(x),j=1,,K1f_j(\mathbf{x}), j = 1, \cdots, K - 1を用意する.

一対一

一対一では, クラスi,ji, jを識別するK(K1)/2K(K - 1) / 2個の 2クラス識別関数fij(x),1i<jKf_{ij}(\mathbf{x}), 1 \leq i < j \leq Kを用意して, 多数決で識別クラスを決める.

この方法でも識別クラスの矛盾が生じる空白領域のクラスが決定できなかったり, 関係しない識別関数が出るため多数決がとれなくなることもある.

最大識別関数法

最大識別関数法では, KK個の識別関数を用意して,

識別クラス=arg maxjfj(x)=arg maxjwjTx+wj0\text{識別クラス} = \argmax_j f_j(\mathbf{x}) = \argmax_j \mathbf{w}_j^T \mathbf{x} + w_{j0}

となるよう, 識別関数値が最大になるクラスに識別すれば良い.

このとき, 識別境界はfi(x)=fj(x)f_i(\mathbf{x}) = f_j(\mathbf{x})となるので,

fij=(wiwj)Tx+(wi0wj0)=0f_{ij} = (\mathbf{w}_i - \mathbf{w}_j)^T \mathbf{x} + (w_{i0} - w_{j0}) = 0

を満たすK1K - 1個の識別境界ができる.

最大識別関数法では, KK個の識別関数fK(x)=wKTxf_K(\mathbf{x}) = \mathbf{w}_K^T \mathbf{x}を用意して, 2乗誤差を最小にするパラメータwK\mathbf{w}_Kを2クラス問題と同様に求めれば良い.

2乗誤差を最小にするパラメータW^\hat{\mathbf{W}}

W^=(XTX)1XTT\hat{\mathbf{W}} = (\mathbf{X}^T\mathbf{X})^{-1} \mathbf{X}^T \mathbf{T}

となる.

識別関数は

f(x)=W^x=(w1,,wK)Tx=(f1(x),,fK(x))Tf(\mathbf{x}) = \hat{\mathbf{W}} \mathbf{x} = (\mathbf{w}_1, \cdots, \mathbf{w}_K)^T \mathbf{x} = (f_1(\mathbf{x}), \cdots, f_K(\mathbf{x}))^T

となるので, 識別クラス = arg maxjfj(x)\argmax_j f_j(\mathbf{x})となる.

  • 線形識別関数を最大識別関数法で求めた場合の識別境界
  • うまく構成できる場合 (左) と複数のクラスが一直線上に並んでいる場合はうまく識別できない.

線形判別分析

線形識別関数は, dd次元ベクトルx\mathbf{x}を, ベクトルw\mathbf{w}上のスカラ関数に写像する.

最小2乗誤差基準では, 教師データに忠実になるように, 線形識別関数を求めた.

線形判別分析では, 1次元に写像されたとき, クラス間ができるだけ重ならないような写像方向を見つける.

重なりの少ない写像を実現するベクトルw\mathbf{w}を見つけることが大事

フィッシャーの線形判別関数

線形識別関数は, クラス間変動とクラス内変動の比を最大にする軸へ射影する.

学習データ数が各クラスN1,N2N_1, N_2で全データ数がN=N1+N2N = N_1 + N_2の2クラス問題を考える.

線形識別関数y=wTxy = \mathbf{w}^T \mathbf{x}は平均ベクトル

μk=1Nk=iCkxi,k=1,2\mathbf{\mu}_k = \frac{1}{N_k} = \sum_{i \in C_k} \mathbf{x}_i, \quad k = 1, 2

mK=wTμkm_K = \mathbf{w}^T \mu_kに写像する. この時, 写像した平均の差が大きいほどクラス分離が良くなる

m1m2=wT(μ1μ2)m_1 - m_2 = \mathbf{w}^T (\mu_1 - \mu_2)

平均差の2乗をクラス間変動(between)という.

また, クラス内の変動は小さい方が重なりも小さくなる.

Sk2=iCk(yimk)2S_k^2 = \sum_{i \in C_k}(y_i - m_k)^2

これをクラス内変動という. 全クラス内変動はS12+S22S_1^2 + S_2^2である.

フィッシャー基準とは, クラス間変動とクラス間変動の比

J(w)=(m1m2)2S12+S22J(\mathbf{w}) = \frac{(m_1 - m_2)^2}{S_1^2 + S_2^2}

これを最大にするw\mathbf{w}を求める.

フィッシャー基準は, 次のように表すことができる.

J(w)=wTSBwwTSWwJ(\mathbf{w}) = \frac{\mathbf{w}^T \mathbf{S}_B \mathbf{w}}{\mathbf{w}^T \mathbf{S}_W \mathbf{w}}

ここで,

wTSBw=wT(μ1μ2)(μ1μ2)TwwTSWw=(iCk(xiμk)(xiμk)T)w\begin{aligned} &\mathbf{w}^T \mathbf{S}_B \mathbf{w} = \mathbf{w}^T (\mu_1 - \mu_2)(\mu_1 - \mu_2)^T \mathbf{w} \\\\ &\mathbf{w}^T \mathbf{S}_W \mathbf{w} = (\sum_{i \in C_k} (\mathbf{x}_i - \mu_k) (\mathbf{x}_i - \mu_k)^T) \mathbf{w} \end{aligned}

である.

これを最大にする解w\mathbf{w}は, 次の一般化固有値問題の解

SBw=λSWw\mathbf{S}_B \mathbf{w} = \lambda \mathbf{S}_W \mathbf{w}

判別分析法

フィッシャー基準はクラス間変動を用いているため, 線形変換y=wTxy = \mathbf{w}^T\mathbf{x}w0w_0を明示的に扱うことが出来ない.そこで, クラス識別のためのバイアス項w0w_0を明示的に扱うような定式化をする.

線形変換後のyy平均と分散は, 各クラスk=1,2k = 1, 2について次のようになる.

mk=wTμK+w0,σk2=wTΣkwm_k = \mathbf{w}_T \mu_K + w_0, \quad \sigma_k^2 = \mathbf{w}^T \mathbf{\Sigma}_k \mathbf{w}

ここで,

μk=1NkiCkxiΣk=1NkiCk(xiμk)(xiμk)T\begin{aligned} &\mu_k = \frac{1}{N_k} \sum_{i \in C_k}x_i \\\\ &\mathbf{\Sigma}_k = \frac{1}{N_k} \sum_{i \in C_k} (x_i - \mu_k)(x_i - \mu_k)^T \end{aligned}

である.

クラス分離度の評価関数をh(m1,σ12,m2,σ22)h(m_1, \sigma_1^2, m_2, \sigma_2^2)とすると, この評価関数の最大化にするw\mathbf{w}w0w_0求める

hw=hσ12σ12w+hσ22σ22w+hm12m12w+hm22m22w=0hw0=hσ12σ12w0+hσ22σ22w0+hm12m12w0+hm22m22w0=0\begin{aligned} &\frac{\partial h}{\partial \mathbf{w}} = \frac{\partial h}{\partial \sigma_1^2} \frac{\partial \sigma_1^2}{\partial \mathbf{w}} + \frac{\partial h}{\partial \sigma_2^2} \frac{\partial \sigma_2^2}{\partial \mathbf{w}} + \frac{\partial h}{\partial m_1^2} \frac{\partial m_1^2}{\partial \mathbf{w}} + \frac{\partial h}{\partial m_2^2} \frac{\partial m_2^2}{\partial \mathbf{w}} = 0 \\\\ &\frac{\partial h}{\partial w_0} = \frac{\partial h}{\partial \sigma_1^2} \frac{\partial \sigma_1^2}{\partial w_0} + \frac{\partial h}{\partial \sigma_2^2} \frac{\partial \sigma_2^2}{\partial w_0} + \frac{\partial h}{\partial m_1^2} \frac{\partial m_1^2}{\partial w_0} + \frac{\partial h}{\partial m_2^2} \frac{\partial m_2^2}{\partial w_0} = 0 \end{aligned}

ここで

σk2w=2Σkw,σk2w0=0,mk2w=μk,mk2w0=1\begin{aligned} \frac{\partial \sigma_k^2}{\partial \mathbf{w}} = 2\mathbf{\Sigma}_k \mathbf{w}, \quad \frac{\partial \sigma_k^2}{\partial w_0} = 0, \quad \frac{\partial m_k^2}{\partial \mathbf{w}} = \mu_k, \quad \frac{\partial m_k^2}{\partial w_0} = 1 \end{aligned}

を先程の式に代入して整理すれば, 最適なw\mathbf{w}を求めることができる.

2(hσ12+hσ22)(sΣ1+(1s)Σw)w=hm1(μ2μ1)2(\frac{\partial h}{\partial \sigma_1^2} + \frac{\partial h}{\partial \sigma_2^2}) (s\mathbf{\Sigma}_1 + (1 - s)\mathbf{\Sigma}_w) \mathbf{w} = \frac{\partial h}{\partial m_1} (\mu_2 - \mu_1)

ベクトルの向きが問題なので, スカラー項は無視して良い. よって, 最適なw\mathbf{w}は次式となる.

w=(sΣ1+(1s)Σ2)1(μ1μ2)\begin{aligned} \mathbf{w} = (s \mathbf{\Sigma}_1 + (1 - s) \mathbf{\Sigma}_2)^{-1} (\mu_1 - \mu_2) \end{aligned}

評価関数をクラス間分散とクラス内分散の比

h=P(C1)(m1m2)+P(C2)(m2m)2P(C1)σ12+P(C2)σ22\begin{aligned} h = \frac{P(C_1) (m_1 - \overline{m}^2) + P(C_2) (m_2 - \overline{m})^2}{P(C_1)\sigma_1^2 + P(C_2)\sigma_2^2} \end{aligned}

で定義した判別関数を判別分析法という. m\overline{m}は全データの平均.

s=P(C1)s = P(C_1)が得られることから, 最適なw\mathbf{w}

w=(P(C1)Σ1+P(C2)Σ2)1(μ1μ2)\begin{aligned} \mathbf{w} = (P(C_1) \mathbf{\Sigma}_1 + P(C_2) \mathbf{\Sigma}_2)^{-1} (\mu_1 - \mu_2) \end{aligned}

最適なバイアス項は次の通り.

w0=mwT(P(C1)μ1+P(C2)μ2)w_0 = \overline{m} - \mathbf{w}^T (P(C_1)\mu_1 + P(C_2)\mu_2)

判別分析2値化法

画像の判別分析2値化法を紹介する.

左の図は, 1文字の原画で, 右の図が画像の濃度ヒストグラム.

図 (数字) と地の分布の境界を決定するために判別分析法を用いる.

クラス間分散をσB2\sigma_B^2, クラス内分散をσW2\sigma_W^2と全分散σT2\sigma_T^2の関係は以下の様になるから,

σT2=σW2+σB2,h=σB2σW2=1σT2/σB21\sigma_T^2 = \sigma_W^2 + \sigma_B^2, \quad h = \frac{\sigma_B^2}{\sigma_W^2} = \frac{1}{\sigma_T^2 / \sigma_B^2 - 1}

  • σB2/σT2\sigma_B^2 / \sigma_T^2を最大にすれば, 分散比hhも最大になる.

多クラス問題への拡張

フィッシャー基準K>2K > 2の場合に拡張する. 各クラスのデータ数をNk,k=1,,KN_k, k = 1, \cdots, Kとする.

2クラスの場合に識別境界を計算できたが, 多クラスの場合は, d(>K)d(> K)次元のデータを高々K1K - 1次元の特徴空間に写像する線形変換行列を見つける問題になるので, 識別境界は計算できない.

各クラスのクラス内変動を次のように定義する.

Sk=iCk(xiμk)(xiμk)T,μk=1NkiCkxi\mathbf{S}_k = \sum_{i \in C_k} (\mathbf{x}_i - \mu_k) (\mathbf{x}_i - \mu_k)^T, \quad \mu_k = \frac{1}{N_k} \sum_{i \in C_k} \mathbf{x}_i

全クラスのクラス内変動の和をSW=i=1KSK\mathbf{S}_W = \sum_{i = 1}^K \mathbf{S}_Kとする.

全データの変動の和を, 次のように定義する. (全変動という.)

ST=i=1N(xiμ)(xiμ)T\mathbf{S}_T = \sum_{i=1}^N (\mathbf{x}_i - \mu)(\mathbf{x}_i - \mu)^T

全変動ST\mathbf{S}_Tは次のようにクラス内分散SW\mathbf{S}_Wを含むように分解できる.

d>Kd > Kであれば, dd次元空間からK1K - 1次元への線形写像

yk=wkTx,k=1,,K1y_k = \mathbf{w}_k^T \mathbf{x}, k = 1, \cdots, K-1

を考える. (dd: バイアス項を除いたデータの次元)

y=(y1,,yK1)TW=(w1,,wK1)\begin{aligned} \mathbf{y} &= (y_1, \cdots, y_{K-1})^T \\ \mathbf{W} &= (\mathbf{w}_1, \cdots, \mathbf{w}_{K-1}) \end{aligned}

とすれば, K1K - 1個の線形変換は

y=WTx\mathbf{y} = \mathbf{W}^T \mathbf{x}

と書ける.

2クラス問題と同様, 最適な写像行列W\mathbf{W}を求める基準は, クラス間変動行列SB~\tilde{\mathbf{S}_B}とクラス内変動行列SW~\tilde{\mathbf{S}_W}の比を最大にすること.

しかし,行列の比なので何らかのスカラー量に変換しないと, 最大値を求めることができない.

例えば, 次のような基準がある.

J(W)=Tr(SW~1SB~)=Tr((WTSWW)1WTSBW)J(\mathbf{W}) = Tr(\tilde{\mathbf{S}_W}^{-1} \tilde{\mathbf{S}_B}) = Tr((\mathbf{W}^T \mathbf{S}_W \mathbf{W})^{-1} \mathbf{W}^T \mathbf{S}_B \mathbf{W})

ここで

SW~=i=1KiCk(yimk)(yimk)T=WTSWWSB~=k=1KNk(mkm)(mkm)T=WTSBWST~=SW~+SB~\begin{aligned} &\tilde{\mathbf{S}_W} = \sum_{i=1}^K \sum_{i \in C_k} (\mathbf{y}_i - \mathbf{m}_k) (\mathbf{y}_i - \mathbf{m}_k)^T = \mathbf{W}^T \mathbf{S}_W \mathbf{W} \\\\ &\tilde{\mathbf{S}_B} = \sum_{k=1}^K N_k (\mathbf{m}_k - \mathbf{m}) (\mathbf{m}_k - \mathbf{m})^T = \mathbf{W}^T \mathbf{S}_B \mathbf{W} \\\\ &\tilde{\mathbf{S}_T} = \tilde{\mathbf{S}_W} + \tilde{\mathbf{S}_B} \end{aligned}

あやめデータの判別空間の構成

あやめデータは3クラス, 4次元データなので, 線型判別関数により4次元特徴空間から2次元判別空間への写像を得ることができる.

図は正規分布を仮定した線形判別関数による識別境界を示した.

課題6.1

識別境界が直線y=2x+3y = -2x + 3で表されたとする. この直線の法線ベクトルを求め, 識別境界上の適当な位置ベクトルP\mathbf{P}を用いて,f(x)=nTxΔw=nT(xP)f(x) = \mathbf{n}^T\mathbf{x} - \Delta_w = \mathbf{n}^T(\mathbf{x} - \mathbf{P}))と表現できることを確かめよ.

2xy+3=0(21)T(xy)+3=0-2x - y + 3 = 0 \Leftrightarrow \binom{-2}{-1}^T \binom{x}{y} + 3 = 0より, x=(x,y)T\mathbf{x} = (x, y)^Tw=(2,1)T\mathbf{w} = (-2, -1)^Tは直交である

w=(2)2+(1)2=5\parallel \mathbf{w} \parallel = \sqrt{(-2)^2 + (-1)^2} = \sqrt{5}より, 法線ベクトルn=ww=(25,15)T\mathbf{n} = \frac{\mathbf{w}}{\parallel \mathbf{w} \parallel} = (\frac{-2}{\sqrt{5}}, \frac{-1}{\sqrt{5}})^T

P=(a,b)T\mathbf{P} = (a, b)^Tを直線上の任意の点とすると, 2ab+3=0-2a - b + 3 = 0を満たす

nT(xP)=(25,15)(xayb)=15{2(xa)(yb)}=15(2xy+3)\begin{aligned} \mathbf{n}^T (\mathbf{x} - \mathbf{P}) = (\frac{-2}{\sqrt{5}}, \frac{-1}{\sqrt{5}})\binom{x - a}{y - b} = \frac{1}{\sqrt{5}} \lbrace -2(x - a) - (y - b) \rbrace = \frac{1}{\sqrt{5}} (-2x - y + 3) \end{aligned}

即ち, y=2x+3y = -2x + 3nT(xP)=0\mathbf{n}^T (\mathbf{x} - \mathbf{P}) = 0として表現できた.

課題6.2

識別関数をf(x0=1,x1)=w0+w1x1f(x_0 = 1, x_1) = w_0 + w_1x_1とする. 学習データ対を(t1,x11)=(+1,2),(t2,x21)=(1,1)(t_1, x_{11}) = (+1, -2), (t_2, x_{21}) = (-1, 1)としたとき, 下記の問に答えよ.

(1) w^\hat{\mathbf{w}}を求めよ.

データ行列は

X=(x0x11x0x21)=(1211)\begin{aligned} \mathbf{X} = \begin{pmatrix} x_0 & x_{11} \\ x_0 & x_{21} \end{pmatrix} = \begin{pmatrix} 1 & -2 \\ 1 & 1 \end{pmatrix} \end{aligned}

であり, 教師ベクトルt=(t1t2)=(11)\mathbf{t} = \binom{t_1}{t_2} = \binom{1}{-1}である.

XT=(1121),XTX=(2115),(XTX)1=(59191929)\begin{aligned} \mathbf{X}^T = \begin{pmatrix} 1 & 1 \\ -2 & 1 \end{pmatrix}, \mathbf{X}^T \mathbf{X} = \begin{pmatrix} 2 & -1 \\ -1 & 5 \end{pmatrix}, (\mathbf{X}^T \mathbf{X})^{-1} = \begin{pmatrix} \frac{5}{9} & \frac{1}{9} \\ \frac{1}{9} & \frac{2}{9} \end{pmatrix} \end{aligned}

w^=(XTX)1XTt=(59191929)(1121)(11)=(1323)\begin{aligned} \hat{\mathbf{w}} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{t} = \begin{pmatrix} \frac{5}{9} & \frac{1}{9} \\ \frac{1}{9} & \frac{2}{9} \end{pmatrix} \begin{pmatrix} 1 & 1 \\ -2 & 1 \end{pmatrix} \binom{1}{-1} = \binom{-\frac{1}{3}}{-\frac{2}{3}} \end{aligned}

(2) 識別関数を平面に図示せよ.

識別関数f(x)=w^Tx,x=(1,x1)T,w^T=(13,23)f(\mathbf{x}) = \hat{\mathbf{w}}^T \mathbf{x}, \mathbf{x} = (1, x_1)^T, \hat{\mathbf{w}}^T = (-\frac{1}{3}, -\frac{2}{3})より

y=f(x)=(13,23)(1x1)=1323x1y = f(\mathbf{x}) = (-\frac{1}{3}, -\frac{2}{3})\binom{1}{x_1} = -\frac{1}{3} - \frac{2}{3}x_1

(3) バイアス項への入力を1に固定せず, x0x_0も変数と考え, (x0,x1)(x_0, x_1)平面内に識別関数値が6,0,6-6, 0, 6となる等高線を描け.

識別関数f(x)=w^Tx,x=(x0,x1)T,w^T=(13,23)f(\mathbf{x}) = \hat{\mathbf{w}}^T \mathbf{x}, \mathbf{x} = (x_0, x_1)^T, \hat{\mathbf{w}}^T = (-\frac{1}{3}, -\frac{2}{3})より

y=f(x)=(13,23)(x0x1)=13x023x1y = f(\mathbf{x}) = (-\frac{1}{3}, -\frac{2}{3})\binom{x_0}{x_1} = -\frac{1}{3}x_0 - \frac{2}{3}x_1

識別間数値が−6, 0, 6から順:

課題6.3

ロジスティック回帰

線形識別関数y=wTx\mathbf{y} = \mathbf{w}^T \mathbf{x}の関数の大きさは、識別境界から離れるに従って線形に上昇し続ける

識別関数値を(0, 1)に制限し, 確率的な解釈を可能にするロジスティック回帰を説明する.

2クラス問題を考える. クラスC1C_1の事後確率P(C1  x)P(C_1 \ |\ \mathbf{x})

P(C1  x)=P(x  C1)P(C1)P(x  C1)P(C1)+P(x  C2)P(C2)\begin{aligned} P(C_1 \ |\ \mathbf{x}) = \frac{P(\mathbf{x} \ |\ C_1) P(C_1)}{P(\mathbf{x} \ |\ C_1) P(C_1) + P(\mathbf{x} \ |\ C_2) P(C_2)} \end{aligned}

であるが,

a=lnP(x  C1)P(C1)P(x  C2)P(C2)a = \ln \frac{P(\mathbf{x} \ |\ C_1) P(C_1)}{P(\mathbf{x} \ |\ C_2) P(C_2)}

と置けば,

P(C1  x)=11+exp(a)=σ(a)P(C_1 \ |\ \mathbf{x}) = \frac{1}{1 + \exp(-a)} = \sigma (a)

と表すことができる. 関数σ(a)\sigma (a)ロジスティック関数(Sigmoid function)と呼ぶ.

ロジスティック関数の逆関数をロジット関数という

a=ln(σ(a)1σ(a))=lnP(C1  x)P(C2  x)a = \ln (\frac{\sigma (a)}{1 - \sigma (a)}) = \ln \frac{P(C_1 \ |\ \mathbf{x})}{P(C_2 \ |\ \mathbf{x})}

事後確率の比をオッズ, その対数を対数オッズ (ログオッズ) という.

ロジスティック回帰モデル

ロジスティック回帰モデルは, 2値データ(0, 1)の生起確率をロジスティック関数で表した手法.

喫煙量と肺がんの発症の有無を示す仮想的な例を考える. 喫煙量xxの人が肺がんになる確率を

P(1  x)=f(x)=11+exp((w0+w1x))P(1 \ |\ x) = f(x) = \frac{1}{1 + \exp(-(w_0 + w_1x))}

とする. パラメータをw=(w0,w1)T\mathbf{w} = (w_0, w_1)^Tとし, 入力データはx=(1,x)T\mathbf{x} = (1, x)^Tとする. a=wTxa = \mathbf{w}^T\mathbf{x}とすれば,

f(x)=σ(a)=11+exp(a)=exp(a)1+exp(a)f(x) = \sigma (a) = \frac{1}{1 + \exp(-a)} = \frac{\exp(a)}{1 + \exp(a)}

となる. このモデルは一般化線形モデルといわれる.

ロジスティック関数の逆関数であるロジット関数とオッズは次のようになる

a=lnP(1  x)1P(1  x)=wTxP(1  x)1P(1  x)=P(1  x)P(0  x)=exp(wTx)\begin{aligned} &a = \ln \frac{P(1 \ |\ x)}{1 - P(1 \ |\ x)} = \mathbf{w}^T\mathbf{x} \\\\ &\frac{P(1 \ |\ x)}{1 - P(1 \ |\ x)} = \frac{P(1 \ |\ x)}{P(0 \ |\ x)} = \exp(\mathbf{w}^T\mathbf{x}) \end{aligned}

喫煙量xxと肺がん発生の有無yyを示す仮想的な例を下の図に示した

赤い丸が個別事象で, 肺がんの有無を{0,1}\lbrace 0, 1 \rbraceの2値で示している.

ロジスティック回帰モデルの係数の最尤推定値は,w0=2.7,w1=0.135w_0 = -2.7, w_1 = 0.135であった.

2クラス識別は, 予測確率が0.5を超えるときにy=1y = 1と予測する.

xxが1増えた状態を考える. x~=(1,(x+1))T\tilde{\mathbf{x}} = (1, (x + 1))^T. このときx\mathbf{x}x~\tilde{\mathbf{x}}のオッズ比は,

exp(wTx~)exp(wTx)=exp(w0+w1(x+1))exp(w0+w1x)=exp(w1)\begin{aligned} \frac{\exp(\mathbf{w}^T\tilde{\mathbf{x}})}{\exp(\mathbf{w}^T \mathbf{x})} = \frac{\exp(w_0 + w_1(x + 1))}{\exp(w_0 + w_1x)} = \exp(w_1) \end{aligned}

xxの1単位の増加はオッズ比がexp(w1)\exp(w_1)増加する.

オッズ比について

オッズ比の解釈について仮想的な実験を考えよう.

2つの異なる環境で条件を変えて実験を行なった結果を次の図にまとめた.

  • 環境1と環境2で、条件を変えた時の成功の増加割合は1.1で同じである
  • 環境1では成功の割合が殆ど100%に上昇したのに対して、環境2では50%から1割上昇に過ぎない

オッズ比を比べてみると、成功割合の増加についての質的な違いが現れている

パラメータの最尤推定

2クラスロジスティック回帰モデルのパラメータの最尤推定を考える

確率変数ttはモデルの出力

  • ttが1となる確率: P(t=1)=πP(t = 1) = \pi
  • ttが0となる確率: P(t=0)=1πP(t = 0) = 1 - \pi

確率変数ttはパラメータα\alphaを持つベルヌーイ試行

f(f  π)=πt(1π)1t,t=0,1f(f \ |\ \pi) = \pi^t (1 - \pi)^{1 - t}, \quad t = 0, 1

に従う.

よって、NN回の試行に基づく尤度関数は、

L(π1,,πN)=i=1Nf(ti  πi)=i=1Nπiti(1πi)1tiL(\pi_1, \cdots, \pi_N) = \prod_{i=1}^N f(t_i \ |\ \pi_i) = \prod_{i=1}^N \pi_i^{t_i} (1 - \pi_i)^{1 - t_i}

となる. これを最大化したい.

負の対数尤度関数は、

L(π1,,πN)=lnL(π1,,πN)i=1N(tilnπi+(1ti)ln(1πi))\mathcal{L}(\pi_1, \cdots, \pi_N) = \ln L(\pi_1, \cdots, \pi_N) - \sum_{i=1}^N (t_i \ln \pi_i + (1 - t_i) \ln(1 - \pi_i))

となる. これを最小化したい.

この評価関数は、交差エントロピー型評価関数という

ここで,

πi=σ(xi)=exp(wTxi)1+exp(wTxi)\pi_i = \sigma (\mathbf{x}_i) = \frac{\exp(\mathbf{w}_T\mathbf{x_i})}{1 + \exp(\mathbf{w}^T\mathbf{x}_i)}

を代入し整理して,

L(w)=i=1N{tiwTxiln(1+exp(wTxi))}\mathcal{L}(\mathbf{w}) = -\sum_{i=1}^N \lbrace t_i \mathbf{w}^T\mathbf{x}_i - \ln(1 + \exp(\mathbf{w}^T\mathbf{x}_i)) \rbrace

負の対数尤度関数を最小にするパラメータw\mathbf{w}を得るために、w\mathbf{w}で微分することを考える。

L(w)w=i=1N(tixixiexp(wTxi)1+exp(wTxi))=i=1Nxi(πiti)\frac{\partial \mathcal{L}(\mathbf{w})}{\partial \mathbf{w}} = -\sum_{i=1}^N (t_i\mathbf{x}_i - \frac{\mathbf{x}_i \exp(\mathbf{w}^T\mathbf{x}_i)}{1 + \exp(\mathbf{w}^T\mathbf{x}_i)}) = \sum_{i=1}^N \mathbf{x}_i (\pi_i - t_i)

i=1Nxi(πiti)=0\sum_{i=1}^N \mathbf{x}_i (\pi_i - t_i) = 0となるw\mathbf{w}が解であるが、解析的に解くことは不可能なので、最急降下法ニュートン・ラフソン法で数値的に求める。

多クラス問題への拡張と非線形変換

多クラスK>2K > 2への拡張は, 各クラスごとに線形変換ak=wkTxa_k = \mathbf{w}^T_k \mathbf{x}を求め, 事後確率を最大にするクラスに分類すればよい.

P(Ck  x)=πk(x)=exp(ak)j=1Kexp(aj)P(C_k \ |\ \mathbf{x}) = \pi_k(\mathbf{x}) = \frac{\exp(a_k)}{\sum_{j=1}^K \exp(a_j)}

この関数はソフトマックス関数という.

線形関数でうまく分離できない場合, 非線形関数φ()\varphi ()

φ(x)=(φ0=1,φ1(x),,φM(x))T\varphi (\mathbf{x}) = (\varphi_0 = 1, \varphi_1(\mathbf{x}), \cdots, \varphi_M(\mathbf{x}))^T

とし, 変換したM+1M + 1次元空間でロジスティック回帰を行う.

変換されたM+1M + 1次元空間でロジスティック回帰をak=wkTφ(x)a_k = \mathbf{w}_k^T \varphi(\mathbf{x})と行なっても, その空間内での識別境界は超平面になる. このような非線形関数を非線形基底関数という.

クラス数をKK, 学習データをX=(x1,,xN)T\mathbf{X} = (\mathbf{x}_1, \cdots, \mathbf{x}_N)^T, 教師データをT=(t1,,tN)T\mathbf{T} = (\mathbf{t}_1, \cdots, \mathbf{t}_N)^Tとする.

ii番目のデータxi\mathbf{x}_iに対応する教師データti\mathbf{t}_iダミー変数表現のベクトルで,xi\mathbf{x}_iが所属するクラスがkkならtikt_{ik}のみが1でそれ以外の要素は0である.

wj\mathbf{w}_jの最尤推定は、評価変数をwj\mathbf{w}_jで微分して0とおけば求められる。

ここで、

πik=exp(aik)i=1Kexp(aij),aij=wjTxi\pi_{ik} = \frac{\exp(a_{ik})}{\sum_{i=1}^K \exp(a_{ij})}, \quad a_{ij} = \mathbf{w}_j^T \mathbf{x}_i

よって、

Ewj=i=1Nk=1Ktik1πikπij(δjkπik)xi=i=1N(πijtij)xi=0\frac{\partial E}{\partial \mathbf{w}_j} = -\sum_{i=1}^N \sum_{k=1}^K t_{ik} \frac{1}{\pi_{ik}}\pi_{ij} (\delta_{jk} - \pi_{ik}) \mathbf{x}_i = \sum_{i=1}^N (\pi_{ij} - t_{ij}) \mathbf{x}_i = 0

同じく解析的に解けないので、2クラスの場合と同様、ニュートン・ラフソン法などを用いて解くことになる。

非線形基底関数による変換とロジスティック回帰

非線形基底関数を使った2クラスロジスティック回帰の分析例を紹介する.

2次元あやめデータの setosa と virginica を1クラスにまとめて, 線形分離不可能な2クラス問題のデータを用意した.

ここでは, ガウス核関数を用いる.

f(x)=exp(α(xμ)TΣ1(xμ))f(\mathbf{x}) = \exp(-\alpha(\mathbf{x} - \mu)^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mu))

ここでα\alphaは核関数の広がりを, μ\muは中心を,Σ\mathbf{\Sigma}は広がりの形を制御するパラメータ.

Setosaの分布からαs=0.005\alpha_s = 0.005,

μs=(7.610.22)T,Σs=(0.720.530.530.84)\begin{aligned} \mu_s = \begin{pmatrix} -7.61 \\ 0.22 \end{pmatrix}^T, \quad \mathbf{\Sigma}_s = \begin{pmatrix} 0.72 & -0.53 \\ -0.53 & 0.84 \end{pmatrix} \end{aligned}

とし, Versicolor の分布からαc=0.1\alpha_c = 0.1,

μs=(1.830.73)T,Σc=(1.070.240.240.76)\begin{aligned} \mu_s = \begin{pmatrix} 1.83 \\ -0.73 \end{pmatrix}^T, \quad \mathbf{\Sigma}_c = \begin{pmatrix} 1.07 & 0.24 \\ 0.24 & 0.76 \end{pmatrix} \end{aligned}

以下の図は,ガウス核関数の等高線を示したもの. setosa はfsf_sが大きく, fcf_cが小さな値の領域に, versicolor は fsf_sが小さくfcf_cが大きな領域に, verginica は両方とも小さな値の領域に写像される.

以下の図では, 非線形特徴空間での分布と, 線形ロジスティック回帰モデルによる事後確率が0.2, 0.5, 0.8の等高線を示した.

事後確率が0.5のところが識別境界である.

ピマインディアンデータのロジスティック回帰

ピマインディアンデータの7変数の特徴量を用いたロジスティック回帰を行う.

入力ベクトルは, 妊娠回数 (npreg), 血漿グルコース濃度 (glu), 血圧(bp), 脂肪厚 (skin), 肥満度 (bmi), 糖尿病家系関数 (ped), 年齢 (age)であった.

係数の推定結果は以下である

ロジスティック回帰では、事後確率の値を0.5から上下に変更することで識別境界を変えることができる.

このとき, 識別境界を様々な事後確率の値で取ることで, 真陽性率, 偽陽性率が得られる.

パーセプトロン型学習規則(Perceptron)

パーセプトロンの学習規則は2クラスの線形識別関数を求める古典的な方法

パーセプトロンの収束定理: 2クラスが線形分離可能であれば, パーセプトロン学習規則のアルゴリズムは収束する.

パーセプトロンを多層化し, 非線形識別関数を使った, 誤差逆伝搬法(BP)は線形分離可能性の制約を外した手法

局所最適解がたくさんあること, 解の解釈が困難であることがデメリットだが, ディープラーニングへ発展する重要なモデルである.

パーセプトロン

線形識別関数 f(x)=wTxf(\mathbf{x}) = \mathbf{w}^T \mathbf{x} を用いて, f(x)0f(\mathbf{x}) \geq 0 のとき xC1,f(x)<0\mathbf{x} \in C_1, f(\mathbf{x}) < 0 のとき xC2\mathbf{x} \in C_2 とする 2 クラス問題を考える. 同時座標系を用いて w=(w0,,wd)T\mathbf{w} = (w_0, \cdots, w_d)^T とする.

各入力に重みをつけて総和を出力とするネットワークモデルをパーセプトロンと呼ぶ

データが線形分離可能であるとき, 片方のクラスに属するデータの符号を反転させると, どちらのクラスも超平面の同じ側にできる. 分類が正しければ f(x)0f(\mathbf{x}) \geq 0 となり, 誤っていれば f(x)<0f(\mathbf{x}) < 0 となる.

学習データの系列を x1,,xi,\mathbf{x}_1, \cdots, \mathbf{x}_i, \cdots とする. パーセプトロンの学習規則は i+1i + 1 番目の係数ベクトルを wi+1\mathbf{w}_{i+1} を, ii 番目の学習データ xi\mathbf{x}_i を入力したときの出力 f(xi)f(\mathbf{x}_i) に応じて,

{f(xi)0,wi+1=wif(xi)<0,wi+1=wi+ηxi\begin{aligned} \begin{cases} f(\mathbf{x}_i) \geq 0, \quad \mathbf{w}_{i+1} = \mathbf{w}_i \\ f(\mathbf{x}_i) < 0, \quad \mathbf{w}_{i+1} = \mathbf{w}_i + \eta \mathbf{x}_i \end{cases} \end{aligned}

とする.

  • η\eta は学習の収束速度を決めるパラメータで, η=1\eta = 1 の場合を固定増分誤り訂正法と呼ぶ.

学習の難しさの尺度

学習データが識別超平面からある値 h>0h > 0 (マージンとよぶ) より近い距離であれば誤りとして w\mathbf{w} を更新するようにすれば, hh より小さなノイズに対して正しく識別できるようになる.

ステップ関数

f(a)={1,a>00,a0\begin{aligned} f(a) = \begin{cases} 1, \quad a > 0 \\ 0, \quad a \leq 0 \end{cases} \end{aligned}

を用いれば wi\mathbf{w}_i の更新量 Δwi\Delta \mathbf{w}_i は, 符号反転を行った学習データについて

Δwi=ηf(hwiTxi/wi)xi={ηxi,h>wiTxi/wi0,hwiTxi/wi\begin{aligned} \Delta \mathbf{w}_i = \eta f(h - \mathbf{w}_i^T \mathbf{x}_i / \parallel \mathbf{w}_i \parallel) \mathbf{x}_i = \begin{cases} \eta \mathbf{x}_i, \quad &h > \mathbf{w}_i^T \mathbf{x}_i / \parallel \mathbf{w}_i \parallel \\ 0, \quad &h \leq \mathbf{w}_i^T \mathbf{x}_i / \parallel \mathbf{w}_i \parallel \end{cases} \end{aligned}

と書くことができる.

マージンの大きさ

マージンの大きさ D(w)D(\mathbf{w}) は, C2C_2 の学習データを識別関数の法線ベクトル上に射影した長さの最小値の半分である.

ρ(w)=minxC1wTxwmaxxC2wTxw\rho(\mathbf{w}) = \min_{x \in C_1} \frac{\mathbf{w}^T\mathbf{x}}{\parallel \mathbf{w} \parallel} - \max_{x \in C_2} \frac{\mathbf{w}^T\mathbf{x}}{\parallel \mathbf{w} \parallel}

ρ(w)\rho(\mathbf{w})クラス間マージンとよび, 最大マージンは最大クラス間マージンの半分である.

Dmax=12ρmax(w)D_{max} = \frac{1}{2} \rho_{max}(\mathbf{w})

符号反転を行った場合, すべての学習データを超平面の法線ベクトル上に射影した最小値

D(w)=minxC1,C2wTxwD(\mathbf{w}) = \min_{x \in C_1,C_2} \frac{\mathbf{w}^T\mathbf{x}}{\parallel \mathbf{w} \parallel}

パーセプトロンの収束定理

パーセプトロンの収束定理とは, パーセプトロンの学習規則が有限の学習回数で収束すること.

マージン hh は, 次元ごとに α\alpha の大きさを取り, h=αdh = \alpha d とする. 同次座標系で表現されたデータ xi\mathbf{x}_i が学習で使用された回数を MiM_i とすると, 学習の総数は M=iMiM = \sum_i M_i となる.

MM 回の学習で獲得された係数ベクトル w\mathbf{w} は, 初期値を 0 として,

w=ηxiC1,C2Mixi\mathbf{w} = \eta \sum_{x_i \in C_1, C_2} M_i \mathbf{x}_i

学習が収束したときの係数ベクトルを w\mathbf{w}^* とし, w\mathbf{w} との内積を計算すると, 内積は MM に比例して増加し, 係数ベクトルは解ベクトルに近づく.

wTw=ηxiC1,C2MixiTwηMminxiC1,C2xiTw=ηMD(w)w\begin{aligned} \mathbf{w}^T \mathbf{w}^* &= \eta \sum_{x_i \in C_1, C_2} M_i \mathbf{x}_i^T \mathbf{w}^* \geq \eta M \min_{x_i \in C_1, C_2} \mathbf{x}_i^T \mathbf{w}^* \\\\ &= \eta MD(\mathbf{\mathbf{w}^*}) \parallel \mathbf{w}^* \parallel \end{aligned}

w\parallel \mathbf{w} \parallel の上限を求める. 学習データの長さが xi2\parallel \mathbf{x}_i \parallel^2 を満たしていると仮定し, xi\mathbf{x}_i による係数ベクトルの変化量を求めると,

Δw2=w+ηxi2w2=η2xi2+2ηwTxiη2d+2ηαd=dη(η+2α)\begin{aligned} \Delta \parallel \mathbf{w} \parallel^2 &= \parallel \mathbf{w} + \eta \mathbf{x}_i \parallel^2 - \parallel \mathbf{w} \parallel^2 = \eta^2 \parallel \mathbf{x}_i \parallel^2 + 2\eta \mathbf{w}^T \mathbf{x}_i \\\\ &\leq \eta^2d + 2\eta \alpha d = d \eta (\eta + 2\alpha) \end{aligned}

w\mathbf{w}w\mathbf{w}^* の方向余弦の 2 乗は, ϕ=(wTw)2/(w2w2)\phi = (\mathbf{w}^T \mathbf{w}^*)^2 / (\parallel \mathbf{w} \parallel^2 \parallel \mathbf{w}^* \parallel^2) となるので, 次が得られる.

MD2(wη)d(η+2α)ϕ1Md1+2α/ηDmax2\begin{aligned} M \frac{D^2 (\mathbf{w}^* \eta)}{d(\eta + 2\alpha)} \leq \phi \leq 1 \Rightarrow M \leq d\frac{1 + 2\alpha/\eta}{D^2_{max}} \end{aligned}

学習回数には上限があるので, 学習は収束する. データの次元 dd とマージン α\alpha が大きくなると, 上限が大きくなるので, 時間がかかる.

Dmax2D^2_{max} に反比例するので, 2 クラス間の距離が大きくなると学習が少なくて済む.

サポートベクトルマシンは, マージンが最大となる線形識別規則を見つける方法.

誤差伝搬法(BP)

多層パーセプトロン

排他的論理和のような線形識別関数では識別出来ないような場合, 別の入力を用意すれば識別できる.

x1x_1 x2x_2 出力 教師データ
0 0 0 -1
0 1 1 +1
0 1 1 +1
1 1 0 -1

第3の素子は, 隠れ素子と呼ばれ, 隠れ素子で構成されるグループを隠れ層という.

多層回路とは, 隠れ層のみから出力層に入力を与えるような隣り合った層間ネットワークのこと.

多層パーセプトロンの誤差逆伝搬法と呼ばれるパーセプトロン型の学習アルゴリズムを考える.

入力層に学習データ xn(n=1,,N)\mathbf{x}^n(n = 1,\cdots, N) が与えられている. 学習データの次元を dd とする.

バイアス項も含めて nn 番目の学習データは xn=(1,x1n,,xdn)T\mathbf{x}^n = (1, x_1^n, \cdots, x_d^n)^T で表す.

nn 番目の学習データが入力されると, 隠れ層の素子 Vj=(j=1,,M)V_j = (j = 1, \cdots, M) には次の入力が入る.

hjn=i=0dwjixin=wjTxnh_j^n = \sum_{i=0}^d w_{ji}x_i^n = \mathbf{w}_j^T \mathbf{x}^n

出力関数 g(u)g(u) を介して, Vjn=g(hjn)V_j^n = g(h_j^n) が出力される. g(u)g(u) は非線形でなければならない.

g(u)g(u)非線形出力関数とよばれ, uu に対して微分可能で, シグモイド関数がよく使用される.

g(u)=11+exp(βu)g(u) = \frac{1}{1 + \exp(-\beta u)}

出力素子 ok(k=1,,K)o_k(k = 1 ,\cdots, K) への入力は, 次のように与えられる.

hkn=j=0MwkjVjn=j=0Mwkjg(i=0dwjixin)h_k^n = \sum_{j = 0}^M w_{kj}V_j^n = \sum_{j = 0}^M w_{kj}g(\sum_{i = 0}^d w_{ji}x_i^n)

その出力は, 次のように与えられる.

okn=g~(hkn)=g~(j=0MwkjVjn)=g~(j=0Mwkjg(j=0MwkjVjn))o_k^n = \tilde{g}(h_k^n) = \tilde{g}(\sum_{j = 0}^M w_{kj}V_j^n) = \tilde{g}(\sum_{j = 0}^M w_{kj}g(\sum_{j = 0}^M w_{kj}V_j^n))

g~()\tilde{g}(\cdot)ソフトマックス関数で表現すると

g~(okn)=expoknlKexpoln(=p(tkn=1  xn))\tilde{g}(o_k^n) = \frac{\exp o_k^n}{\sum_{\mathcal{l}}^K \exp o_\mathcal{l}^n} (= p(t_k^n = 1 \ |\ \mathbf{x}^n))

確率的な解釈ができる

誤差逆伝搬法の学習規則

隠れ素子から出力素子への結合係数の学習は, 2 乗誤差最小化を最急降下法に従って行う.

nn 番目の学習データの評価関数は

En(w)=12k=1K(tknokn)2=12k=1K(tkng~(j=0Mwkjg(j=0MwkjVjn)))2E_n(\mathbf{w}) = \frac{1}{2} \sum_{k = 1}^K (t_k^n - o_k^n)^2 = \frac{1}{2} \sum_{k = 1}^K (t_k^n - \tilde{g}(\sum_{j = 0}^M w_{kj}g(\sum_{j = 0}^M w_{kj}V_j^n)))^2

学習データ全体で E(w)=i=1NEn(w)E(\mathbf{w}) = \sum_{i = 1}^N E_n(\mathbf{w}) となる.

バッチアルゴリズムでは, 結合係数の修正量を計算し更新することを1エポックという. τ\tau エポックの更新量は,

Δwkj(τ)=n=1N(ηEn(w)wkj)=ηn=1N(En(w)oknoknwkj)=ηn=1N(tknokn)g~(hkn)Vjn=ηn=1NδknVjn\begin{aligned} \Delta w_{kj}(\tau) &= \sum_{n=1}^N (-\eta \frac{\partial E_n(\mathbf{w})}{\partial w_{kj}}) = -\eta \sum_{n=1}^N (\frac{\partial E_n(\mathbf{w})}{\partial o_k^n} \cdot \frac{\partial o_k^n}{\partial w_{kj}}) \\\\ &= \eta \sum_{n=1}^N (t_k^n - o_k^n)\tilde{g}'(h_k^n)V_j^n = \eta \sum_{n=1}^N \delta_k^n V_j^n \end{aligned}

  • δkn\delta_k^n誤差信号で, 出力が 0, 1 に近いときに 0 となり, 学習が進まなくなる.

確率降下法とは nn 番目の学習データによる wkjw_{kj} の修正量を次のように与える方法

Δwkjn(τ)=ηδkn(τ)Vjn(τ)\Delta w_{kj}^n(\tau) = \eta \delta_k^n(\tau)V_j^n(\tau)

入力素子 xix_i から隠れ素子 VjV_j への結合係数 wjiw_{ji} の学習のための評価関数は wkjw_{kj} の場合と同じだが, 修正量は次のようになる.

Δwji(τ)=n=1N(ηEn(w)wji)=ηn=1Nk=1Kδknwkjg(hjn)xin\begin{aligned} \Delta w_{ji}(\tau) = \sum_{n=1}^N (-\eta \frac{\partial E_n(\mathbf{w})}{\partial w_{ji}}) = \eta \sum_{n=1}^N \sum_{k=1}^K \delta_k^n w_{kj} g'(h_j^n) x_i^n \end{aligned}

隠れ素子 jj の誤差信号を δjn\delta_j^n と定義すると, 次の表現を得る.

δjn=g(hjn)k=1Nδknwkj,Δwjk(τ)=ηn=1Nδjnxkn\delta_j^n = g'(h_j^n)\sum_{k=1}^N \delta_k^n w_{kj}, \quad \Delta w_{jk}(\tau) = \eta \sum_{n=1}^N \delta_j^n x_k^n

各出力素子で発生した誤差 δkn\delta_k^n を結合係数 wkjw_{kj} を介して, 出力素子 kk から隠れ素子 jj に戻しているので, 誤差逆伝搬法, BP 法 error back probagation 法という.

実行例-手書き数字の学習

MNIST データを使って誤差逆伝搬法による認識実験を行なった. データ数は 1000 とした.

入力層はバイアス項を含めて 14×14+114 \times 14 + 1, 隠れ層の素子数は 10+110 + 1 個、出力層はクラス数 10 である.

元のデータは 28×2828 \times 28 の画像だが、縦横 12\frac{1}{2} に圧縮したものを入力とした.

10 個の隠れ素子の画像

出力は 6 の確率が 0.9999988, 8 の確率が 0.0000012, あとの確率は 0 より, 6 と識別された.

隠れ素子数を 10 とした場合、再代入誤り率は 0 で、テストデータの誤り率が 20% 程度であった.

隠れ素子数を 1 から 20 まで変えながら誤り率を計算してプロットした, 汎化誤差を最小にする K は 20 であった. そのときの誤り率は13%であった.

誤差逆伝搬法の学習特性

初期値依存性

初期値依存性: 非線形最適化問題を解く際, 最急降下法や共役勾配法を使う. そのとき, 大域的な最適解を得ることは難しく, 初期値に依存した局所解を学習することがある.

隠れ素子の数

隠れ素子の数は多ければ多いほど良いのであろうか?

実行例-初期値依存性と隠れ素子の数による誤り率の変化

ピマ・インディアンデータを用いて初期値依存性と隠れ素子の数が誤り率にどのように影響を与えるか検証した.

標準化した 7 つの特徴すべてを用いて学習した. 初期値を変えて 20 回学習したときの誤り率をプロットした.

再代入誤りは隠れ素子数が20以上で殆ど0になっているが, 汎化誤差は隠れ素子数が3のところで最も低い値を取っている. 隠れ素子数を更に増やすと, 汎化誤差が次第に増加する. このような現象は, 過学習と言われる.

最適な隠れ素子数はホールドアウト法や交差確認法などで求める必要がある

過学習と正則化

隠れ素子の数が多くなると過学習が起きやすい. また非線形性が強くなっても過学習が起きやすい. 結合係数が大きくならないような正則化法が提案されている.

正則化は, 誤差の評価関数にペナルティ項を加えた次の式で実現される.

E~(w)=E(w)+λR(w)=12n=1Nk=1K(tknokn)2+λ(i=0dj=1Mwji2+j=0Mk=1Kwkj2)\begin{aligned} \tilde{E}(\mathbf{w}) &= E(\mathbf{w}) + \lambda R(\mathbf{w}) \\ &= \frac{1}{2} \sum_{n=1}^N \sum_{k=1}^K (t_k^n - o_k^n)^2 + \lambda (\sum_{i=0}^d \sum_{j=1}^M w_{ji}^2 + \sum_{j=0}^M \sum_{k=1}^K w_{kj}^2) \end{aligned}

  • この正則化を荷重減衰ペナルティ(weight decay penalty)という
  • λ\lambda正則化パラメータという.
実行例-あやめデータにおける正則化項の効果

setosaとvirginicaを一つのクラスにまとめたあやめデータに対して, 隠れ素子数は10にして学習した

左が正則化項を用いない場合の識別境界で, 右が λ=0.01\lambda = 0.01 としたときの識別境界

結合係数の個数は, 入力層から隠れ層に対して 2×10+102 \times 10 + 10, 隠れそうから出力層に対して 10×2+210 \times 2 + 2 で, 合計 52 個のパラメータ.

結合係数の大きさのヒストグラムより, 正則化項を用いない場合の結合係数は, 用いた場合よりも一桁大きな値になっている.

隠れ層の数と識別能力

隠れ層はいくあってもよい.

  • 1層は直線状の識別境界
  • 2層なら凸領域
  • 3層なら飛び地や穴の空いた領域が表現できる.

層の数が増えると, 表現できる識別関数は複雑になる

学習回路の尤度

尤度関数を誤差関数として使用すると良い

出力の活性化関数と誤差関数 \Rightarrow 解くべき問題の型で選択

活性化関数(出力関数)g() 誤差関数E()
回帰問題 線形出力関数 二乗和誤差
2クラス分類問題(多数の独立な) ロジスティックシグモイド関数 ソフトマックス関数(2クラス) 二乗和誤差 交差エントロピー誤差関数
多クラス分類問題 ソフトマックス関数 多クラス交差エントロピー誤差関数

クラス分類問題では, 交差エントロピー誤差関数を使う方が訓練が早く, 同時に汎化能力が高まる

サポートベクトルマシン(SVM)

サポートベクトルマシンは, もっとも広く利用されているパターン認識学習アルゴリズムの一つで, 最大マージンを実現する2クラス問題の線形識別関数構成法.

マージン最大化は, 学習データによって与えられた不等式制約条件下で最適化問題を解くことで得られる. 線形分離不可能な場合もスラック変数の導入により誤り最小の線形識別関数を得ることができる.

線形分離不可能な場合のさらに良い対処法は, 非線形特徴写像により高次元非線形特徴空間に写像し, 線形分離可能にすることである. 高次元空間の内積計算にはカーネルトリックを用いる.

サポートベクトルマシンには様々な変種があるが, υ\upsilon-サポートベクトルマシンと1クラスサポートベクトルマシンを紹介する.

サポートベクトルマシンの導出

サポートベクトルマシンSVMは最大マージン DmaxD_{max} を実現する2クラス線形識別関数の学習法である

最適識別超平面

標準座標系を考え, クラスラベル付き学習データの集合を DL={(ti,xi)}(i=1,,N)\mathcal{D}_L = \lbrace (t_i, \mathbf{x}_i) \rbrace (i = 1, \cdots, N) とする. ti={1,+1}t_i = \lbrace -1, +1 \rbrace は教師データであり, 学習データ xiRd\mathbf{x}_i \in \mathbb{R}^d がどちらのクラスに属するかを指定する.

線形識別関数のマージンκ\kappa とすれば, すべての学習データに対して, wTx+bκ|\mathbf{w}^T \mathbf{x} + b| \geq \kappa が成り立つ. κ\kappa で正規化すると線形識別関数は

ti=+1,wTxi+b+1ti=1,wTxi+b1\begin{aligned} t_i = +1, \quad \mathbf{w}^T \mathbf{x}_i + b \geq +1 \\ t_i = -1, \quad \mathbf{w}^T \mathbf{x}_i + b \leq -1 \end{aligned}

となる. この場合分けは ti(wTx+b)1t_i(\mathbf{w}^T \mathbf{x} + b) \geq 1 とまとめることができる.

クラス間マージンは, 各クラスのデータを w\mathbf{w} の方向へ射影した長さの差の最小値で与えられる.

ρ(w,b)=minxCy=+1wTxwmaxxCy=1wTxw=1bw1bw=2w\begin{aligned} \rho(\mathbf{w}, b) &= \min_{x \in C_y=+1} \frac{\mathbf{w}^T \mathbf{x}}{\parallel w \parallel} - \max_{x \in C_y=-1} \frac{\mathbf{w}^T \mathbf{x}}{\parallel w \parallel} \\\\ &= \frac{1 - b}{\parallel \mathbf{w} \parallel} - \frac{-1 - b}{\parallel \mathbf{w} \parallel} \\\\ &= \frac{2}{\parallel \mathbf{w} \parallel} \end{aligned}

最適な超平面の式を w0Tx+b0=0\mathbf{w}_0^T \mathbf{x} + b_0 = 0 とすれば, この超平面は最大クラス間マージンを与える.

ρ(w0,b0)=maxwρ(w,b)\rho(\mathbf{w}_0, b_0) = \max_w \rho(\mathbf{w}, b)

最適識別超平面ti(wTx+b)1t_i (\mathbf{w}^T \mathbf{x} + b) \geq 1 の制約下で, w\mathbf{w}ノルムを最小にする解

w0=minw\mathbf{w}_0 = \min \parallel \mathbf{w} \parallel

として求めることができる.

KKT条件

KKT条件

マージン最大の最適識別超平面は, 次の不等式制約条件の主問題を解くことで得られる.

主問題 1:

評価関数(最小化)Lp(w)=12wTw不等式制約条件ti(wTxi+b)1\begin{aligned} &\text{評価関数(最小化)} \quad L_p(\mathbf{w}) = \frac{1}{2} \mathbf{w}^T\mathbf{w} \\ &\text{不等式制約条件} \quad t_i(\mathbf{w}^T\mathbf{x}_i + b) \geq 1 \end{aligned}

この問題は, 次のラグランジュ関数として定式化される.

L~p(w,b,α)=12wTwi=1Nαi(ti(wTxi+b)1)\tilde{L}_p(\mathbf{w}, b, \alpha) = \frac{1}{2}\mathbf{w}^T\mathbf{w} - \sum_{i=1}^N \alpha_i (t_i(\mathbf{w}^T\mathbf{x}_i + b) - 1)

ここで α=(α1,,αN)T(αi0)\mathbf{\alpha} = (\alpha_1, \cdots, \alpha_N)^T (\alpha_i \geq 0)ラグランジュ未定乗数である.

この最適化問題の解 w0\mathbf{w}_0b0b_0 は次のKKT条件を満たす解として得られる.

KKT条件(1)より, 最適解

w0=i=1Nαitixi\mathbf{w}_0 = \sum_{i=1}^N \alpha_it_i\mathbf{x}_i

となるので, 最適解は有効な不等式制約条件をもつ学習データの線形結合となる. この解とKKT条件(2)をラグランジュ関数に代入すれば

Ld(α)=12w0Tw0i=1Nαitiw0Txibi=1Nαiti+i=1Nαi=i=1Nαi12w0Tw0=i=1Nαi12i=1Nj=1NαiαjtitjxiTxj\begin{aligned} L_d(\mathbf{\alpha}) &= \frac{1}{2}\mathbf{w}_0^T\mathbf{w}_0 - \sum_{i=1}^N \alpha_it_i\mathbf{w}_0^T\mathbf{x}_i - b\sum_{i=1}^N \alpha_i t_i + \sum_{i=1}^N \alpha_i \\ &= \sum_{i=1}^N \alpha_i - \frac{1}{2}\mathbf{w}_0^T\mathbf{w}_0 = \sum_{i=1}^N \alpha_i - \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j t_i t_j \mathbf{x}_i^T \mathbf{x}_j \end{aligned}

が得られる. 最適解が学習データの線形結合で表現されることから係数 αi\alpha_i を求める問題に置き換えることができる.

最適な αi\alpha_iLd(α)L_d(\alpha)最大にする α\alpha により得られる. これを主問題に対する双対問題という.

NN 個の1を並べたベクトルを 1=(1,,1)T\mathbf{1} = (1, \cdots, 1)^T, 学習データから作られる行列を H={Hij=titjxiTxj}\mathbf{H} = \lbrace H_{ij} = t_i t_j \mathbf{x}_i^T \mathbf{x}_j \rbrace, 教師データベクトルを t=(t1,,tN)T\mathbf{t} = (t_1, \cdots, t_N)^T とする

双対問題1

評価関数(最大化)Ld(α)=αT112αTHα制約条件αTt=0\begin{aligned} &\text{評価関数(最大化)} \quad L_d(\mathbf{\alpha}) = \mathbf{\alpha}^T\mathbf{1} - \frac{1}{2} \mathbf{\alpha}^T \mathbf{H} \mathbf{\alpha} \\ &\text{制約条件} \quad \mathbf{\alpha}^T\mathbf{t} = 0 \end{aligned}

と表現できる. 従って, 双対問題のラグランジュ関数 L~d(α)\tilde{L}_d(\mathbf{\alpha}) は, ラグランジュ未定乗数を β\beta とすれば

L~d(α,β)=12αTHαβαTt\tilde{L}_d(\mathbf{\alpha}, \beta) = \frac{1}{2}\mathbf{\alpha}^T \mathbf{H} \mathbf{\alpha} - \beta \mathbf{\alpha}^T \mathbf{t}

となる.

サポートベクトル

KKT条件(5)より, αi(ti(wTxi+b)1)=0\alpha_i (t_i(\mathbf{w}^T \mathbf{x}_i + b) - 1) = 0 がすべての i=1,,Ni = 1, \cdots, N で成り立てばよいので

ti(wTxi+b)1)=0,αi>0ti(wTxi+b)1)0,αi=0\begin{aligned} t_i(\mathbf{w}^T\mathbf{x}_i + b) - 1) = 0, \quad \alpha_i > 0 \\ t_i(\mathbf{w}^T\mathbf{x}_i + b) - 1) \neq 0, \quad \alpha_i = 0 \end{aligned}

となる. αi>0\alpha_i > 0 となる xi\mathbf{x}_iサポートベクトルといい, 最適識別超平面を構成する要素となる.

ラグランジュ乗数法による最適解を α~=(α~1,,α~N)T\tilde{\alpha} = (\tilde{\alpha}_1, \cdots, \tilde{\alpha}_N)^T とすれば

w0Tw0=i=1Nα~itixiTw0=i=1Nα~(1tib0)=i=1Nα~i\mathbf{w}_0^T \mathbf{w}_0 = \sum_{i=1}^N \tilde{\alpha}_i t_i \mathbf{x}_i^T \mathbf{w}_0 = \sum_{i=1}^N \tilde{\alpha} (1 - t_ib_0) = \sum_{i=1}^N \tilde{\alpha}_i

となるので, 最大マージン

Dmax=1w0=1w0Tw0=1i=1Nα~iD_{max} = \frac{1}{\parallel \mathbf{w}_0 \parallel} = \frac{1}{\sqrt{\mathbf{w}_0^T \mathbf{w}_0}} = \frac{1}{\sqrt{\sum_{i=1}^N \tilde{\alpha}_i}}

線形分離可能な場合

ワインデータから2クラスを選択し, 線形判別分析を使い2次元に射影したデータを使う.

線形分離可能でない場合への拡張

線形分離可能でない場合, 制約条件をすべて満たす解は求まらない. 次のような変数 ξi\xi_i を導入し, ti(xiTw0+b)1+ξi0t_i(\mathbf{x}_i^T \mathbf{w}_0 + b) - 1 + \xi_i \geq 0

ξi=0,マージン内で正しく識別できる場合0<ξi<1,マージン境界を超えるが正しく識別できる場合ξi>1,識別境界を超えて誤識別される場合\begin{aligned} &\xi_i = 0, \quad \text{マージン内で正しく識別できる場合} \\ &0 < \xi_i < 1, \quad \text{マージン境界を超えるが正しく識別できる場合} \\ &\xi_i > 1, \quad \text{識別境界を超えて誤識別される場合} \end{aligned}

とすると, 制約条件を満たすことができる. 変数 ξi\xi_i をスラック変数といい, このような手法をソフトマージン識別器という.

ξi\xi_i

ξi=max[0,1ti(wTxi+b)]=f+(1ti(wTxi+b))\xi_i = \max [0, 1 - t_i(\mathbf{w}^T\mathbf{x}_i + b)] = f_+(1 - t_i(\mathbf{w}^T\mathbf{x}_i + b))

のように表現することもできる. 識別器の損失を表現しているので損失関数と呼ばれる. f+f_+

f+(x)={x,x>00,x0\begin{aligned} f_+(x) = \begin{cases} x, \quad x > 0 \\ 0, \quad x \leq 0 \end{cases} \end{aligned}

で定義される.

すべての学習データのスラック変数の和 i=1Nξi(ξi0)\sum_{i=1}^N \xi_i(\xi_i \geq 0) は, 誤識別の上限を数える.

ソフトマージン識別器の主問題2

評価関数(最小化)Lp(w)=12wTw+Ci=1Nξi不等式制約条件ti(wTxi+b)1+ξi0,ξi0\begin{aligned} &\text{評価関数(最小化)} \quad L_p(\mathbf{w}) = \frac{1}{2} \mathbf{w}^T\mathbf{w} + C\sum_{i=1}^N \xi_i \\ &\text{不等式制約条件} \quad t_i(\mathbf{w}^T\mathbf{x}_i + b) - 1 + \xi_i \geq 0, \quad \xi_i \geq 0 \end{aligned}

パラメータ CC は誤識別数に対するペナルティの強さを表す. 適切な CC は交差確認法などで実験的に選ぶ.

パラメータ CC を使うので, C-SVM(C-support vector machine) と略称されている.

KKT条件

ξi0\xi_i \geq 0 を強制するラグランジュ未定乗数を μi0\mu_i \geq 0, 誤識別数の上限を抑えるペナルティ定数を CC とする.

ソフトマージン最大化

KKT条件(3)から, αi=C\alpha_i = C となる. このようなサポートベクトルを上限サポートベクトル(bounded SV)という.

ξi=0\xi_i = 0 で, 0<αi<C0 < \alpha_i < C となっているサポートベクトルを自由サポートベクトル(free SV)という.

ソフトマージン識別器の双対問題2

評価関数(最大化)Ld(α)=αT112αTHα制約条件0αiC,αTt=0\begin{aligned} &\text{評価関数(最大化)} \quad L_d(\mathbf{\alpha}) = \mathbf{\alpha}^T\mathbf{1} - \frac{1}{2} \mathbf{\alpha}^T \mathbf{H} \mathbf{\alpha} \\ &\text{制約条件} \quad 0 \leq \alpha_i \leq C, \mathbf{\alpha}^T\mathbf{t} = 0 \end{aligned}

解ベクトルは, w0=i=1Nαitixi\mathbf{w}_0 = \sum_{i=1}^N \alpha_i t_i \mathbf{x}_i で得られ, αi0\alpha_i \neq 0 の要素がサポートベクトルである.

線形分離可能でない場合

ワインデータから2クラスを選択し, 特異値分解により2次元に射影したデータを使う.

非線形特徴写像

SVMは解が学習データの線形結合で表される識別超平面となる. 識別境界が学習データの線形関数では表せないような場合には, 誤差逆伝搬法のような非線形識別関数を直接構成することも一つの方法である.

ここでは, 非線形特徴写像を用いて非線形特徴空間に写像し, その空間内で線形識別関数を用いる方法を紹介する.

dd 次元の学習データ xRd\mathbf{x} \in \mathbb{R}^d と, その非線形写像の集合 {φj(x)}j=1,,M\lbrace \varphi_j(\mathbf{x}) \rbrace_{j=1,\cdots,M} を考える.

非線形写像空間のベクトルを, 次のように表す. φ0(x)=1\varphi_0(\mathbf{x}) = 1バイアス項である.

φ(x)=(φ0(x)=1,φ1(x),,φM(x))T\varphi(\mathbf{x}) = (\varphi_0(\mathbf{x}) = 1, \varphi_1(\mathbf{x}), \cdots, \varphi_M(\mathbf{x}))^T

非線形特徴空間での線形識別関数を次のように表す.

h(φ(x))=j=0Mwjφj(x)=wTφ(x)h(\varphi(\mathbf{x})) = \sum_{j=0}^M w_j\varphi_j(\mathbf{x}) = \mathbf{w}^T \varphi(\mathbf{x})

この非線形空間内でSVMを考えれば, 最適識別超平面は次のようになる.

w0=i=1Nαitiφ(xi)\mathbf{w}_0 = \sum_{i=1}^N \alpha_it_i\varphi(\mathbf{x}_i)

識別関数が

h(φ(x))=w0Tφ(x)=i=1NαitiφT(xi)φ(xi)=i=1NαitiK(xi,x)h(\varphi(\mathbf{x})) = \mathbf{w}_0^T \varphi(\mathbf{x}) = \sum_{i=1}^N \alpha_i t_i \varphi^T(\mathbf{x}_i) \varphi(\mathbf{x}_i) = \sum_{i=1}^N \alpha_i t_i K(\mathbf{x}_i, \mathbf{x})

のように, 元の空間のベクトル関数 K(xi,x)K(\mathbf{x}_i, \mathbf{x}) を用いて表せれば都合が良い.

このような関数 K(xi,x)K(\mathbf{x}_i, \mathbf{x})核関数, カーネル関数という.

ソフトマージン識別器のラグランジュ未定乗数 αi\alpha_i は, 次の双対問題を解くことによって得られる.

K(xi,x)=φT(xiT)φ(xj)K(\mathbf{x}_i, \mathbf{x}) = \varphi^T(\mathbf{x}_i^T) \varphi(\mathbf{x}_j)(i,j)(i, j) 要素とする N×NN \times N 対称行列 K(X,X)\mathbf{K}(\mathbf{X}, \mathbf{X})グラム行列という. X=(x1,,xN)T\mathbf{X} = (\mathbf{x}_1, \cdots, \mathbf{x}_N)^Tデータ行列である.

双対問題3

評価関数(最大化)Ld(α)=i=1Nαi12i=1Nj=1NαiαjtitjφT(xiT)φ(xj)=i=1Nαi12i=1Nj=1NαiαjtitjK(xi,x)\begin{aligned} \text{評価関数(最大化)} \quad L_d(\mathbf{\alpha}) &= \sum_{i=1}^N \alpha_i - \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j t_i t_j \varphi^T(\mathbf{x}_i^T) \varphi(\mathbf{x}_j) \\ &= \sum_{i=1}^N \alpha_i - \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j t_i t_j K(\mathbf{x}_i, \mathbf{x}) \end{aligned}

制約条件0αiC,αTt=0\text{制約条件} \quad 0 \leq \alpha_i \leq C, \mathbf{\alpha}^T\mathbf{t} = 0

多項式カーネル

実定数 α0\alpha \geq 0 に対して, pp 次の多項式カーネルを次のように定義する.

Kp(u,v)=(α+uTv)pK_p(\mathbf{u}, \mathbf{v}) = (\alpha + \mathbf{u}^T\mathbf{v})^p

u=(u1,u2)T,v=(v1,v2)T\mathbf{u} = (u_1, u_2)^T, \mathbf{v} = (v_1, v_2)^T とする. α=1\alpha = 1 とし, 2次の多項式カーネルを次のように定義する.

K2(u,v)=(1+uTv)2=(1+u1v1+u2v2)2=1+2u1v1+2u2v2+2u1u2v1v2+u12v12+u22v22\begin{aligned} K_2(\mathbf{u}, \mathbf{v}) &= (1 + \mathbf{u}^T \mathbf{v})^2 = (1 + u_1v_1 + u_2v_2)^2 \\\\ &= 1 + 2u_1v_1 + 2u_2v_2 + 2u_1u_2v_1v_2 + u_1^2v_1^2 + u_2^2v_2^2 \end{aligned}

u\mathbf{u}v\mathbf{v} に由来する項に分離する

φ(u)=(1,u12,2u1u2,u22,2u1,2u2)Tφ(v)=(1,v12,2v1v2,v22,2v1,2v2)T\begin{aligned} \varphi(\mathbf{u}) = (1, u_1^2, \sqrt{2}u_1u_2, u_2^2, \sqrt{2}u_1, \sqrt{2}u_2)^T \\\\ \varphi(\mathbf{v}) = (1, v_1^2, \sqrt{2}v_1v_2, v_2^2, \sqrt{2}v_1, \sqrt{2}v_2)^T \end{aligned}

すると, K2(u,v)=φ(u)Tφ(v)K_2(\mathbf{u}, \mathbf{v}) = \varphi(\mathbf{u})^T \varphi(\mathbf{v}) と表現できる.

動径基底関数カーネル

動径基底関数カーネル, RBFカーネルは次式で定義される.

Kσ(u,v)=exp(12σ2uv2)K_{\sigma}(\mathbf{u}, \mathbf{v}) = \exp(-\frac{1}{2\sigma^2} \parallel \mathbf{u} - \mathbf{v} \parallel^2)

σ\sigma はカーネル関数の広がりを制御するパラメータである.

動径基底関数カーネルの非線形特徴ベクトルは無限次元となる.

Kσ(u,v)=exp(12σ2uv2)=exp(u22σ2)exp(v22σ2)exp(uTvσ2)=g(u)g(v)exp(K1(u,v)σ2)K_{\sigma}(\mathbf{u}, \mathbf{v}) = \exp(-\frac{1}{2\sigma^2} \parallel \mathbf{u} - \mathbf{v} \parallel^2) = \exp(-\frac{\parallel \mathbf{u} \parallel^2}{2\sigma^2}) \exp(-\frac{\parallel \mathbf{v} \parallel^2}{2\sigma^2}) \exp(\frac{\mathbf{u}^T \mathbf{v}}{\sigma^2}) = g(\mathbf{u})g(\mathbf{v})\exp(\frac{K_1(\mathbf{u}, \mathbf{v})}{\sigma^2})

g(u)g(\mathbf{u})g(v)g(\mathbf{v}) は最初の二つの指数関数である.

exp(K1(u,v)σ2)=i=1dexp(uiσviσ)exp(uiσviσ)=n=01n!(uiσviσ)n=uiTvi\begin{aligned} &\exp(\frac{K_1(\mathbf{u}, \mathbf{v})}{\sigma^2}) = \prod_{i=1}^d \exp(\frac{u_i}{\sigma}\frac{v_i}{\sigma}) \\\\ &\exp(\frac{u_i}{\sigma}\frac{v_i}{\sigma}) = \sum_{n=0}^{\infty}\frac{1}{n!}(\frac{u_i}{\sigma}\frac{v_i}{\sigma})^n = \mathbf{u}_i^T\mathbf{v}_i \end{aligned}

ピマインディアンデータのSVMによる識別

Pima.trデータからgluとbmiを使いSVMによる識別を考えよう.

動径基底関数(RBF)カーネルを使い, σ=0.2,0.4,0.8,4,8\sigma = 0.2, 0.4, 0.8, 4, 8 とし, αi\alpha_i の上限を決定するためのパラメータは C=10i,i=0,1,2,3,4C = 10^i, i = 0, 1, 2, 3, 4 とした.

識別関数が学習パラメータによってどのように変わるか見るために,汎化誤差が最小になった場合と訓練誤差が最小になった場合の識別関数とサポートベクトルの分布をプロットした.

汎化誤差が最小になった場合と訓練誤差が最小になった場合のサポートベクトルの係数 tiαit_i \alpha_i のヒストグラムを示した.

ν-サポートベクトルマシン

ソフトマージン識別器では, CC が誤識別数に対するペナルティ係数として導入され, CCαi\alpha_i の上限を決めた. 誤識別数を学習データで割った誤識別率にした方が, 学習データが変わった場合にも対応でき便利.

そこで, 学習器の複雑さと誤り率のトレードオフνν を介して取り入れたものが, ν-サポートベクトルマシンである.

サポートベクトルマシンの損失関数

ξi=f+(1ti(wTxi+b))\xi_i = f_+(1 - t_i(\mathbf{w}^T\mathbf{x}_i + b))

であり, 非線形特徴写像を用いた場合, f(xi)=wTφ(xi)+bf(\mathbf{x}_i) = \mathbf{w}_T \varphi(\mathbf{x}_i) + b とすれば,

ξi=f+(1tif(xi))\xi_i = f_+(1 - t_if(\mathbf{x}_i))

となる. ここで損失を

ξi=f+(ρtif(xi))\xi_i = f_+(\rho - t_if(\mathbf{x}_i))

と変更し, ρ\rho の値も最適化することを考える.

最適化問題は, 損失が小さくなるように学習するので, 損失関数から見れば, ρ\rho は小さい方が良い.

一方, マージン ρ\rho が小さいと最適化問題が難しくなり, 結合係数 w\mathbf{w} のノルムが大きくなる.

そこで, マージンが小さくなりすぎないように評価関数に ρ-\rho に比例した項を加えて最適化問題にする.

主問題4

評価関数(最小化)Lp(w,ρ,ξ)=12wTwvρ+1Ni=1Nξi不等式制約条件ti(wTφ(xi)+b)ρ+ξi0,ξi0\begin{aligned} &\text{評価関数(最小化)} \quad L_p(\mathbf{w}, \rho, \xi) = \frac{1}{2} \mathbf{w}^T\mathbf{w} - v\rho + \frac{1}{N}\sum_{i=1}^N \xi_i \\ &\text{不等式制約条件} \quad t_i(\mathbf{w}^T \varphi(\mathbf{x}_i) + b) - \rho + \xi_i \geq 0, \quad \xi_i \geq 0 \end{aligned}

v=i=1Nαi1N×v = \sum_{i=1}^N \alpha_i \leq \frac{1}{N} \times サポートベクトルであるから, vはサポートベクトルの割合の下限上限サポートベクトルの割合の上限を与えている.

ピマインディアンデータへのν-SVMの適用

ピマインディアンデータの場合 N+=68,N1=132N^+ = 68, N^1 = 132 なので, vmax=0.68v_{max} = 0.68 である.

ν を0.1から0.6まで変化させ, 上限サポートベクトルの割合をRBFカーネルのパラメータ σ\sigma を変えてプロットした.

1クラスサポートベクトルマシン

サポートベクトルマシンは, 2クラスの識別関数を構成するためのものであったが, 1クラスのみの学習に用い, 入力データがそのクラスに入るか入らないかのみを判断する方法が提案されている. 新規性判断や例外検出, 外れ値検出に利用できる.

主問題5

評価関数(最小化)Lp(w,ξ)=12wTwρ+1vNi=1Nξi不等式制約条件wTφ(xi)ρ+ξi0,ξi0\begin{aligned} &\text{評価関数(最小化)} \quad L_p(\mathbf{w}, \mathbf{\xi}) = \frac{1}{2} \mathbf{w}^T\mathbf{w} - \rho + \frac{1}{vN}\sum_{i=1}^N \xi_i \\ &\text{不等式制約条件} \quad \mathbf{w}^T \varphi(\mathbf{x}_i) - \rho + \xi_i \geq 0, \quad \xi_i \geq 0 \end{aligned}

正例か外れ値かの識別関数は, 次のように与えられ, f(x)=1f(\mathbf{x}) = 1 のとき正例, f(x)=1f(\mathbf{x}) = -1 のとき外れ値である.

f(x)=sgn(i=1NαiK(xi,x)ρ),sgn(a)={+1,a>00,a=01,a<0\begin{aligned} f(\mathbf{x}) = sgn(\sum_{i=1}^N \alpha_i K(\mathbf{x}_i, \mathbf{x}) - \rho), \quad sgn(a) = \begin{cases} +1, \quad &a > 0 \\ 0, \quad &a = 0 \\ -1, \quad &a < 0 \end{cases} \end{aligned}

ピマインディアンの外れ値検出

Pima.trを用いて学習したときの外れ値検出率と Pima.te を用いたときの外れ値検出率を図に示した.

外れ値検出率が最も小さかったパラメータを用いて学習したときのサポートベクトルの位置と, テストデータで外れ値と判断されたデータを図に示した.

部分空間法

計算コストを抑える目的のためにも, 解釈可能な識別器を構成するためにも, データの次元数は少ないほうが良い. ここでは, dd 次元特徴ベクトル空間を重要な情報をもつ r(d)r(\leq d) 次元空間に縮約する方法を紹介する.

主成分分析では, 共分散行列の固有値問題を解き, 大きな固有値に対応する固有ベクトルで部分空間を構成し, 元の情報の低次元で近似する.

クラスごとに主成分分析を行い, それそれのクラスのデータで部分空間を構成して識別器を構成する方法を部分空間法という. 部分空間法は, 多クラス問題への拡張が容易なこと, 識別能力が高いことから, 広く利用されている. カーネル法を取り入れた, カーネル主成分分析カーネル部分空間法を紹介する.

部分空間

dd 次元ベクトル空間 VV部分空間は次のように定義された.

x1,,xr,(rd)\mathbf{x}_1, \cdots, \mathbf{x}_r, (r \leq d)VV のベクトルとすると

W={a1x1++arxr  aiR,i=1,,r}W = \lbrace a_1\mathbf{x}_1 + \cdots + a_r\mathbf{x}_r \ |\ a_i \in \mathcal{R}, i = 1, \cdots, r \rbrace

VV の部分空間となる.

WWx1,,xr\mathbf{x}_1, \cdots, \mathbf{x}_r で張られる rr 次元の部分空間であるとは, x1,,xr\mathbf{x}_1, \cdots, \mathbf{x}_r が一次独立であることであった.

WWVV の部分空間であるための必要十分条件は以下が成り立つことである.

  1. W0W \neq 0
  2. x,yWx+yW\mathbf{x}, \mathbf{y} \in W \Rightarrow \mathbf{x} + \mathbf{y} \in W
  3. xW,λRλxW\mathbf{x} \in W, \lambda \in \mathcal{R} \Rightarrow \lambda \mathbf{x} \in W

MNIST 手書き数字を用いて, 28×2828 \times 28 次元ベクトル空間の 10 次元の部分空間を作ってプロットした

ベクトル空間 VV は, 部分空間 S\mathbf{S} とそれと直交する部分空間 S\mathbf{S}^{\bot} に分解できた. V=SS,SS=V = \mathbf{S} \cup \mathbf{S}^{\bot}, \mathbf{S} \cap \mathbf{S}^{\bot} = \empty が成り立つので, 任意のベクトル x\mathbf{x} は, x=xS+xS\mathbf{x} = \mathbf{x}_S + \mathbf{x}_{S^{\bot}} と分解できた.

直交座標系に変換するには, グラムーシュミットの正規直交化を使う.

10 次元部分空間からQR分解によりグラムーシュミットの正規直交基底を作成した.

主成分分析(Principal Component Analysis PCA)

主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

主成分分析は, 学習データ xi=(xi1,,xid)T(i=1,,N)\mathbf{x}_i = (x_{i1}, \cdots, x_{id})^T (i = 1, \cdots, N)分散が最大になる方向への線形変換を求める手法である

NN 個のデータからデータ行列 X=(x1,,xN)T\mathbf{X} = (\mathbf{x}_1, \cdots, \mathbf{x}_N)^T の平均ベクトル x=(x1,,xN)T\overline{\mathbf{x}} = (\overline{\mathbf{x}_1}, \cdots, \overline{\mathbf{x}_N})^T を求める. x\overline{\mathbf{x}} を引いたデータ行列を X=(x1x,,xNx)T\overline{\mathbf{X}} = (\mathbf{x}_1 - \overline{\mathbf{x}}, \cdots, \mathbf{x}_N - \overline{\mathbf{x}})^T とし, データの分散共分散行列を次のようにして定義する.

Σ=Var(X)=1NXTX\mathbf{\Sigma} = \text{Var}(X) = \frac{1}{N} \overline{\mathbf{X}}^T \overline{\mathbf{X}}

NN 個のデータ xix\mathbf{x}_i - \overline{\mathbf{x}}係数ベクトル aj=(aj1,,ajd)T,(j=1,,d)\mathbf{a}_j = (a_{j1}, \cdots, a_{jd})^T, (j = 1, \cdots, d) を用いて線形変換すれば,

sj=(s1j,,sNj)T=Xaj\mathbf{s}_j = (s_{1j}, \cdots, s_{Nj})^T = \overline{\mathbf{X}} \mathbf{a}_j

が得られる. このとき, sj\mathbf{s}_j の分散は

Var(sj)=1NsTsj=1N(Xaj)T(Xaj)=1NajTXTXaj=ajTVar(X)aj\text{Var}(\mathbf{s}_j) = \frac{1}{N} \mathbf{s}^T \mathbf{s}_j = \frac{1}{N} (\overline{\mathbf{X}} \mathbf{a}_j)^T (\overline{\mathbf{X}} \mathbf{a}_j) = \frac{1}{N} \mathbf{a}_j^T \overline{\mathbf{X}}^T \overline{\mathbf{X}} \mathbf{a}_j = \mathbf{a}_j^T \text{Var}(\overline{\mathbf{X}}) \mathbf{a}_j

線形変換 sj\mathbf{s}_j分散が最大になる射影ベクトル aj\mathbf{a}_j は, ラグランジュ関数

E(aj)=ajTVar(X)ajλ(ajTaj1)E(\mathbf{a}_j) = \mathbf{a}_j^T \text{Var}(\overline{\mathbf{X}}) \mathbf{a}_j - \lambda(\mathbf{a}_j^T \mathbf{a}_j - 1)

を最大にする aj\mathbf{a}_j を見つければ良い.

aj\mathbf{a}_j で微分して 0 とおけば

E(aj)aj=2Var(X)aj2λaj=0Var(X)aj=λaj\frac{\partial E(\mathbf{a}_j)}{\partial \mathbf{a}_j} = 2\text{Var}(\overline{\mathbf{X}}) \mathbf{a}_j - 2\lambda \mathbf{a}_j = 0 \Leftrightarrow \text{Var}(\overline{\mathbf{X}}) \mathbf{a}_j = \lambda \mathbf{a}_j

aj\mathbf{a}_j はデータの分散共分散行列の固有値問題を解けば良い

分散共分散行列が実対称行列なので, 非ゼロの固有値は分散共分散行列のランクで, 最大 dd である. 固有ベクトルは直交する.

aiTaj=δij={1,i=j0,ij\begin{aligned} \mathbf{a}_i^T \mathbf{a}_j = \delta_{ij} = \begin{cases} 1, \quad i = j \\ 0, \quad i \neq j \end{cases} \end{aligned}

最大固有値が線形変換したデータの分散になる.

Var(sj)=a1TVar(X)a1=λ1a1Ta1=λ1\text{Var}(\mathbf{s}_j) = \mathbf{a}_1^T \text{Var}(\overline{\mathbf{X}}) \mathbf{a}_1 = \lambda_1 \mathbf{a}_1^T \mathbf{a}_1 = \lambda_1

最大固有値に対応する固有ベクトル a1\mathbf{a}_1第1主成分という. データの分散は, 固有値の合計になる.

Vtotal=i=1dλiV_{total} = \sum_{i=1}^d \lambda_i

kk 主成分の全分散に対する割合 (cj=λk/Vtotal)(c_j = \lambda_k / V_{total}) を第 kk 主成分の寄与率といい, 第 kk 主成分までの累積寄与率rk=i=1kckr_k = \sum_{i=1}^k c_k で表す.

画像データの主成分分析

10枚の画像の主成分分析を行う. 中心化を行うため, xi\overline{x}_i が一次独立でなくなるため, 最大ランクが9になる. 主成分も9個. 第1主成分から第9主成分までの固有ベクトルを下の図に示した.

寄与率と累積寄与率をプロットした.

特異値分解

行列を複数の行列の積に分析する方法として, グラム-シュミットの正規直交基底を得るためのQR分解がある. 一方, 主成分分析に密接に関連した行列の分解法に, 特異値分解(SVD)がある.

特異値分解とは, 任意の n×pn \times p 行列 X\mathbf{X}

X=UΛVT=(u1,,up)(λ1000λ2000λp)(v1Tv2TvpT)\begin{aligned} \mathbf{X} &= \mathbf{U}\mathbf{\Lambda}\mathbf{V}^T \\ &= (\mathbf{u}_1, \cdots, \mathbf{u}_p) \begin{pmatrix} \sqrt{\lambda_1} & 0 & \cdots & 0 \\ 0 & \sqrt{\lambda_2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sqrt{\lambda_p} \end{pmatrix} \begin{pmatrix} \mathbf{v}_1^T \\ \mathbf{v}_2^T \\ \vdots \\ \mathbf{v}_p^T \end{pmatrix} \end{aligned}

のように分解することができる.

  • U\mathbf{U}XXT\mathbf{X}\mathbf{X}^T の非ゼロ固有値に対応する固有ベクトルで, n×pn \times p正規直交行列.
  • V\mathbf{V}XTX\mathbf{X}^T\mathbf{X} の非ゼロ固有値に対応する固有ベクトルで, p×pp \times p正規直交行列.
  • Λ\Lambda は, XXT\mathbf{X}\mathbf{X}^T または, XTX\mathbf{X}^T\mathbf{X} の非ゼロ固有値の平方根(特異値)である.

特異値分解と主成分分析の関係は X=UΛVT\mathbf{X} = \mathbf{U}\mathbf{\Lambda}\mathbf{V}^T から XV=UΛ\mathbf{X}\mathbf{V} = \mathbf{U}\mathbf{\Lambda} が成り立つので

(Xv1 Xv2  Xvp)=(λ1u1 λ2u2  λpup)(\mathbf{X}\mathbf{v}_1 \ \mathbf{X}\mathbf{v}_2 \ \cdots \ \mathbf{X}\mathbf{v}_p) = (\sqrt{\lambda_1}\mathbf{u}_1 \ \sqrt{\lambda_2}\mathbf{u}_2 \ \cdots \ \sqrt{\lambda_p}\mathbf{u}_p)

データ行列 X\mathbf{X}v1\mathbf{v}_1 で線形変換したベクトルが λ1u1\sqrt{\lambda_1}\mathbf{u}_1 になるので,
分散をとれば

Var(Xv1)=λ1\text{Var}(\mathbf{X}\mathbf{v}_1) = \lambda_1

となるので, Xvj\mathbf{X}\mathbf{v}_j が第1主成分になっている.

第1主成分から第 qq 主成分までの vi\mathbf{v}_i で構成された部分空間 V~\tilde{\mathbf{V}} と射影 XV~\mathbf{X}\tilde{\mathbf{V}} を考えると,

V~=(v1  vq)\tilde{\mathbf{V}} = (\mathbf{v}_1 \ \cdots \ \mathbf{v}_q)

共分散行列が Var(XV~)=Λq2\text{Var}(\mathbf{X}\tilde{\mathbf{V}}) = \Lambda_q^2 となるから, 行列分解 X~=UΛqVT=i=1qλiuiviT\tilde{\mathbf{X}} = \mathbf{U}\Lambda_q \mathbf{V}^T = \sum_{i=1}^q \sqrt{\lambda_i} \mathbf{u}_i \mathbf{v}_i^T はランク qq の誤差最小の意味での最良近似になっている.

部分空間法

部分空間法とは, クラスごとに部分空間を構成する正規直交基底を求め, 入力データを各クラスの部分空間に射影して識別する手法のこと.

クラスごとに独立に部分空間を構成できるから, 多クラスの識別器が容易に構成できる.

部分空間法には, 相関行列を使う方法と共分散行列を使う方法があり, 相関行列を使う方法にはCLAFIC法がある.

CLAFIC法

データ xRd\mathbf{x} \in \mathcal{R}^dKK 個のクラスのどれかに属しているとする. クラスごとの部分空間を S1,,SK\mathbf{S}_1, \cdots, \mathbf{S}_K とし, クラス ii の部分空間を張る基底ベクトルを次のように表す.

{ui1,,uidi}\lbrace \mathbf{u}_{i1}, \cdots, \mathbf{u}_{id_i} \rbrace

部分空間 Si\mathbf{S}_i へ正射影した長さの期待値を uij=1\mathbf{u}_{ij} = 1 の制約の下で最大にするようにする.

E{xTPix  xCi}=E{xT(j=1diuijuijT)x}E\lbrace \mathbf{x}^T \mathbf{P}_i \mathbf{x} \ |\ \mathbf{x} \in C_i \rbrace = E\lbrace \mathbf{x}^T (\sum_{j=1}^{d_i} \mathbf{u}_{ij} \mathbf{u}_{ij}^T) \mathbf{x} \rbrace

行列 Pi\mathbf{P}_i射影行列という.

識別規則は全ての jij \neq i について, xTPjx<xTPix\mathbf{x}^T \mathbf{P}_j \mathbf{x} < \mathbf{x}^T \mathbf{P}_i \mathbf{x} ならば xCi\mathbf{x} \in C_i

手書き数字の部分空間法による認識

28×2828 \times 28 の数字画像のベクトルの長さを1にそろえた各クラス1000個の学習データを用いる. クラスごとの部分空間の次元数 di(i=1,,10)d_i(i = 1, \cdots, 10) は忠実度 κ\kappa が0.75となる次元を採用した.

a(di1)κa(di),a(di)=j=1diλija(d_i - 1) \leq \kappa \leq a(d_i), \quad a(d_i) = \sum_{j=1}^{d_i} \lambda_{ij}

学習データの誤識別率は 4.98%, テストデータの誤識別率は 8.89%であった. 次のようになった.

カーネル主成分分析

カーネル法を用いて非線形特徴空間で主成分分析を考える. xiRd(i=1,,N)\mathbf{x}_i \in \mathcal{R}^d (i = 1, \cdots, N) を学習データ, 非線形特徴変換を φ(Xi):xiRdφ(xi)RM(M>d)\varphi(\mathbf{X}_i):\mathbf{x}_i \in \mathcal{R}^d \rightarrow \varphi(\mathbf{x}_i) \in \mathcal{R}^M (M > d) とする.

i=1Nφ(xi)=0\sum_{i=1}^N \varphi(\mathbf{x}_i) = \mathbf{0} なら, M×MM \times M 分散共分散行列

C=1Ni=1Nφ(xi)φ(xi)T\mathbf{C} = \frac{1}{N} \sum_{i=1}^N \varphi(\mathbf{x}_i) \varphi(\mathbf{x}_i)^T

の固有値問題 Cνm=λmνm\mathbf{C}\mathbf{\nu}_m = \lambda_m \mathbf{\nu}_m を解いて, 主成分 λm\lambda_m と固有ベクトル νm\mathbf{\nu}_m を得ることができる.

非線形変換の平均を0にするためには, 次のようにする.

φ~(xi)=φ(xi)1Nj=1Nφ(xj)\tilde{\varphi}(\mathbf{x}_i) = \varphi(\mathbf{x}_i) - \frac{1}{N} \sum_{j=1}^N \varphi(\mathbf{x}_j)

平均を0にしたグラム行列 K~\tilde{\mathbf{K}} のは, 全要素が 1N\frac{1}{N} とする N×NN \times N 行列を1NN\mathbf{1}_{NN}とすれば

K~=K1NNKK1NN+1NNK1NN\tilde{\mathbf{K}} = \mathbf{K} - \mathbf{1}_{NN}\mathbf{K} - \mathbf{K}\mathbf{1}_{NN} + \mathbf{1}_{NN}\mathbf{K}\mathbf{1}_{NN}

と計算すれば平均を0にすることができる.

元のデータの次元 dd での計算は次のように考えれば良い. 非線形変換の学習データを次のようにする.

Xφ~=(φ~(x1),,φ~(xN))RM×N\mathbf{X}_{\tilde{\varphi}} = (\tilde{\varphi}(\mathbf{x}_1), \cdots, \tilde{\varphi}(\mathbf{x}_N)) \in \mathcal{R}^{M \times N}

Xφ~\mathbf{X}_{\tilde{\varphi}} の共分散行列 C~=1NXφ~Xφ~TRM×M\tilde{\mathbf{C}} = \frac{1}{N} \mathbf{X}_{\tilde{\varphi}} \mathbf{X}_{\tilde{\varphi}}^T \in \mathcal{R}^{M \times M} なので, Xφ~Xφ~T\mathbf{X}_{\tilde{\varphi}} \mathbf{X}_{\tilde{\varphi}}^T の固有値を λ1λN\lambda_1 \geq \cdots \geq \lambda_N とし,Λ\Lambdarr 個の固有値の平方根を対角要素に並べた行列とすると, Xφ~=UΛVT\mathbf{X}_{\tilde{\varphi}} = \mathbf{U} \mathbf{\Lambda} \mathbf{V}^T と分解できる.

U=Xφ~VΛ1\mathbf{U} = \mathbf{X}_{\tilde{\varphi}} \mathbf{V} \mathbf{\Lambda}^{-1} より

ui=1λiXφ~vi\mathbf{u}_i = \frac{1}{\sqrt{\lambda_i}} \mathbf{X}_{\tilde{\varphi}} \mathbf{v}_i

が成り立つので, 入力ベクトル Xφ~\mathbf{X}_{\tilde{\varphi}}ui\mathbf{u}_i 方向への射影は

uiφ~(x)=(1λiXφ~vi)Tφ~(x)=1λiviK~(X,x)\mathbf{u}_i \tilde{\varphi}(\mathbf{x}) = (\frac{1}{\sqrt{\lambda_i}} \mathbf{X}_{\tilde{\varphi}} \mathbf{v}_i)^T \tilde{\varphi}(\mathbf{x}) = \frac{1}{\sqrt{\lambda_i}} \mathbf{v}_i \tilde{\mathbf{K}}(\mathbf{X}, \mathbf{x})

となるので, dd 次元空間での内積カーネルの計算と rr 回の NN 次元ベクトルの内積計算で求めることができる.

カーネル部分空間法

CLAFIC 法の内積カーネルを使った非線形特徴空間内の部分空間法を考える.

クラス ii の学習データを Xi=(xi1,,xiNi)\mathbf{X}_i = (\mathbf{x}_{i1}, \cdots, \mathbf{x}_{iN_i}) とし, その非線形特徴写像による変換を Xiφ=(φ(xi1),,φ(xiNi))\mathbf{X}_{i\varphi} = (\varphi(\mathbf{x}_{i1}), \cdots, \varphi(\mathbf{x}_{iN_i})) とする.

Xiφ\mathbf{X}_{i\varphi} の特異値分解を Xiφ=UiΛiViT\mathbf{X}_{i\varphi} = \mathbf{U}_i \mathbf{\Lambda}_i \mathbf{V}_i^T とする. クラス忠実度を満たす did_i 個の固有値を λi1,,λidi\lambda_{i1}, \cdots, \lambda_{id_i} とすれば, did_i 次元の比線型部分空間を構成できる.

φ(X)\varphi(\mathbf{X})U^i\hat{\mathbf{U}}_i に射影したときのベクトルの長さは, 次のようになる.

li2(x)=j=1di(uijTφ(x))2=Λi^1V^TK(X,x)2l_i^2 (\mathbf{x}) = \sum_{j=1}^{d_i} (\mathbf{u}_{ij}^T \varphi(\mathbf{x}))^2 = \parallel \hat{\mathbf{\Lambda}_i}^{-1} \hat{\mathbf{V}}^T \mathbf{K}(\mathbf{X}, \mathbf{x}) \parallel^2

識別規則は 識別クラス = arg maxili2(x),i=1,,K\argmax_i l_i^2(\mathbf{x}), \quad i = 1, \cdots, K である

クラスタリング(Cluster analysis)

前章までの学習データには, 入力データの教師ラベルが付与されていた.

本章では教師なしデータに対しては, 類似度非類似度を手がかりに, データのグループ分けを行う. このような, 教師なしデータのグループ分けをクラスタリング(Cluster analysis)という

クラスタリングには, 非階層的な手法と階層的な手法がある. いずれもデータやクラスタ間の距離や類似度に基づく方法で, 各データはどれか一つのクラスタのみに属する.

一方, データが確率分布に従い, 全体をそれらの混合分布で表現するクラスタリングがある. 異なるクラスのデータが混在したことを確率分布の混合分布で表す場合もある. 混合分布モデルの推定には, EMアルゴリズムという画期的な手法を使う.

教師なし学習の応用例:

  • 遺伝子表現データから乳がん患者のグループ分け
  • ユーザのウェブページの閲覧履歴と購入履歴からグループ分け
  • 映画視聴者のレーティングによる映画のグループ分け
  • コメントや感想からその人の感情を自動的に評価する取り組み
  • 計算機実験などから得られるラベルなしデータは, 人手が介入する必要があるラベルありデータに比べて入手しやすい

類似度と非類似度

距離の公理

クラスタリングでは, データやクラス間の類似度あるいは非類似度を使って, 似たようなデータを集めてクラスタを作る.

データやクラスタ間の類似度を測るに距離を導入する. 2つのベクトル x\mathbf{x}y\mathbf{y} の距離 d(x,y)d(\mathbf{x}, \mathbf{y}) を定義するためには, 距離の公理を満たさないといけない.

距離の公理

  1. 非負性: d(x,y)0d(\mathbf{x}, \mathbf{y}) \geq 0
  2. 反射率: d(x,y)=0d(\mathbf{x}, \mathbf{y}) = 0 となるのは, x=y\mathbf{x} = \mathbf{y} のときのみ
  3. 対称性: d(x,y)=d(y,x)d(\mathbf{x}, \mathbf{y}) = d(\mathbf{y}, \mathbf{x})
  4. 三角不等式: d(x,z)d(x,y)+d(y,z)d(\mathbf{x}, \mathbf{z}) \leq d(\mathbf{x}, \mathbf{y}) + d(\mathbf{y}, \mathbf{z})

ミンコフスキー距離(Minkowski distance)

NN 個の dd 次元データの ii 番目のデータを xi=(xi1,,xid)T\mathbf{x}_i = (x_{i1}, \cdots, x_{id})^T とする. 2つのベクトル xi\mathbf{x}_ixj\mathbf{x}_j のミンコフスキー距離は,

d(xi,xj)=(k=1dxikxjka)1/b\begin{aligned} d(\mathbf{x}_i, \mathbf{x}_j) = \begin{pmatrix} \sum_{k=1}^d |x_{ik} - x_{jk}|^a \end{pmatrix}^{1/b} \end{aligned}

で定義する. aa は特徴間の差の重みを調整するパラメータで, bb は特徴間の差の aa 乗の重みを調整するパラメータ.

a=b=1a = b = 1 のときは市街地距離(マンハッタン距離)で, 四角いマス目状の道路で移動する距離

d(xi,xj)=k=1dxikxjkd(\mathbf{x}_i, \mathbf{x}_j) = \sum_{k=1}^d |x_{ik} - x_{jk}|

a=b=2a = b = 2 の場合はユークリッド距離

d(xi,xj)=(k=1dxikxjk2)1/2\begin{aligned} d(\mathbf{x}_i, \mathbf{x}_j) = \begin{pmatrix} \sum_{k=1}^d |x_{ik} - x_{jk}|^2 \end{pmatrix}^{1/2} \end{aligned}

a=2,b=1a = 2, b = 1 の場合, ユークリッド距離の2乗

d(xi,xj)=k=1dxikxjk2d(\mathbf{x}_i, \mathbf{x}_j) = \sum_{k=1}^d |x_{ik} - x_{jk}|^2

a=b=a = b = \infin の場合, チェビシェフ距離

d(xi,xj)=(k=1dxikxjka)1/alima=maxkxikxjk\begin{aligned} d(\mathbf{x}_i, \mathbf{x}_j) = \begin{pmatrix} \sum_{k=1}^d |x_{ik} - x_{jk}|^a \end{pmatrix}^{1/a} \quad \lim_{a \rightarrow \infty} = \max_k |x_{ik} - x_{jk}| \end{aligned}

データ間の類似度を測るその他の代表的な尺度には, 次のものがある

キャンベラ尺度: データの正規化する仕組みを入れた尺度

d(xi,xj)=k=1dxikxjkxik+xjkd(\mathbf{x}_i, \mathbf{x}_j) = \sum_{k=1}^d \frac{|x_{ik} - x_{jk}|}{|x_{ik}| + |x_{jk}||}

方向余弦ベクトル間の角度を用いた距離

d(xi,xj)=k=1dxikxjk(k=1dxik2)(k=1dxjk2)d(\mathbf{x}_i, \mathbf{x}_j) = \frac{\sum_{k=1}^d x_{ik} x_{jk}}{\sqrt{(\sum_{k=1}^d x_{ik}^2) (\sum_{k=1}^d x_{jk}^2)}}

非階層型クラスタリング(K-平均法)

k-平均聚类的目的是:把n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准

这个问题在计算上是NP困难的,不过存在高效的启发式算法。一般情况下,都使用效率比较高的启发式算法,它们能够快速收敛于一个局部最优解。这些算法通常类似于通过迭代优化方法处理高斯混合分布的最大期望算法(EM算法)

dd 次元データ D={x1,,xN}\mathcal{D} = \lbrace \mathbf{x}_1, \cdots, \mathbf{x}_N \rbrace をあらかじめ定めた KK 個のクラスタに割り当てる手法.

各クラスの代表ベクトルの集合を M={μ1,,μK}\mathcal{M} = \lbrace \mu_1, \cdots, \mu_K \rbrace とし, 代表ベクトルが支配する領域を M(μk)M(\mu_k) とする. ii 番目のデータがクラス kk に帰属するかどうかを表す変数を qikq_{ik} とする.

qik={1,xiM(uk)0,xiM(uk)\begin{aligned} q_{ik} = \begin{cases} 1, \quad \mathbf{x}_i \in M(u_k) \\ 0, \quad \mathbf{x}_i \notin M(u_k) \end{cases} \end{aligned}

KK 平均法の評価関数を次のように定義する. 各クラスの代表ベクトルはそのクラスの平均ベクトルになる.

J(qik,μk)=i=1Nj=1Kqikxiμk2J(q_{ik}, \mu_k) = \sum_{i=1}^N \sum_{j=1}^K q_{ik} \parallel \mathbf{x}_i - \mu_k \parallel^2

アルゴリズムK-平均法

初期化: NN 個のデータをランダムに KK 個のクラスタに分け, そのクラスタの平均ベクトルを求める.

  1. qikq_{ik} に関する最適化: μk\mu_k を固定したもとで, qikq_{ik} を次のように求める.

qik={1,k=arg minjxiμj20,karg minjxiμj2\begin{aligned} q_{ik} = \begin{cases} 1, \quad k = \argmin_j \parallel \mathbf{x}_i - \mu_j \parallel^2 \\ 0, \quad k \neq \argmin_j \parallel \mathbf{x}_i - \mu_j \parallel^2 \end{cases} \end{aligned}

  1. μk\mu_k の最適化: qikq_{ik} を固定し, セントロイド μk\mu_k を求める
  2. 繰り返し: クラスタが変化しなくなるまで (1), (2) を繰り返す

KK 平均法のアルゴリズムは初期値に依存するので, 最適解を得るためには何回か初期値を変えて実行する必要がある.

この図は初期値を変えながら6回K平均法を実行した時の結果である. 図の上にある数字は評価関数値で, 小さい値の方が良くクラス分けができていることを示している. 6回中3回は同じ結果で評価関数値が235.8となり, この結果を採用する.

階層型クラスタリング(融合法)

KK 平均法では, 事前に決定したクラスタ数 KK に応じた分割を行った. 階層的クラスタリングでは, クラスタ数は決定する必要はない.

階層的クラスタリングのボトムアップ法, 融合法を説明する. 葉を結合して幹にする. この図を樹状図, デンドログラムという.

アルゴリズム融合法

  1. n=Nn = N とする
  2. n×nn \times n の距離行列を作る
  3. 最も距離が近い二つのデータやクラスタをまとめて, 一つのクラスタにする
  4. n=n1n = n - 1 にする
  5. n>1n > 1 であれば, (2) へ, n=1n = 1 であれば終了する

この5と7が結合された距離を記録し, デンドログラムの縦軸に高さで示す.

データの連結方法

完全連結法(最長距離法): クラスター内の非類似性が最大になるような方法. クラスタ AABB の観測値の非類似性を全てのペアで計算し非類似性が最大になるものを記録していく.

単連結法(最短距離法): クラスタ内の非類似性が最小になるような方法. クラスタ AABB の観測値の非類似性を全てのペアで計算し非類似性が最小になるものを記録していく.

群平均法: クラスタ内の非類似性の平均で距離を計算する方法. クラスタ AABB の観測値の非類似性を全てのペアで計算し非類似性の平均を記録していく.

重心法: クラスタ内の非類似性の重心で距離を計算する方法. クラスタ AABB の観測値の非類似性を全てのペアで計算し非類似性の平均を記録していく.

ウォード法: クラスタ AABB を融合したときに, クラスタ内変動の増分が小さくなるようにクラスタを融合する方法.

左から右にかけて, 群平均法, 完全連結法, 単連結法である.

単連結法では, 連結されたクラスタが新たなデータを取り込んでクラスタを形成するため, クラスタ形成の様子が鎖効果となって表れるため, 距離によってクラスを分割する時に, 特徴のあるデータのまとまりとしてクラスを形成することが困難になることがある.

階層的クラスタリングの分析例

左: 階層的クラスタリングのデンドログラム: ユークリッド距離と完全連結法(complete linkage).

中: 左のデンドロクラムをクラスタ数が2になるように分類した結果. 点線は距離9を指している.

右: のデンドロクラムをクラスタ数が3になるように分類した結果. 点線は距離5を指している.

確率モデルによるクラスタリング

K-平均法や融合法によるクラスタリングでは, 一つのデータは一つのクラスタにのみ分類されるので, ハードクラスタリングとも呼ばれる. 階層的クラスタリングやK平均法では, データに基づいた簡便法なので確率モデルの推論ができない.

主にクラスタリングが, 探索的データ解析に用いられるなら問題ではない.

確率的クラスタリングやモデルに基づいたクラスタリングは, 確率的にデータをグルーピングする手法. データ構造を解釈しやすい.

混合分布モデル

有限な潜在クラスの異質性を扱うモデル. 有限混合分布モデルは, 潜在クラスモデル, 教師なし学習モデルと考えて良い. 有限混合分布モデルは, 分類問題, クラスタリング, 分類学に応用される.

クラスが異なるから効果(応答)も異なると考える.

  • 異なるブドウ品種のワインの特性
  • 健康な人か病気の人
  • 株式市場, “bull”, "bear"マーケット

K-コンポーネントの確率分布 f1,f2,,fKf_1, f_2, \cdots, f_K の混合モデルを次のように定義する.

f(x)=k=1Kλkfk(x)f(x) = \sum_{k=1}^K \lambda_k f_k(x)

ここで λk\lambda_k混合比率といい, λk>0,kλk=1\lambda_k > 0, \sum_k \lambda_k = 1 を満たす.

データの生成は次のように考える.

ZMult(λ1,,λk)XZfZZ \sim \text{Mult}(\lambda_1, \cdots, \lambda_k) \quad X|Z \sim f_Z

確率分布 ff は任意の分布を考えても良いが, 正規分布がよく用いられる.

k-コンポーネントのパラメータベクトルを θk\theta_k とすると

f(x)=k=1Kλkfk(x;θk)f(x) = \sum_{k=1}^K \lambda_k f_k(x;\theta_k)

となり, 混合分布モデルのすべてのパラメータベクトルは, θ=(λ1,,λk,θ1T,,θKT)T\theta = (\lambda_1, \cdots, \lambda_k, \theta_1^T, \cdots, \theta_K^T)^T となる.

識別可能性

各コンポーネントのパラメータベクトル θ\theta の次元を dd とする (θRd)(\theta \in \mathbb{R}^d).

このとき混合分布モデルのパラメータの次元は, θRD,D=dK+K\theta \in \mathbb{R}^D, D = dK + K であるが, 実際は, i=1Kλi=1\sum_{i=1}^K \lambda_i = 1 の制約から, ラムダの自由度が1つ減るため, D=dK+K1D = dK + K - 1 になる.

確率モデルがパラメータ θ\theta に対して一意に定まることを識別可能という.

θ1θ2f(x;θ1)f(x;θ2)\theta_1 \neq \theta_2 \Leftrightarrow f(x;\theta_1) \neq f(x;\theta_2)

例えば, ラベルスイッチングがあり, K=2.λ1=0.3,λ2=0.7,θ1=(μ1,σ1)T,θ2=(μ2,σ2)TK = 2. \lambda_1 = 0.3, \lambda_2 = 0.7, \theta_1 = (\mu_1, \sigma_1)^T, \theta_2 = (\mu_2, \sigma_2)^Tλ1=0.7,λ2=0.3,θ1=(μ2,σ2)T,θ2=(μ1,σ1)T\lambda_1 = 0.7, \lambda_2 = 0.3, \theta_1 = (\mu_2, \sigma_2)^T, \theta_2 = (\mu_1, \sigma_1)^T 混合比率と確率モデルを入れ替えて表現した確率モデルが同じモデルになるため, 識別可能ではない

黒線: N(0,12)N(0, 1^2), 赤線: N(5,22)N(5, 2^2)

混合比率 λ\lambda を変えることで, 様々な形状の2峰分布を得ることができる. 図はそれぞれ第1コンポーネントの割合を0.3, 0.2, 0.1とした場合.

第1コンポーネントの割合を0.1とした場合は, このような2峰性ではなく, 非対称性を表している.

色彩強度の混合モデルによる推定

ワインデータは3個のクラスで構成されたデータ. 色彩強度(color intensity)のみを特徴量とした.

色彩強度の分布を三つの正規分布の混合モデルで表現できたことが分かった.

完全データの対数尤度

観測値のベクトルを X=(X1,,Xn)\mathbf{X} = (X_1, \cdots, X_n) とし, 潜在変数のベクトルを Z=(Z1,,Zn)\mathbf{Z} = (Z_1, \cdots, Z_n) とする.

h(x,zθ)h(\mathbf{x}, \mathbf{z}|\theta)Z\mathbf{Z}Z\mathbf{Z} の同時密度とし, k(zθ,x)k(\mathbf{z}|\theta, \mathbf{x}) を観測値が与えられたときの潜在変数の条件付き密度とする. g(x)g(\mathbf{x})X\mathbf{X} の同時密度とすれば, 条件付き密度関数の定義から k(zθ,x)k(\mathbf{z}|\theta, \mathbf{x}) は次のように与えられる.

k(zθ,x)=h(x,zθ)g(x)k(\mathbf{z}|\theta, \mathbf{x}) = \frac{h(\mathbf{x}, \mathbf{z}|\theta)}{g(\mathbf{x})}

観測値に基づく尤度関数を L(θx)=g(xθ)L(\theta | \mathbf{x}) = g(\mathbf{x} | \theta) とし, 完全尤度を次のように定義する.

Lc(θx,z)=h(x,zθ)L^c(\theta|\mathbf{x}, \mathbf{z}) = h(\mathbf{x}, \mathbf{z}|\theta)

完全尤度の情報を使って, 尤度関数を最大化するパラメータ θ\theta を求めたい

EMアルゴリズム(Expectation-Maximum)

θ0Ω\theta_0 \in \Omega に対して,

logL(θx)=Eθ0[logLc(θx,Z)θ0,x]Eθ0[logk(Zθ,x)θ0,x]\log L(\theta|\mathbf{x}) = E_{\theta_0}[\log L^c (\theta|\mathbf{x}, \mathbf{Z})|\theta_0, \mathbf{x}] - E_{\theta_0}[\log k (\mathbf{Z}|\theta, \mathbf{x})|\theta_0, \mathbf{x}]

最後の期待値は条件付き密度 k(zθ0,x)dzk(\mathbf{z}|\theta_0, \mathbf{x})d\mathbf{z} の下で計算している.

上式の第1項を

Q(θθ0,x)=Eθ0[logLc(θx,Z)θ0,x]Q(\theta | \theta_0, \mathbf{x}) = E_{\theta_0}[\log L^c (\theta|\mathbf{x}, \mathbf{Z})|\theta_0, \mathbf{x}]

と定義すれば, これはEMアルゴリズムにおけるE-ステップに相当する.

問題は, 尤度 L(θx)L(\theta|\mathbf{x})最大化だった. このことは, E-ステップを最大化することで到達可能. これをEMアルゴリズムにおけるM-ステップという.

初期値ベクトル θ(0)\theta^{(0)} から始めて, Q(θθ(0),x)Q(\theta | \theta^{(0)}, \mathbf{x}) を最大にする θ\thetaθ^(1)\hat{\theta}^{(1)} とし, 収束するまで繰り返すアルゴリズムをEMアルゴリズムという.

EMアルゴリズム: mm 番目の推定値を θ^(m)\hat{\theta}^{(m)} とする. (m+1)(m + 1) 番目の推定値は次のようにして計算する.

Eステップ: 次を計算する.

Q(θθ^(m),x)=Eθ^(m)[logLc(θx,Z)θ^(m),x]Q(\theta | \hat{\theta}^{(m)}, \mathbf{x}) = E_{\hat{\theta}^{(m)}}[\log L^c (\theta|\mathbf{x}, \mathbf{Z})|\hat{\theta}^{(m)}, \mathbf{x}]

Mステップ:

θ^(m+1)=arg maxQ(θθ^(m),x)\hat{\theta}^{(m+1)} = \argmax Q(\theta | \hat{\theta}^{(m)}, \mathbf{x})

次の定理は, ステップを繰り返すことに尤度は必ず増加することを述べたもの.

EMアルゴリズムによって得られる推定値の系列 θ^(m)\hat{\theta}^{(m)} は必ず L(θ^(m+1)x)L(θ^(m)x)L(\hat{\theta}^{(m+1)} | \mathbf{x}) \geq L(\hat{\theta}^{(m)} | \mathbf{x}) を満たす

2コンポーネントの正規混合モデルの推定

確率変数 Y1Y_1N(μ1,σ12)N(\mu_1, \sigma_1^2) に従い, Y2Y_2N(μ2,σ22)N(\mu_2, \sigma_2^2) に従うとする. ZZY1,Y2Y_1, Y_2 と独立はベルヌーイ試行を表す確率変数とし, その成功確率を π=P(Z=1)\pi = P(Z = 1) とする. 観測値は, 2コンポーネントの混合正規分布モデルで X=(1Z)Y1+ZY2X = (1 - Z)Y_1 + ZY_2 とする.

推定すべきパラメータベクトルは θ=(μ1,μ2,σ12,σ22,π)\theta = (\mu_1, \mu_2, \sigma_1^2, \sigma_2^2, \pi) である.

標準正規分布の密度関数を ϕ(z)\phi(z) とすると, XX密度関数は次のとおり

f(x)=(1π)f1(x)+πf2(x),fj=1σjϕ(xμjσj)f(x) = (1 - \pi)f_1(x) + \pi f_2(x), \quad f_j = \frac{1}{\sigma_j} \phi (\frac{x - \mu_j}{\sigma_j})

標本データ X=(X1,,Xn)\mathbf{X} = (X_1, \cdots, X_n) を得たき対数尤度関数は次のとおり

l(θx)=i=1nlog[(1π)f1(xi)+πf2(xi)]\mathcal{l}(\theta | \mathbf{x}) = \sum_{i=1}^n \log [(1 - \pi)f_1(x_i) + \pi f_2(x_i)]

ii 番目の観測値に対応する潜在変数を次のように定義する.

Zi={0,Xiが密度関数f1(x)を持つ時1,Xiが密度関数f2(x)を持つ時\begin{aligned} Z_i = \begin{cases} 0, \quad X_i \text{が密度関数} f_1(x) \text{を持つ時} \\ 1, \quad X_i \text{が密度関数} f_2(x) \text{を持つ時} \end{cases} \end{aligned}

完全尤度は次のようになる.

Lc(θx,z)=Zi=0f1(xi)Zi=1f2(xi)L^c(\theta | \mathbf{x}, \mathbf{z}) = \prod_{Z_i=0} f_1(x_i) \prod_{Z_i=1} f_2(x_i)

これより, 対数完全尤度関数は次のとおり

lc(θx,z)=Zi=0logf1(xi)+Zi=1logf2(xi)=i=1n[(1zi)logf1(x1)+zilogf2(xi)]\begin{aligned} l^c(\theta | \mathbf{x}, \mathbf{z}) &= \sum_{Z_i=0} \log f_1(x_i) + \sum_{Z_i=1} \log f_2(x_i) \\ &= \sum_{i=1}^n [(1 - z_i) \log f_1(x_1) + z_i \log f_2(x_i)] \end{aligned}

Eステップでは, θ(0)\theta^{(0)} の下で, x\mathbf{x} を与えたときに, ZiZ_i の条件付き期待値を計算しないといけない.

Eθ0[Ziθ(0),x]=P(Zi=1θ(0),x)E_{\theta_0} [Z_i | \theta^{(0)}, \mathbf{x}] = P(Z_i = 1 | \theta^{(0)}, \mathbf{x})

この期待値の推定量には次のものを用いる.

γi=π^f2(xiθ(0))(1π^)f1(xiθ(0))+π^f2(xiθ(0))\gamma_i = \frac{\hat{\pi} f_2(x_i|\theta^{(0)})}{(1 - \hat{\pi}) f_1(x_i | \theta^{(0)}) + \hat{\pi} f_2 (x_i | \theta^{(0)})}

ziz_i の代わりに γi\gamma_i を使えば, Mステップの目的関数は次のようになる.

Q(θθ(0),x)=i=1n[(1γi)logf1(xi)+γilogf2(xi)]Q(\theta | \theta^{(0)}, \mathbf{x}) = \sum_{i=1}^n [(1 - \gamma_i) \log f_1(x_i) + \gamma_i \log f_2 (x_i)]

この最大化は, μ1\mu_1 に関して偏微分係数を計算し, それが0となる μ1\mu_1 について解けば陽に解が得られる.

Qμ1=i=1n(1γi)(12σ12)(2)(xiμ1)\frac{\partial Q}{\partial \mu_1} = \sum_{i=1}^n (1 - \gamma_i)(-\frac{1}{2\sigma_1^2})(-2)(x_i - \mu_1)

これより, Mステップで得られる解は,

μ1^=i=1n(1γi)xii=1n(1γi),μ2^=i=1nγixii=1nγi\hat{\mu_1} = \frac{\sum_{i=1}^n (1 - \gamma_i)x_i}{\sum_{i=1}^n (1 - \gamma_i)}, \qquad \hat{\mu_2} = \frac{\sum_{i=1}^n \gamma_i x_i}{\sum_{i=1}^n \gamma_i}

σ12^=i=1n(1γi)(xiμ1^)2i=1n(1γi),σ22^=i=1nγi(xiμ2^)2i=1nγi\hat{\sigma_1^2} = \frac{\sum_{i=1}^n (1 - \gamma_i) (x_i - \hat{\mu_1})^2}{\sum_{i=1}^n (1 - \gamma_i)}, \qquad \hat{\sigma_2^2} = \frac{\sum_{i=1}^n \gamma_i (x_i - \hat{\mu_2})^2}{\sum_{i=1}^n \gamma_i}

γi\gamma_iP(Zi=1θ(0),x)P(Z_i = 1 | \theta^{(0)}, \mathbf{x}) の推定値なので, その平均 π^=n1i=1nγi\hat{\pi} = n^{-1} \sum_{i=1}^n \gamma_iπ=P(Zi=1)\pi = P(Z_i = 1) の推定値である.

識別器の組み合わせによる性能評価

最近, 複数の識別器を組み合わせる方法が提案されていて, 本章では, 決定木を組み合わせた方法を紹介する.

組み合わせ方法には, 学習データのブートストラップを用いて複数の識別器を構成し, それらの多数決で識別するバギングという手法がある. もう一つは, 誤った学習データを次の識別器で重点的に学習させ, これを逐次行うアダブーストという手法を紹介する.

ランダムフォレストは決定木のノードをランダムに選択する手法でバギングを改良する.

ノーフリーランチ定理

ノーフリーランチ定理: すべての識別問題に対して, ほかの識別機より識別性能が良い識別器は存在しない

決定木

階層(stratifying)や区分(segment)を使って特徴ベクトルの空間を簡単な領域に分割する. 領域に分割する法則が木構造になるので, 決定木(desicion-tree)による方法という.

木を構成する要素はノードとノードを結ぶリンク. 木の一番上にあるノードを, 木の始まりという意味で根ノードという. 終端ノードあるいは葉ノードは, 分岐の最終ノードのこと.

学習方法は, ボトムアップ的な手法トップダウン的な手法がある.

決定木と線形モデル

心臓病データ

胸痛(chest pain)を訴える303患者のHDの2値データ. Yesは血管造影(angiographic)テストによる心臓疾患の持ち主で, Noは心臓疾患ではない患者. 心臓や肺機能に関するデータや, Age, Sex, Chol 等の13個の予測子がある. 交差確認法より6個の最終節を持つ木が選択された.

トップダウン的な手法

トップダウン的な手法は, まず根ノードですべての学習データをできるだけ誤りの少ないようにクラス分けできる特徴軸を探して特徴空間を 2分割する規則を求める. さらに分割された空間を2分割する規則を求めることを繰り返す手法. 分割統治法と呼ばれる.

トップダウン的な手法で決定木を学習データから構成するためには, 次の要素について考える必要がある.

  1. トップダウン法に必要な要素
  2. 各ノードにおいて特徴空間分割規則構成するための特徴軸としきい値の選択
  3. 終端ノードの決定. 大きくなった木の剪定をどこまで行うか?
  4. 終端ノードに対する多数決によるクラスの割当

決定木の学習方法には, CART, ID3, C4.5と呼ばれるものがある. ここではCARTを中心に説明する.

決定木に関する諸定義

木は, 0でない有限個の正の整数からなる有限の集合 TT と, tTt \in T から T{0}T \cup \lbrace 0 \rbrace への2つの関数left() と right() で構成される. lerft() と right() は左側, 右側の次ノード番号を与える関数.

木が満たす性質:

  1. tTt \in T について, left(t) = right(t) = 0 (最終ノード) か, left(t) > t かつ right(t) > t(非最終ノード) のいずれかが成り立つ.
  2. tTt \in T について, T 内の最小数 (根ノード) を除いて, t = left(s) または t = right(s) のどちらかを満たすただ一つの sTs \in T が存在する. s を親ノード, t を子ノードといい, s = parent(t) で表す.

ノード分割規則

各ノードにおける dd 次元特徴空間の最適な分割は, 特徴軸ごとに可能な考えうる分割を不純度とよばれる評価関数で評価して選択する.

ノード tt の不純度を

I=ϕ(P(C1  t),,P(Ck  t))\mathcal{I} = \phi(P(C_1 \ |\ t), \cdots, P(C_k \ |\ t))

で定義する. ここで関数 ϕ(z1,,zK)\phi(z_1, \cdots, z_K) は, zi0,i=1Kzi=1z_i \geq 0, \sum_{i=1}^K z_i = 1 で, 次の3つを満たす.

  1. ϕ()\phi() はすべての i=1,,Ki = 1, \cdots, K に対して, zi=1/Kz_i = 1/K のときに最大になる.
  2. ϕ()\phi() は, ある ii について zi=1z_i = 1 となり, jij \neq i のときはすべて zj=0z_j = 0, ただ一つのクラスに定まるとき最小になる.
  3. ϕ()\phi()z1,,zKz_1, \cdots, z_K に関して対称な関数である.
ノード t における誤り率

ノード t における誤り率

I(t)=1=maxtP(Ci  t)\mathcal{I}(t) = 1 = \max_t P(C_i \ |\ t)

交差エントロピーまたは逸脱度

交差エントロピーまたは逸脱度

I(t)=i=1KP(Ci  t)lnP(Ci  t)\mathcal{I}(t) = -\sum_{i=1}^K P(C_i \ |\ t) \ln P(C_i \ |\ t)

ジニ係数

ジニ係数

I(t)=1i=1KP2(Ci  t)=i=1KP(Ci  t)(1P(Ci  t))\mathcal{I}(t) = 1 - \sum_{i=1}^K P^2(C_i \ |\ t) = \sum_{i=1}^K P(C_i \ |\ t)(1 - P(C_i \ |\ t))

ノード tt で分割を作るとき, 不純度の減り方が一番大きな分割を選べば良い

木の剪定

不純度が最小, あるいは十分小さくなるまで木を成長させ, 次に誤り率木の複雑さできまる許容範囲まで木を剪定する.

終端ノード tT~t \in \tilde{T} における誤り数 M(t)M(t) は終端ノードに属する学習データのうち事後確率を最大にしない学習データ数なので, このノードの誤り率は R(t)=M(t)NR(t) = \frac{M(t)}{N} である. NN は総学習データ数.

木全体での誤り率は次のようになる

R(T)=tT~R(t)R(T) = \sum_{t \in \tilde{T}} R(t)

木の複雑さを終端ノードの数で評価する: 木 TT のノード数を T|T| とすると, 終端ノード数は T~|\tilde{T}| となる.

複雑さのコストを α\alpha とすれば, 一つの終端ノードにおける誤り率と複雑さのコストの和で木全体のコストを評価できる.

Rα(T)=tT~Rα(t)=R(T)+αT~R_{\alpha}(T) = \sum_{t \in \tilde{T}} R_{\alpha}(t) = R(T) + \alpha |\tilde{T}|

木のコスト Rα(T)R_{\alpha}(T)最小にすれば良い.

バギング(bagging)

Bagging:用的是随机有放回的选择训练数据然后构造分类器,最后组合

バギングは, 学習データのブートストラップサンプルを用いて複数の学習器を学習させ, それらの識別器の多数決で入力データのクラスを予測する.

個々の識別器の性能はランダム識別器よりも少し良ければいいので, 弱識別器と呼ばれる.

複数の決定木から多数決をとることで, 決定木よりも安定した精度の良い識別器が構成できる.

決定木は, 学習データの少しの変化で識別器の性能が大きく変化してしまう不安定な識別器だった.

識別器のバラツキはブートストラップサンプルのバラツキが反映されるので, 決定木間の相関が高くなり, 性能が似る.

アダブースト(AdaBoost)

AdaBoost是英文"Adaptive Boosting"(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。

ブースティングは, 複数の弱識別器を用意して, 学習を直列的にし,前の弱識別器の学習結果を参考にしながら, 一つずつ弱識別器を学習する方法.

各弱識別器は, 学習データに対する誤り率が ϵ12γ(γ>0)\epsilon \leq \frac{1}{2} - \gamma(\gamma > 0) を満たすように学習が行われる. 代表的なブースティングアルゴリズムにアダブーストがある.

アダブーストでは, 弱識別器の学習結果に従って学習データに重みが付く. 誤った学習データに対して重みを大きくし, 正しく識別された学習データに対する重みを小さくすることで, 集中的に誤りの多い学習データを学習する.

  • EmE_m は誤った学習データの正規化された重みの和なので, 誤差が小さいほど大きな値になる
  • (3)の YM(x)Y_M (\mathbf{x}) の計算では, 誤りの小さな ym(x)y_m(\mathbf{x}) に大きな重みを与えている
  • 重みの更新では, 正しく識別された学習データの重みは更新されないが, 誤った学習データの重みが expαm>1\exp \alpha_m > 1 倍になる.
  • 評価関数 EmE_m を変えることで, 勾配ブースティングなどに発展していく.

AdaBoost的优点:

  1. Adaboost提供一种框架,在框架内可以使用各种方法构建子分类器。可以使用简单的弱分类器,不用对特征进行筛选,也不存在过拟合的现象
  2. Adaboost算法不需要弱分类器的先验知识,最后得到的强分类器的分类精度依赖于所有弱分类器。无论是应用于人造数据还是真实数据,Adaboost都能显著的提高学习精度
  3. Adaboost算法不需要预先知道弱分类器的错误率上限,且最后得到的强分类器的分类精度依赖于所有弱分类器的分类精度,可以深挖分类器的能力。Adaboost可以根据弱分类器的反馈,自适应地调整假定的错误率,执行的效率高
  4. Adaboost对同一个训练样本集训练不同的弱分类器,按照一定的方法把这些弱分类器集合起来,构造一个分类能力很强的强分类器,即“三个臭皮匠赛过一个诸葛亮”

AdaBoost的缺点:

  1. 在Adaboost训练过程中,Adaboost会使得难于分类样本的权值呈指数增长,训练将会过于偏向这类困难的样本,导致Adaboost算法易受噪声干扰。此外,Adaboost依赖于弱分类器,而弱分类器的训练时间往往很长

ランダムフォレスト(random forests)

随机森林在bagging基础上做了修改。基本思路是:

  1. 从样本集中用Bootstrap采样(有放回的采样)选出n个样本(重采样)
  2. 从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树
  3. 重复以上两步m次,即建立了m棵CART决策树
  4. 这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类

随机性在于n个样本的随机,及其k个特征属性的选择,这两个随机

バギングの問題点として, ブートストラップサンプルによる生成のため決定木間の相関が高くなる.

MM 個の確率変数の任意の2つの確率変数間に正の相関 ρ\rho がある場合, 標本平均の分散は

Var(X)=1ρMσ2+ρσ2\text{Var}(\overline{X}) = \frac{1 - \rho}{M}\sigma_2 + \rho \sigma_2

となる. ブートストラップサンプル数の MM を増やせば, 第1項は減少するが第2項は減少しない.

ランダムフォレストは ρ\rho を減らす仕組みを入れてバギングを強化した手法.

ランダムフォレストの学習アルゴリズムは, 決定木の各非最終ノードにおいて, 識別に用いる特徴をあらかじめ決められた数だけランダムに選択すること.

ランダムフォレストを用いると, 森のサイズによる誤り率の変化や, 特徴の重要さに関する情報, 学習データ間の近さに関する情報を得ることができる.

ランダムフォレストによるデータ解析

Out-of-Bag(OOB)誤り率とは, 学習に使われなかった決定木を集めて部分木を構成して, その学習データをテストデータにして誤り率を評価したものである.

特徴量 xx が識別にどのように寄与しているかを調べるのに部分依存グラフを使う.

ii 番目の学習データの分析対象の変数を xx と置き換えて, 以下を計算する.

fk(x)=i=1N(lnpk(xi(x))1Kj=1Nlnpj(xi(x)))f_k(x) = \sum_{i=1}^N (\ln p_k(\mathbf{x}_i^{(x)}) - \frac{1}{K} \sum_{j=1}^N \ln p_j(\mathbf{x}_i^{(x)}))

ii 番目と jj 番目の学習データが, OOB で同じ終端ノードに分類される木であれば, N××NN ×\times N近接行列(i,j),(j,i)(i, j), (j, i) 要素に1を加える.

この近接行列を多次元尺度構成法により2次元に射影する. アヤメデータについて学習データ間の近さを表す近接グラフをプロットした

あやめデータによる性能評価

setosa と virginica を1つのクラスに, versicolor をもう1つのクラスにした2クラスの識別問題を考える. 特徴量は, 4変数すべて使い, 10分割交差検証法による汎化誤差を推定した.

決定木 バギング アダブースト ランダムフォレスト
誤り率 0.16 0.053 0.04 0.04

どの手法でも木は最大に成長させ, 剪定はしていない. アダブーストとランダムフォレストが最も良い結果となっている.

总结-机器学习与数据挖掘

问题

  • 分类
  • 聚类
  • 回归
  • 异常检测
  • 自动机器学习
  • 关联规则
  • 强化学习
  • 结构预测
  • 特征学习
  • 线上机器学习
  • 无监督学习
  • 半监督学习
  • 排序学习
  • 语法归纳

监督式学习(分类・回归)

  • 决策树
  • 集成(装袋,提升,随机森林)
  • k-NN
  • 线性回归
  • 朴素贝叶斯
  • 神经网络
  • 逻辑回归
  • 感知器
  • 支持向量机(SVM)
  • 相关向量机(RVM)

聚类

  • BIRCH
  • 层次
  • k-平均
  • 期望最大化(EM)
  • DBSCAN
  • OPTICS
  • 均值飘移

降维

  • 因子分析
  • CCA
  • ICA
  • LDA
  • NMF
  • PCA
  • LASSO
  • t-SNE

结构预测

  • 概率图模型(贝叶斯网络,CRF, HMM)

异常检测

  • k-NN
  • 局部离群因子

神经网络

  • 自编码
  • 深度学习
  • 多层感知机
  • RNN
  • 受限玻尔兹曼机
  • SOM
  • CNN

强化学习

  • Q学习
  • SARSA
  • 时序差分学习
  • 深度强化学习

理论

  • 偏差/方差困境
  • 计算学习理论
  • 经验风险最小化
  • PAC学习
  • 统计学习
  • VC理论

参考文献