Hatena::ブログ(Diary)

EchizenBlog-Zwei このページをアンテナに追加 RSSフィード

2016-05-09

効率的に論文を読む力を得るための方法、あるいはラノベの有益性について。

研究に直接関係ないタイプの労働をしていると、先端の研究を追いかけるのが困難になってきます。

なんといっても論文を読む時間がとれないので有識者の記事やらスライドやら書籍やらに頼ることになるのですが、とはいえ1次ソースであるところの論文を確認しないとどうにもならない場合もありますし、複数本の論文を見てはじめてトレンドがなんとなくわかってくるということもあるように思います。

というわけで論文を効率的に読む力を得るぞ!という試みをやっています。参考になるかわかりませんが、この試みについて共有しておきます。


大雑把な方針

論文を読むにあたって、量と質の双方を高める必要があります。そこでこの2つの要素をそれぞれ伸ばすことを考えました。

論文を読む質を高める

社内で一緒に論文を読んでくれるという奇特な方がなんと1名もいらっしゃったので、総勢2人という大人数の論文読み会を定期開催しました。

3ヶ月毎に対象となる国際会議を決めます。1年は12ヶ月なので4つの会議の論文を読みます。さしあたり1〜3月がNIPSで7〜9がICML、残りの2つはその時々の興味で決める感じです。

読み会は毎週1時間で業務に悪影響が出ないようにやるので1つの会議に対して約12回の開催となります。最初の2回でどの論文を読むかを決めます。ここで読む論文を5本に絞ります。初回で粗く1人あたり10〜15本くらい選んでおいて、2回目でどれを読むか確定する感じです。

選んだ5本はそれぞれ2回ずつ時間が使えるので、初回でざっと読んで疑問点を洗い出し各自調べてきつつ2回めで再確認、という感じです。このとき関連研究の論文を読んだり、実装してみたりなども各自余裕があればやります。読む本数を絞っているぶん、中身はちゃんと読もう、ということです。

これを繰り返すことで論文を読む質を高めていきます。

論文を読む量を増やす

NIPSとかACLとかの大きな会議になると、論文の数も300本とかあります。これだと1日1本読んでいても1年かかってしまいます。とはいえアブストラクトだけでも目を通しておきたいものです。

論文アブストラクトを読む上で困難になる点は2点です。1つは初見の用語を調べること。もう1つは長時間にわたって文章を読み続けることによる疲弊です。

前者については普段論文を読まないことによるオーバーヘッドなので定期的に論文を追っていれば次第に負担が減っていくことが期待できます。

後者については論文が、ということにこだわらずに文章をたくさん読んでも疲れないようにするというのが重要です。この点に注力するために、文章をたくさん読む以外の障害がない、それどころか有益ですらあるような仕組みが必要です。具体的には、労働で体力を奪われてもうなんにも考えられないよ〜という状態でも取り組めるような仕組みが必要です。

有益といえばラノベです。ラノベはだいたい300Pあります。1ページの文章量がだいたい1つの論文アブストラクトと同じくらい(たぶん)なので、ラノベを1冊読む時間で、(前述の初見のオーバーヘッドを除いた)純粋に300本の論文を読むのに必要な時間・体力を見積もることができます。

というわけで毎日ラノベを読むことにしました。文章を読む力がつく上に有益な気持ちになれるなんて、なんと素晴らしいのでしょうか。はじめた当初は1時間で100ページも読めなかったのですが、最近では1時間で150P読めるようになりました。つまり2時間で1冊です。これは初見オーバーヘッドがない状態で論文300本のアブストラクトを読むのに2時間で済むことを意味しています。すばらしい。

ラノベ入門

ここまでラノベ有益性が明らかになると、何がなんでもラノベを読みたくなってくるはずです。そこでさっそくラノベに入門してみましょう。

ラノベといっても数が多すぎでどれを読んだら良いのかわからないよ!という気持ちになるかもしれません。そんなとき手っ取り早いのが「アニメ化している作品の原作を買う」です。これだと気軽にアニメをみて雰囲気を掴んだ上で作品を購入できるのでハズレの危険が少ないです。

いわゆる「ラノベ原作アニメ」が肌に合わないという方もいるかもしれません。大丈夫です!ラノベ多様性をもった媒体なので「ラノベ原作アニメ」っぽいラノベラノベでもほんの一部です。

というわけで「ラノベ原作アニメ」ではないラノベを買うにはレーベル(XX文庫っていうあれ)を絞って適当にピンときた新刊を買うのが良いでしょう。

電撃文庫」がおそらく現状で一番メジャーなレーベルなのでここから買うのがハズレが少ないです。いわゆる「ラノベ原作アニメ」的なラノベがいいなら「MF文庫J」が良いでしょう。硬派なものが好きなら「ガガガ文庫」がオススメです。とりあえずこの3レーベルレーベルの特色がはっきりしているので、このどれかに手を付けるのが手堅いように思います。

また私が読んだラノベについては(https://github.com/echizentm/YUEKI)で管理しています。scoreが「個人的に好きな作品だったか=有益度」の指標です。私と感性が似ている人には参考になるかもしれません。

2015-12-29

個人的に参照することの多い機械学習の本

機械学習の本をおすすめする記事をいろいろ書いてきたけど、純粋に自分が活用している本について書いたことがなかった気がしたので書いておきます。必ずしもおすすめではないかもしれません。ベイズ1冊、DL1冊、凸2冊の計4冊。


パターン認識機械学習

なんだかんだで最も参照頻度が高い気がしました。ベイズに寄りすぎている感はありますが、だいたい必要なことはこれに書いてあるので何冊も手元においておかなくていい便利さがあります。

 


深層学習 (機械学習プロフェッショナルシリーズ)

DLまわりだとこれが一番わかりやすい印象です。変な政治パフォーマンスがなくて純粋に機械学習としての差分が書いてあるのでよい感じ。


東京大学工学教程 情報工学 機械学習

大半はPRML読めばいい感じの内容ですが、オンライン機械学習まわりはこっちのほうが良いです。下記の確率的最適化を読む前に読んでおくとだいぶ見通しが良くなる印象。


MLP 確率的最適化 (機械学習プロフェッショナルシリーズ)

最近いろんなところで見かける凸共役のお話とかはこれが一番詳しい感じです。

2015-11-13

文系でも機械学習がわかるようになる教科書

社内の有志で機械学習や数学の勉強会をいくつかやっています(私以外の方が主催しているものもある)。とくに理系ではない方も参加されていますが、きちんと頑張ればだんだん機械学習ができるようになるということがわかってきたのでメモしておきます。

なお、機械学習をとりあえず実装するだけだったらもっと簡単に学ぶ方法もいろいろあり、今回はあくまで正攻法で機械学習を勉強する、という観点での書籍の選択となっています。急がば回れという言葉もあるように、焦って成果を求めないのであれば地道に頑張るほうが後々応用が効いて良いということもあります。


高専の数学

おそらく数学ができないという方は高校の数学あたりから理解が怪しいことになっていると思います。「高専の数学」は中学数学までの前提知識で読める教科書で、わかりやすい例題や理解の助けになる練習問題が多数用意されているため、きちんと問題を解いていけば無理なく高専の数学(高校の数学+α)が身につきます。

1,2巻まで読めば微分積分線形代数ができるようになるので3巻は後回しにしても良いかもしれません。

  


基礎からの微分積分

機械学習の前準備としては「高専の数学」で充分なのですが、機械学習に限らず大学以降の数学には高校までとは異なる雰囲気があります(ε-δ論法など)。そういった雰囲気に慣れていないと落ち着けばわかる内容でも混乱して頭に入ってこない場合があります。

この「基礎からの微分積分」は大学初年度程度の内容で微分積分の平易な説明が書かれています。大学生向けの教科書にしては珍しく例題、練習問題が豊富で解答もついているため高校から大学の内容へとステップアップするのに適切な教科書だと思います。


ITエンジニアのための機械学習理論入門

この本は実はまだ勉強会では読み始めていないのですが、機械学習では有名なPRMLという本のイージーモードという位置づけの教科書です。通称イージー本です(勝手に決めた)。PRMLは内容が詰まりすぎていて初心者が手を出すと理解する前に体力が尽きてしまう場合があるのですが、イージー本では内容が厳選されているため「基礎からの微分積分入門」くらいまで読める体力があれば無理なく読めると思います。


パターン認識機械学習

この本が機械学習の勉強に適切かは賛否あるかと思います(私はどっちかというと否定派)。とはいえ有名な本なので「あのPRMLを読めるようになるぞ!」というモチベーションで勉強をするのも悪くはないかなと思います。実際、この本が読めるようになれば他の本もサクサク読めると思うので決して無駄ではないと思います。(否定派というのは悪い本だから、ということではなくて最初に読むにしては詰め込みすぎという意味です)

 

2015-03-21

"トピックモデルによる統計的潜在意味解析"を読んでLDA(Latent Dirichlet Allocation)を実装しました

"トピックモデルによる統計的潜在意味解析"という有益な書物が発売されたので読んでみました。

それなりに高度な話題を簡潔に解説した素晴らしい本で、これを読んだことでよくわかっていなかったCollapsed Gibbs Sampling版のLDAを実装することができました。

トピックモデルに興味がある人は何がなんでも買ったほうがよさそう。

https://github.com/echizentm/LDA


LDAがどういうものかわかっていればp.40〜p.57あたりを読むだけでいけそうです。前にLDAを作ったときは元論文に書いてある変分ベイズを使ったやり方をしていたのですが、多分Collapsed Gibbs Sampling版のほうが簡潔にかけるし直感的にもわかりやすいので良い気がします。

githubにおいてあるサンプルを実行すると以下のような感じになります。

apple(果物、企業)やorange(果物、色)のような複数の意味のある単語が含まれていますが、うまい具合に3つのトピックが抽出されます。

$$ perl sample.pl 3 < documents.json 
topic[0]
google	0.333333333333333
microsoft	0.169204737732657
amazon	0.169204737732657
apple	0.155668358714044
orange	0.0541455160744501

topic[1]
orange	0.293274531422271
apple	0.230429988974642
peach	0.11135611907387
grape	0.110253583241455
pineapple	0.110253583241455

topic[2]
red	0.201236263736264
blue	0.200549450549451
green	0.193681318681319
yellow	0.0686813186813187
magenta	0.0686813186813187


2015-03-07

AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました

AdaGradよりもいけていると噂のオンライン学習器Adamを実装しました。

実装がとても簡単で、ハイパーパラメータも論文に推奨値が書いてあるのが良いですね。

持っておかないといけないパラメータの数は(たぶん)AdaGradと同じです。

https://github.com/echizentm/Adam



AdaGradやAdamのようなオンライン学習器は実装が簡単、省メモリなど優れた特徴があり大変実用的ですし、そろそろ有益な書物も発売されるようなので、気になった方はこれを機に学んでみると良いですよ。



しかしこうなるとAdamを改良したEveという学習器を作ってみたいですね(作るとは言っていない)。