// // //

ゼロから作るDeep Learningを読んでみた。【読書感想】

DL_from_scratch_00R Book review
DL_from_scratch_00R
この記事は約8分で読めます。

はじめに

LD_from_scratch_11
LD_from_scratch_11

みなさん、こんにちは。みなさんはDeep Larning、機械学習、人工知能などに興味があり、検索エンジンでググった結果、このサイトにたどり着かれたのではないでしょうか。
これからご紹介するゼロから作るDeep LearningはDeep Learningを単に紹介する読み物本ではなく、実際にPythonをいうコンピュータ言語を用いたコーディングを使って簡単なプログラムの実装を行い、それを通じてDeep Learningを学ぶことを目的としています。一見すると難しいように思われるかもしれませんが、心配はありません。決して簡単ではありませんが、高校程度の数学の知識があれば十分理解できます。解らなかったり、忘れていたりすれば、ネットで調べれば良いのです。ネットの海にはみなさんが必要とする知識が山のように積まれています。
それでは、みなさん用意は良いですが。それではDeep Learningの海に一緒に深くダイブしていきましょう。

この本の概略

DL_from_scratch_12
DL_from_scratch_12

この本はOreillyから2016年9月に初版が出版されています。著者は斎藤康毅さんという方です。Oreillyと聞くとちょっと難解で難しいという印象を持たれている方が多いようですが、この本は少し違います。この手の本としては、かなり売れており、また、知識の紹介・解説のみならず、Pythonという言語を使って自分の手を使って、手を動かしながらディープラーニングの実体・中身を体験できるとても親切に書かれた入門書です。
それは著者が前書きで「本書を車の本にたとえるとしたら、本書は車の教習本ではありません。車の運転方法ではなく、車の原理について理解してもらうことを主眼とします。」と言っていたり、また「車のエッセンスをできるだけシンプルな形で抽出し、その車のプラモデルを組み立てるように作り上げていきます。本書が目標とすることは、車を作るという過程を通して、自分は実際に車を作れるのだという実感を持って、車に関する技術に親しくなってもらうことです。」とも言っているように、Pythonで書かれたコードを、実際に手を動かしてコンピュータに入力し動かすことによって、ディープラーニングに親しみ、自信を持って理解していくということを目標にしています。
この手の入門書では、英語の入門書を適切で無い和訳を基に出版されているものが多々見受けらます。結局何が言いたいのか理解できず、最終的に英語の原書を読んで、自分の理解力不足ではなく翻訳が拙いのが原因だったの後になってて分かりがっかりしたりしていました。
その点、本書はもともと日本語で書かれている本なので安心してお勧めできます。個人的にはぼくの別の記事で紹介している松尾豊先生の書かれた人工知能は人間を超えるかを読み終えられた後に手に取られることをお勧めします。この本の解説をぼくの別の記事で行なっているので、以下にリンクを貼っておきますね。

LINK:「人工知能は人間を超えるか」解説記事

目次

  • 1章 Python入門
  • 2章 パーセプトロン
  • 3章 ニューラルネットワーク
  • 4章 ニューラルネットワークの学習
  • 5章 誤差逆伝播
  • 6章 学習に関するテクニック
  • 7章 畳み込みニューラルネットワーク
  • 8章 ディープラーニング

本書の目次は上記のようになっており、Pythonの簡単な説明から始まり、機械学習を簡単なものから説明して、最後にディープラーニングを説明しています。

Pythonの実装の方法

DL_from_scratch_13
DL_from_scratch_13

Pythonの実装に関して本書では、古典的なターミナル(Mac OSの場合)とエディターを使ってコーディングをしています。本書ではPythonのインストールのAnacondaを使っているのにJupyter Notebookをコーディングに使っていないのは、初版出版が2016年という時間的な理由があるのでしょうか。使い易さや、使い勝手を考えれば、Jupyter Notebookを使った方が良いように思います。Jupyter Notebookでの開発環境を含めたPythonのインストール方法をぼくの別の記事にて解説していますので、以下にその記事のリンクを貼っておきますね。参考にしてください。

LINK:機械学習・深層学習の第一歩【Python】を実装しよう

また、Pythonでなくとも他のプログラミング言語をご存知であれば、本書の内容であればPythonでもコーディングしていけると思うのですが、プログラミングの経験が全く無く、かつ近くにプログラミングのことを尋ねられる方がいない場合は少し荷が重いかもしれません。
そんな場合は、ProgateやDot Installなでのオンライン教材でPythonのコースを受講されることお勧めします。Pythonを学ぶには、どちらも有料コース(ともに月々千円ほど、どちらも1月あればPythonだけであれば、受講完了できるはずです。)になってしまうのですが、Pythonに限って言えば、Progateの方が内容が充実しているように思います。また、ともに仮想環境でのセットアップを説明していますが、もしそれが難しいようであれば、仮想環境のことは取り敢えず無視しても結構です。Pythonの文法と使いかたを学びましょう。以下にProgateとDot Installの公式ページのリンク貼っておきます。気になる方は覗いてみてください。

LINK:Progateの公式サイト

LINK : Dot Installの公式サイト

ぼくがお勧めする本書の読み進め方は、書かれているコードを必ず、自分の手で打ちながら読み進めていくです。時には些細な打ち間違いで、エラーが出て先に進めない時があるかもしれませんが、その時はエラーコードをインターネットでググって原因を調べてみたください。コードは本に書かれている方法でダウンロードできますが、繰り返しになりますが、ご自分の手で打たれることお勧めします。

また、以下に今回紹介した本のリンクを貼って貼らしていただきます。ぼくの記事を読んで興味を持たれた方は、以下のリンクから本を購入していただけると嬉しいです。

まとめ

DL_from_scratch_14
DL_from_scratch_14

いかがでしたでしょうか。本書を読み通すことにより、機械学習、深層学習の具体的なイメージが頭の中にできてきたのではないでしょうか。勿論、これらの技術を実際に応用するには、まだまだ勉強が必要だと思いますが、スタートラインには立てたのではないでしょうか。
アイキャッチイメージにありますように本書の続編ゼロから作るDeep Learning ❷ ―自然言語処理編もすでに発売されています。機会があればこの続編の解説記事も書いていきたいと思います。
それでは最後までお付き合いありがとうございました。それではさようなら。

コメント