ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

著者 :
  • オライリージャパン
4.38
  • (183)
  • (98)
  • (35)
  • (4)
  • (5)
本棚登録 : 2662
感想 : 133
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (320ページ)
  • / ISBN・EAN: 9784873117584

作品紹介・あらすじ

実際にシステムを作りながらディープラーニングを学ぶ!
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。ハイパーパラメータの決め方や重みの初期値といった実践的なテクニック、Batch NormalizationやDropout、Adamといった最近のトレンド、自動運転や画像生成、強化学習などの応用例、さらには、なぜディープラーニングは優れているのか? なぜ層を深くすると認識精度がよくなるのか? といった“Why”に関する問題も取り上げます。

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • Deep Learningの入門書であり、機械学習とPythonの知識がなくても読み進めることができる。最低限の外部ライブラリを用いた実装を通して概要を学ぶ構成となっている。特に誤差逆伝播法の説明は計算グラフを用いた直感的な方法で説明しており、他書より分かりやすい。

  • Pythonを使って、実戦形式で学ぶDeep Learning入門書。
     
    分かりやすくて身につきやすい。
    Deep Learningを使おうと、フリーで使えるツールを触ると浮かんでくる疑問がある。
     
    「これってどういう意味があるの?」
     
    正直、「ここに『シグモイド関数』を入れましょう。こっちには『ReLU関数』を入れましょう」なんていきなり言われても、なんだかよく分からない。
     
    しかし、この本を読めば、それらやっていることの意味がやっと分かってきた。
     
    後半部分はまだ理解できたとは言い難いのだけど、Pyrhonでちょこちょこいじりながら実践できるので、少しずつ理解できるようにしていきたいです。
     
    AIは確率なんだ、っていうことを知るためだけにでも読んでもいいかも、と思えるくらいエンジニアでなくても一読しといたほうがいい本。
     
    エンジニアである私は、この本で実践を積みたいと思います。

  • DeepLearning系のライブラリは一切使わずに解説してくれているので、全体的な構造、仕組みにフォーカスすることができ、とても分かりやすかったです。DeepLearningのコアな部分を知りたい方にはとてもオススメできる書籍です。

  • 丁寧で順序立てた説明になっているために、前半はとても分かりやすくすんなり入ってくる。本書が売れているのも納得。ただ、後半ついていけず。行列の積計算によって配列の計算が一回でできてしまうことのインパクトがよく分かった。NumPyの便利さも。

  • 現在知りうる限り深層学習を勉強する上での最良の入門書。本当の「わかりやすさ」は決して情報を削減せず、丁寧で、ひとつひとつちゃんと教えてくれる。

  • ITエンジニア本大賞[技術書・ビジネス書大賞] 2017年技術書部門大賞・特別賞

  • 手書き数字認識の実装を通じて、Pythonによるニューラルネットワークの機械学習が学べる。Pythonの基本やANDゲートの解説から始まるように、最低限の知識を補完し初心者を救う親切心が随所に垣間見える。行列をまともに勉強していない自分でもある程度の理解に達することができた。本書を読んでも一からDeep Learningの開発ができるようになるわけではないが、機械学習の仕組みを理解することで世間で騒がれている議論に多少なりとも付いていけるようになると思う。

  • 手書き文字入力を題材にニューラルネットワークの数学的な説明とプログラミングでの実装がどちらもわかりやすく説明されている。

  • ディープラーニングよくわからないから、なんとなくわかる。まで確実連れて行ってくれる一冊。

    Pythonがわからなくても十分に読める本であり、自分の得意な環境に応用していくのも難しくない。確実にディープラーニングの基礎を習得できます。

  • 最初の1,2章くらいはなんとか読んでもついていけた気がするが、それより後になってくるとなんのこっちゃという感じだった。読み手側のリテラシーが追いついていなかった。実際に手を動かして試すと理解度が違ったりするのだろうか。自分にはこれより易しい入門書が必要だと実感した。

    以下公式ページより引用した目次
    https://www.oreilly.co.jp/books/9784873117584/

    1章 Python入門
    1.1 Pythonとは
    1.2 Pythonのインストール
    1.2.1 Pythonのバージョン
    1.2.2 使用する外部ライブラリ
    1.2.3 Anacondaディストリビューション
    1.3 Pythonインタプリタ
    1.3.1 算術計算
    1.3.2 データ型
    1.3.3 変数
    1.3.4 リスト
    1.3.5 ディクショナリ
    1.3.6 ブーリアン
    1.3.7 if文
    1.3.8 for文
    1.3.9 関数
    1.4 Pythonスクリプトファイル
    1.4.1 ファイルに保存
    1.4.2 クラス
    1.5 NumPy
    1.5.1 NumPyのインポート
    1.5.2 NumPy配列の生成
    1.5.3 NumPyの算術計算
    1.5.4 NumPyのN次元配列
    1.5.5 ブロードキャスト
    1.5.6 要素へのアクセス
    1.6 Matplotlib
    1.6.1 単純なグラフの描画
    1.6.2 pyplotの機能
    1.6.3 画像の表示
    1.7 まとめ

    2章 パーセプトロン
    2.1 パーセプトロンとは
    2.2 単純な論理回路
    2.2.1 ANDゲート
    2.2.2 NANDゲートとORゲート
    2.3 パーセプトロンの実装
    2.3.1 簡単な実装
    2.3.2 重みとバイアスの導入
    2.3.3 重みとバイアスによる実装
    2.4 パーセプトロンの限界
    2.4.1 XORゲート
    2.4.2 線形と非線形
    2.5 多層パーセプトロン
    2.5.1 既存ゲートの組み合わせ
    2.5.2 XORゲートの実装
    2.6 NANDからコンピュータへ
    2.7 まとめ

    3章 ニューラルネットワーク
    3.1 パーセプトロンからニューラルネットワークへ
    3.1.1 ニューラルネットワークの例
    3.1.2 パーセプトロンの復習
    3.1.3 活性化関数の登場
    3.2 活性化関数
    3.2.1 シグモイド関数
    3.2.2 ステップ関数の実装
    3.2.3 ステップ関数のグラフ
    3.2.4 シグモイド関数の実装
    3.2.5 シグモイド関数とステップ関数の比較
    3.2.6 非線形関数
    3.2.7 ReLU関数
    3.3 多次元配列の計算
    3.3.1 多次元配列
    3.3.2 行列の内積
    3.3.3 ニューラルネットワークの内積
    3.4 3層ニューラルネットワークの実装
    3.4.1 記号の確認
    3.4.2 各層における信号伝達の実装
    3.4.3 実装のまとめ
    3.5 出力層の設計
    3.5.1 恒等関数とソフトマックス関数
    3.5.2 ソフトマックス関数の実装上の注意
    3.5.3 ソフトマックス関数の特徴
    3.5.4 出力層のニューロンの数
    3.6 手書き数字認識
    3.6.1 MNISTデータセット
    3.6.2 ニューラルネットワークの推論処理
    3.6.3 バッチ処理
    3.7 まとめ

    4章 ニューラルネットワークの学習
    4.1 データから学習する
    4.1.1 データ駆動
    4.1.2 訓練データとテストデータ
    4.2 損失関数
    4.2.1 2乗和誤差
    4.2.2 交差エントロピー誤差
    4.2.3 ミニバッチ学習
    4.2.4 [バッチ対応版]交差エントロピー誤差の実装
    4.2.5 なぜ損失関数を設定するのか?
    4.3 数値微分
    4.3.1 微分
    4.3.2 数値微分の例
    4.3.3 偏微分
    4.4 勾配
    4.4.1 勾配法
    4.4.2 ニューラルネットワークに対する勾配
    4.5 学習アルゴリズムの実装
    4.5.1 2層ニューラルネットワークのクラス
    4.5.2 ミニバッチ学習の実装
    4.5.3 テストデータで評価
    4.6 まとめ

    5章 誤差逆伝播法
    5.1 計算グラフ
    5.1.1 計算グラフで解く
    5.1.2 局所的な計算
    5.1.3 なぜ計算グラフで解くのか?
    5.2 連鎖率
    5.2.1 計算グラフの逆伝播
    5.2.2 連鎖率とは
    5.2.3 連鎖率と計算グラフ
    5.3 逆伝播
    5.3.1 加算ノードの逆伝播
    5.3.2 乗算ノードの逆伝播
    5.3.3 リンゴの例
    5.4 単純なレイヤの実装
    5.4.1 乗算レイヤの実装
    5.4.2 加算レイヤの実装
    5.5 活性化関数レイヤの実装
    5.5.1 ReLUレイヤ
    5.5.2 Sigmoidレイヤ
    5.6 A.ne/Softmaxレイヤの実装
    5.6.1 A.neレイヤ
    5.6.2 バッチ版A.neレイヤ
    5.6.3 Softmax-with-Lossレイヤ
    5.7 誤差逆伝播法の実装
    5.7.1 ニューラルネットワークの学習の全体図
    5.7.2 誤差逆伝播法に対応したニューラルネットワークの実装
    5.7.3 誤差逆伝播法の勾配確認
    5.7.4 誤差逆伝播法を使った学習
    5.8 まとめ

    6章 学習に関するテクニック
    6.1 パラメータの更新
    6.1.1 冒険家の話
    6.1.2 SGD
    6.1.3 SGDの欠点
    6.1.4 Momentum
    6.1.5 AdaGrad
    6.1.6 Adam
    6.1.7 どの更新手法を用いるか?
    6.1.8 MNISTデータセットによる更新手法の比較
    6.2 重みの初期値
    6.2.1 重みの初期値を0にする?
    6.2.2 隠れ層のアクティベーション分布
    6.2.3 ReLUの場合の重みの初期値
    6.2.4 MNISTデータセットによる重み初期値の比較
    6.3 Batch Normalization
    6.3.1 Batch Normalizationのアルゴリズム
    6.3.2 Batch Normalizationの評価
    6.4 正則化
    6.4.1 過学習
    6.4.2 Weight decay
    6.4.3 Dropout
    6.5 ハイパーパラメータの検証
    6.5.1 検証データ
    6.5.2 ハイパーパラメータの最適化
    6.5.3 ハイパーパラメータ最適化の実装
    6.6 まとめ

    7章 畳み込みニューラルネットワーク
    7.1 全体の構造
    7.2 畳み込み層
    7.2.1 全結合層の問題点
    7.2.2 畳み込み演算
    7.2.3 パディング
    7.2.4 ストライド
    7.2.5 3次元データの畳み込み演算
    7.2.6 ブロックで考える
    7.2.7 バッチ処理
    7.3 プーリング層
    7.3.1 プーリング層の特徴
    7.4 Convolution/Poolingレイヤの実装
    7.4.1 4次元配列
    7.4.2 im2colによる展開
    7.4.3 Convolutionレイヤの実装
    7.4.4 Poolingレイヤの実装
    7.5 CNNの実装
    7.6 CNNの可視化
    7.6.1 1層目の重みの可視化
    7.6.2 階層構造による情報抽出
    7.7 代表的なCNN
    7.7.1 LeNet
    7.7.2 AlexNet
    7.8 まとめ

    8章 ディープラーニング
    8.1 ネットワークをより深く
    8.1.1 よりディープなネットワークへ
    8.1.2 さらに認識精度を高めるには
    8.1.3 層を深くすることのモチベーション
    8.2 ディープラーニングの小歴史
    8.2.1 ImageNet
    8.2.2 VGG
    8.2.3 GoogLeNet
    8.2.4 ResNet
    8.3 ディープラーニングの高速化
    8.3.1 取り組むべき問題
    8.3.2 GPUによる高速化
    8.3.3 分散学習
    8.3.4 演算精度のビット削減
    8.4 ディープラーニングの実用例
    8.4.1 物体検出
    8.4.2 セグメンテーション
    8.4.3 画像キャプション生成
    8.5 ディープラーニングの未来
    8.5.1 画像スタイル変換
    8.5.2 画像生成
    8.5.3 自動運転
    8.5.4 Deep Q-Network(強化学習)
    8.6 まとめ

全133件中 1 - 10件を表示

斎藤康毅の作品

  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×