今日の勉強会は並列・分散処理について。

EMアルゴリズムとギブスサンプリングの話だったけど、後半のギブスサンプリングの話は途中で脱落した。大雑把に理解したこととしては、トピックモデルをギブスサンプリングなどで実装する場合、各文書を別のノードに投げたとき推定するトピックのIDが異なる可能性があるけど、それをどうすんのよ、という問題の解決で、それを各クラスの類似度を推定しながら合わせていく、という話だったと思う。
EMの方は、普通のmap-reduceで実装するとE-ステップは各ノードがそれぞれ期待値を返してくるからいいんだけど、M-ステップのときにreduceしたノードが更新したパラメータを推定し直して、そこからE-ステップを計算するノードにパラメータを再分配するところで通信のボトルネックが起こるのでどうしよう、という問題。今回の手法では、単純な解決法として全経路を、他にコスト最小全域木を使って通信のモデルを立てている。全経路を使った場合は通信数が劇的に増えるけど通信経路に問題がない場合は高速に動作して、コスト最小全域木を使った場合は通信路がクリーンな場合だと全経路に負けるけど、通信数はかなり減らすことができるので、ノード同士の通信の速度が出ない場合などはこちらの方が有利になる、という話だった。

Distributed Algorithms for Topic Models (Journal of Machine Learning Research, 2009)
PSVM: Parallelizing Support Vector Machines on Distributed Computers (NIPS 2007)
Fully Distributed EM for Very Large Datasets (ICML 2008)

先日森先生とも話をしていたけど、これからCPUは1コアあたりのパワーが上がる方向よりも、そこそこのパワーのコアを増やす方向に動いていく方向になるのは確実なので、英語と同じように、コンピュータサイエンスを扱う人間は並列・分散化からは逃げられないと思う。大学の研究科でもそういう授業はどんどん取り入れられるようになると思うし、あと5年経てば、並列化についてまともに理解できていない学生は企業も取らなくなるだろう。今回では大雑把にどういう実装をすれば高速に並列化が実装できるか、という話だったけれど、実際にどのように分散化したコードを書くかということについても、これから勉強していかないといけないなぁ、と思った今日の勉強会でした。


進路について。

就職と進学について、メリット、デメリットなどをメモ程度に。あくまで僕のケースなので、たぶん人には参考にならない。

【進学】
メリット
・今の研究室で3年間真面目にやればまずそこそこの研究者になれる。
・研究者業界での立ち上がりが早い。
・好きなテーマを好きにやらせてもらえる。
・今の先生についていれば予算の心配もない。
・論文指導なども的確で手厚い。

デメリット
・3年後の進路が不透明すぎる。
・精神的に3年乗りきれるか不安。

【就職】
メリット
・職として安定している。
日系企業研究職としてはトップクラスの待遇。
・部局採用なので、研究内容もある程度保証されてる。

デメリット
・本当に研究者として一人前になれるか不透明。
・今の研究室の環境が良すぎてここよりいいという可能性が思い浮かばない。


うーん…考えすぎてて頭破裂しそう。まあ、結構な数の人がここの二択で迷ってると思うんだけど、僕は企業側の人をそこまで知らないというか見てないのが問題な気がするなー。