Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

DSnomura
December 11, 2016

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

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

DSnomura

December 11, 2016
Tweet

Other Decks in Technology

Transcript

  1. クラスタリング 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
  2. 凝集(ぎょうしゅう) 性クラスタリング 凝集性クラスタリングの概略 1.事例集合:Dを入力 D = {x(1) , x(2) ,

    … , x(|D|) } 2.クラスタをまず|D|個用意し、 各事例x i を所属させる 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つの方法が示されている
  3. 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/ 何度もポチポチ 押してみると 意味が分かる
  4. k-means法の課題 9 ざっくり言うと 1.k個のクラスタの代表ベクトル(初期値)をランダムに決める 2.各事例ベクトルと最も類似度が高いクラスタにそれを配属させる 3.各クラスタの重心を計算する(重心法) 4.各点が所属するクラスタを、一番近い重心のクラスタに変更する 5.変化がなければ終了。変化がある限りは 3. に戻る。

    初期値(最初の割当て)次第で 結果が変化する (対策) 凝集性クラスタリングの 結果を初期値とする ランダム配置を何度も繰り返して 平均的な結果を用いる 「k」はあなたが決める 【悲報】 kの数次第でアルゴリズムの挙動が全 く変わってしまう
  5. マンションポエムのクラスタリング データの収集 Linkにあったので助かったそうです 辞書の作成 普通に形態素解析しちゃうと単語を刻み すぎるため、オリジナルの辞書を作成 形態素解析 MeCabを使って,ざっくりと形態素解析. 必要な品詞だけPythonで抽出. ストップワードの除去

    GitHub参照 LDAによるトピックモデル作成 gensimパッケージを利用し、各文書間に 共通する、潜在的なトピックを抜き出す →1,700単語(1x1,700のベクトル)を20 個程度のトピック(1x20のベクトル)に 集約(次元縮約) GMMによるクラスタリング その20次元ベクトルを用いてクラスタリ ング。いくつか試したところ、クラスタ 数を4つにすると感じが良いことが判明 ワードクラウドを作成して可視化 次項参照 12
  6. 同時確率と条件付き確率 同時確率 コイン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 ) # 条件なし確率と同じ値に
  7. 尤度(ゆうど) 尤度を表現する式と、同時確率を表現する式は、同じ形をしている 各データ(事例ベクトル、標本)がそれぞれ互いに独立であるとき、 尤度 L = P(x1 ) P(x2 )…P(xn

    ) . ・同時確率はあくまでも事象が起きる確率であるのに対し、尤度は「観察デー タの下での仮説の尤(もっと)もらしさ」の指標である ※「いぬど」と読むと尤度警察がやってきます (尤度は観測データはすべて出尽くしていて、それらのデータに対して、あるパラメー タの確率分布を当てはめた時、どれだけ尤もらしいかを意味している) ・実際の観測データを仮説上の確率分布に当てはめた際、あてはまりが悪いと 尤度は低く計算されてしまう →尤度を最大にするパラメータを求める(推定する)方法が最尤推定法 16
  8. 正規分布と尤度 正規分布における尤度 ある1次元の事例xi の生起確率を、正規分布の確率密度関数で表すとき、 xi = xi = 1 22

    exp xi − 2 22 x1 , x2 , …, xn が観測された際の尤度は L = P(x1 ) P(x2 )…P(xn ) = Π(xi ) = Π 1 22 exp − 2 22 ※同時確率と区別するため、あくまでパラメータがμ, σであることを強調することも L( μ, σ|x ) = Π 1 22 exp − 2 22 17 多変量正規分布における尤度 あるd次元の事例ベクトル()の生起確率を、正規分布の確率密度関数で表すと き(教科書では、それぞれの分散は同一と仮定されているので、) () = () = 1 22 exp () − 2 22 尤度は L = 1 22 exp ()− 2 22
  9. 正規分布と対数尤度 18 多変量正規分布における尤度 尤度は(教科書では、それぞれの分散は同一と仮定されているので、) () = () = 1 22

    exp () − 2 22 尤度は L = 1 22 exp ()− 2 22 積のカタチで表されている尤度は扱いにくいため、「対数尤度」が用いられる ことが多い。 対数尤度は logL =log 1 22 exp − 2 22 = log 1 22 exp ()− 2 22
  10. k-means法(重心法)とGMMの違い  テキストの表現が入門者に優しくない P(c) という概念(隠れ変数) が抽象的なため、理解がなかなか難しい 19 混合正規分布(Gaussian Mixture)によるクラスタリング ざっくり言わないと

    1.k個のクラスタの代表ベクトルm’(初期値)をランダムに決める 2.各事例ベクトルxが、どのクラスタに、各々どの程度の確率で属 するか(P( c | x(i); mOLD )を、P( x | c )が正規分布に従うと仮定して 計算する(GMM) 3.各クラスタの代表ベクトルを単純な重心ではなく、先ほど計算さ れた確率の重み付きで計算し、m NEW へ置き換える 4.代表ベクトルの変化が十分小さければ終了。大きい限りは 2. に 戻る。
  11. EMアルゴリズム EMアルゴリズムは2つのステップからなる E(xpectation: 期待値)ステップ 対数尤度をその期待値で置き換えるステップ M(aximization: 最大化)ステップ その値を最大にするように未知のパラメータ を推定するステップ 22

     一見、ただの最尤推定っぽいけど ・EMアルゴリズムは、不完全データにも使える ・不完全データとは、本来は観測されるべきだが観測できな かったデータ(欠損データ)を含むデータ ・欠損データを含むと、本来、尤度がパラメータθの関数として 定義できない ・対数尤度をその期待値で置き換えた関数「Q関数」の最大化を 通じてパラメータの最尤推定(的なもの?)を行う
  12. EMアルゴリズムの利点・特徴 24  不完全データからの最尤推定が可能 (実際には、欠損データに関する周辺化を行って、観測データのみの周辺分布による最 尤推定を行っている:周辺分布密度関数に観測データを代入した尤度を最大にする)  (対数)尤度を最大にする解を直接的に計算するのは 困難だが、Mステップで求めたパラメータθNEW をEス

    テップ(Q関数)のθOLD に代入して…とEMステップを 繰り返すごとで、(対数)尤度が単調に増加すること が知られている ※この場合の単調増加は、「不変または増加」の意味。なので、変化率が一定程度 収束しても、真の意味では極大値を求めたにすぎないことも十分にあり得る
  13. じゃあ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 )