Advertisement

Olearning-prml8

CTO at Whats
Mar. 11, 2014
Advertisement

More Related Content

Recently uploaded(20)

Advertisement

Olearning-prml8

  1. Text Osaka PRML Learning 11 Kousuke Takeuchi
  2. CHAPTER 11 系列データの分類
  3. 文字列のパターン認識 文字のパターンを認識するためには、どのようなことを考えていけ ばよいか? 1. 文字列をバラバラにして、各文字を個別に認識させる。        → これまでのパターン認識のアルゴリズムを適応しやすい。 2. 文字の前後関係の規則性をパターン認識する。            → 文字列の認識精度を向上できる。 1はデータが文字数しかないのに対して、2は文字数+文字の組み合 わせの数だけデータがあるので、計算速度が指数的に増えてしまう
  4. SECTION 1 系列データのモデル化
  5. 文字列から一般モデルへ 「あ・い・う・え・お」の組み合わせを考えてみる 文字の長さは5で、組み合わせ総数は5! = 120通り これを一般的にいうと「パターンの種類 c = 120, 系列の長さ m = 5」 となる k番目のパターンをx(k), k番目のパターンが属するクラスをy(k)で表し、 それらのm(=5)個が属するパターンの系列をx, yで表すことにする。
  6. 具体的にどんなパターン認識をするのか? 「な・ん・や・そ・れ」の組み合わせを考える 系列の長さ m = 5 「なんやそれ」、「それなんや」、「それやんな」、「やんそれ ん」・・・などの組み合わせがある。 x(1) =「なんやそれ」、x(2) =「それなんや」、             x(3) =「それやんな」、x(4) = 「やんそれん」・・・ x(1) → y(1) = 疑問、x(2) → y(2) = 理解、x(3) → y(3) = 疑問、x(4), x(5), ・・・ → y(4), y(5),・・・= 意味不明 といった感じでクラス分け パターン数は「疑問、理解、意味不明」の3つなので、c = 3
  7. cクラスのパターン認識問題をm回解くだけでパター ン系列全体を認識できる 前章のロジスティック回帰を用いると・・・ ! ! このクラス事後確率p(y;x)を用いて各パターンを認識 文字をバラバラに認識する場合
  8. 連続するパターンを認識する場合 「こんにちは、お元気ですか?」という標本をラベル付け → 「あいさつ、疑問」 このラベルの並びからパターン認識すると、「あいさつ、疑 問」→「挨拶定式文」 ex) 「お腹すいた、ご飯食べたい」→「状態、主張」→「何ら かの催促」 一般化すると、x : 標本 → y : ラベル → z : ラベルとなる この方法でパターン認識すると、指数的に計算が増えていく
  9. そこで、ひとつ前のパターンのラベルy(k-1)が、ラベ ルy(k)に影響を与えると仮定する。 つまり、2つの隣り合ったラベルだけで連続的なパ ターン認識をする。→ c^2クラスと呼ぶ ex.)「起・承・転・結」を連続パターン認識する場合 は、(起, 承)、(承, 転)は認識するが、(起, 転)は認識し ない。 このような手法を、条件付き確率場と呼ぶ
  10. 条件付き確率場 このq(y|x, ζ)を最大化するパラメータζを学習するの で、最尤推定の公式は以下のようになる
  11. SECTION 2 & 3 ・条件付き確率場モデルの学習 ! ・条件付き確率場モデルを用いた  ラベル系列の予測
  12. 条件付き確率場モデルを学習し、予測する・・・ 「動的計画法」を用いて先ほどの数式を高速化し、 より最適な確率場のパターン認識モデルを作成する ・・・と本には書いてありますが、数式が複雑すぎ て30分では紹介&解説しきれません。 ・・ということで、このセクションは無視して、    とりあえずプログラム書いてみましょう(笑)
  13. テキスト回帰プログラム GithubのREADME.mdを評価する
  14. どんなプログラムか GithubのREADME.mdに対して、☆の数を割り当てた ものを訓練標本とする 全体の☆の分布が0∼100の場合、50個以上星があれ ば優秀なREADME.mdという風に分類する 星の数は綺麗に分布していないので、優劣の境界値 として、平均値ではなく中央値を採用する。
  15. 0 50 100 150 200 0 5 10 15 20 人数 ☆の数 ☆たくさんの人が少ない ☆あんまりない人が多い
  16. 0 50 100 150 200 0 5 10 15 20 人数 ☆の数 中央値 平均値 ほとんどの人が「劣」に分類されてしまう 今回のデータでは、☆の中央値:171, 平均値:433.9となった
  17. 1.README.mdと☆の個数データをJSONにまとめる
  18. 2. JSONデータからREADME.mdを取得 rjsonを用いてJSONをパース RCurlでREADME.mdをGET
  19. Markdownのテキストデータを行列に変換
  20. ロジスティック回帰のライブラリを用いて 優秀なREADME.mdである確率を求める 使用したライブラリ: glmnet, boot           → 今回学んだことを全部勝手にやってくれるw ! この関数によって、学習パラメータζを算出
  21. データを使ってパラメータ算出 x : 先ほどの文字列のデータ y : ☆の数が中央値よりも大きいなら1、小さいなら0 と変換したもの
  22. 学習パラメータを使って 新たなREADME.mdを評価する 1.正規化パラメータ: λ 2.先ほど学習した パラメータを使用 3. 新たなmdを評価 !
  23. 結果は・・・? threshold値:171で学習したものを使用
  24. 感想 改めてRのライブラリの便利さを思い知らされた ただし、ライブラリの引数(λなど)の使い方を理解す るためにも、ある程度は数学的に理解する必要あり 前回まではMS Officeでスライドを作ってたが、 keynote使ったほうが100倍楽。keynote最強。
  25. 課題 たまにはサボりましょう。 次回で教科書の学習は最後になるので、残りの時間 で作ってみたいサービスを10個くらい考える
Advertisement