Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

言語処理のための機械学習入門#2

438 views

Published on

言語処理のための機械学習入門 (自然言語処理シリーズ)
http://amzn.to/2f79qd9 の輪読会資料(第3章)です

Published in: Technology
  • Be the first to comment

  • Be the first to like this

言語処理のための機械学習入門#2

  1. 1. 「言語処理のための機械学習入門」 輪読会 #2 27 PAGES Shintaro Nomura 機 械 学 習 2016.12.11 @ Akiba Code
  2. 2. CAUTION! この資料は、「言語処理のための機械学 習入門(高村大地)」を読みながら作成 していますが、本が簡潔に書かれすぎて いてよく理解していないまま知ったかぶ りで作られている可能性があります。 2
  3. 3. 第3章の流れ クラスタ リング k-means GMM EMアル ゴリズム 3
  4. 4. クラスタリング 4 似ているもの(文書や単語)同士を 1つのグループにまとめる作業 データ:D D = { d1, d2, … , d|D| } データDの ベクトル表現 x(1), x(2), … , x(|D|) ※文書ならbag-of-words表現や、単語なら文脈ベクトルなど sim( A, B ) A、B同士の似ている度合い。類似度(モデルに応じて定義)。 arg max/min 対象の関数値を最大/最小にする引数の集合を返す ex) arg max -(x – 1)2 = 1
  5. 5. 凝集(ぎょうしゅう)性クラスタリング 凝集性クラスタリングの概略 1.事例集合:Dを入力 D = {x(1) , x(2) , … , x(|D|) } 2.クラスタをまず|D|個用意し、 各事例xiを所属させる c1 = {x(1) }, c2 = {x(2) }, … c|D| = {x(|D|) } 3.クラスタ数が2個以上存在 する限り、似たクラスタ対を 融合(merge)し続ける (cm ,cn ) = arg max(ci , cj) merge(cm ,cn ) 2.~3.をクラスタ数が1になるまでLoop 5 テキストではクラスタ同士の類似度(sim)を測る 方法として、単連結法・完全連結法・重心法など 3つの方法が示されている
  6. 6. 重心法 6  なかでも一般的なクラスタリングでは、「重心法 (centroid method)」が活用されているのをよく見 る気がします  各クラスタが含む事例すべての「重心 (平均)ベクトル」間の類似度を、それらのクラ スタの類似度とする方法  sim(ci , cj) = sim(ci内の全ベクトルの平均, cj内の全ベクトルの平均)
  7. 7. 第3章の流れ クラスタ リング k-means GMM EMアル ゴリズム 7
  8. 8. k-means法 8 ざっくり言うと 1.k個のクラスタの代表ベクトルOLD(初期値)をランダムに決める 2.各事例ベクトルと最も類似度が高いクラスタにそれを配属させる 3.各クラスタの重心(代表ベクトルNEW)を計算する(重心法) 4.各点が所属するクラスタを、一番代表ベクトルが近いクラスタに変更する 5.変化がなければ終了。変化がある限りは 3. に戻る。 K-means 法を D3.js でビジュアライズしてみた - てっく煮ブログ http://tech.nitoyon.com/ja/blog/2013/11/07/k-means/ 何度もポチポチ 押してみると 意味が分かる
  9. 9. k-means法の課題 9 ざっくり言うと 1.k個のクラスタの代表ベクトル(初期値)をランダムに決める 2.各事例ベクトルと最も類似度が高いクラスタにそれを配属させる 3.各クラスタの重心を計算する(重心法) 4.各点が所属するクラスタを、一番近い重心のクラスタに変更する 5.変化がなければ終了。変化がある限りは 3. に戻る。 初期値(最初の割当て)次第で 結果が変化する (対策) 凝集性クラスタリングの 結果を初期値とする ランダム配置を何度も繰り返して 平均的な結果を用いる 「k」はあなたが決める 【悲報】 kの数次第でアルゴリズムの挙動が全 く変わってしまう
  10. 10. 第3章の流れ クラスタ リング k-means GMM EMアル ゴリズム 10
  11. 11. イメージが湧きやすいGMM使用例 マンションポエムで新築マンションをク 11 マンションポエムで新築マンションをクラスタリング http://smrmkt.hatenablog.jp/entry/2014/12/25/205630
  12. 12. マンションポエムのクラスタリング データの収集 Linkにあったので助かったそうです 辞書の作成 普通に形態素解析しちゃうと単語を刻み すぎるため、オリジナルの辞書を作成 形態素解析 MeCabを使って,ざっくりと形態素解析. 必要な品詞だけPythonで抽出. ストップワードの除去 GitHub参照 LDAによるトピックモデル作成 gensimパッケージを利用し、各文書間に 共通する、潜在的なトピックを抜き出す →1,700単語(1x1,700のベクトル)を20 個程度のトピック(1x20のベクトル)に 集約(次元縮約) GMMによるクラスタリング その20次元ベクトルを用いてクラスタリ ング。いくつか試したところ、クラスタ 数を4つにすると感じが良いことが判明 ワードクラウドを作成して可視化 次項参照 12
  13. 13. マンションポエム(2) 13 クラスタごとのワードクラウド(Tagxedo)による可視化 平均坪単価が高く,都心からの 距離が近いクラスタ 都心から距離が遠いクラスタ 坪単価が安いクラスタ バランスの良いクラスタ
  14. 14. GMMの理解に必要な統計知識 結合確率と条件付き確率(p.26) 独立性(p.29) (多変量)正規分布(p.38) 14
  15. 15. 同時確率と条件付き確率 同時確率 コインXとダイスYがあるとき、Xがオモテとなり、かつ、Yが4となる(同 時)確率 P( X = “Heads”, Y = 4 ) = 1/2 ✕ 1/6 = 1 /12 15 条件付き確率 コインXとダイスYがある。Xがオモテとなったとき、Yが4となる(条件付 き)確率 P( Y = 4 | X = "Heads" ) = 1/6 この場合、コインの表裏とダイスの出目には何の関連もないと考えられる →それらは「独立事象」であると呼ばれる P( Y = 4 | X = “Heads” ) = P( Y = 4 ) # 条件なし確率と同じ値に
  16. 16. 尤度(ゆうど) 尤度を表現する式と、同時確率を表現する式は、同じ形をしている 各データ(事例ベクトル、標本)がそれぞれ互いに独立であるとき、 尤度 L = P(x1) P(x2)…P(xn) . ・同時確率はあくまでも事象が起きる確率であるのに対し、尤度は「観察デー タの下での仮説の尤(もっと)もらしさ」の指標である ※「いぬど」と読むと尤度警察がやってきます (尤度は観測データはすべて出尽くしていて、それらのデータに対して、あるパラメー タの確率分布を当てはめた時、どれだけ尤もらしいかを意味している) ・実際の観測データを仮説上の確率分布に当てはめた際、あてはまりが悪いと 尤度は低く計算されてしまう →尤度を最大にするパラメータを求める(推定する)方法が最尤推定法 16
  17. 17. 正規分布と尤度 正規分布における尤度 ある1次元の事例xiの生起確率を、正規分布の確率密度関数で表すとき、 𝑃 xi = 𝑓 xi = 1 2𝜋𝜎2 exp xi − 𝜇 2 2𝜎2 x1, x2, …, xnが観測された際の尤度は L = P(x1) P(x2)…P(xn) = Π𝑓(xi) = Π 1 2𝜋𝜎2 exp 𝑥𝑖 −𝜇 2 2𝜎2 ※同時確率と区別するため、あくまでパラメータがμ, σであることを強調することも L( μ, σ|x ) = Π 1 2𝜋𝜎2 exp 𝑥𝑖 −𝜇 2 2𝜎2 17 多変量正規分布における尤度 あるd次元の事例ベクトル𝒙(𝑖) の生起確率を、正規分布の確率密度関数で表すと き(教科書では、それぞれの分散は同一と仮定されているので、) 𝑃 𝒙(𝑖) = 𝑓 𝒙(𝑖) = 1 2𝜋𝜎2 𝑑 exp 𝒙(𝑖) − 𝛍 2 2𝜎2 尤度は L = 1 2𝜋𝜎2 𝑑 exp 𝒙(𝑖)−𝛍 2 2𝜎2
  18. 18. 正規分布と対数尤度 18 多変量正規分布における尤度 尤度は(教科書では、それぞれの分散は同一と仮定されているので、) 𝑃 𝒙(𝑖) = 𝑓 𝒙(𝑖) = 1 2𝜋𝜎2 𝑑 exp 𝒙(𝑖) − 𝛍 2 2𝜎2 尤度は L = 1 2𝜋𝜎2 𝑑 exp 𝒙(𝑖)−𝛍 2 2𝜎2 積のカタチで表されている尤度は扱いにくいため、「対数尤度」が用いられる ことが多い。 対数尤度は logL =log 1 2𝜋𝜎2 𝑑 exp 𝒙 𝑖 −𝛍 2 2𝜎2 = log 1 2𝜋𝜎2 𝑑 exp 𝒙(𝑖)−𝛍 2 2𝜎2
  19. 19. k-means法(重心法)とGMMの違い  テキストの表現が入門者に優しくないP(c) という概念(隠れ変数) が抽象的なため、理解がなかなか難しい 19 混合正規分布(Gaussian Mixture)によるクラスタリング ざっくり言わないと 1.k個のクラスタの代表ベクトルm’(初期値)をランダムに決める 2.各事例ベクトルxが、どのクラスタに、各々どの程度の確率で属 するか(P( c | x(i); mOLD)を、P( x | c )が正規分布に従うと仮定して 計算する(GMM) 3.各クラスタの代表ベクトルを単純な重心ではなく、先ほど計算さ れた確率の重み付きで計算し、mNEWへ置き換える 4.代表ベクトルの変化が十分小さければ終了。大きい限りは 2. に 戻る。
  20. 20. その意味を説明しようと思うけど  GMMは次章の「EMアルゴリズム」の一例に すぎないので、仕組みは次で説明します 20
  21. 21. 第3章の流れ クラスタ リング k-means GMM EMアル ゴリズム 21
  22. 22. EMアルゴリズム EMアルゴリズムは2つのステップからなる E(xpectation: 期待値)ステップ 対数尤度をその期待値で置き換えるステップ M(aximization: 最大化)ステップ その値を最大にするように未知のパラメータ を推定するステップ 22  一見、ただの最尤推定っぽいけど ・EMアルゴリズムは、不完全データにも使える ・不完全データとは、本来は観測されるべきだが観測できな かったデータ(欠損データ)を含むデータ ・欠損データを含むと、本来、尤度がパラメータθの関数として 定義できない ・対数尤度をその期待値で置き換えた関数「Q関数」の最大化を 通じてパラメータの最尤推定(的なもの?)を行う
  23. 23. P(C)を「隠れ変数」として扱う  今回は、各クラスタが含む事例の数(確率:P(c))が不明である  そのようなクラスタに対応する確率変数を「隠れ変数」として扱い、 EMアルゴリズムの枠組みに基づいてパラメータ推定が可能になる 23 事例ベクトル 事例ベクトル 事例ベクトル クラスタ1 クラスタ2 何個属すの? ?
  24. 24. EMアルゴリズムの利点・特徴 24  不完全データからの最尤推定が可能 (実際には、欠損データに関する周辺化を行って、観測データのみの周辺分布による最 尤推定を行っている:周辺分布密度関数に観測データを代入した尤度を最大にする)  (対数)尤度を最大にする解を直接的に計算するのは 困難だが、Mステップで求めたパラメータθNEWをEス テップ(Q関数)のθOLDに代入して…とEMステップを 繰り返すごとで、(対数)尤度が単調に増加すること が知られている ※この場合の単調増加は、「不変または増加」の意味。なので、変化率が一定程度 収束しても、真の意味では極大値を求めたにすぎないことも十分にあり得る
  25. 25. 前ページの理論的背景が知りたい方は ・「確率的言語モデル」 北研二 See 2.6「EMアルゴリズム」 ・「これなら分かる最適化数学―基礎 原理から計算手法まで」金谷健一 See 5.4 「不完全データからの最尤推 定」 25
  26. 26. じゃあQ関数ってどう定義されてるの Q(θNEW ; θOLD)=∑ ∑ P(c , x(i); θOLD) * log P( c, x(i); θNEW) ※連続的な場合にはQ(θNEW ; θOLD)=∬P(c , x(i); θOLD) * log P( c, x(i); θNEW) →「はじめての 統計データ分析 ―ベイズ的〈ポストp値時代〉の統計学―」 (豊田秀樹)を読んだ方だと、左辺が事後分布、右辺が事前分布×尤度に対応 してそうなことが想起されそう ●確認事項 ・f( ・ ; θ ) の右側のθがその関数のパラメータであることを明示 ・Q関数をθNEWについて解く上では、θOLDは定数である 26 θOLDとθNEWの更新を繰り返し、パラメータθの 変化率が一定を下回ったら、最後のθNEWをパラ メータ値として採用 →そのθ値に基いてクラスタリングを行う (今回の場合、求めたθは代表ベクトルmC)
  27. 27. それでもこの課題からは逃れられない 27 初期値(最初の割当て)次第で 結果が変化する (対策) 凝集性クラスタリングの 結果を初期値とする ランダム配置を何度も繰り返して 平均的な結果を用いる クラスタ数「k」はあなたが決める 【悲報】 kの数次第でアルゴリズムの挙動が全 く変わってしまう

×