Vol.29.No.4 (2014/07) Deep Learning


私のブックマーク

Deep Learning

中山浩太郎(東京大学 知の構造化センター)

はじめに

「Deep Learningに関するブックマークの記事を書いてほしい」

原稿依頼を受けたときはあまり深く考えず引き受けたのだが、いざ執筆する段階になって、学会誌という永続性の高い紙媒体でWebブックマークのような不確実性の高い(永続性が保証されない)情報を残す場合、どのようなスタイルで提供すれば読者に役に立つ情報になるのか考させられた。そもそもブックマークは往々にして単なるリンクの羅列であり、結局どのリンクが重要なのか、読者が判断するという形式だ。これではリンクを開いてがっかりする読者が多くなってしまうのではないかと危惧した。そのため、個人的に重要度の高いと思うものを絞り込んで、説明文とともに少し長めの紹介していくという形式を取りたい。これは、重要なものはリンクとしては消えにくいだろうという仮説と、重要かどうかの判断材料になればという期待に基づいた理由である。

実装

まず、やはり皆とりあえず使ってみたいだろうということで、良い実装から紹介する。それぞれのページにはディープラーニングについての説明も詳しく紹介されているため、併せて参照すると良いと思われる。

Pylearn2 [1]

モントリオール大学Bengio氏率いるLISA LABが中心となって開発したディープラーニングライブラリである。SdAやMaxoutといったディープラーニングのアルゴリズムとしての実装が豊富である。また、可視化や各種データセットのラッパーなどのユーティリティも充実している。しかも設定を1行変更するだけでGPU計算に自動で対応してくれる。Theano [2]という完成度の高い数値解析ライブラリをベースに作成されているが、実はこちらの出来が良いためにPylearn2が実用性の高いものに仕上がっているという感もある。

Deep Learning Tutorials [3]

同じくLISA LABがまとめたチュートリアルで、SdA(Stacked Denoising Autoencoder)やDBN(Deep Belief Networks)、Deep Convolutional NetworkなどをTheanoを利用して開発する方法が記載されている。単なるチュートリアル記事としてもありがたいが、検証用の実装として利用することが可能である。また、各アルゴリズムの概要を知る上でも役立つ資料となっている。

Hinton’s Deep Autoencoder [4]

トロント大学のHinton氏によるMatlab実装である。個人的にはMatlabは苦手なので、紹介するか迷ったが、やはりこれは外せないだろうということで入れた。

Github [5]

Githubはオンラインでソースコードをバージョン管理するためのシステムだが、各種のオープンソースプロジェクトがソースを公開するために利用しており、Deep Learning関係の良い実装を探す上でも役に立つ。具体的には、「Deep Learning」というキーワードで検索すると、キーワードとのマッチング具合とスター(お気に入りのようなもの)数を勘案してソートしてくれるので、Deep Learningに関する良い実装を見つけることができる。「Deep Learning」で検索すると、原稿執筆時点(2014年6月)では以下のようなリポジトリが高いスター数とともに表示されていた。

1) yusugomori/DeepLearning (Python, C/C++, Java, Scala: 552)
2) lisa-lab/DeepLearningTutorials (Python: 486)
3) rasmusbergpalm/DeepLearnToolbox (Matlab/Octave: 706)
4) hannes-brt/hebel (Python: 920)
(カッコ内の表記は使用言語とスター数)

ただし、スター数がそのまま完成度や実用性の高さを保証するものではないので、気をつけたい。

Deep Learning解説

Learning Deep Architectures for AI [6]

Bengio氏によるDeep Learning全般に関する資料
Ng’s Lecture Note: Sparse Autoencoder [7]

スタンフォード大学Ng氏によるAutoencoderの解説。Autoencoderにおけるグラディエントの算出方法やスパースデータへの対応などの情報が詳しい。
Unsupervised Feature Learning and Deep Learning Tutorial [8]

同Ng氏によるフィーチャ学習とDeep Learningに関するチュートリアル。Ng氏の機械学習系解説は簡潔かつ明瞭でありがたい。Stacked Autoencoderの実装についての記述もある。
A Practical Guide to Training
Restricted Boltzmann Machines
[9]
Hinton氏によるRBM(Restricted Boltzmann Machine)の学習方法解説。
ディープラーニング チュートリアル [10]
東北大学岡谷氏、齋藤氏によるDeep Learning全般の解説。絶妙な粒度でよくまとまっている貴重な日本語資料の一つ。

リンク集・情報源

deeplearning.net [11]

論文リストや実装リスト、最近のDeep Learning関係のニュースなど、多様な情報が網羅的に掲載されているサイトである。ここを読めば本記事がいらないのではないかと不安になる。

学会・研究会・国際会議

ICML [12]
国際会議「International Conference on Machine Learning」

NIPS [13]
国際会議「Neural Information Processing Systems」
ICLR [14]
国際会議「International Conference on Learning Representations」
全脳アーキテクチャ勉強会 [15]

国内でDeep Learningに力を入れている数少ない勉強会の一つ
人工知能学会全国大会オーガナイズセッション「Deep Learning」 [16]

人工知能学会全国大会では毎年オーガナイズセッションという企画セッションがあり、2014年は「Deep Learning」が開催された。今後の継続的な開催に期待したい。

研究室・研究者・研究プロジェクト

LISA LAB, モントリオール大学 [17]
Bengio氏の機械学習の研究室
Machine Learning Group, トロント大学 [18]
Hinton氏などが所属する機械学習の研究グループ
Jeffrey Dean, Google [19]
猫の画像認識で有名な研究を実施
Yann LeCun, ニューヨーク大学 [20]
Convolutional Networkに関する研究をアクティブに実施

おわりに

本記事では、リンクを網羅的に掲載するよりも、(自分の観点で)重要だと思われるリンクを重点的に紹介した。参考になれば幸いである。

  1. http://deeplearning.net/software/pylearn2/
  2. http://deeplearning.net/software/theano/
  3. http://www.deeplearning.net/tutorial/
  4. http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html
  5. https://github.com/
  6. http://www.iro.umontreal.ca/~bengioy/papers/ftml.pdf
  7. http://www.stanford.edu/class/archive/cs/cs294a/cs294a.1104/sparseAutoencoder.pdf
  8. http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial
  9. http://www.cs.utoronto.ca/~hinton/absps/guideTR.pdf
  10. http://www.vision.is.tohoku.ac.jp/files/9313/6601/7876/CVIM_tutorial_deep_learning.pdf
  11. http://deeplearning.net
  12. http://icml.cc/
  13. http://nips.cc/
  14. https://sites.google.com/site/representationlearning2014/
  15. http://www.sig-agi.org/wba
  16. https://www.ai-gakkai.or.jp/national-convention/
  17. http://lisa.iro.umontreal.ca/index_en.html
  18. http://learning.cs.toronto.edu/
  19. http://research.google.com/people/jeff/
  20. http://www.robotics.stanford.edu/~ang