即戦力になるための ディープラーニング開発 実践ハンズオン
書籍情報
発売日 : 2021年04月17日
著者/編集 : 井上 大樹/佐藤 峻
出版社 : 技術評論社
発行形態 : 単行本
書籍説明
内容紹介
本書は、ディープラーニングによる画像認識を題材に、現場のプロジェクトで必要とされる知識をハンズオン形式で学習するための入門書です。ディープラーニング開発プロジェクトにおける「データ収集」「モデル実装」「データ準備」「学習」「評価」「性能向上」という6つのプロセスについて、それぞれの工程でどんなツールを使うのか、何をすれば良いのか、求められることや注意すべき点は何かなど、手を動かしながら理解を深めます。フレームワークの使い方を知っているだけではなく、ディープラーニングプロジェクトの全体像を正しく理解し、きちんと手を動かすことのできるAIエンジニアを目指すために役立つ基本の1冊です。
目次
■第1章 機械学習/ディープラーニングの基礎知識
・1.1 機械学習と深層学習(ディープラーニング)
機械学習
深層学習(ディープラーニング)
・1.2 ニューラルネットワークの学習
学習の流れ
学習の方法
勾配降下法
教師なしディープラーニング
・1.3 畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)
ニューラルネットワークの主要な層
工夫のために使用される層
CNN
・1.4 タスクとモデル
画像処理のさまざまなタスクと主要なモデル
・1.5 画像処理の基礎
開発環境の構築
画像データの形式
簡単な画像処理の実装
・1.6 AIエンジニアに求められる素養
深い業務理解
データの整理整頓
細やかなアノテーション
論文やサンプルコードを読む英語力
AI以外のロジックを含めたソリューションを考える力
■第2章 ディープラーニングプロジェクトの進め方
・2.1 プロジェクトの全体像
ディープラーニングプロジェクトの2つのパターン
業務への理解は必要不可欠
・2.2 プロジェクトにおける各プロセスの役割と目的
ディープラーニングプロジェクトの6つのプロセス
プロセス:データの収集
プロセス:モデルの実装
プロセス:データの準備
プロセス:学習
プロセス:評価
プロセス:性能向上
・2.3 フレームワーク・環境・ハードウェア
ディープラーニングのフレームワーク・ライブラリ
ディープラーニング環境とハードウェア
クラウドサービスの活用
■第3章 VGGによる画像分類
・3.1 モデルの実装
VGGとは
VGGの実装
Loss関数とOptimizer
・3.2 データの準備
学習データ・評価データの準備
データオーグメンテーション
・3.3 学習
学習環境について
オンライン学習
学習曲線とTrain Loss
・3.4 評価
Confusion Matrixの作成
正解率・再現率・適合率
・3.5 性能向上
原因の分析
バッチ学習の利用
過学習
トラブルシューティング
■第4章 AutoEncoderによる正常・異常検知
・4.1 モデルの実装
AutoEncoderとは
Convolutional AutoEncoderの実装
・4.2 データの準備
AutoEncoderのデータ準備
データのダウンロード
・4.3 AutoEncoderによる学習
学習の実装
学習の可視化
・4.4 評価
推論の実装
差分評価
・4.5 性能向上 159
モデルの改善[グレースケール化・二値化]
モデルの改善[データの整理・切り取り]
モデルの改善[入力データの工夫・差分関数の調整]
閾値による精度調整
■第5章 SSDによる物体検出
・5.1 モデルの実装
SSDとは
SSDの準備
・5.2 データの準備
画像の準備
アノテーション
・5.3 学習
転移学習とファインチューニング
学習のための準備
学習の実行
・5.4 評価
IoUとは
IoUによる検出精度評価
mAPの算出
・5.5 性能向上
原因の特定
前処理と後処理
■第6章 U-Netによる画像からの領域検出[実装~データの準備~学習]
・6.1 モデルの実装
U-Netとは
U-Net(複数クラスセグメンテーション)の実装
・6.2 データの準備
Pascal VOCデータの準備
マスク画像の確認
対象データの準備と確認
・6.3 学習
学習用データと検証用データの分離
データジェネレータの実装
学習の実装と実行
ネットワークと学習の改良
■第7章 U-Netによる画像からの領域検出[評価~性能向上~まとめ]
・7.1 評価
推論の実装
IoU
不足と過剰
・7.2 性能向上
オーグメンテーション―ランダムイレイズ/グレースケール化
Loss関数の変更―Dice係数loss
・7.3 実験のまとめ
・1.1 機械学習と深層学習(ディープラーニング)
機械学習
深層学習(ディープラーニング)
・1.2 ニューラルネットワークの学習
学習の流れ
学習の方法
勾配降下法
教師なしディープラーニング
・1.3 畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)
ニューラルネットワークの主要な層
工夫のために使用される層
CNN
・1.4 タスクとモデル
画像処理のさまざまなタスクと主要なモデル
・1.5 画像処理の基礎
開発環境の構築
画像データの形式
簡単な画像処理の実装
・1.6 AIエンジニアに求められる素養
深い業務理解
データの整理整頓
細やかなアノテーション
論文やサンプルコードを読む英語力
AI以外のロジックを含めたソリューションを考える力
■第2章 ディープラーニングプロジェクトの進め方
・2.1 プロジェクトの全体像
ディープラーニングプロジェクトの2つのパターン
業務への理解は必要不可欠
・2.2 プロジェクトにおける各プロセスの役割と目的
ディープラーニングプロジェクトの6つのプロセス
プロセス:データの収集
プロセス:モデルの実装
プロセス:データの準備
プロセス:学習
プロセス:評価
プロセス:性能向上
・2.3 フレームワーク・環境・ハードウェア
ディープラーニングのフレームワーク・ライブラリ
ディープラーニング環境とハードウェア
クラウドサービスの活用
■第3章 VGGによる画像分類
・3.1 モデルの実装
VGGとは
VGGの実装
Loss関数とOptimizer
・3.2 データの準備
学習データ・評価データの準備
データオーグメンテーション
・3.3 学習
学習環境について
オンライン学習
学習曲線とTrain Loss
・3.4 評価
Confusion Matrixの作成
正解率・再現率・適合率
・3.5 性能向上
原因の分析
バッチ学習の利用
過学習
トラブルシューティング
■第4章 AutoEncoderによる正常・異常検知
・4.1 モデルの実装
AutoEncoderとは
Convolutional AutoEncoderの実装
・4.2 データの準備
AutoEncoderのデータ準備
データのダウンロード
・4.3 AutoEncoderによる学習
学習の実装
学習の可視化
・4.4 評価
推論の実装
差分評価
・4.5 性能向上 159
モデルの改善[グレースケール化・二値化]
モデルの改善[データの整理・切り取り]
モデルの改善[入力データの工夫・差分関数の調整]
閾値による精度調整
■第5章 SSDによる物体検出
・5.1 モデルの実装
SSDとは
SSDの準備
・5.2 データの準備
画像の準備
アノテーション
・5.3 学習
転移学習とファインチューニング
学習のための準備
学習の実行
・5.4 評価
IoUとは
IoUによる検出精度評価
mAPの算出
・5.5 性能向上
原因の特定
前処理と後処理
■第6章 U-Netによる画像からの領域検出[実装~データの準備~学習]
・6.1 モデルの実装
U-Netとは
U-Net(複数クラスセグメンテーション)の実装
・6.2 データの準備
Pascal VOCデータの準備
マスク画像の確認
対象データの準備と確認
・6.3 学習
学習用データと検証用データの分離
データジェネレータの実装
学習の実装と実行
ネットワークと学習の改良
■第7章 U-Netによる画像からの領域検出[評価~性能向上~まとめ]
・7.1 評価
推論の実装
IoU
不足と過剰
・7.2 性能向上
オーグメンテーション―ランダムイレイズ/グレースケール化
Loss関数の変更―Dice係数loss
・7.3 実験のまとめ
著者情報
井上 大樹
井上 大樹Automagi株式会社でディープラーニングを活用した機械学習モデルの開発、AWS上でのAIシステムの設計・実装を担当。SageMakerをはじめとしたAWSの最新サービスをキャッチアップし、信頼性や保守性の高いアーキテクチャ設計に取り組んでいる。小学生からプログラミングを始め、大学では情報科学を専攻。機械学習を用いた複数の研究に貢献した。
井上, 大樹
佐藤 峻
佐藤 峻名古屋のソフトウェア会社に5年間勤め、複数のプロジェクトを担当し、言語を問わずフロントからサーバまで一貫して開発を行う。2016年頃からディープラーニングを使ったプロジェクトに関わり、2018年にAutomagi株式会社に転職。以降、機械学習プロジェクト(とくに画像系)に従事。休日にも、開発や実験を行う技術好きの趣味エンジニアで、社内で技術を広めるための勉強会をよく開いている。
佐藤, 峻