【初心者向け】結局、ゼロから作るDeepLearningにはなにが書いてあるのか？

#かなり売れてるらしい

オライリー・ジャパンから出版されている「ゼロから作るDeepLearning〜Pythonで学ぶディープラーニングの理論と実装〜」

かなり売れているらしいです。

今回はこの本に何が書いてあるのかをざっくりと紹介します。

買おうか悩んでいる方へ、指標の1つとなれれば幸いです。

![IMG_0569.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/7932b079-eba5-0ced-19ab-54502d078146.jpeg)


この本は、ディープラーニングを理解するために必要な知識を、初歩的なことから一つひとつ説明しているとてもやさしい本です。

ディープラーニングって結局何なの？どういう特徴があるの？どういう原理で動いているの？などが分かりやすく解説してあります。

この本には8つの章があります。

![IMG_0543.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/08b0d6eb-1a2a-3cd3-f4b2-8a979fffe2d1.jpeg)


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


それぞれの内容をザックリと説明していきます。


#第1章「Python入門」20ページ

この章ではPythonの基礎の基礎を教えてくれます。

Pythonとは何か、Pythonインストール方法から入り、データ型、変数、リスト、if文、for文、関数、クラスまで、網羅的に、かつ簡単に書いてあります。

このようなPythonの基本に加え、機械学習を学ぶ時に必須となる外部ライブラリ、NumpyとMatplotlibの使い方も軽く触れています。

![IMG_0544.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/7926e213-e3db-d8da-5110-320ab039e43c.jpeg)

![IMG_0570.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/c7eed00f-0681-4cd0-001f-8627e646cdcc.jpeg)



**Point！「ディープラーニングはPythonで作る」**



#第2章「パーセプトロン」17ページ

この章では、ニューラルネットワークの元となる、パーセプトロンについて教えてくれます。

ANDゲート、NANDゲート、ORゲートの仕組みと動きを解説したあと、それら3つを組み合わせて作るXORゲートの解説があります。

Pythonでの実装の仕方も書いてあるので便利です。

本格的に論理回路を学ぼうとすると、もっと多くのゲートが出てきますが、ニューラルネットワークを学ぶときに知っておいたほうが良い必要最低限が書いてあるのがこの本のいい所だと思います。

これらを積み重ねていくことで、ディープラーニングになっていくのだろうと、なんとなく想像できます。

![IMG_0560.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/b9139f8d-5804-f100-8b17-6e3bc79d8031.jpeg)
![IMG_0566.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/2e083e0d-2043-f64c-3298-5b963152ba59.jpeg)

**Point！「ディープラーニングの基本はパーセプトロン」**


#第3章「ニューラルネットワーク」43ページ

この章で、ようやくニューラルネットワーク(NN)がでてきます。

2章で出てきたパーセプトロンに「活性化関数」を加えることで、NNが作れることが理解できると思います。

さらに、NNで頻繁に利用する「行列」の計算方法や使い方にも触れることができます。

ここまで読み進めると、自分でNNが作れるようになります。この章では実際に、3層のNNをPythonで組み、手書き文字認識をするAIを作成しています。

![IMG_0567.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/226b6161-ab0a-be4e-20b3-fb17f59d3b2d.jpeg)
![IMG_0564.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/c1a95c77-0599-1d3a-cd6d-67b40cd767b8.jpeg)



**Point！「パーセプトロン+活性化関数→ニューラルネットワークが作れる！」**


#第4章「ニューラルネットワークの学習」 39ページ

前の第3章では、NNの形を作っただけで、肝心の「学習」をしていません。

この第4章では、いよいよ学習の部分が解説されています。

「NNの特徴はデータから学習できる点」という言葉から始まり、今までの機械学習との違いを教えてくれます。

「訓練データ」「テストデータ」などのNNには必須の考え方の解説や、「損失関数」の詳細、「微分」とは何者でどうして必要なのかが、約30ページにわたって詳しく書かれています。

章の最後には、Pythonでの実装方法(コード)が事細かに書いてあります。

ここまで来れば、ディープラーニング理解まであと少しです。

![IMG_0523.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/32a40349-e464-25ac-1506-787e9e44da52.jpeg)
![IMG_0577.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/02a0ca77-9453-d8a6-4f16-8e9c7a1fd0d1.jpeg)


**Point！「NNはデータから学習する！」**


#第5章「誤差逆伝播法」41ページ

漢字が6つ、知らない単語、諦めたくなります。

しかし、この章を理解できれば、ニューラルネットワーク、あるいは今話題になっている「人工知能(AI)」の動作の全てを理解したと言っても過言ではないです。

誤差逆伝播法とは、簡単に言えば「計算結果を調整していく」という、NNの学習の「要」になる部分の方法です。それゆえに、かなり難しいです。

しかしこの本では、分かりやすい例とイラストがたくさん使われているので、とても理解しやすい構成となっています。

![IMG_0536.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/6236d666-d4ff-9066-a0f3-c45dddb448de.jpeg)
![IMG_0532.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/3d0b5029-aac3-050b-469b-df767c4268ef.jpeg)



**Point！「誤差逆伝播法で計算結果を正しく調整していく！」**


#第6章「学習に関するテクニック」38ページ

この章にはとても有益な情報が多く載っています。

「パラメータの更新」「Batch Normalization」「正規化」などの、NNの学習には取り入れるべきテクニックが盛り込まれています。

NNを作って学習させてみたは良いけど、なかなか思うように精度が良くならない、、と悩んでいたら、この章がすごく参考になるでしょう。

![IMG_0547.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/5e9efec9-145a-1812-7c16-f4933d478c8f.jpeg)


**Point！「迷ったらここを見ろ！」**

#第7章「畳み込みニューラルネットワーク」 34ページ

昨今、話題になっているAIブームの根元はこの「畳み込みニューラルネットワーク」の発表にあります。

畳み込みニューラルネットワーク（Convolutional Neural Network）はCNNと略されて呼ばれ、画像認識AIや音声認識AIなど、至るところに使われています。

なんと、画像認識の大会では、ディープラーニングによる手法のほとんど全てがCNNをベースにしているそうです。

そのような、いま最もアツイ最新技術のため、内容も理解するのに時間がかかります。

しかし、この7章ではCNNについて、34ページで計28枚もの図を使うことで、できるだけ噛み砕いて分かりやすい解説がされています。

畳み込み層、プーリング層の解説と実装から、CNNの可視化、代表的なCNNに至るまで、事細かに書かれているため、CNNの事は一通り把握することができます。

![IMG_0576.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/11df485c-6743-bb8b-e4d0-281d7cd7757d.jpeg)
![IMG_0586.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/9c6b04c5-7d5e-7285-9d9d-e98478fd4f3e.jpeg)
![IMG_0540.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/1466ef3a-dd3b-634a-9be4-91d2324a6cc2.jpeg)


**Point！「画像認識の大会では、ディープラーニングによる手法のほとんど全てがCNNをベースにしている」**

#第8章「ディープラーニング」 31ページ

最終章です。
ラスボスのように待ち構えていた「ディープラーニング」についてです。

いままで1〜7章で解説してきたNNの層をより深く、ディープにしたものがディープラーニングとなります。

実はディープラーニングの形（モデル）は、ある程度「型」が決まっています。Googleなどの大企業が研究を進め、高い精度が出る形（モデル、層の構造や数やパラメータなどの数字）を見つけてくれているため、私たちはそれをそのまま使うだけで高い精度のAIを作ることができます。

Googleの賢くて偉い人に感謝です。

この本では、よく使用されるモデルがどのような経緯で注目を集めるようになったのか？や、学習を高速化させるためには何が必要なのかなどが書かれています。

最後には、このディープラーニングが実際にどのように使われるのかと、ディープラーニングの未来にまで触れています。

![IMG_0533.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/a1bbd4fc-4e2b-aaa8-896f-637fc5db7425.jpeg)
![IMG_0537.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/a01391db-4365-db3f-20ae-18ada8a709ad.jpeg)
![IMG_0575.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/6cb1f3a8-5543-5290-1cbc-8f1c9070eca7.jpeg)



#まとめ

オライリー・ジャパンから出版されている「ゼロから作るDeepLearning〜Pythonで学ぶディープラーニングの理論と実装〜」の内容をざっくりと書いてみました。

ディープラーニングの性質と課題、そして可能性について、俯瞰した説明がなされているため、とても読み応えがあります。

機械学習プログラマーは必読の良書だと思います！

**参考書籍**
「ゼロから作るDeepLearning〜Pythonで学ぶディープラーニングの理論と実装〜」


#人工知能/AI/機械学習をもっと詳しく
![Youtube宣伝画像.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458623/a20a35bd-a0a8-b8e1-52a9-7f2abdbe1954.jpeg)

**「ねこアレルギーのAI」**
https://t.co/4ltE8gzBVv?amp=1
YouTubeで機械学習について発信しています。
お時間ある方は覗いていただけると喜びます。


created by NekoAllergy