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.

Tokyo webmining統計学部 第2回

6,859 views

Published on

  • Be the first to comment

Tokyo webmining統計学部 第2回

  1. 1. 代表・最⾼高解析責任者   倉橋⼀一成   1
  2. 2.   設⽴立立:2011年年3⽉月24⽇日    Web:http://ianalysis.jp/    本社:東京都港区南⻘青⼭山2-‐‑‒2-‐‑‒15  ウィン⻘青⼭山    取引先業種   ◦  製薬会社   ◦  医療療系⽀支援・コンサルティング会社   ◦  広告代理理店   ◦  ⼈人材サービス会社、ソーシャルゲーム会社   【本社エントランス】   ◦  商社、統計解析会社    医療療分野から始まり、多種多様な業種へのコンサルティング   ◦  Twitter:@iAnalysisLLC   ◦  Facebook:  http://www.facebook.com/ianalysis   2
  3. 3. 【経歴】      東京⼤大学Ph.D  (2011),  Statistician,  Data  Scientist,  Data  Miner    【専⾨門】    cDNAマイクロアレイ、臨臨床試験データ、レセプトデータ、    電⼦子カルテ・医療療オーダーデータ、マーケティングデータ    【スキル】    R,  SAS,  SPSS,  Visual  C++,  Ruby  on  Rails,  Python    【主な実績】    ・2005:NPO⽇日本臨臨床研究⽀支援ユニット、解析担当      腎臓癌患者の調査データの解析(SAS)      レセプトデータの解析と結果のレポーティング(R)    ・2007、2009:スタットコム株式会社、統計解析者      ⼩小児癌の臨臨床試験のプロトコルに沿った解析とレポーティング      術後乳癌患者のQOLに関する研究の解析と統計アドバイス    ・2009〜~2010:帝京⼤大学、医師への統計コンサルタント      論論⽂文化にあたっての医師へのアドバイスと解析      様々な科の医師に対してのコンサルタント(内科、外科、眼科など)スタットコム株式会社、統計解析者    ・2010:キャピタルメディカ株式会社、プロジェクトメンバー      レセプトデータを活⽤用した新規プロジェクトの⽴立立ち上げメンバー    ・2011:iAnalysis合同会社  設⽴立立  ※Twitter:  @isseing333  ※blog:  「おとうさんの解析⽇日記」  http://d.hatena.ne.jp/isseing333/   3
  4. 4. TokyoWebmining統計学部   の位置づけ   4
  5. 5.   データ解析I   ←ここをTokyoWebmining統計学部でやる予定です!    データ解析II    確率率率・検定・因果推論論    様々な分野での統計解析  h"p://d.hatena.ne.jp/isseing333/20110608/1307540893 5
  6. 6. 1.  ⼀一般化線形モデル  2.  教師付き機械学習  3.  ⾮非線形モデル(⼀一般化加法モデル)  4.  ⼀一般化線形混合モデル  5.  カテゴリカルデータ解析  6.  ⽣生存時間解析  7.  グラフィカルモデリング  8.  経時データの解析  9.  探索索的データ解析(EDA)  10.  多次元データの縮約  11.  ⾮非教師付き機械学習(クラスタリング)   6
  7. 7. 1.  データハンドリングI  (R)  2.  データハンドリングII  (perl、ruby、pythonなど)  3.  データベースからのデータ取得I  (RDBMS系)  4.  データベースからのデータ取得II  (noSQL、Hadoop系)  5.  webからのデータ取得  6.  データの可視化、データマイニング  7.  ⼤大規模データの解析I  (観測値側、Hadoop+Mahout)  8.  ⼤大規模データの解析II  (変数側)  9.  ⽋欠測データの解析  10.  ⾔言語データの解析   7
  8. 8. 1.  確率率率・分布と科学  2.  検定と信頼区間  3.  ジャックナイフ、ブートストラップ、クロスバリデーション  4.  ランダム化試験(A/Bテスト)とサンプルサイズ設計  5.  実験計画法とその解析  6.  相関と因果関係  7.  観察データの解析(因果推論論)  8.  ベイズ統計学  9.  ベイズへの応⽤用   8
  9. 9. 1.  官公庁での調査・統計  2.  経済分野(マーケティング、株)  3.  社会科学分野(社会調査)  4.  ⼼心理理学分野(⼼心理理調査・実験)  5.  ⼯工学分野(品質管理理)  6.  農学分野(品種改良良)  7.  ⽣生物学分野(遺伝⼦子)  8.  医学・薬学分野(臨臨床試験、薬物動態)   9
  10. 10. 今⽇日はココをやります!   10 h"p://ianalysis.jp/company/role.html
  11. 11.   「教師付き機械学習」とは?    ニューラルネットワークについて    サポートベクターマシン(SVM)について    その他教師付き機械学習について   11
  12. 12.   「教師付き」とは?   ◦  正解データと⾮非正解データの「教師」がある   ◦  予測したい変数(結果変数)がある    「機械学習」とは?   ◦  イメージ:機械が、さまざまなアルゴリズムによって教師データを“学 習”して(⼈人にはよく分からないけど)最適なパラメータが推定される    「教師付き機械学習」とは?   ◦  予測モデルの⼀一種   ◦  結果変数を予測するための複雑なアルゴリズム   12
  13. 13.   ニューラルネットワーク   ◦  Neural  Network  (NN)    ⇒    “神経の”ネットワーク     ⼀一つの”神経”  :    動物に⾒見見られる組織で、情報伝達の役割を担う。  (from   Wikipedia)   何を(どんな情報)、どのように”伝達”するか?  複数の神経 ⇒ 神経がつながる ⇒ 神経のネットワーク   o  これは、まさに人間の脳 ⇒情報伝達以上のことをしている! ⇒考える? 記憶する? 推論する? 予測する?   脳 “神経”の”ネットワーク” ※ 実際、NNは人工知能の研究分野の中から生まれてきた技術です。 13
  14. 14.   神経  ⇒  ニューロン   ◦  をコンピュータで扱えるように、モデル化(  抽象化、模倣?!)する。   入力1 荷重1 ニュー 入力2 荷重2 ロン 出力 入力3 荷重31. 各樹状突起がシナプスから電気パルスを 1. 各入力が、ある信号値を受け取る。受け取る。 モデル化2. 電気パルスによりニューロンの膜電位が上 2. 各信号値が重み付け(荷重)され、それらがる。 が”ニューロン”で、まとめられる。3. ニューロンの膜電位が、ある程度高くなる 3. まとめられた信号値が、ある値(閾値)をと、新しい電気パルスを発生させる。 超えると、出力信号が出される。4. 発生した電気パルスは軸策を通じ、ネット 4. 出力信号は、後に接続された別ワーク接続された次のニューロンのシナプス の”ニューロン”に伝わり、その入力となる。まで伝えられる。 ※実は様々な方法のモデル化があります。これは、もっとも一般的で「パルスニューロンモデル」と呼ばれます。 14
  15. 15.   ⼀一つのニューロン  ⇒  ただの情報伝達⼿手段・・・   ◦  複数組み合わせ、ネットワーク構成にする。  ⇒  ⾼高度度な機能の実現   ◦  組み合わせの⽅方法もいろいろありますが・・・       例例、階層型パーセプトロン  (階層型ネットワークの⼀一つ)   入力1 入力2 入力3 入力4 中間層 出力層 入力層 15
  16. 16.   3層パーセプトロンへの⼊入⼒力力と出⼒力力を考えてみる   入力1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 入力2 0 or 1 0 or 1 0 or 1 0 or 1 入力3 0 or 1 0 or 1 0 or 1 入力4 0 or 1 0 or 1 中間層 出力層 入力層 出力の値(0か1か?)を決めるのは、  ・入力データ  ・(関係するニューロンの)荷重と閾値 入力データを(出力値0/1で)識別したいときは、これらを調整すればいい。  ・(その関係性を定義する)ネットワークの構造   (中間層のニューロンの数など) に拠る。 16
  17. 17.   「パーセプトロンを学習させる」とは、この   ◦  各ニューロンの荷重    を(データに応じて⾃自動的に)決めてあげること。    (と考えて問題ない。今のところ。)    ⼀一度度適切切な荷重を決めてあげれば、同じ⼊入⼒力力データについては、い つも必ず同じ識識別結果が得られる!   “入力1 =0”と”荷重=0”を 例1 掛け合わせても”閾値=2”より低い 荷重=0 ので、出力は”0”になります。 閾値 0 入力1 =0 =2 入力データ = (0, 1, 1) を与えると、  荷重=1 0 荷重=0 閾値 1 出力= 1 となる 荷重=2 =1 荷重=5 閾値 1 荷重=2 閾値 入力2 =1 1 =3 1 荷重=3 荷重=2 =1 荷重=1 閾値 0 荷重=0 =2 荷重=5 閾値 1 入力3 =1 1 入力データ (0, 1, 1)は”1”と識別 =3 “入力3 =1”と”荷重=5”を された!! 掛け合わせると”閾値=3”より高く なるので、出力は”1”になります。 17
  18. 18. 例2 荷重=0 閾値 0 入力1 =0 =2 荷重=1 0 荷重=0 閾値 0 荷重=2 =1 荷重=5 閾値 1 荷重=2 閾値 入力2 =1 0 =3 1 荷重=3 荷重=2 =1 荷重=1 閾値 0 荷重=0 =2 荷重=5 閾値 0 入力3 =0 0 =3例1と同じネットワーク構成、荷重でも、 入力データ = (0, 1, 0) を与えると、 今度は出力= 0 となる例3 荷重=0 閾値 0 入力1 =1 =2 荷重=1 0 荷重=0 閾値 0 荷重=2 =1 荷重=5 閾値 0 荷重=2 閾値 入力2 =0 0 =3 0 荷重=3 荷重=2 =1 荷重=1 閾値 0 荷重=0 =2 荷重=5 閾値 0 入力3 =0 0 =3例1と同じネットワーク構成、荷重でも、 入力データ = (1, 0, 0) を与えると、 やはり出力= 0 となる 18
  19. 19. 例3’ 荷重=1 閾値 1 入力1 =1 =2 荷重=1 1 荷重=0 閾値 1 荷重=2 =1 荷重=5 閾値 0 荷重=2 閾値 入力2 =0 1 =3 0 荷重=3 荷重=2 =1 荷重=1 閾値 1 荷重=0 =2 荷重=5 閾値 0 入力3 =0 0 =3今度は 例3と同じ、入力データ = (1, 0, 0) を与えても、 荷重が異なると(@左上のニューロン)、出力も変わり  1 となる! 同じデータに対する識別方法が変わった!! ⇒「荷重の設定方法が識別方法そのもの」 ということになる。 19
  20. 20.   データ(とその出⼒力力)だけから、識識別機能をNNに学習させる。   ある”期待した入力データ”が、”期待した出力” をしない場合は、荷重を調整してあげればいい! 入力データ   期待する出力   実際の出力   例1 (0, 1, 1)   1   1   ⇒OK   例2 (0, 1, 0)   0   0   ⇒OK   例3 (1, 0, 0)   1   0   ⇒NG!!   荷重を調整(修正)   例3’ (1, 0, 0)   1   1   ⇒OK   期待する入力データと出力の組み合わせがたくさん準備さ れていた場合、それらの組み合わせをなるべく多く満足させ るような、荷重は何か? この問題、解決技術として、「ニューラルネットワークによる機械学習」が開発されました。 ※今回の例では、正確には、”教師有り機械学習”技術 といいます。 20
  21. 21.   ニューラルネットワークのタイプやパーセプトロンの構成により、 さまざまな種類の調整⽅方法があります。   ◦  各⽅方法では、数学的な証明が要求される。    最急降降下法   ◦  すべてのデータ:期待する出⼒力力  と  実際の出⼒力力  の差(エラー)を最⼩小化   ◦  ニューロンモデルが線形(リニア)であれば、エラーを最⼩小化させる各荷重 を求めるのはそれほど(数学的にも)難しくはない。     コンピュータで計算させても、⾼高速で実現可能    バック・プロパゲーション(誤差逆伝播法) 荷重=0 閾値 0 誤差を伝播   期待する出力は   入力1 =1 =2 0 荷重=1 閾値 0 誤差を伝播   1 荷重=0 誤差が1(=1-­‐0) 荷重=2 =1 あると考える   荷重=5 閾値 0 荷重=2 閾値 入力2 =0 0 =3 0 荷重=3 荷重を修正   荷重=2 =1 荷重=1 閾値 0 荷重=0 =2 荷重=5 閾値 0 入力3 =0 0 =3 21
  22. 22.   ⼊入⼒力力データはデジタル信号と仮定しましたが、  ⼀一般に、構造化さ れたたいていのデータはデジタル信号に変換できます。   ◦  ⽂文字、画像(例例:⽂文字認識識OCR)  ⼿手書き⽂文字  ⇒  画像   ◦  ⾳音声、⾳音楽   ◦  映像、動画    ⽂文字や⽐比較的⼩小さい画像などは、そのまま0/1のビット列列に置き換え、 ニューラルネットワークの⼊入⼒力力にしても問題ない。   ◦  ⾳音声や映像の⼤大規模データ、とくにこれらを”リアルタイムに”扱いたい場 合は、直接⼊入⼒力力にすると、ネットワーク構成の規模が巨⼤大になりすぎる。       ⇒荷重調整にて、“適切切な“識識別機能を実装するのが、現実的に困難。       ⇒データの種別に合わせ、固有の特徴を事前知識識から抽出      例例:顔の画像データ          特徴:⽬目の位置や⼤大きさ、⾓角度度        ⼝口の幅、etc   ◦  まず特徴を識識別し、さらにその識識別     結果を識識別する。     ⇒認識識機能の複数ステップ   22
  23. 23.   単純なパーセプトロンのような構造のニューラルネットワークでは、 これら現実に応⽤用できる識識別問題へは対応できません。   ◦  ⾮非線形のニューロンモデル     単なる⾜足し算、掛け算ではなく、⾼高次元関数、指数・対数関数、微分積分などを 組み合わせる。   ◦  中間層ニューロンの出⼒力力も  0/1に限る必要はありません。   ◦  ニューロン間の伝播も、⼀一⽅方通⾏行行である必要はありません。   相互結合型ネットワーク   ボルツマンマシン   23
  24. 24.   ニューラルネットワーク   ◦  ⼈人⼯工知能の研究分野から⽣生まれた。   ◦  ⼈人間の脳を模倣して、識識別機能を実装してみる。    ニューロン単体をモデル化、そして、それを結合。   ◦  モデル化の⽅方法や、結合⽅方法もいろいろある。    ニューロンのパラメータ(荷重など)を、教師有り(期待する結果 が分かる)のデータで調整   ◦  ⇒  「機械学習」の根本コンセプト       ※もちろん、教師無しの機械学習技術もありますが、今回はトピック外とします。    ⼤大規模データは特徴抽出など、⼈人間の解釈や知識識を利利⽤用   ◦  ⇒  複数の技術を組み合わせ使っているのが、実際   24
  25. 25.   サポートベクターマシンの本題に⼊入る前に・・・・    ポイントを明確にするために超単純化して、2種類の⼿手書き⽂文字の機 械による認識識を考えてみる。   手書き文字 出力 (認識結果) 入力 ぬ・め   “ぬ” (という情報) 認識機械   手書き文字 出力 (認識結果) 入力 ぬ・め   “め”  (という情報) 認識機械   図1. “ぬ・め認識機械”に期待する動作  当たり前のようですが、機械が”認識”するとは、どういうことかを、再確認 してみましょう。   25
  26. 26.   ある⼊入⼒力力データには必ず、その答え、つまり   ◦  学習した結果、   ◦  出⼒力力すべき正しい結果   が、出力されなければなりせん。    そうするために、多くの⼊入⼒力力データと教師データで、認識識機械を強固にしま す。   「入力データは”ぬ”です!」 「入力データは”め”です!」 教師 教師 ぬ・め   学習 ぬ・め   ぬ・め   学習 ぬ・め   認識機械   認識機械   認識機械   認識機械   ぬ・め   学習 ぬ・め   ぬ・め   学習 ぬ・め   認識機械   認識機械   認識機械   認識機械   ぬ・め   学習 ぬ・め   ぬ・め   学習 ぬ・め   認識機械   認識機械   認識機械   認識機械  人間が識別する 人間が識別する あらゆる種類の”ぬ“ あらゆる種類の”め“ 26
  27. 27.   ここで、⼀一つの⽂文字画像が、⼆二種類の特徴を持って表わせるとしま す。   ◦  実際、どのように特徴を導くかが認識識機械の精度度にも⼤大きく関わりますが、   ◦  ここでは、(数式をなるべく使わずに、直感的に⼈人が理理解しやすい)、図 を使って解説するので、”⼆二種類”にさせてください。   ◦  その⼆二種類の特徴を、それぞれ、  x  と  y  とします。     そして、また、図を単純化するために、  x>0  と  y>0  という条件も付けます   特徴ベクトル (x, y) ベクトルという言葉がでてきました。サポート ベクターマシンのベクターに関係しているか らでしょうか? 後ほど説明します。 ※  上で述べたように特徴を表わすパラメータは二つに限ったことではないので、一般には、 特徴ベクトルは (x1,  x2,  x3  ,・・・,  xn  ) のようにn次元で表現できます。   27
  28. 28.   2次元特徴ベクトルによる図で、認識識機械を考えてみる。   y 一つの手書き文字 (入力データ) 特徴ベクトル (x0, y0) y0 y1 別の一つの手書き文字 (入力データ) 特徴ベクトル (x1, y1) 0 x0 x1 x  2次元の図にプロットされる点は、”め”か”ぬ”に識別されなくてはならない。     できるなら、各点の特徴ベクトルの値だけで、判断したい!   y y “め”と学習できるデータ(教 師) “ぬ”と学習できるデータ(教 師) 0 x 0 x 例1: xもyも低い値(0に近い)データ 例2: xは低く、yが高いデータ が、”め”と認識されている?! が、”め”と認識されている?! 28
  29. 29.   特徴ベクトルを⾒見見ただけで、”⼈人間が⾒見見て、直感的に分かる“   ◦  識識別機能:コンピュータに実装させるのが機械学習。   直接で分けられたこの領域 に入れば、”ぬ”   y y 直接で分けられたこの領域 に入れば、”め”   0 x 0 x 例1: xもyも低い値(0に近い)データ 例2: xは低く、yが高いデータ 人間の直感 が、”め”と認識されている?! が、”め”と認識されている?!  コンピュータでも扱えるようにするためには、数学的な表現が一番簡単。     “め”のデータと”ぬ”のデータを綺麗に「分ける」 直線 を引けないか?!     直線によって、二つの領域ができ、それぞれが認識結果に対応できる。   29
  30. 30.   「認識機械が強固になる」とは?   ◦  新しいデータに対して、より高い確率で”正解”となる認識ができる    上のように説明しましたが、”より⾼高い確率率率”とはどういうことなの か、例例の2次元の特徴ベクトルの図で考えてみる・・・・・   y ”め”とも”ぬ”とも・・・   0 x 新しくやってくるデータの特徴ベクトルが、今までの二つの領域 のいずれかに、もっとも均等に振り分けられる。   (特徴ベクトルが正しく抽出できているなら・・・・)   30
  31. 31.   最適な直線を引く必要がある   ◦  では、どのように引くか?   ◦  ⼆二つの領領域、つまり、教師付き学習で使ったデータによって作られた特徴 ベクトルの集合情報を利利⽤用!   y マージン(直線までの距離)を 最大化する! サポートベクター   0 x  ⼆二つの領領域を分けるのに、本当に必要な特徴ベクトルは、限られて いる!!   ◦  ”め”と”ぬ”の領領域を切切り分けるのに、重要な役割を果たしている。   ◦  分ける役割を果たす特徴ベクトルことを、サポートベクターと呼ぶ。   31
  32. 32.   この識識別・認識識問題は、ニューラルネットワーク(NN)と呼ばれる、 最も単純な機械学習モデルによって解決可能,,,,,だが・・・・   y y y “ぬ”に近すぎ “め”に近すぎ 領域に対し 均等でない。 x x x  どのような直線が引かれるかは、分からない。(データの与え⽅方、NNの構造 次第)   y 0 x  サポートベクターマシンなら、いつでも均等に分ける直接が引かれる!   32
  33. 33.   SVMがさらにできること   ◦  ⼊入⼒力力データや特徴ベクトル抽出⽅方法により、NNでは到底できない領領域も 可能にする⽅方法がある。   ◦  例例えば、次の図のような⼆二つ領領域になる特徴抽出の⼊入⼒力力データでは?   y 0 x ◦  直線ではなく、このような、曲がりくねったカーブを分解基準としたい。   ◦  数学的に⾔言えば、これは線形なモデルでは表現することはできません。   ◦  つまり、パーセプトロンのような単純なNNでは、この認識識機能を実現す ることは簡単にはできません。   33
  34. 34.   SVM  =  カーネルトリック??   ◦  違います。    ただし、SVMが⼀一番有効に活⽤用されるケースが、特徴ベクトルの認 識識領領域が単純な直線で定義できない場合であるため、そこではカー ネルトリックが必要になります。   ◦  (厳密に⾔言えば異異なりますが、)SVMとカーネルトリックはセットで考 えてしまっても、実⽤用上は問題ないでしょう。   y y カーネル変換 0 0 x X  低次元のベクトルを、⾼高次元に写像する   ◦  ⇒  2次元の世界では、曲線で分けていたものが、3次元の世界では線形 な平⾯面で識識別可能になる!  これをカーネルトリックと呼びます。   34
  35. 35.   カーネルトリックを適⽤用した⾼高次元の空間においても、SVMを応⽤用 できる。   ◦  認識識判断を強固にするための平⾯面を切切りだす。    2次元の例例と同じように、3次元でも、各領領域を分けるためのサポー トベクターを導く。   ◦  サポートベクターから平⾯面までのマージンを最⼤大化する。   y 0 サポートベクター   X ◦  ⼈人間が理理解できる図で、”2次元”から”3次元”へのカーネル変換の説明しま した。   ◦  しかし、3次元以上の⾼高次元の特徴ベクトルにするカーネルトリックも⼀一 35 般的です。  
  36. 36.   機械学習というと、魔法の杖をかざすようにデータさえ⼊入⼒力力すれば ブラックボックス的になんでも答えがでてくるイメージがあります が、そんな万能な⼿手法・モデルは滅多にありません。   ◦  特にSVMはそのイメージが強いですが、何でも有効というわけではあり ません。    “Vector”を「ベクトル」と読むように⾼高校数学で教わりますが、 SVMに関しては、サポート”ベクター”マシンと表記している⼈人が多 いようです。    ちなみにSVM(をカーネル法と組み合わせたことで)元祖と呼ばれる                         Dr.  Vladimir  Vapnik  は、スライド作成を⼿手伝ってくれた⽅方の同僚僚。   ロシア人と日本人というのは、 相性がいいと思うんだよね。 性格的にも。文化的にも。   彼が家族を会社に連れて行ったとき、偶然、廊下 で出会った(当時5歳くらいの)娘にかけた言葉    36
  37. 37.   アンサンブル系   ◦  ランダムフォレスト     濱⽥田さんの資料料: http://www.slideshare.net/hamadakoichi/introduction-‐‑‒torandomforest-‐‑‒ tokyor   ◦  バッギング   ◦  ブースティング    Hadoop+Mahout   ◦  https://cwiki.apache.org/confluence/display/MAHOUT/Algorithms    Jubatus   ◦  http://research.preferred.jp/2011/10/jubatus/   37

×