Chainerと読む「深層学習」-vol.1
「深層学習 (機械学習プロフェッショナルシリーズ) 」をChainerのコードと交えて読み進めようという趣旨。
こんにちは。最近DeepLearningの学習環境が整ってきていますね。
先日「機械学習(DeepLearing)の本と実際のコードを交えた資料があるとわかりやすい」という声を聞いたので、"Chainerと読む「深層学習」"をやってみたいと思います。
手探りで試行錯誤しながらなので、何か質問や意見があればコメントをください。
今回は導入として内容は2つです。
- 環境設定
- 深層学習の概要
では、よろしくお願いします。
Chapter0 事前準備
僕の機械学習環境を紹介します。
この記事を読むにあたって、必要なものは随時用意しましょう。
- 深層学習 (機械学習プロフェッショナルシリーズ)
- MacBookPro(OSX Yosemite, CPU:corei7 2.7Ghz, メモリ:8GB)*1
- DesktopPC(Ubuntu14.04, CPU:xeon E5-1620v3 x8, メモリ:64GB, GPU:GTX TITAN X)*2
- Python2.7 (python.jp)
- Chainer (Chainer: A flexible framework of neural networks)*3
- その他、Python周辺のパッケージ*4
PythonやChainerのインストールはQiitaや個人ブログにたくさんあるので、適宜参考してください。
import chainer
が成功すれば準備は完了です。
Chapter1 はじめに
1.1 本書の紹介
本書「深層学習 (機械学習プロフェッショナルシリーズ) 」は【機械学習プロフェッショナルシリーズ】の一つで初めてDeepLearningを学ぶ人にオススメです。
QiitaやSlideShareにもDeepLearningを紹介するものがたくさんあるのですが、
簡略化されている部分が多いので、きちんと理解したい人は本書をどうぞ。
本書の目次は以下のとおり
第1章 はじめに
第2章 順伝播型ネットワーク
第3章 確率的勾配降下法
第4章 誤差逆伝播法
第5章 自己符号化器
第6章 畳込みニューラルネット
第7章 再帰型ニューラルネット
第8章 ボルツマンマシン
DeepLearningの基礎となる情報が揃っていますね。これを一通り学べば最近の研究内容も理解しやすいでしょう。ちなみに第5, 7, 8章は自分自身もまだ詳しくないので勉強しておきます。
1.2 DeepLearningの歴史
第1章はコード化する部分がないので要約だけ。
- 1940, 90年代: 多層NNの研究はあったが学習がうまくいかなかった。*5
- 2000年代: 事前学習によって初期値をうまく設定すると学習がうまくいった。
- 2010年代: 画像認識や音声認識の分野で大きな成果を残した。*6
- 現在: 様々なタスクで成果を収める。とても流行する。
- 理論だけでなく分散処理, GPU計算など計算能力の向上もDeepLearningが成功した大きな要因。
最近はトヨタも人工知能に投資していて、本当に流行っているんだなあとしみじみ。
過度な期待をされていて、いつかバブルが崩壊するのではと危惧しています...。けれども、しばらくは様々な分野に応用できる素晴らしい技術なのは確実。このビックウェーブを逃さず、しっかり知識をつけましょう。
Chainerのすゝめ
研究室でDeepLearningのライブラリといえば、Chainer。
今日はAdvent Calendarの2番手としてChainerを紹介します。
Chainerとは
PFIが提供する、DeepLearingのフレームワークです。
2015年6月に公開され、機械学習界隈で注目を集めている期待の新星です。
現在も精力的に機能改善が行われ、この記事を執筆している時点(12/1)では、v1.5.0がリリースされています。(リリースのたびに既存コードの修正をするのが大変なのは秘密です...)
公式サイトをリンクしておくので、英語がデキる人は読んでください。
Chainerの魅力
Chainerの魅力といえば、なんといってもPython Onlyで書けるところです。
Advent Calendar初日の日暮くんの記事にある通り、Pythonは研究室の公用語なので、他のプログラミング言語をわざわざ習得しなくてよいです。
2015adventcalendar.hatenablog.com
Pythonistaにとってはニューラルネットワークをわかりやすく、直感的に書くことができたり、Chainerのサンプルコードを読むことでDeepLearningの仕組みを再理解できたりもします。
参考までに他のフレームワークと比較しましょう。(画像はこちらのスライドから拝借しました。http://www.slideshare.net/ryokuta/dlchainer)
注目すべきは設定ファイル。DeepLearningのライブラリで有名なCaffeやtheanoは設定ファイルに別の言語を用いています。これから始める人にとっては大きな障害です。
Chainerの今後とまとめ
ここまででChainerの素晴らしさを理解できた、むしろ使ってみたくなったと思います。個人的には次の人達にChainerを強くお勧めします。
- DeepLearningの初級者
- Pythonista
- 櫻井研究室の学生
日本語の公式ドキュメントがないことはネックですが、Qiitaや個人ブログには多くのChainer活用法が投稿されていて様々な応用例をみることができますし、詰まってしまっても解決できるでしょう。
DeepLearningライブラリ界の黒船、TensorFlowに負けずに発展してほしいと願います。
はじめに
pip install deeplearning
は情報系大学院生が深層学習(deeplearning)を勉強する過程の記録です。
はじめまして、hiroと申します。
関東にある大学院で機械学習を専攻しています。学部時代は機械学習、自然言語処理を扱っていました。修士課程から機械学習の最先端であるdeeplearningを勉強し始めました。
勉強し始めて半年ぐらいたって基礎的な内容は理解しました。基本的にはSlideShareや本で様々なネットワークの構造や最適化アルゴリズムを掴みました。
実際にコードも書いてみました。Pythonが得意(Pythonしかできない)のでPython Onlyで書けるChainer、最近だとTensorFlowを使ってみました。
けれどもわからないことはまだまだあるし、最新論文は次々出てくるし、全然追いつけません。それと半年ぐらい勉強していて課題に感じたのが、
- 論文を読むために必要な知識が足りない
- 日本語、入門者向けの情報が少ない
の2つ。論文を読むために論文を読むマトリョーシカ状態と語学力、知識量の低さが組み合わさって大きな壁になっています。
というわけでブログの目的は以下のとおり
- deeplearingに関する知識をoutputをすることでより理解を深める。
- これからdeeplearingを勉強する人の手助けになる。
- deeplearingに詳しい人から意見をもらう。
では、具体的にどんな内容にするかというと、
できれば週1回、最低でも月2回ぐらいは投稿したいと思います。
それでは、よろしくお願いします。