😎

『ゼロから作るDeep Learning』で学べる内容と対象者とは? ディープラーニング入門に最適!

2024/09/15に公開

1. この本の対象者(たぶん)

  • AIに興味がある人
    • この記事を読んでいるということはそうですよね!
  • APIやノーコードAIツールを使ってみて、もっと深いところまで知りたくなった人
    • 私がこの本を読み始めた理由では、実用的な部分と合わせてAIの仕組みに興味があるという面も強かったです
  • AIプログラミングに興味があってやってみたいと思っている人
    • 機械にこんなすごいことがさせられる! 自分もやってみたい! という純粋な気持ちは私も忘れないようにしたいです……
  • Pythonがプログラミング言語の名前ということは知っている人
    • プログラミングにあまり詳しくなくても、とりあえず触って動かして見ればだんだん分かってくると思います
    • Progateなどで基礎的な文法も学びつつ進めるとスムーズかもしれません
  • 線形代数、微分積分に関してある程度知っている

2. 『ゼロから作るDeep Learning』の本とソースコード

https://www.oreilly.co.jp/books/9784873117584/
https://www.amazon.co.jp/dp/4873117585

https://github.com/oreilly-japan/deep-learning-from-scratch


3. 目次

  • まえがき
  • 1章 Python入門
  • 2章 パーセプトロン
  • 3章 ニューラルネットワーク
  • 4章 ニューラルネットワークの学習
  • 5章 誤差逆伝播法
  • 6章 学習に関するテクニック
  • 7章 畳み込みニューラルネットワーク
  • 8章 ディープラーニング
  • 付録A Softmax-with-Lossレイヤの計算グラフ
  • 参考文献

4. 学べること

  • ディープラーニングの基本的な理論と実装:ライブラリを使わず、Pythonを使ってディープラーニングをゼロから実装することで、その仕組みや原理を深く理解できます。
  • ニューラルネットワークの仕組み:パーセプトロンから始まり、活性化関数や多層ニューラルネットワーク、出力層の設計まで学ぶことができます。
  • 誤差逆伝播法の理解と実装:計算グラフを用いた誤差逆伝播法の仕組みを学び、実際にそれを実装する方法も学べます。
  • 畳み込みニューラルネットワーク(CNN):CNNの構造や畳み込み演算、プーリング層など、画像処理における重要な概念を実装を通じて理解します。
  • 学習アルゴリズム:勾配降下法、ミニバッチ学習、損失関数、数値微分といったニューラルネットワークの学習プロセスを習得できます。
  • 学習に関するテクニック:ハイパーパラメータの調整、Batch NormalizationやDropout、Adamなどの最先端の手法についても学べます。
  • ディープラーニングの応用例:画像生成や自動運転、強化学習など、実際の応用事例を通じてディープラーニングの実用的な側面も学ぶことができます。

5. 学んだあとのステップアップ(by ChatGPT)

  1. 深層学習フレームワークの活用

    • PyTorchTensorFlowといった主要なディープラーニングフレームワークを学び、ライブラリを使った高度なモデルの実装に挑戦する。
    • フレームワークを使用することで、より複雑なネットワークの設計や効率的なトレーニングが可能になります。
  2. 応用分野の専門知識を深める

    • コンピュータビジョン(画像分類、物体検出)、自然言語処理(機械翻訳、質問応答)、強化学習(ゲームプレイ、ロボティクス)など、興味のある分野に特化してさらに深掘りする。
    • 具体的なプロジェクトを通して、応用事例を実際に試す。
  3. ディープラーニングの応用プロジェクトに参加

    • Kaggleのようなデータサイエンスコンペティションに参加し、実際のデータセットを使って課題解決に挑む。
      • Kaggleはコンペティションによっては10万ドル以上の賞金が出るものもあり、またGrand Masterなどの称号を獲得すると実績にもなります。
    • ハッカソンやAIコミュニティのプロジェクトで実際の問題を解決する経験を積む。
  4. 研究論文を読む習慣をつける

    • arXivなどで最新のディープラーニングに関する研究論文を読み、最新のアルゴリズムやモデルについて学ぶ。
      • 論文を読んでアルゴリズムを理解しておくのは重要、と言われました。
    • 特に「Attention」や「Transformer」、「GAN(生成的敵対ネットワーク)」、「拡散モデル」などの高度な技術に触れる。
  5. 深層生成モデルや強化学習の実装

    • GANやVAE(変分オートエンコーダー)などの生成モデルをスクラッチから実装してみる。
    • 強化学習におけるQ-LearningやDeep Q-Networks(DQN)を実装し、ゲームやシミュレーションで学習させる。

6. 『ゼロから作るDeep Learning』の続編

  • ゼロから作るDeep Learning ❷ ―自然言語処理編
    • 自然言語処理や時系列データ処理に焦点を当てたディープラーニングの解説書です。Word2vec、RNN、LSTM、GRU、Seq2Seq、Attentionなどの最新技術を実装レベルで学べます。
  • ゼロから作るDeep Learning ❸ ―フレームワーク編
    • 「DeZero」というオリジナルのディープラーニングフレームワークをゼロから作る内容です。DeZeroは最小限のコードでモダンな機能を実現し、PyTorchやTensorFlowなどのフレームワークの知識を深められます。
  • ゼロから作るDeep Learning ❹ ―強化学習編
    • テーマは強化学習で、実際のコードを使い、外部ライブラリに頼らずに強化学習をゼロから実装しながら学べる内容です。
  • ゼロから作るDeep Learning ❺ ―生成モデル編
    • テーマは「生成モデル」で、「正規分布」から「拡散モデル」までの技術を、連続したストーリーとして学べます。ステップバイステップで実装しながら進め、最終的には「Stable Diffusion」のような画像生成AIを完成させることを目指します。

7. コメント

深層学習って有名だし流行ってるしかっこよさそうだし、とりあえず自分も始めてみたいということから色々調べてみました。そんな中、『ゼロから作るDeep Learning』を知り、この本をしっかり学べば基礎的な部分はしっかりと身につけられるかなと思いました。
今のところ深層学習でできることはあまり分かっていませんが、今後技術を身につけて、自分で色々変なコードが書けるようになりたいです。大規模なプロジェクトでは扱っていない隙間産業を狙って、自分なりに面白い独自性のあるプロジェクトを作ってみたいですね。個人的にChatGPTが便利すぎるので生成AIをがっつりやってみたい気持ちもあります。
まずはこの『ゼロから作るDeep Learning』がんばって全編修了したいです。


8. 補足

  • 初心者向け 環境について
    • Anaconda
      • よく使うライブラリをまとめて仮想環境を作ったり、依存環境を自動で整えたうえでライブラリのインストールができるツールです。Dockerが良いとも聞きますが、まだ私はDockerについては理解できていません……。
      • 使い方
        https://www.sejuku.net/blog/59340
    • VSCode
      • すごく便利なプログラミング用のソースコードエディタです。
  • Google Colaboratory
    • 手間のかかる環境構築が不要で深層学習のプログラミングが始められ、現代の深層学習には欠かせないGPUも無料で使える奇跡みたいなサイトです。
    • 個人的にこれで深層学習プログラミングを始めるのが一番初心者向けかと思います。ただ使うファイル形式が.ipynbなので、今回の『ゼロから作るDeep Learning』の.pyから移し替える必要があります。
  • この本はメルカリで買うと1500円程度で売っているのでおすすめです。

Discussion