渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

社会人が統計学や機械学習を学ぶなら「落下傘方式」で

今日何気なく呟いたツイートが、見ていたら結構RT&favされていた模様で。



この後も色々補足で呟いたんですが、せっかくなので簡単にまとめたものを書いてみました。これから社会人で統計学機械学習を学ぼうと考えている人の参考になれば嬉しいです。


あ、これはベタな言い方をすれば「データサイエンティスト(死語)になるにはどうしたら良いか」にもつながる話なんですが、ここではもっと広く統計学機械学習を使う仕事をしたいと思ったらどう独習するべきか」という話にしておこうと思います。


「落下傘方式」=必要になった時に必要な項目だけ学んで実践する


これは僕のオリジナルのアイデアではなく、まだ大学受験生ぐらいの頃に読んだ野口悠紀雄氏の著書か何かに出ていた喩えです*1。すなわち、とにかく「必要になった時に必要な項目だけ学び、覚えたらとにかく実践してみる」というやり方です。


f:id:TJO:20140331154909p:plain


例えば「今目の前に顧客の行動データがあってどのアクションをしてもらうと購入金額が増えるかを知りたいんだけど。。。これは重回帰分析って方法で簡単に求められるのかな」みたいな。そこでまず重回帰分析(正規線形モデル)を統計学の本を開いて学び、RやPythonでパッケージなりライブラリを用いてサクッと計算してみてその出力や癖を覚え、実践してみる。そしてまた何か疑問点があったら本を読むところに戻って調べ、また試す。これを繰り返すというわけです。


この繰り返しで、広大な統計学機械学習のマス目を少しずつ埋めていけば、歩みは遅くても着実に理解が深まっていくと思います。これを、普通に大学院で専門的かつ網羅的に勉強するのと同じようにやろうとすると、こんな感じに見えるかもしれません。


f:id:TJO:20140331160519p:plain


高くそびえる、どこまで登ったら頂上にたどり着くか分からないような険しい山が2つ屹立しているように見えるかもですね。これだとあまりにも「いくらやっても果てしない感」が強過ぎて、しんどいと思うんですよ*2。落下傘方式の方が、多少いい加減でもじわじわと統計学機械学習が身に付くはずです。


はじめに網羅的なテキストを流し読みで良いので通読する


ただ、落下傘方式一辺倒だとやっぱり全体の見取り図が分からなくて困ったり理解が曲がった方向に向かっていってしまったり、それこそ落下傘で降りたところの浅い理解のままで押し通してしまうことも多いと思うので、はじめに見取り図というか大きな地図がつかめるような本を流し読みで良いので通読すると良いでしょう。テキストはいくらでも良いものが挙げられますが、個人的には以下の2点ですかねー。


統計学入門 (基礎統計学)

統計学入門 (基礎統計学)

はじめてのパターン認識

はじめてのパターン認識


もちろん、腕に覚えのある人は黄色い本*3とかでも良いと思います(笑)。大事なことは、細部は初めのうちは分からなくて覚えられなくても良いので、全体の流れというかイメージだけは頭に入れておくこと。そうすることで「引き出し」が身に付くし、何か知りたいことがあった時にどこから手を付ければ良いかが分かるようになるはずです。


例えば「二値データの回帰」となった時に、きちんとすぐ正規線形モデルではなく「ロジスティック回帰(ロジットorプロビットモデル)」という選択肢が思い付くかどうかというのは、結構大事だと思うのです。


ある程度知識が増えたら、それらの知識の関連性も学ぶ


「落下傘方式」がいかに強力だとはいえ、勉強が進めばそれなりに覚えたことも多くなってきて次第にこんがらがってくると思います。そういう時に、自分の「理解」の「体系化」を、実際の学術体系と照らし合わせながら進めていくことも大切です。つまり、「覚えた知識同士の関連性を学ぶ」ということですね。


例えば、ロジスティック回帰は統計学においては一般化線形モデルの中で最尤法とともに学ぶものですが、機械学習においては出力を確率値として与えられる識別モデルの一環として学ぶもの。PRMLなんかを見れば分かりますが、ベイズの枠組みの中で理解することも可能です。このように、同じひとつの事由であっても、多くの切り口から理解することができます。そこで「結局これって尤度計算なんじゃん→MCMCでいけるよね」みたいな流れにまで行けば*4、なかなか良い発展なんじゃないかと。


研究の道に進みたければ、一度戻ってゼロから体系的に学ぶべし


とは言え、これはあくまでも統計学機械学習の「ユーザー」という立場における勉強法。もし、例えば社会人博士などで改めて数理統計学機械学習アルゴリズム研究の道に進みたいと思ったら、こんな程度で満足していてはいけません。何故なら研究というのは「既にあるものを知る」ことではなく、「まだそこにないものを見出すor創る」ことだからです*5。そのためには、基礎となる学識体系を自分の中に築き上げる必要があります。


なので、そういう人にはまだるっこしいと思っても一度ゼロから徹底的に体系全体を学び直すことをお薦めします。できれば、隣接する別分野の勉強もすると良いでしょう。それこそWAICの例のように*6、例えば代数幾何学みたいなところも勉強した方が後々役に立つかもしれませんし。そうすることで、高い山に登るための基礎体力がつくはずです。それが備われば、もっと高い山=研究目標を乗り越えることもできるようになるでしょう。


最後に


そんなわけで、僕も細々と独習を続けています。。。今は専らベイジアンばっかりですが(笑)。そのうち本格的に計量経済学とかも勉強しようかなぁ。

*1:『超勉強法』だった記憶があるんですが、忘れました(笑)。ちなみにその本で提唱されていた英語の「音読」勉強法は僕もお薦めです

*2:Mの人は知りませんが(笑)

*3:ぶっちゃけPRMLを上下巻流し読みすれば、(統計的)機械学習分野の全体図だけは頭に入るはずです

*4:いきなりハードル上がったようにも見えるが気にしない

*5:僕自身が昔ボンクラ研究者だった頃の体験談と思っていただければ

*6:参照→ http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/waic2011.html