はじめに
ディープラーニングを活用する上ではフレームワークの利用は避けられません。実際のところは、ディープラーニングだけでなく、多くのプログラムは世の中に出回っている有用なフレームワークを上手く駆使して実装されます。
例えばnumpyだってPythonに標準的に搭載されているものではありませんが、計算処理は多くの場合numpyを使って行われます。図を表示したい場合はmatplotlibを使いますし、データの操作を行いたければpandasを使うことでしょう。
プログラミング言語の勉強というのは半分は言語の文法に関することで、もう半分はフレームワークの利用方法に関することになってきます。それは自分自身で処理を書くより圧倒的に高速であり、更に再利用性の高い形でフレームワークが実装されているからです。
現在、様々なフレームワークが活用されていますが、データ分析が一般的に普及していく中で、プログラミング言語を学ぶということの中に「機械学習のフレームワークに関する知識」が少しずつ含まれるようになってきた印象があります。
いずれ機械学習のコードを書くことはそれほど特別なことではなくなるかもしれません(そうなることを目指して研究者たちは実用的なアルゴリズムを創りだそうと奮闘しているわけである)。
今回はディープラーニングのフレームワークの利用方法について勉強できる本を掲載しておきます。
ただし、今回掲載する本は、私自身が未だ購入していない本も混ざっています。
補足
通常、実用的なコードはフレームワークを組み合わせることで実装されます。素のプログラミング言語のみで実装されるケースは稀です。
しかし車輪の再発明、車輪の再開発はプログラミングの勉強の一環としては非常にためになります。
例えば数学において数々の定理は既に明らかにされた事実であり、その真理は覆りません。それでもその定理を証明してみることをするはずです。そしてそれは大抵の場合非常に勉強になります。数学を駆使するアイデアの多くが定理の証明に含まれているためです。
ですから、フレームワークを使わないで一旦簡単なコードを自分で書いてみるのは必ず勉強になります。その際には、既に実装されているフレームワークのアイデアを真似ても良いです(定理の証明だって、大抵は先人の後追いに過ぎない)。
そうするとプログラミングの勉強プラス、今実装しようとしている機械学習の手法そのものの理解も深まるはずです。その点においては、以下の書籍が参考になるでしょう(これはフレームワークの勉強をする本ではないが、一応紹介しておきます)。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (17件) を見る
この書籍に関しては以下の記事でも紹介しています。是非参考にしてください。
TensorFlowの書籍
Tensorflow・Kerasによる時系列データ処理
詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~
- 作者: 巣籠悠輔
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/05/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
この本はフレームワークの使い方だけでなく、ディープラーニングの理論面も非常に丁寧に解説されており、それを踏まえた上で時系列データ処理をするために必要なニューラルネットの構造を、TensorFlowとKerasを使って実装する方法を書いています。この本は以下の記事でも紹介しています。非常のおすすめできる本です。
TensorFlowはじめました
TensorFlowはじめました 実践!最新Googleマシンラーニング (NextPublishing)
- 作者: 有山圭二
- 出版社/メーカー: インプレスR&D
- 発売日: 2016/07/29
- メディア: Kindle版
- この商品を含むブログを見る
TensorFlowはじめました2 機械学習で超解像─Super Resolution (NextPublishing)
- 作者: 有山圭二
- 出版社/メーカー: インプレスR&D
- 発売日: 2017/06/02
- メディア: Kindle版
- この商品を含むブログを見る
この著者は(機械学習に関するゴリゴリの専門家ではないためか)TensorFlowをこれから活用していくというナマの姿勢を本にしています。
TensorFlowは既に度重なるアップデートによって利用方法が変更されてきているため、「TensorFlowはじめました」の方のコードは現在の環境で動く保証はありません。また、普遍的な理論を詳しく解説する本でもないので、よほどほしいという場合でない限りは購入はオススメするところではありません。
「TensorFlowはじめました2」の方は、一冊目から約一年が経過しているため、実践的にTensorFlowを使う方法が書かれています。内容は画像に関すること(解像度向上)であるため、この分野に興味がある人はこちらをおすすめします。加工前、加工後、失敗例など作業のナマの声が書かれているため、TensorFlowを使っていく姿勢を学ぶことができると言えるでしょう。しかし、書籍の手法それ自体が実用的に使えるかというと、それはまた別の話なので、あくまで非常に詳しい体験記のような形で読むと良いかも知れません(言い換えれば、知識がある人にとっては数々のブログ記事で事足りている)。
TensorFlow機械学習クックブック
TensorFlow機械学習クックブック Pythonベースの活用レシピ60+ (impress top gear)
- 作者: Nick McClure,株式会社クイープ
- 出版社/メーカー: インプレス
- 発売日: 2017/08/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
非常に分厚い本であり、訳が怪しい面もあるため、ある程度前提知識がないと上手く読み進めることができない場合もあるようです(そもそも原著に誤植が多い)。
(2017/9/8追記)
以下で書籍の情報を更新しました。
Hands-On Machine Learning
現状では英語版しかありませんが、Amazon.comでベストセラーの機械学習の本です。TensorFlowとScikit-Learnを扱っており、機械学習全般に関する内容が書かれています。
この本は未購入です(私はわからないことを英語で理解していくことに、時間が掛かるため)。
Chainer
Chainerによる実践深層学習
この本はChainerを使って基本的なニューラルネットワークとリカレントネットワークの実装方法を解説しています。
この本は購入しないでください。理由は、Chainerは現在バージョンアップによって仕様がかなり変更されており、この書籍のコードは動きません。
9月中にバージョンアップに対応したChainer V2による実践深層学習が発売します。
こちらでは畳み込みニューラルネットもカバーしているため、内容や価格面でもこちらを待ったほうが良いでしょう。
Chainerで学ぶディープラーニング入門
この書籍はChainer V2.0に対応しております。
今月中旬に発売されるため、私自身も未購入ですが、Chainerを使った待望の本であるため期待しているところです。内容は基本的なニューラルネットやリカレントネットだけでなく、深層生成モデルであるGANやDQNなどの深層強化学習も扱っており、使うモデル自体は上記で紹介した「Chainerによる実践深層学習」よりも高度になります。