6.3K Views
March 27, 23
スライド概要
大学院生向けの線形識別モデルのスライドです.BishopのDeep Learning Foundations and Conceptsも参考にしています.
分類 公⽴⼩松⼤学 藤⽥ ⼀寿 Ver.20240221 BishopのPRMLとDeep Learning Foundations and Conceptsを参考にしています. 途中式は書いてあります.
導⼊
分類 訓練データ • 分類とは入力を離散クラスに選り分けるこ とである. 覚えた B A • 予めクラスに分けられたデータ(答えが分 かっているデータ)を用い機械はデータを 分類するルールを学習する . A A A • 機械は分類ルールをデータを分ける線 (面)として獲得する.データを分ける線 を決定境界という. B B B データを分ける線(決定境界) Bだと思う • 分類ルールを獲得した機械は未知のデータ に対しても,正しく分類できるかもしれな い. 未知のデータ
線形識別モデル • ここで線形識別モデルを考える. • 線形識別モデルとは,𝐷 次元⼊⼒空間に対して,⼊⼒ベクトル𝒙を未知数とする⽅程 式で表される決定⾯(決定境界)が,𝐷−1次元の超平⾯で定義されるものである. • 要するに決定境界を線形関数で表現する. • 線形決定⾯により正しく識別できるデータ集合を線形識別可能という. • ⼊⼒ベクトルから直接クラスを推定する関数を識別関数という. B A A データは2次元 A A B B B 決定境界は1次元
⼀般化線形モデル • 最も簡単な線形モデルは次のように書ける. • 𝑦 𝒙 = 𝒘! 𝒙 + 𝑤" • 分類問題では,離散値であるクラスラベルを予測する(もしくは0から1のクラ スに所属する確率を予測する)ため,線形関数を⾮線形関数𝑓(⋅)によって変換 するように⼀般化する. • 𝑦 𝒙 = 𝑓 𝒘! 𝒙 + 𝑤" • 𝑓(⋅)を活性化関数という. • この式で表現されるモデルのクラスを⼀般化線形モデルと呼ぶ(PRLM p178). 決定境界は 𝑦 𝒙 = 定数で書ける.つまり 𝒘! 𝒙 + 𝑤" = 定数となる.つまり,⾮線 形な活性化関数を使おうとも決定境界は線形関数となる.
データ • データ𝑋はデータ点𝒙# で構成される.𝑋 = {𝒙$ , … , 𝒙# , … , 𝒙% } • データ点𝒙# は𝑑次元ベクトルである.𝒙# ∈ 𝑅 & • データ点𝒙# それぞれ⼀つの離散クラス𝐶' に割り当てられる.ただし,𝑘 = 1, … , 𝐾である. クラス𝐶# クラス𝐶$ B A 𝒙# A A A 𝒙$ B B B 𝒙%
所属クラスの表し⽅(2クラス問題) • データ点𝒙# が所属するクラスを𝑡# で表す. • 𝑡# は2値変数である. • 2クラス分類問題(クラスが2つしかない)の場合,データ点𝒙# がクラス𝐶$ に 所属しているとき𝑡# = 1であり,クラス𝐶( に所属しているとき𝑡# = 0と表現で きる. クラス𝐶" クラス𝐶! B A 𝑡# = 1 𝒙# A A A 𝒙$ B B B 𝒙% 𝑡# = 0
所属クラスの表し⽅(Kクラス問題, 𝑲 > 𝟐) • クラスが𝐾個ある場合は所属するクラスを 𝐾次元ベクトル𝒕# で表す. • 所属するクラスが𝐶' ならば𝒕% の𝑘番⽬の要素が1で,それ以外は0とする.この ような表記法を1-of-𝐾 codingという. • 例えば,3クラス分類問題の場合,データ点𝒙# がクラス𝐶$ に所属しているとき 𝒕# = 1,0,0 ) となる.
𝒕𝒏 と⽬標変数 • 𝒕# の要素の総和は1で規格化されているため,確率と解釈することができる. • 識別問題では⼊⼒𝒙# に対し𝒕# を予測することになる. • つまり,𝒕# が⽬標変数となる. • 訓練データは𝒙# と対となる𝒕# となっており, 識別問題では𝒙# から𝒕# を推定す る識別関数を構築することが⽬的となる.
2クラス問題
2クラス問題 • データを2つのクラスに分ける問題を考える. • 最も簡単な線形識別関数は次のように与えられる. • 𝑦 𝒙 = 𝒘! 𝒙 + 𝑤" • 𝒘は重みベクトルと呼ばれ,𝑤" はバイアスパラメタと呼ばれる. • 𝑦 𝒙 ≥ 0なら,𝒙はクラス𝐶$ に割り当てられ,それ以外の場合はクラス𝐶( に割 り当てられる. • 𝑦 𝒙 = 0の直線が決定境界となる. 𝑦 𝒙 =0 クラス𝐶# クラス𝐶$ 決定境界
重みベクトルの⽅向 • 識別関数𝑦 𝒙 = 𝒘! 𝒙 + 𝑤" の重みベクトルはどの⽅向に向いているか. • 𝑦 𝒙 = 0の直線上の2点𝒙$ , 𝒙( を考える. • 当然𝑦 𝒙$ = 𝑦 𝒙( = 0であるから, • 𝒘) 𝒙$ + 𝒘" = 𝒘) 𝒙( • よって • 𝒘) + 𝒘" 𝑥" 決定境界 𝒙# − 𝒙$ 𝒙! 𝒘 𝒙" 𝒙$ − 𝒙( = 0 • ベクトル𝒙$ − 𝒙( は決定境界と同じ向きなので,𝒘と𝒙$ − 𝒙( の内積が0というこ とは𝒘は決定境界に対し垂直であることを意味する.. 𝑥!
原点から決定境界までの距離 • 𝒘と同じ⽅向で𝑦 𝒙 = 𝒘( 𝒙 + 𝑤" = 0 の直線上の点𝒙は次のように表せる. 𝑥" • 𝒙 = 𝑎𝒘 • これを直線の式に代⼊すると • 𝑎𝒘( 𝒘 + 𝑤" = 0 • 𝑎𝒘( 𝒘 = −𝑤" • 𝑎=− )# 𝒘 𝒘 $ • よって 𝒙 は • 𝒙 =− • 𝐰 ‖𝒘‖ )# 𝒘 ) 𝐰 # $ 𝐰 = − ‖𝒘‖ ‖𝒘‖ は単位ベクトルなので,𝒙の⼤きさ,すなわち原点から直線への距離𝑑は ) # • 𝑑 = − ‖𝒘‖ • よって, バイアスパラメタ𝑤" は決定境界の位置を決める. 𝒙 = 𝑎𝒘 −𝑤% ‖𝒘‖ 𝑥! 𝒘# 𝒙 + 𝑤% = 0
任意の点𝒙と線形識別関数 • 点𝒙を考える.𝒙を識別境界に射影した点を𝒙% とすると𝒙は次のように書ける. 𝒘 • 𝒙 = 𝒙% + 𝑟 ‖𝒘‖ 𝑥" ( • 𝑦 𝒙% = 𝒘 𝒙% + 𝑤) = 0より 𝒘 • 𝒘( 𝒙 − 𝑟 ‖𝒘‖ + 𝑤) = 0 • 𝒘( 𝒙 − 𝑟 ( 𝒘! 𝒘 ‖𝒘‖ 𝒙 𝑟 + 𝑤) = 0 • 𝒘 𝒙 + 𝑤) = 𝑦 𝒙 = 𝑟 𝒘 𝒘 𝟐 ‖𝒘‖ • よって • 𝑟= * 𝒙 𝒘 • つまり, 𝑦 𝒙 を 𝒘 で割ったものは識別境界から𝒙までの距離を表す. 𝒘 ‖𝒘‖ 𝒙1 −𝑤% ‖𝒘‖ 𝑥! 𝒘# 𝒙 + 𝑤% = 0
線形識別関数のより簡単な表現 • ダミー⼊⼒𝑥" = 1を導⼊すると線形識別関数は次のように書ける. , • 𝑦 𝒙 = 𝒘! 𝒙 + 𝑥" 𝑤" = ∑, *+$ 𝑤* 𝑥* +𝑥" 𝑤" = ∑*+" 𝑤* 𝑥* >= > = 𝑤" , 𝒘 とし,⼊⼒をダミー⼊⼒を含めた 𝒙 • 重みをバイアスを含めた𝒘 𝑥" , 𝑥 とすると線形識別関数は次のように簡単になる. > >) 𝒙 • 𝑦 𝒙 =𝒘
おまけ:ベクトルの計算 内積と余弦 ピタゴラスの定理より 𝒂 − 𝒃 " = ‖𝒂‖ − 𝒃 𝒂−𝒃 - 𝒂−𝒃 = 𝒂 "−2 𝒂 𝒃 𝒂- 𝒂 − 2𝒂- 𝒃 + 𝒃- 𝒃 = 𝒂 " − 2 𝒂 𝒂 " − 2𝒂- 𝒃 + 𝒃 " = 𝒂 −2𝒂- 𝒃 = −2 𝒂- 𝒃 = 𝒂 cos 𝜃 " + 𝒂 " sin" 𝜃 cos 𝜃 + 𝒃 " cos " 𝜃 + 𝒃 " sin" 𝜃 𝒃 cos 𝜃 + 𝒃 " sin" 𝜃 + cos " 𝜃 " − 2 𝒂 𝒃 cos 𝜃 + 𝒃 " 𝒂 𝒃 cos 𝜃 𝒃 cos 𝜃 𝑏 𝑎−𝑏 𝑏 sin 𝜃 ベクトル𝑏のベクトル𝑎への射影𝑏∥/ 𝒂 𝒂- 𝒃 𝒂 𝒂1 𝒃 𝒂 𝒃∥𝒂 = 𝒃 cos 𝜃 = 𝒃 = ‖𝒂‖ 𝒂 ‖𝒃‖ ‖𝒂‖ 𝒂 ‖𝒂‖ よって𝒃∥𝒂の⼤きさは 𝒂3𝒃 𝒂 = 𝒂 𝒃1 𝒂 𝜃 𝒃∥𝒂 𝑏 cos 𝜃 𝑎
多クラス問題
多クラス問題 • 𝐾 = 2の2クラス問題では,⼊⼒ベクトルが決定境界のどちら側にあるかで⼊ ⼒ベクトルのクラスを分けることができた. • 𝐾 > 2の多クラス問題の場合どうするか? • 2クラス識別関数の組み合わせで𝐾クラスの識別をする.
1対他分類器 • データがクラス𝐶' であるか,そうでないかを分類する2クラス分類問題を解く 分類器を考える. • 𝐾クラス分類問題は,この2クラス分類器を𝐾 − 1個利⽤すれば解けるかもし れない. • この⼿法は1対他分類器として知られている. • しかし,この⽅法では曖昧な分類領域が⽣じてしまう. 図は3クラス問題の例. クラス𝐶# であるかないかを分類する分類 器とクラス𝐶$ であるかないかを分類する 分類器で構成されている. ?領域はクラス𝐶# でもあるがクラス𝐶$ で もある謎領域となっている. ? R1 C1 R2 R3 not C1 not C2 C2
1対1分類器 • データがクラス𝐶' であるか,そうでないかを分類する2クラス分類問題を解く 分類器を考える. • 前スライドと異なり,すべての可能なクラスの組の2クラス問題を考える. • この⼿法は1対1分類器として知られている. • この場合も曖昧領域が出来てしまう. C3 C1 図は3クラス問題の例. クラス𝐶# か クラス𝐶$ を分類する分類器, クラ ス𝐶$ か クラス𝐶% を分類する分類器 , クラス𝐶# か クラス𝐶% を分類する分類器 で構成されてい る. ?領域はクラス𝐶# ,クラス𝐶$ ,クラス𝐶% のいず れにも分類されない謎領域となっている. R1 C1 ? C2 R3 C3 R2 C2
うまいやり⽅ • 𝐾個の線形関数で構成される単独の𝐾クラス識別を考えることで曖昧領域が⽣ じる問題を回避できる. • 次の線形関数を考える. • 𝑦' 𝒙 = 𝒘!' 𝒙 + 𝑤'" • すべての𝑗 ≠ 𝑘に対し𝑦' 𝒙 > 𝑦- 𝒙 である場合,データ点𝒙はクラス𝐶' に割り当 てるとする. • このように考えた場合,決定境界は 𝑦' 𝒙 = 𝑦- 𝒙 で与えられる. • 𝒘!' 𝒙 + 𝑤'" = 𝒘-! 𝒙 + 𝑤-" • 𝒘' − 𝒘- 𝒙 + 𝑤'" − 𝑤-" = 0 • つまり,この式が決定境界を表す. Rj Ri Rk xA b x xB
決定理論
決定 • ⼊⼒𝒙と⽬標変数𝑡があり,𝒙の新たな値に対する𝒕を予測する. • 回帰問題では𝒕は連続であり,クラス分類では𝒕はクラスラベルを表す. • 訓練データ集合から𝑝 𝒙, 𝒕 を決めることは推論(inference)の例である. • クラス分類における推論問題は,同時分布𝑝 𝒙, 𝐶' あるいは𝑝 𝒙, 𝒕 を決めるこ とである. • さらにクラス分類では,𝒙が所属するクラスを決定しなければならない.
クラスの選択 • 𝒙がクラスC' に属する確率𝑝 𝐶' 𝑥 をベイズ定理を⽤い表すと次のようになる . • 𝑝 𝐶' 𝒙 = . 𝒙 𝐶' . /+ . 𝒙 • これらの確率は同時分布𝑝 𝒙, 𝐶3 から求まる. • ここで, 𝑝 𝐶' を暮らすの事前確率とし, 𝑝 𝐶' 𝒙 を事後確率とする. • 事後確率 𝑝 𝐶' 𝒙 は,⼊⼒𝑥を得たことによってベイズ定理により修正された クラスの確率と⾒なせる. • 𝒙を誤ったクラスに分類する可能性を最⼩にしたければ,直感的には⾼い 𝑝 𝐶' 𝒙 を持つクラスを選べば良い.
誤り確率の最⼩化 • できるだけ誤識別を少なくすることを⽬標とする. • まず,2クラスの識別問題を考える. • ここで,𝐶' クラスに所属するデータ点𝒙は領域𝑅' に属しているとする. • 各クラスに⼀つずつ対応する領域𝑅3 を決定領域という. • 誤り確率は次のように書ける. • 𝑝 mistake = 𝑝 𝒙 ∈ 𝑅$ , 𝐶( + 𝑝 𝒙 ∈ 𝑅( , 𝐶$ = ∫1 𝑝 𝒙, 𝐶( 𝑑𝑥 + ∫1 𝑝 𝒙, 𝐶$ 𝑑𝑥 , - • この誤り確率が⼩さくなるよう𝒙を割り振りたい. • つまり, 𝑝 𝒙, 𝐶$ > 𝑝 𝒙, 𝐶( ならば𝒙はクラス𝐶$ に割り振るべきである. • 乗法定理から 𝑝 𝒙, 𝐶' = 𝑝 𝐶' ∣ 𝒙 𝑝 𝒙 で,どのクラスでも 𝑝 𝒙 は同じなのだ から𝒙は𝑝 𝐶' ∣ 𝒙 が最も⼤きいクラスに割り振れば良い.
正解率の最⼤化 • 𝑘クラスの識別問題における正解の確率を考える. 2 • 𝑝 correct = ∑2 '+$ 𝑝 𝒙 ∈ 𝑅' , 𝐶' = ∑'+$ ∫1 𝑝 𝒙, 𝐶' 𝑑𝑥 + • 正解の確率は,𝒙を𝑝 𝒙, 𝐶' が最⼤となるクラスに割り当てるように領域𝑅' を 選んだときに最⼤となる. • 乗法定理から 𝑝 𝒙, 𝐶' = 𝑝 𝐶' ∣ 𝒙 𝑝 𝒙 で,どのクラスでも 𝑝 𝒙 は同じなのだ から𝒙は𝑝 𝐶' ∣ 𝒙 が最も⼤きいクラスに割り振れば良い.
識別と損失関数 • 応⽤では単に誤識別を減らせば良いというわけではない. • 例えば,ガンでない⼈にガンと診断する間違いより,ガンの⼈にガンでないと診断 する間違いのほうを減らしたいだろう. • 利⽤可能な決定や⾏動の価値や損失を定式化した損失関数(loss function)もし くはコスト関数(cost function)を定式化することで,例で上げたようなより複 雑な識別問題に対応する . • 損失やコストは⼩さければ⼩さいほうが良いので,⽬標は損失関数の最⼩化と なる.
損失⾏列 • 損失を識別と正解の組み合わせごとに設定することを考える. • 𝐶' クラスに所属する𝒙を識別器が𝐶- クラスであると決定したとしよう. • このときの損失を𝐿'- とすると,これを𝑘, 𝑗成分とする⾏列を考えることが出来 る.この⾏列を損失⾏列𝐿という. • 例えばガンの場合,次のように設定する. 正解 識別結果 ガン 正常 ガン 正常 0 1 1000 0 • この例では,ガンを正常と判断する間違いをなるべく避けたいため,この場合 の損失が極端に⼤きくしている.
期待損失の最⼩化 • 損失を最⼩にするようクラス分けを⾏いたい. • そこで損失の期待値(期待損失)を最⼩にする.損失の期待値は • 𝐸 𝐿 = ∑3 ∑4 ∫5 𝐿34 𝑝 𝒙, 𝐶3 𝑑𝑥 6 𝐶& クラスに所属する𝒙を識別器 が𝐶' クラスであると決定したと しよう. • となる. • 我々の⽬的はこの期待値を最⼩にするよう決定領域𝑅4 を選ぶことになる. • 難しいので𝒙が1つのみの場合考える. 𝒙が𝐶4 クラスに割り当てられたとすると期 待損失は • ∑3 𝐿34 𝑝 𝑥, 𝐶3 = ∑3 𝐿34 𝑝 𝐶3 ∣ 𝑥 𝑝 𝑥 • である. 𝑝 𝑥 は共通なので,𝐸 𝐿 を最⼩にするには∑3 𝐿34 𝑝 𝐶3 ∣ 𝑥 が最⼩となるク ラスに割り当てれば良い.つまりこれが期待損失を最⼩とする決定規則となる.
棄却オプション • クラス分類の間違いが起こるときは, • 𝑝 𝐶7 ∣ 𝑥 の最⼤値が1より著しく⼩さく(つまり条件付き確率はどれも低い),𝒙をどのクラス に割り当ててよいか分からないときか • 同時確率𝑝 𝒙, 𝐶7 が拮抗していて, どのクラスに割り当ててよいか分からないとき • である. • このような場合はクラスを決定するのは難しく,あえて決定を避ける場合もありうる. • 決定するのが難しいとき,決定を避けることを棄却オプション(reject option)という. • 例えば,データのクラス分けを決定するとき,機械学習では判断が難しい場合⼈の専⾨家に判断 を委ねる場合,棄却オプションは有効である. • 棄却オプションは, 𝑝 𝐶/ ∣ 𝒙 の最⼤値が閾値𝜃より⼩さい時,⼊⼒𝒙を棄却することで実現で きる. p(C |x) p(C |x) 1.0 1 2 ✓ 0.0 reject region x
推論と決定 • これまでに扱ったクラス分類は,訓練データからモデル𝑝 𝐶' 𝒙 を学習する 推論段階(inference stage)と,その後に事後確率を使って最適なクラスに割り 当てる決定段階(decision stage)がある. • ⼀⽅で,両⽅の問題を同時に解いて,⼊⼒𝒙から直接決定関数(識別関数)を 単に学習することも考えられる. • つまり,クラス分類のアプローチは幾つか考えられる.
推論と決定のアプローチ • アプローチ1 • まず,各クラス 𝐶7 の条件付き密度𝑝 𝒙 𝐶7 を個別に決める推論問題を解く.事前クラス確率 𝑝 𝐶7 もそれぞれ別に求める.それからベイズ定理 • 𝑝 𝐶7 𝒙 = 8 𝒙 𝐶7 8 9( 8 𝒙 • を使いクラス事後確率𝑝 𝐶7 𝒙 を求める. 𝑝 𝒙 は周辺化により求められる. • 𝑝 𝒙 = ∑7 𝑝 𝒙, 𝐶7 = ∑7 𝑝 𝒙 ∣ 𝐶7 𝑝 𝐶7 • 出⼒だけではなく⼊⼒の分布もモデル化するアプローチは,モデルからサンプリングにより⼊⼒ 空間で⼈⼯データ点を⽣成できるため,⽣成モデルと呼ばれる. • アプローチ2 • 最初に事後クラス確率𝑝 𝐶7 𝒙 を決定する推論問題を解き,次に決定理論を使ってそれぞれの 新たな𝒙をクラスの1つに割り当てる.事後確率を直接モデル化するアプローチは識別モデルと 呼ばれる. • アプローチ3 • 識別関数𝑓(𝒙)を求める.これは各⼊⼒𝒙をクラスラベルに直接マッピングする.例えば,2クラス 問題の場合,𝑓 = 0がクラス𝐶# を表し,𝑓 = 1がクラス𝐶$ を表すように𝑓 ⋅ の値を2値とするだろう. この場合,確率は何の役割も果たさない.
それぞれのアプローチの特徴 • アプローチ1 • 𝒙と𝐶3 の同時分布を⾒つけなければならないため難しい. • 多くの応⽤では,𝒙は⾼次元で,その結果として必要な精度を持つクラスの条件付き 密度を求められる⼤きな訓練セットが必要となるかもしれない. • 周辺分布𝑝 𝒙 が求められるため,外れ値検出に⽤いることができる. • 𝑝 𝒙 が低い𝒙は滅多に発⽣しないので外れ値かもしれない. • アプローチ2 • クラス分類に必要なのは𝑝 𝐶3 𝒙 で,アプローチ2なら直接得られる. • アプローチ1は同時分布𝑝 𝒙, 𝐶7 を推定するために⼤量のデータを消費してしまう. • アプローチ3 • 訓練データは,単純に𝒙を直接クラスラベルに写像する識別関数𝑓 𝒙 を求めるために 使われる. • アプローチ3では𝑝 𝐶3 𝒙 を求めない.
𝑝 𝐶= 𝒙 が欲しい • 事後確率𝑝 𝐶3 𝒙 を求めたい気持ちがある理由 • リスク最⼩化 • 損失⾏列が時間とともに変化するような場合,事後確率が分かっていれば最新の損失⾏列 を使って期待損失を計算し直せば良い. • 棄却オプション • 事後確率があれば,棄却基準(閾値)を決定でき,棄却データに対する誤分類や期待損失 を最⼩化できるだろう. • クラス事前確率の補正 • 例えば病気の診断では,病気の場合が極端に少ないため,すべてのデータに対し健康と決 定するだけで良い精度になってしまう. • それを避けるために,各クラスに対して同じくらいのデータ点数にバランスされたデータ セットを選ぶ⽅法が考えられる. • この⽅法では訓練データに修正を加えた効果を補正する必要がある.
クラス事前確率の補正の詳細 • バランスされたデータセットから得られた事後確率 𝑝# 𝐶$ 𝑥 は • 𝑝# 𝐶$ 𝒙 = % 𝒙 𝐶$ % ) &( %) 𝒙 • 各クラスに含まれるデータ点の数が均等化されているから,𝑝# 𝐶$ と 𝑝# 𝑥 はバランス化されたデータセット 特有の値となる.バランス化されたデータセットのクラス事前確率 𝑝# 𝐶$ で両辺を割ると • 𝐶$ 𝒙 % ) &( %) = % 𝒙 𝐶$ %) 𝒙 • さらに両辺にデータセットのクラス事前確率𝑝 𝐶$ をかけると • %) 𝐶$ 𝒙 % ) &( 𝑝 𝐶$ = % 𝒙 𝐶$ % &( %) 𝒙 = % 𝐶$ 𝒙 % 𝒙 %) 𝒙 • よって事後確率𝑝 𝐶$ 𝒙 は • 𝑝 𝐶$ 𝒙 = %) 𝐶$ 𝒙 % ) &( 𝑝 𝐶$ %) 𝒙 % 𝒙 =𝐶 %) 𝐶$ 𝒙 % ) &( 𝑝# 𝐶$ 𝒙 𝐶=8 𝑝 𝐶$ 𝑝# 𝐶$ $ 𝑝 𝐶$ • 𝐶は規格化定数とみなせば,バランスされたデータセットから得られた事後確率 𝑝# 𝐶$ 𝒙 をクラスの割合 %) 𝐶 𝒙 𝑝# 𝐶$ で割り,データセットのクラスの割合𝑝 𝐶$ を書けた値 % ) &$ 𝑝 𝐶$ を総和が1になるよう規格化した 値が事後確率𝑝 𝐶$ 𝒙 である. (
𝑝 𝐶= 𝑥 が欲しい • モデルの統合 • 複雑な応⽤では,問題をより⼩さな部分問題に分割し,それぞれを別のモジュールで処理したい と思うかもしれない. • 例えば,医療診断では⽪膚画像や⾎液検査から情報が得られるかもしれない. • この場合,⽪膚画像𝒙: と⾎液データ𝒙; を処理するシステムを個別に構築したほうが効果的かもし れない. • 𝒙: と𝒙; それぞれからクラスの事後確率が計算でき, 各クラスを条件とした𝒙: と𝒙; の分布が独⽴ と仮定する. • 𝑝 𝒙: , 𝒙; 𝐶7 = 𝑝 𝒙: 𝐶7 𝑝 𝒙; 𝐶7 • この式は,𝒙: と𝒙; が条件付き独⽴であることを表す. • 𝒙: と𝒙; が両⽅得られたときの事後確率は 𝑝 𝐶7 𝒙: , 𝒙; ∝ 𝑝 𝒙: , 𝒙; 𝐶7 𝑝 𝐶7 ∝ 𝑝 𝒙: 𝐶7 𝑝 𝒙; 𝐶7 𝑝 𝐶7 𝑝 𝐶7 𝒙: 𝑝 𝒙: 𝑝 𝐶7 𝒙; 𝑝 𝒙; 𝑝 𝐶7 𝒙: 𝑝 𝐶7 𝒙; ∝ 𝑝 𝐶7 ∝ 𝑝 𝐶7 𝑝 𝐶7 𝑝 𝐶7 𝐶$ 𝑥( a c 𝑥) • で与えられる. 𝑝 𝐶7 は各クラスのデータ点の数から推定する.当然総和が1になるよう規格化 する必要がある. 𝑝 𝑥 , 𝑥 は通常このモデルでは因数分解できない.確率を求める利点は調整可能なパラメタについて容易に微分可能にでき,購買ベースの最適化⼿法が使えることにある. ! " b
分類器の精度 • 分類器の精度の最も単純な尺度は,テストセットにおける正しく分類されたデータ点の割合だろう. • しかし,損失⾏列の例で⾒た通り,重視したい正答や誤答があるかもしれない. • そこで,がん検診の例をもう⼀度考えてみる. • 検査された各⼈について,ガンであるかどうかの「真のラベル」があり,分類器による予測結果もあ るとする. • ある⼈について分類器が「ガンである」と予測し,そのが「ガンであった」場合 ,その予測はtrue positiveと呼ばれる. • ある⼈について分類器が「ガンである」と予測し,そのが「ガンでない」場合、その予測はfalse positiveで呼ばれる. • Type 1 errorとして知られる. • ある⼈について分類器が「ガンでない」と予測し,そのが「ガンであった」場合 ,その予測はfalse negativeと呼ばれる. • Type 2 errorとして知られる. • ある⼈について分類器が「ガンでない」と予測し,そのが「ガンでない」場合 ,その予測はtrue negativeと呼ばれる.
分類器の精度 • 𝑁 = 𝑁*+ + 𝑁,+ + 𝑁*- + 𝑁,• Accuracyは • Accuracy= • -$%.-$& -$%.-'%.-$&.-'& これはクラス内のデータ点数が不均衡である時,我々を間違いに導くだろう. • Accuracy以外にも次のような指標が使われる. • Precision = • ガンだった positive 𝑁() 𝑁*) ガンでない negative 𝑁*+ 𝑁(+ Negative -$% Positive R1 R2 決定境界 p(x, C1 ) -$% -$%.-'& Recallはガンに罹患している⼈が検査で正 しく検出される確率の推定値である. -'% 真のnegative の分布 これは正常な⼈ががんに罹患していると分類される確率の推定値である. -'% -$%.-'% これは陽性と判定された⼈のうち,実際にはがんに罹患していない⼈の割合を表す。 真の positiveの 分布 p(x, C2 ) B D A -'%.-$& • False discovery rate = • ガンでない negative -$%.-'% • False positive rate = • ガンだった positive これは検査で陽性の⼈が本当にガンに罹患している率の推定値である. • Recall = • 予測したクラス • 𝑁を検査を受けた⼈の総数,𝑁*+ はtrue positiveの数,𝑁,+ はfalse positiveの数,𝑁*- はtrue negativeの数,𝑁,- はfalse negative の数とする. 真のクラス C x0 E x̂ 𝑁=> /𝑁 = 𝐸 𝑁!> /𝑁 = 𝐷+𝐸 𝑁=? /𝑁 = 𝐵+𝐶 𝑁!? /𝑁 = 𝐴+𝐶
ROC curve Negative • 確率的分類器は事後確率を出⼒し,閾値(決定境界)を設定す ることでこれからクラスを決定できる. • 左下隅は,すべてをnegativeクラスに割り当てる分類器を表し, TPはないがFPもない. • 右上隅は,すべてをpositiveクラスに割り当てる分類器を表し, FNはないがTNもない. 真の positiveの 分布 p(x, C2 ) B D A C x0 E x̂ 𝑁*)/𝑁 = 𝐸𝑁*)/𝑁 = 𝐸,𝑁()/𝑁 = 𝐷+𝐸,𝑁*+/𝑁 = 𝐵+𝐶 𝑁(+/𝑁 = 𝐴+𝐶,𝑁()/𝑁 = 𝐷+𝐸 1 True positive rate • 可能な限り最良の分類器はROC図の左上隅の点で表される. 真のnegative の分布 -$% • 上図の決定境界を−∞から∞に移動したときROC curveがト レースされ,ROC curveの累積割合をプロットすることで作成 できる. 決定境界 $%.-'& • このトレードオフをよく理解するためにROC curve (Receiver Operating characteristics)(Fawcett, 2006)をプロットする ことが有⽤である.下図が⽰す通りROC curveはtrue positive 率対false positive率のグラフである. R2 p(x, C1 ) True positive rate = - • 閾値の値を変化させると,type 1 errorを増加させる代わりに type 2 errorの誤差を減少させることができる. Positive R1 False positive rate = - -'% '%.-$& 0 0 False positive rate 1
ROC curve Negative • もう⼀つの指標はF-scoreで,これはAccuracyとPrecisionの幾何平 均である. • 𝐹= $×8ABCDEDFG×ABCHII 8ABCDEDFGJABCHII = $?/0 B D A C x0 E x̂ 𝑁*)/𝑁 = 𝐸𝑁*)/𝑁 = 𝐸,𝑁()/𝑁 = 𝐷+𝐸,𝑁*+/𝑁 = 𝐵+𝐶 𝑁(+/𝑁 = 𝐴+𝐶,𝑁()/𝑁 = 𝐷+𝐸 1 $?/0 J?10 J?12 False positive rate = - -'% '%.-$& 0 ROC curveは2クラス以上の問題にも拡張できるが,クラス数が増えると急速に煩雑になる. 真の positiveの 分布 p(x, C2 ) True positive rate • ROC曲線全体を特徴付ける数値としてArea Under the Curve (AUC)がある.AUCの値が0.5のとき,ランダムな推測を表し, 1.0は完璧な分類器を表す. 真のnegative の分布 -$% • ベースラインとして,各データ点を単純に確率𝜌で癌に確率1 − 𝜌で 正常に割り当てるランダムな分類器を考え𝜌の値を変化させると, 下図の斜めの直線で⽰さたROC curveをなぞることになる.対⾓線 より下の分類器はランダムな分類器よりも性能が悪い. 決定境界 $%.-'& • しかし,曲線が交差する場合はどちらが優れているかは操作点の選 択による. R2 p(x, C1 ) True positive rate = - • 下図では,⻘い曲線で表された分類器は,false positive rateをど う選択しても⾚い曲線の分類器よりtrue positive rateは⾼く優れて いる. Positive R1 0 False positive rate 1
フィッシャーの線形識別
フィッシャーの線形識別 • フィッシャーの線形識別は分類を実現する⼿法の⼀つである. • まず2クラス問題を考える. • 𝐷次元の⼊⼒ベクトル𝒙を次の式で1次元に射影するとする. • 𝑦 = 𝒘! 𝒙 • 𝑦に閾値𝑤" を設定し,𝑦 ≥ −𝑤" のとき⼊⼒ベクトルをクラス𝐶$ とし,そうでな い場合はクラス𝐶( とする. • 𝑦 ≥ −𝑤" • 𝑦 + 𝑤" = 𝒘! 𝒙 + 𝑤" ≥ 0 • となるので,この式は先程出てきた識別関数になっている.
射影と重みベクトル 𝒘 • 図のようにデータは元々⻘と⾚の2つのクラスに分離され ていると考えてみよう. • 図のヒストグラムは棒の場所に射影されたデータ点の数 を表す. • 上図のベクトル𝒘に射影した場合と下の図のベクトル𝒘に 射影した場合を考える. • 上図の場合,射影された⻘クラスと⾚クラスに所属する データ点の分布が重なり合っている. • 下図の場合, 射影されたクラスの分布が分離されている . • どちらの𝒘が良いかと⾔えば,射影した後のクラスの分 布が明確に分離されている⽅が良いだろう. 4 2 𝒘 𝒙 0 −2 −2 射影先 2 6 それぞれのクラスの分 布が重なっている. 4 2 0 𝒘 それぞれのクラスの分 布が重なっていない. −2 −2 2 6
フィッシャーの線形識別の⽬標 • 射影した後のデータ点の分布がクラスごとに明確に分離されていれば閾値を適 切に設定すれば正確な識別が可能となる. • よって,フィッシャーの線形識別の⽬標は,クラスの分布が最も分離されてい る𝒘を求める問題となる.
クラスの平均 • クラス𝐶$ には𝑁$ 個の点が所属し,クラス𝐶( には𝑁( 個の点が所属しているとす ると,それぞれのクラスに所属する点の平均ベクトルは • 𝒎$ = $ %, ∑#∈/, 𝒙# , 𝒎( = $ %- ∑#∈/- 𝒙# , • である. 𝑛 ∈ 𝐶$ はクラス𝐶$ に所属する点の番号である. • 射影されたクラスの分離度合いを射影されたクラスの平均の差で測るとする. • 𝑚( − 𝑚$ = 𝒘) 𝒎( − 𝒎$ = 𝒘) 𝒎( − 𝒘) 𝒎$ • ただし,𝑚' = 𝒘) 𝒎' • この値は 𝒘 の⼤きさにも依存しているので, 𝒘は単位ベクトルであるとする .つまり,𝒘! 𝒘 = 𝒘 ( = ∑* 𝑤*( = 1とする.
𝑚> − 𝑚? を最⼤化する𝒘 • 𝑚( − 𝑚$ を最⼤化する𝒘をラグランジュの未定乗数法で求める. • ラグランジュ関数は • 𝐿 = 𝒘) 𝒎( − 𝒎$ + 𝜆(𝒘! 𝒘 − 1) • これを𝒘について微分すると • 𝐿9 = 𝒎( − 𝒎$ + 𝜆𝒘 = 0 • よって • 𝒘=− $ : 𝒎( − 𝒎$ • つまり • 𝒘 ∝ 𝒎( − 𝒎$ • である.
𝑚> − 𝑚? を最⼤化する𝒘で良いのか? • 𝑚( − 𝑚$ を最⼤化する𝒘が識別に良いかというと,そうではない. • 左図と右図を⽐べてみてほしい. • 左図は平均は離れているが,射影された分布は重なっている. • ⼀⽅,右図は平均は近いが,射影された分布は重なっていない. • つまり,𝑚( − 𝑚$ を最⼤化するだけでは不⼗分なのである. 平均は離れているが分布は重なっている 平均は近いが分布は別れている 4 4 2 2 0 0 −2 −2 −2 2 6 −2 2 6
𝒘を求める指標 • フィッシャーは,射影されたデータのクラスの平均の差を⼤きくすると同時に 各クラスの分布の分散を⼩さくする𝒘を求める⽅法を提案した. • 射影されたクラス𝐶' の分布の分散は • 𝑠'( = ∑#∈/+ 𝒘) 𝒙# − 𝑚' ( = ∑#∈/+ 𝑦# − 𝑚' ( • である.さらに,各クラスの分散の総和は𝑠$( + 𝑠(( である. • 射影されたデータのクラスの平均の差を⼤きくなると⼤きくなり,同時に各ク ラスの分布の分散を⼩さくなると⼤きくなるような基準を考えた場合,単純に 次のように書けるだろう. •𝐽 𝑤 = 𝒎-<𝒎, =,->=-- • これがフィッシャーの判別規準である.
判別規準の式変形 𝑚$ − 𝑚# = 𝒎$ − 𝒎# ! 𝒘 $ ! = 𝒘( 𝒎$ − 𝒘( 𝒎# ( 𝒘( 𝒎$ − 𝒘( 𝒎# 𝒎$ − 𝒎# ( 𝒘 = 𝒘( 𝒎$ − 𝒎# 𝒎$ − 𝒎# ( 𝒘 = 𝒘( 𝑺; 𝒘 • ここで 𝑺B = 𝒎" − 𝒎! 𝒎" − 𝒎! 1 とする.𝑺B はクラス間共分散⾏列と呼ぶ. 𝑠#$ + 𝑠$$ = E 𝒘( 𝒙G − 𝑚# ( $ G∈93 + E 𝒘( 𝒙G − 𝑚$ ( G∈9$ $ = E 𝒘( 𝒙G − 𝒘( 𝒎# G∈93 ( $ + E 𝒘( 𝒙G − 𝒘( 𝒎$ ( = ∑G∈93 𝒘 𝒙G − 𝒎# 𝒙G − 𝒎# 𝒘 + ∑G∈9$ 𝒘 𝒙G − 𝒎$ 𝒙G − 𝒎$ 𝒘 = 𝒘( E 𝒙G − 𝒎# 𝒙G − 𝒎# G∈93 • ここで𝑺𝑾 = ∑#∈=K 𝒙# − 𝒎! 𝒙# − 𝒎! ( + E 𝒙 G − 𝒎$ 𝒙 G − 𝒎$ G∈9$ ( 𝒘 G∈9$ = 𝒘( 𝑺𝑾 𝒘 1 + ∑#∈=L 𝒙# − 𝒎" 𝒙# − 𝒎" 1 とする. 𝑺𝑾 は総クラス内共分散⾏列と呼ぶ.よってフィッシャーの判断基準は 𝐽 𝒘 = と書ける. $ 𝒘 3 𝑺M 𝒘 𝒘 3 𝑺N 𝒘
最適な𝒘 𝒘2 𝑺 𝒘 • 𝐽 𝒘 = 𝒘2 𝑺 3𝒘 を𝒘で微分し,これが0のとき 𝐽 𝒘 が最⼤となる. 4 • 𝐽4 = 𝒘2 𝑺4 𝒘 5𝑺3 𝒘6 𝒘2 𝑺3 𝒘 5𝑺4 𝒘 𝒘2 𝑺4 𝒘 5 =0 • よって,次の式を満たすとき 𝐽 𝒘 が最⼤となる. • 𝒘7 𝑺8 𝒘 𝑺9 𝒘 = 𝒘7 𝑺9 𝒘 𝑺8 𝒘 • 次のように式変形する. • 𝒘= 𝒘2 𝑺4 𝒘 𝒘2 𝑺3 𝒘 𝑺6: 8 𝑺9 𝒘 • 𝒘は⽅向だけが重要なので,スカラーである𝒘7 𝑺8 𝒘及び 𝒘7 𝑺8 𝒘は無視できる. 6: 7 • 𝒘 ∝ 𝑺6: 8 𝑺9 𝒘 = 𝑺8 𝒎5 − 𝒎: 𝒎5 − 𝒎: 𝒘 • 𝒎5 − 𝒎: 7 𝒘もスカラーなので無視する.その結果次のような関係が得られる. • 𝒘 ∝ 𝑺6: 8 𝒎5 − 𝒎:
フィッシャーの線形判別 • 𝒘 ∝ 𝑺<$ ? 𝒎( − 𝒎$ はフィッシャーの線形判別として知られている. • しかし, 𝒘は次元を1次元へ削減する際のデータの射影⽅向を表しているだけ である. • 適切な閾値𝑦" を設定することで,𝑦 𝒙 ≥ 𝑦" のときクラス𝐶$ に分類されそれ以 外ではクラス𝐶( に分類されるような識別関数を構成できる. 4 𝒘 2 0 −2 ここで分ければ正確に分類できるだろう. −2 2 6
パーセプトロン
パーセプトロンの簡単な紹介 • 2クラス問題が解ける(ラベルが2種類のみ) . • ⼊⼒層と出⼒層からなるニューラルネットワークである. • ⼊⼒層は⼊⼒の値そのものを出⼒層のニューロンに送る. • 出⼒層は閾値素⼦である. 出⼒層 ⼊⼒層 x0 x1 w0 w1 y 出⼒ wi 重みベクトル 𝒘 = 𝑤6 , 𝑤7 , … , 𝑤8 , … , 𝑤9 xi 入力ベクトル 𝒙 = 𝑥6 , 𝑥7 , … , 𝑥8 , … , 𝑥9 : :
パーセプトロンの数式表現 • ⼊⼒ベクトルを𝒙 = 𝑥" , 𝑥$ , … , 𝑥* , … , 𝑥% ! とする. パーセプトロンは,入力ベクトルと重みベクトルの内積 (𝒘$ 𝒙 = 𝑤 𝑥 cos 𝜃)が正か負かを基準に,入力ベクト ルを分ける.言い換えれば,入力ベクトルと重みベクト ルがおおよそ同じ方向を向いている(入力ベクトルが重 みベクトルに対し, 90度)かどうか調べている. • ただし𝑥A = 1である.𝑤A𝑥Aをバイアスという. • 重みベクトルを𝒘 = 𝑤" , 𝑤$ , … , 𝑤* , … , 𝑤% ! とする. • 次の⼀般化線形モデルを構成する. • 𝑦=𝑓 ∑% *+" 𝑤* 𝑥* ! = 𝑓(𝒘 ⋅ 𝒙) • ここで⾮線形活性関数𝑓(⋅)を • 𝑓 𝑢 =B 1 if 𝑢 ≥ 0 −1 otherwise • とする.これをステップ関数と呼ぶ. ⼊⼒層 出⼒層 x0 w0 w1 y 出⼒ x1 wi 重みベクトル 𝒘 = 𝑤6 , 𝑥7 , … , 𝑤8 , … , 𝑤9 xi 入力ベクトル 𝒙 = 𝑥6 , 𝑥7 , … , 𝑥8 , … , 𝑥9 : :
パーセプトロンの学習 • パーセプトロンでは,学習により出力と𝑡を一致させることが目的となる. • データ点𝒙G に対し,ラベル𝑡! が付属するとする.𝑡! ∈ {−1,1}である. • 例えば,データ点がクラス𝐶!に所属するとき𝑡# = 1,クラス𝐶"に所属するとき𝑡# = − 1とする. • あるデータ点𝒙I を入力したとき,出力がラベルと一致しなければ次の式で重 みを更新する. • 𝒘 ← 𝒘 + 𝜆𝒙# 𝑡# • 𝜆は学習率である. ⼊⼒層 出⼒層 x0=1 w0 更新式は次のように次のような意味を持つ.𝑡, = 1のときは,𝒘を 𝒙, に少し向 ける. 𝑡, = −1のときは,𝒘を少し𝒙, の反対に向ける. また,𝜆は⼩さな数値である.𝜆があるため1回の学習で 𝒘が⼤きく変化しない. 𝜆の値が⼤き場合,𝒘が更新のたび⼤きく変わってしまう.これは,1回の学習 ごとに⼊⼒に対し過剰に適応してしまうことを意味するだろう.つまり, 最適 な𝒘 がいつまでも求まらない可能性が⾼くなる.また,最適な𝒘が求まってい たとしても,次の学習で最適な𝒘から⼤きくずれる可能性が⾼くなる. 出⼒ w1 x1 wi xi y
重み修正の様⼦ 1. 出力を1でなければならないところ を−1になってしまったため,𝒘に 𝜆𝒙を足した. 2. 決定境界が更新された. 3. 出力を1でなければならないところ を−1になってしまったため,𝒘に 𝜆𝒙を足した. 4. 決定境界が更新された.その結果, 赤丸と青丸が境界で正しく区分け された. 1 2 3 4
パーセプトロン規準と更新式 • パーセプトロンでは正しく分類された場合誤差を0とし,誤分類された⼊⼒𝒙# に対 しては−𝒘- 𝒙# 𝑡# の最⼩化を試みる. • つまり,誤差の総和は • 𝐸B 𝒘 = − ∑#∈C 𝒘1 𝒙# 𝑡# • これをパーセプトロン規準という.𝑀は誤分類された⼊⼒の集合を表す. • これの𝒘についての微分をとると • ∇𝐸B 𝒘 = − ∑#∈C 𝒙# 𝑡# • 勾配法を⽤いてパーセプトロン規準を最⼩にする𝒘を求める.各ステップでデータ 点が⼀つしか⼿に⼊らないため ∇𝐸D 𝒘 = −𝒙# 𝑡# となる.よって • 𝒘#EF = 𝒘 − 𝜆∇𝐸B 𝒘 = 𝒘 + 𝜆𝒙# 𝑡# • となり,先の更新式が得られる.
パーセプトロンの学習例 • ⼊⼒層は3つのユニット,出⼒層は1つのユニットで構成されるネットワーク を考える. • このネットワークでAND演算を実現してみよう. ネットワークに覚えさせる⼊ 出⼒の関係(AND演算) x0 x1 x2 t 1 0 0 -1 1 0 1 -1 1 1 0 -1 1 1 1 1 ここではTrueを1,Falseを-1としている. 出⼒層 ⼊⼒層 x0 x1 w0 w1 wi xi y 出⼒
パーセプトロンの学習例 • 初期値:𝑤" = 0, 𝑤# = 1, 𝑤$ = 1, 𝜆 = 0.5とする. • このとき,出⼒は𝑦 = 𝑓(𝑥# + 𝑥$ )と書ける. • ネットワークにそれぞれの⼊⼒を代⼊してみる. • 𝑥" = 1, 𝑥# = 0, 𝑥$ = 0を⼊⼒すると,𝑦 = 1となり不正解 • 𝒘 + 𝜆𝒙𝑡 = 0,1,1 + 0.5× 1,0,0 × −1 = (−0.5, 1, 1) • この学習により,出⼒は次のようになる. • 𝑦 = 𝑓(−0.5𝑥" + 𝑥# + 𝑥$ )
パーセプトロンの学習例 • 𝑦 = 𝑓(−0.5𝑥" + 𝑥# + 𝑥$ ) • 𝑥" = 1, 𝑥# = 0, 𝑥$ = 1を⼊⼒すると,𝑦 = 1となり不正解なので学習する. • 𝒘 + 𝜆𝒙𝑡 = −0.5,1,1 + 0.5× 1,0,1 × −1 = (−1, 1, 0.5) • この学習により,出⼒は次のようになる. • 𝑦 = 𝑓(−𝑥" + 𝑥# + 0.5𝑥$ )
パーセプトロンの学習例 • 𝑦 = 𝑓(−𝑥" + 𝑥# + 0.5𝑥$ ) • 𝑥" = 1, 𝑥# = 1, 𝑥$ = 0を⼊⼒すると,𝑦 = 1となり不正解なので学習する. • 𝒘 + 𝜆𝒙𝑡 = −1,1,0.5 + 0.5× 1,1,0 × −1 = (−1.5, 0.5, 0.5) • この学習により,出⼒は次のようになる. • 𝑦 = 𝑓(−1.5𝑥" + 0.5𝑥# + 0.5𝑥$ )
パーセプトロンの学習例 • 𝑦 = 𝑓(−1.5𝑥" + 0.5𝑥# + 0.5𝑥$ ) • 𝑥" = 1, 𝑥# = 1, 𝑥$ = 1を⼊⼒すると,𝑦 = −1となり不正解なので学習する. • 𝒘 + 𝜆𝒙𝑡 = −1.5,0.5,0.5 + 0.5× 1,1,1 × 1 = (−1, 1, 1) • この学習により,出⼒は次のようになる. • 𝑦 = 𝑓(−𝑥" + 𝑥# + 𝑥$ )
パーセプトロンの学習例 • 𝑦 = 𝑓(−𝑥" + 𝑥# + 𝑥$ ) • 𝑥" = 1, 𝑥# = 0, 𝑥$ = 0を⼊⼒すると,𝑦 = −1となり正解 • 𝑥" = 1, 𝑥# = 0, 𝑥$ = 1を⼊⼒すると,𝑦 = 1となり不正解なので学習する. • 𝒘 + 𝜆𝒙𝑡 = −1,1,1 + 0.5× 1,0,1 × −1 = (−1.5, 1, 0.5) • この学習により,出⼒は次のようになる. • 𝑦 = 𝑓(−1.5𝑥" + 𝑥# + 0.5𝑥$ )
パーセプトロンの学習例 • 𝑦 = 𝑓(−1.5𝑥" + 𝑥# + 0.5𝑥$ ) • 𝑥" = 1, 𝑥# = 1, 𝑥$ = 0を⼊⼒すると,𝑦 = −1となり正解 • 𝑥" = 1, 𝑥# = 1, 𝑥$ = 1を⼊⼒すると,𝑦 = 1となり正解 • 𝑥" = 1, 𝑥# = 0, 𝑥$ = 0を⼊⼒すると,𝑦 = −1となり正解 • 𝑥" = 1, 𝑥# = 0, 𝑥$ = 1を⼊⼒すると,𝑦 = −1となり正解 • よって,すべての⼊⼒に対し正解したので学習を終了する. 出⼒層 ⼊⼒層 x0 AND演算ができ るニューラルネッ トワーク x1 xi 𝑤6 = −1.5 𝑤7 = 1 y 𝑤; = 0.5 出⼒
よく⾔われるパーセプトロンの⽋点 • 線形分離不可能な問題は解けない • 例:XOR問題が解けない • これは2層のパーセプトロンの問題である. • 活性化関数(Activation function)の連続関数化とBackpropagationにより多層化が可能と なり解消したと⾔われる. • MinskyとPapertによる指摘によりニューラルネットワークブームが終わった と⾔われることが多い. (0, 1) (1, 1) (0, 0) (1, 0) (0, 1) (1, 1) (0, 0) (1, 0) XOR AND XORの場合,直線で分けられない(線形分離不可能). ANDの場合,直線で分けられる(線形分離可能). 入力を座標,出力を白黒(それぞれ0,1に対応)で 表現している. MinskyとPapertのPerceptronsでは,パーセプトロンはx=yを判別 することができないことを示している.
確率的⽣成モデル
確率的⽣成モデル • 分類を確率的な視点で考えてみる. • データ点𝒙が与えられたとき,それがクラス𝐶/ である事後確率は次のように書ける. • 𝑝 𝐶/ 𝒙 • データ点𝒙のとき時のクラスが𝐶7 である確率 • 推論段階で,この条件付き確率分布をモデル化し,その後この分布を⽤い最適な分類を決定す る. • 条件付き分布𝑝 𝒙 𝐶/ と事前確率𝑝 𝒙 をモデル化すると,ベイズ定理により𝑝 𝐶/ 𝒙 は次の ように書ける. • 𝑝 𝐶/ 𝒙 = ; 𝒙 𝐶/ ; << ; 𝒙 • これを確率的⽣成モデル(⽣成的確率モデル)という. • 各クラス条件付き確率 𝑝 𝒙 𝐶7 からサンプルを⽣成する事ができるため⽣成モデルと呼ばれる.
確率的⽣成モデル • 2クラス問題の場合,事後分布𝑝 𝐶# 𝒙 はベイズ定理から 𝑝 𝒙 𝐶# 𝑝 𝐶# 𝑝 𝒙 = 𝑝 𝒙 𝑝 𝒙 ∣ 𝐶# 𝑝 𝐶# 1 = = 𝑝 𝒙 ∣ 𝐶# 𝑝 𝐶# 𝑝 𝒙 ∣ 𝐶$ 𝑝 𝐶$ 𝑝 + 1+ 𝑝 𝒙 𝐶# 𝑝 𝐶# 𝑝 𝒙 𝐶# 𝑝 𝐶# 𝑝 𝑝 𝐶# 𝒙 = • となる 𝐶# 𝑝 𝐶# + 𝑝 𝒙 ∣ 𝐶$ 𝑝 𝐶$ 1 𝒙 ∣ 𝐶$ 𝑝 𝐶$ 𝒙 𝐶# 𝑝 𝐶#
ロジスティックシグモイド関数 • 8 𝒙∣9$ 8 9$ 8 𝒙 𝐶# 8 93 • 𝑝 𝐶# 𝒙 = = exp −𝑎 とおくと # #JVWX(ZH) = 𝜎(𝑎) • と書ける. • 𝜎(𝑎)をlogistic sigmoid関数という.ロジスティックシグモイド関数は次の対称性を満たす. • 𝜎 −𝑎 = 1 − 𝜎(𝑎) • logistic sigmoid 関数の逆関数は • 𝑎 = ln \ #Z\ • で与えられる.これはlogit関数として知られる. 2クラスのときlogit関数は • 𝑎 = ln \ #Z\ = ln 8 8 𝐶# 𝒙 𝐶$ 𝒙 • となり,これはlog oddsと呼ばれる.
多クラス問題とソフトマックス関数 • 𝐾 > 2の多クラス問題を考える.このときの事後確率𝑝 𝐶0 𝑥 は • 𝑝 𝐶0 𝒙 = 𝒙 𝐶0 1 2+ ∑= 1 𝒙 𝐶4 1 2= 1 • ここで 𝑝 𝒙 𝐶0 𝑝 𝐶0 = exp(𝑎0 )とおくと 567 8+ = 567 8= • 𝑝 𝐶0 𝒙 = ∑ • となる.𝑎0 = ln 𝑝 𝒙 𝐶0 𝑝 𝐶0 である. • この関数は正規化指数関数として知られ,logistic sigmoid関数の多クラスへ の⼀般化とみなせる. • また,この関数はsoftmax関数としても知られている. • Softmax関数はmax関数の平滑化バージョンなのでそう呼ばれる.
識別的分類器 discriminative classifier
⼀般化線形モデル • 別のアプローチとして,⼀般化線形モデルの関数形式を明⽰的に使⽤し,最⼤ 尤度を⽤い,そのパラメータを直接決定する⽅法がある. • この直接的なアプローチでは,識別的確率モデルの形式で表現される条件付き 分布𝑝 𝐶0 ∣ 𝒙 により定義された尤度関数を最⼤化する. • この識別的アプローチの利点の⼀つは,決定すべき学習可能なパラメータが⼀ 般的に少なくないことである. • 特に,想定したクラス条件付き密度の形が真の分布を近似できていないときで も,予測性能の向上につながる可能性がある.
固定基底関数 • これまでは,下の⼊⼒ベクトル𝒙を直接使う分類モデルを考えてきた. • 基底関数ベクトル𝝓 𝒙 を使ってあらかじめ⼊⼒の⾮線形変換を⾏うことも考 えられる.この⼿法はこれまで取り上げた⼿法にも適⽤できる. • この場合,特徴空間𝝓では決定境界は線形だが,もとの𝒙空間では⾮線形の決 定境界となる. • 右図の特徴空間では線形分離可能だが,もとの観測空間では線形分離可能である必 要はない. 特徴空間 元の空間 1 1 φ2 x2 0 0.5 −1 0 −1 0 x1 1 0 0.5 φ1 1
ロジスティック回帰 回帰と銘打ってあるが分類⼿法である.
事後確率とロジスティックシグモイド関数 • ⼊⼒ベクトル𝒙を特徴ベクトル𝝓に変換する. • 特徴ベクトルがクラス𝐶# に所属する確率(事後確率)は • 𝑝 𝐶# 𝝓 = 𝑦 𝝓 = 𝜎 𝒘9 𝝓 • と書ける. 𝜎(⋅)はロジスティックスシグモイド関数である. • このモデルをロジスティック回帰という.
最尤推定によるパラメタの決定 • ロジスティック回帰モデルを⽤い正しく分類するためには最適な重みベクトル (パラメタ)を求める必要がある. • 最尤推定を⽤いパラメタを決定する.
最尤推定によるパラメタの決定
• ここでは2クラス問題を取り扱う.
• データ集合𝑋 = 𝝓! , 𝑡! , 𝑡 ∈ 0,1 , 𝑛 = 1, … , 𝑁があるとする.このときの尤度関
数は
𝑝 𝒕 𝒘 = 𝑝 𝐶! 𝒘, 𝝓!
GK
I
= G 𝑝 𝐶# 𝒘, 𝝓#
#J!
1 − 𝑝 𝐶! 𝒘, 𝝓!
G^
!HGK
1 − 𝑝 𝐶! 𝒘, 𝝓#
⋯ 𝑝 𝐶! 𝒘, 𝝓I
!HG^
1 − 𝑝 𝐶! 𝒘, 𝝓I
G^
1 − 𝑦 𝝓#
I
= G 𝑦 𝝓#
!HG]
!HG^
#J!
I
G
= G 𝑦#^ 1 − 𝑦#
• となる.ここで𝒕 =
G]
!HG^
#J!
𝑡# , … , 𝑡: ; , 𝑦!
!.-%
= 𝑦 𝝓! = 𝜎 𝒘9 𝝓! とした.
なぜ𝑝 𝐶! 𝒘, 𝝓! -% 1 − 𝑝 𝐶! 𝒘, 𝝓!
なのか. 𝝓! がクラス𝐶! である場合𝑡! = 1となる.このとき𝑡! − 1 = 0となる.よって, 𝝓! がクラス𝐶! で
ある場合は𝑝 𝐶! 𝒘, 𝝓! が残り, 𝝓! がクラス𝐶" である場合は𝑝 𝐶" 𝒘, 𝝓! = 1 − 𝑝 𝐶! 𝒘, 𝝓! が残る. 𝑝 𝐶! 𝒘, 𝝓! は 𝝓! がクラス𝐶! である確
率を表す.つまり,𝑝 𝐶! 𝒘, 𝝓! = 𝑝 𝑡! = 1 𝒘, 𝝓! となる.
また, 𝑦 𝝓 = 𝜎 𝒘( 𝝓 だから,最終的に𝒘は⾒えなくなる(𝑦, の中に⼊っている).
最尤推定によるパラメタの決定 • 誤差関数を負の対数尤度とする.これをクロスエントロピー誤差関数という. 𝑑𝜎 𝒘* 𝝓> 𝑑 1 = 𝑑𝒘 𝑑𝒘 1 + exp −𝒘* 𝝓> −𝝓> exp −𝒘* 𝝓> = 1 + exp −𝒘* 𝝓> " 𝝓> − exp −𝒘* 𝝓> = 1 + exp −𝒘* 𝝓> 1 + exp −𝒘* 𝝓> = 𝝓> 𝜎 −𝒘* 𝝓> 1 − 𝜎 −𝒘* 𝝓> = 𝝓> 𝑦> 1 − 𝑦> ? f 𝐸 𝒘 = − ln 𝑝 𝒕 𝒘 = − E ln 𝑦G= 1 − 𝑦G ? 𝑦>? = #Zf= Ge# = − E 𝑡G ln 𝑦G + 1 − 𝑡G ln 1 − 𝑦G Ge# • これを𝒘について微分すると + ∇𝐸 𝒘 = − i ? ∇𝐸 𝒘 = E 𝑦G − 𝑡G 𝝓G Ge# • となる. + =−i ,/! + ,/! 𝑡, 𝑦,0 −𝑦,0 + 1 − 𝑡, 𝑦, 1 − 𝑦, 𝑡, 𝝓, 𝑦, 1 − 𝑦, −𝝓, 𝑦, 1 − 𝑦, + 1 − 𝑡, 𝑦, 1 − 𝑦, + = − i 𝑡, 𝝓, 1 − 𝑦, − 1 − 𝑡, 𝝓, 𝑦, = − i 𝑡, − 𝑡, 𝑦, − 𝑦, + 𝑡, 𝑦, 𝝓, ,/! + + ,/! = − i 𝑡, − 𝑦, 𝝓, = i 𝑦, − 𝑡, 𝝓, ,/! ,/! • データが⼀つづつ提供される場合(online学習する場合),⼊⼒𝒙! に対応する勾 配の𝑛番⽬の項を⽤いた勾配法を使えば最適な𝒘が求まる.
ニュートン-ラフソン法 • wを尤度関数から解析的に求めるのは難しい.そこでニュートン-ラフソン法 (ニュートン法)を⽤いた反復最適化法を⽤い,batch学習により最適なwを 求めることにする. • 関数𝐸(𝑤)を最⼩化するニュートン-ラフソン法の𝒘の更新式は • 𝒘<5= = 𝒘 − 𝐇 ># ∇𝐸 𝒘 • と書かれる.𝐇は𝒘に関する𝐸(𝒘)の2階微分を要素とするヘッシアンである.
クロスエントロピーのヘッシアン • ロジスティック回帰におけるクロスエントロピー誤差関数の勾配は次のように 書ける. ; • ∇𝐸 𝒘 = ∑: !?# 𝑦! − 𝑡! 𝝓! = 𝚽 (𝒚 − 𝒕) • ここで𝚽は𝑁×𝑀の⾏列であり,𝑛番⽬の⾏は𝝓;! で与えられる. 途中式 ? 𝑦7 − 𝑡7 ∇𝐸 𝒘 = E 𝑦G − 𝑡G 𝝓G = 𝑦# − 𝑡# 𝝓# + ⋯ + 𝑦? − 𝑡? 𝝓? = 𝝓# , … , 𝝓? 𝜙## ⋮ = 𝜙#j Ge# ⋯ ⋱ ⋯ 𝜙?# ⋮ 𝜙?j 𝑦# 𝑡# ⋮ − ⋮ 𝑦? 𝑡? 𝜙## ⋮ = 𝜙?# ⋯ ⋱ ⋯ 𝜙#j ⋮ 𝜙?j ( ⋮ 𝑦9 − 𝑡9 𝒚 − 𝒕 = 𝚽 ( (𝒚 − 𝒕)
クロスエントロピーのヘッシアン • ヘッシアンは勾配の微分なので • 𝐇 = ∇∇𝐸 𝒘 = 𝚽; 𝐑𝚽 • となる.𝐑は𝑁×𝑁の対⾓⾏列を表し,𝑅!! = 𝑦! 1 − 𝑦! である. • 𝐑を重み付け⾏列という. 途中式 ( 𝐇 = ∇∇𝐸 𝒘 = ∇ 𝚽 𝒚 − 𝒕 ( = 𝚽 diag 𝑦# 1 − 𝑦# diagは対⾓⾏列を表す. ⋯ = ∇𝚽 𝒚 = ∇𝚽 1 ( 𝑦? 1 − 𝑦? 𝑦! ⋮ 𝑦? =𝚽 𝝓7 ⋮ = 𝚽 ( 𝐑𝚽 𝝓9 ( 𝑦# 1 − 𝑦# 𝝓# ⋮ 𝑦9 1 − 𝑦9 𝝓=
更新式 • ニューロン-ラフソン法による𝒘の更新式は次のようになる. 𝒘<5= = 𝒘 − 𝐇 ># ∇𝐸 𝒘 = 𝒘 − 𝚽; 𝐑𝚽 ># 𝚽; 𝒚 − 𝒕 = 𝚽; 𝐑𝚽 ># 𝚽; 𝐑𝚽𝒘 − 𝚽; 𝒚 − 𝒕 = 𝚽; 𝐑𝚽 ># 𝚽; 𝐑𝚽𝒘 − 𝒚 − 𝒕 = 𝚽; 𝐑𝚽 ># 𝚽; 𝐑 𝚽𝒘 − 𝐑># 𝒚 − 𝒕 = 𝚽; 𝐑𝚽 ># 𝚽; 𝐑𝐳 • ここで,𝐳は次の式で表される𝑁次元ベクトルである. • 𝐳 = 𝚽𝒘 − 𝐑H! 𝒚 − 𝒕 • 𝑤を求める正規⽅程式が求まったが,𝑤を求めるためには繰り返し計算をする必要 がある. • 𝐑も𝒘に依存しているため,繰り返し計算し直さねばならない. • このことから,このアルゴリズムを反復再重みつけ最⼩⼆乗法(IRLS: Iterative Reweighted Least Squares method)と呼ばれる.
多クラスロジスティック回帰 • 多クラス分類においては,事後確率がソフトマックス関数で与えられることを 以前述べた. 567 8+ = 567 8= • 𝑝 𝐶0 𝝓 = 𝑦0 𝝓 = ∑ • ここで𝑎0 = 𝒘;0 𝝓である. • 分類を正確に⾏うためには最適なパラメタ𝒘0 を求める必要がある. • ここでも最尤推定を⽤いパラメタ𝒘0 を求める.
多クラスロジスティック回帰 • データ集合𝑋 = 𝝓! , 𝒕! , 𝒕! = 𝑡!# , … , 𝑡!0 , … , 𝑡!@ , 𝑡!0 ∈ 0,1 , 𝑛 = 1, … , 𝑁があると する. • 𝝓! が所属しているクラスを𝐶0 とした場合,⽬的変数𝒕! の𝑘番⽬の要素が1でそ れ以外は0となる(1-of-k coding). • 尤度関数は @ • 𝑝 𝐓 𝒘# , … , 𝒘0 = ∏: !?# ∏0?# 𝑝 𝐶0 𝝓! AG+ A @ G+ = ∏: !?# ∏0?# 𝑦!0 A • ここで𝑦<BG+ = 𝑦A 𝝓! , 𝐓 = 𝒕# , … , 𝒕! , … , 𝒕: とする. • ⽬的関数(負の対数尤度)は @ • 𝐸 𝒘# , … , 𝒘0 = − ln 𝑝 𝐓 𝒘# , … , 𝒘0 = − ∑: !?# ∑0?# 𝑡!0 ln 𝑦!0 • となる.これは多クラス分類問題におけるクロスエントロピーである.
⽬的関数の勾配 • 𝒘4 に関する⽬的関数の勾配は • ∇𝒘= 𝐸 𝒘# , … , 𝒘0 = ∑: !?# 𝑦!4 − 𝑡!4 𝝓! • となる.これを使ったonline学習を⾏うことができる. + 4 よって ∇𝒘& 𝐸 𝒘𝟏 , … , 𝒘3 = −∇𝒘& i i 𝑡,3 ln 𝑦,3 まず,∇𝒘& ln 𝑦,5 = ∇𝒘& 𝑦,5 ! 6'& + ∇𝒘& 𝑦,5 を求める. ∇𝒘& exp 𝑎5 exp 𝑎5 = ∇𝒘 & = ∑3 exp 𝑎3 ∇𝒘& 𝑦,7 = ∇𝒘& ! 6'( 4 = − i 𝑡,5 𝝓, 1 − 𝑦,5 + i 𝑡,3 −𝝓, 𝑦,5 ∑3 exp 𝑎3 − exp 𝑎5 ∇𝒘& exp 𝑎5 ∑3 exp 𝑎3 " 𝝓, exp 𝑎5 ∑3 exp 𝑎3 − 𝝓, exp 2𝑎5 𝝓, exp 𝑎5 exp 𝑎5 = = − 𝝓, " ∑3 exp 𝑎3 ∑3 exp 𝑎3 ∑3 exp 𝑎3 = 𝝓, 𝑦,5 1 − 𝑦,5 1 ∇𝒘& ln 𝑦,5 = ∇ 𝑦 = 𝝓, 1 − 𝑦,5 𝑦,5 𝒘& ,5 次に, ∇𝒘& ln 𝑦,7 = ∇𝒘& 𝐸 𝒘𝟏 , … , 𝒘3 ,/! 3/! " ∇𝒘& 𝑦,7 を求める. − exp 𝑎7 ∇𝒘& exp 𝑎5 −𝝓, exp 𝑎7 exp 𝑎5 exp 𝑎7 = = = −𝝓, 𝑦,5 𝑦,7 " ∑3 exp 𝑎3 ∑3 exp 𝑎3 ∑3 exp 𝑎3 " 1 ∇𝒘& ln 𝑦,7 = ∇ 𝑦 = −𝝓, 𝑦,5 𝑦,7 𝒘& ,7 ,/! 385 + 4 = − i 𝝓, 𝑡,5 1 − 𝑦,5 − 𝑦,5 i 𝑡,3 ,/! + 385 + = − i 𝝓, 𝑡,5 + −𝑦,5 = i 𝝓, 𝑦,5 − 𝑡,5 ,/! ,/! 1-of-K codingなので ∑4 3/! 𝑡,3 = 1となることを利⽤した.
ヘッシアン • 𝒘0 に関する⽬的関数のヘッシアンは ; • ∇𝒘+ ∇𝒘= 𝐸 𝒘# , … , 𝒘0 = ∑: !?# 𝑦!0 𝐼04 − 𝑦!4 𝝓! 𝝓! • となる.𝐼04 は𝐾×𝐾の単位⾏列の要素である. • ヘッシアンが求まれば,Newton-Raphson法を⽤いたbatch学習が可能となる. 途中式 + + ∇𝒘) ∇𝒘& 𝐸 𝒘𝟏 , … , 𝒘3 = ∇𝒘) i 𝑦,5 − 𝑡,5 𝝓#, = i ∇𝒘) 𝑦,5 𝝓#, 𝑘 = 𝑗のとき ,/! ,/! + ∇𝒘) ∇𝒘& 𝐸 𝒘𝟏 , … , 𝒘3 = i 1 − 𝑦,5 𝝓, 𝝓#, ,/! 𝑘 ≠ 𝑗のとき + ∇𝒘) ∇𝒘& 𝐸 𝒘𝟏 , … , 𝒘3 = i −𝑦,5 𝝓, 𝝓#, ,/! 𝑘 = 𝑗のとき1,𝑘 ≠ 𝑗のとき0となるような変数は 𝐾×𝐾の単位⾏列の要素あるから, + ∇𝒘) ∇𝒘& 𝐸 𝒘𝟏 , … , 𝒘3 = i 𝑦,3 𝐼35 − 𝑦,5 𝝓, 𝝓#, となる. ,/!
ニューラルネットワーク表現 • 線形分類モデルは図のように単層のニューラルネットワークとして表現するこ とができる. • 各基底関数はノードで表され,⻘のノードはバイアス基底関数𝜙Aを表す.各出⼒ 𝑦! … 𝑦P もノードで表される.リンクは対応する重みとバイアスパラメタを表す. • 基底関数𝜙D 𝑥 と出⼒ユニット𝑦0 を結ぶ重み𝑤D0 に関する誤差関数の導関数を考 えると (x) y (x, w) • EF 𝒘,,…,𝒘+ EIH= = ∑: !?# 𝑦!4 − 𝑡!4 𝜙D 𝒙! K 𝜙D ... • ∇𝒘= 𝐸 𝒘# , … , 𝒘0 = ∑: !?# 𝑦!4 − 𝑡!4 𝝓! 1 ... M 1 (x) 0 (x) 𝑦x y1 (x, w) 𝑤Dx • この勾配は,各データ点𝑛について,重みを表すリンクの⼊⼒端の基底関数の 出⼒と,出⼒端における「誤差」 𝑦!4 − 𝑡!4 の形をとっていることが分かる.
おまけ
補⾜:正規⽅程式
• ⼊⼒𝑋 = {𝒙# , … , 𝒙: }と対応する⽬標値𝐭 = 𝑡# , … , 𝑡: ; からなるデータ集合を考
える.
• ⼊⼒ベクトル𝒙は特徴ベクトル𝝓(𝒙)に変換されるとし, ⽬標値は関数𝑦 𝒙, 𝒘
= 𝒘; 𝝓(𝒙)を中⼼としたガウス分布から⽣成されるとする.
• このときの対数尤度は
;
>#
• ln 𝑝 𝐭 𝒘, 𝛽 = ∑:
=
!?# ln 𝑁 𝑡! 𝒘 𝝓 𝒙! , 𝛽
• となる.𝐸J (𝒘)は
#
;
• 𝐸J 𝑤 = ∑:
!?# 𝑡! − 𝒘 𝝓 𝒙!
$
$
• であり,⼆乗誤差関数となっている.
:
$
ln 𝛽 −
:
$
2𝜋 − 𝛽𝐸J 𝒘
補⾜:正規⽅程式 • 対数尤度の勾配は ; • ∇ ln 𝑝 𝐭 𝑤, 𝛽 = 𝛽 ∑: !?# 𝑡! − 𝒘 𝝓 𝒙! 𝝓 𝒙! ; • 勾配を0とおけば, 9 • ∑: !?# 𝑡! − 𝒘 𝝓 𝒙! 𝝓 𝒙! • ∑: !?# 𝑡! 𝝓 𝒙! ; ; =0 − 𝑤 9 ∑: !?# 𝝓 𝒙! 𝝓 𝒙! ; =0 • が得られる.これを𝑤について解くと, • 𝑤 = 𝚽; 𝚽 ># 𝚽; 𝑡 • が得られる.これは最⼩⼆乗法の正規⽅程式として知られる.また𝚽は計画⾏ 列と呼ばれる.