関連サイト
本書の関連ページが用意されています。
内容紹介
ディープラーニングの重要な基礎概念と、PyTorchを用いたディープラーニングの実装方法について、細部まで掘り下げて解説。限られたデータでニューラルネットワークを訓練する方法、訓練済みモデルのデプロイ方法など『ディープラーニング・プロジェクトのベストプラクティス』を提示します。
・ディープラーニングのメカニズムを解説
・Jupyter Notebook上でサンプルコードを実行
・PyTorchを用いたモデル訓練の実施
・実データを使用するプロジェクトをベースに実践的解説
・本番環境へのさまざまなモデルデプロイ方法
PyTorchで実際にどのように組み込まれて実現されているのか、細部まで掘り下げた解説をしていますのでディープラーニングの活用を目指している開発者や詳しく知りたい方におすすめです。
Manning Publications『Deep Learning with PyTorch』の翻訳書
書誌情報
- 著者: Eli Stevens, Luca Antiga, Thomas Viehmann, 電通国際情報サービス 後藤勇輝, 小川雄太郎, 櫻井亮佑, 大串和正
- 発行日: 2021-01-30 (紙書籍版発行日: 2021-01-30)
- 最終更新日: 2021-01-30
- バージョン: 1.0.0
- ページ数: 608ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: マイナビ出版
対象読者
著者について
Eli Stevens
ソフトウェアエンジニアからCTOまでの職務を担い、自動運転車業界で機械学習に取り組んでいる。
Luca Antiga
AIのエンジニアリング&テックスタートアップの共同設立者であり、PyTorchのコントリビューター。
Thomas Viehmann
PyTorchのコア開発者、ミュンヘンに拠点を置く機械学習のトレーナー兼コンサルタント。
電通国際情報サービス 後藤勇輝
株式会社電通国際情報サービス AIトランスフォーメーションセンター所属。ディープラーニングをはじめとした機械学習関連技術の研究、受託案件での開発を主な業務とする。
小川雄太郎
株式会社電通国際情報サービス AIトランスフォーメーションセンター所属。ディープラーニングをはじめとしたAI関連技術の研究開発、教育、コンサルティング、受託案件、アジャイルでのソフトウェア開発を業務とする。『つくりながら学ぶ! PyTorchによる発展ディープラーニング』(マイナビ出版)
櫻井亮佑
株式会社電通国際情報サービス HCM 事業部所属。統合人事業務パッケージの新機能の企画・開発を主な業務とする。Kaggle「Google QUEST Q&A Labeling」コンペティションにて銀メダルを取得。
大串和正
株式会社電通国際情報サービス AIトランスフォーメーションセンター所属。機械学習の中でも特に画像、深層強化学習に関連した技術の研究開発やコンサルティングを主たる業務とする。
目次
第1部 PyTorchの基礎
第1章 ディープラーニングとPyTorchの概要
- 1.1 ディープラーニングによる革命
- 1.2 ディープラーニング用フレームワーク:PyTorchとは
- 1.3 なぜPyTorchを使用するのか
- 1.4 ディープラーニング・プロジェクトにおけるPyTorchの役割
- 1.5 ハードウェアとソフトウェアの必要要件
- 1.6 第1章 演習問題
- 1.7 まとめ
第2章 訓練済みモデルの利用方法
- 2.1 画像認識の訓練済みモデル
- 2.2 画像生成の訓練済みモデル
- 2.3 画像の内容を説明する訓練済みモデル
- 2.4 Torch Hubとは
- 2.5 結論
- 2.6 第2章 演習問題
- 2.7 まとめ
第3章 PyTorchにおけるテンソルの扱い方
- 3.1 浮動小数点数とは
- 3.2 多次元配列としてのテンソル
- 3.3 テンソルの一部指定や取り出し(Indexing)
- 3.4 名前付きテンソル(Named Tensor)
- 3.5 テンソルの要素の型
- 3.6 テンソルに対するAPI(演算操作)
- 3.7 テンソルの格納状態
- 3.8 テンソルのメタ情報(サイズ、オフセット、ストライド)
- 3.9 テンソルをGPU上で扱う方法
- 3.10 NumPyとの相互運用性
- 3.11 一般化されたテンソルについて
- 3.12 テンソルの保存とロード(Serializing)
- 3.13 結論
- 3.14 第3章 演習問題
- 3.15 まとめ
第4章 さまざまなデータをPyTorchテンソルで表現する方法
- 4.1 画像データ
- 4.2 3次元データ
- 4.3 表形式データ(テーブルデータ)
- 4.4 時系列データ
- 4.5 テキストデータ
- 4.6 結論
- 4.7 第4章 演習問題
- 4.8 まとめ
第5章 ディープラーニングの学習メカニズム
- 5.1 モデル構築の歴史
- 5.2 学習とはパラメータの推定である
- 5.3 損失関数とは
- 5.4 勾配降下法とは
- 5.5 PyTorchを用いた勾配計算からバックプロパゲーションまで
- 5.6 結論
- 5.7 第5章 演習問題
- 5.8 まとめ
第6章 ニューラルネットワーク入門
- 6.1 ニューロン素子と活性化関数
- 6.2 nnモジュールの利用方法
- 6.3 ニューラルネットワークの構築手法
- 6.4 結論
- 6.5 第6章 演習問題
- 6.6 まとめ
第7章 画像分類モデルの構築
- 7.1 画像データセット
- 7.2 画像分類モデルの構築
- 7.3 結論
- 7.4 第7章 演習問題
- 7.5 まとめ
第8章 畳み込み(Convolution)
- 8.1 畳み込みとは
- 8.2 畳み込みの使用方法
- 8.3 nn.Moduleを継承したモデルの構築方法
- 8.4 畳み込みニューラルネットワークの学習
- 8.5 複雑なモデルの作り方
- 8.6 結論
- 8.7 第8章 演習問題
- 8.8 まとめ
第2部 ディープラーニングの実践プロジェクト:肺がんの早期発見
第9章 肺がん早期発見プロジェクトの解説
- 9.1 本プロジェクトの解説
- 9.2 簡易データでの演習と実プロジェクトとの違い
- 9.3 CTスキャンとは
- 9.4 肺がん早期発見プロジェクトの全体像
- 9.5 結論
- 9.6 まとめ
第10章 LUNAデータをPyTorchデータセットに変換
- 10.1 CTスキャンの生データ
- 10.2 LUNAデータのアノテーション
- 10.3 個々のCTデータを読み込む方法
- 10.4 患者座標系を用いた結節位置の特定
- 10.5 PyTorchのデータセットに変換
- 10.6 結論
- 10.7 第10章 演習問題
- 10.8 まとめ
第11章 結節候補を画像分類するモデルの構築
- 11.1 訓練ループの概要
- 11.2 プログラムの実行方法
- 11.3 訓練前の準備と初期化
- 11.4 最初のモデルを構築
- 11.5 モデルの訓練と検証
- 11.6 モデルの評価指標を出力
- 11.7 訓練の実施
- 11.8 モデルの性能評価:正解率99.7%は正しいのか
- 11.9 TensorBoardを用いた評価指標の可視化
- 11.10 なぜ今回うまく学習できなかったのか
- 11.11 結論
- 11.12 第11章 演習問題
- 11.13 まとめ
第12章 評価指標とデータ拡張を用いたモデルの改善
- 12.1 改善の概要
- 12.2 偽陽性と偽陰性(False PositiveとFalse Negative)
- 12.3 陽性と陰性の図解
- 12.4 理想的データセットとは
- 12.5 過学習への対処法
- 12.6 データオーギュメンテーション
- 12.7 結論
- 12.8 第12章 演習問題
- 12.9 まとめ
第13章 セグメンテーションを用いた結節の発見
- 13.1 セグメンテーションモデルの概要
- 13.2 さまざまな種類のセグメンテーション
- 13.3 U-Netによるセマンティックセグメンテーション
- 13.4 セグメンテーションモデルの構築
- 13.5 セグメンテーション用データセットの作成
- 13.6 訓練プログラムの変更
- 13.7 結果
- 13.8 結論
- 13.9 第13章 演習問題
- 13.10 まとめ
第14章 結節・腫瘍解析システムの全体を構築
- 14.1 プロジェクトの完了に向けた残り作業
- 14.2 検証データの独立性について
- 14.3 セグメンテーションと分類モデルの架け橋を構築
- 14.4 定量的な検証方法
- 14.5 悪性腫瘍の予測
- 14.6 今回の診断予測の結果から分かること
- 14.7 さらなる発展に向けて
- 14.8 結論
- 14.9 第14章 演習問題
- 14.10 まとめ
第3部 デプロイメント(Deployment)
第15章 本番環境にモデルをデプロイする方法
- 15.1 Webアプリケーションへのデプロイ手法
- 15.2 モデルの外部への書き出し手法
- 15.3 PyTorch JIT
- 15.4 LibTorch(C++のPyTorch)
- 15.5 モバイル端末へのデプロイ
- 15.6 デプロイメント技術の最新動向
- 15.7 結論
- 15.8 第15章 演習問題
- 15.9 まとめ