関連サイト
本書の関連ページが用意されています。
内容紹介
ディープラーニングは、近年のAIテクノロジーの中心的な存在です。企業でもこの技術を活用しようとする動きが増えてきていますが、ディープラーニングのシステム化に成功するには、そのための十分な知識が必要です。本書では、ディープラーニングフレームワークの開発者であり、さまざまなAIプロジェクトでの経験を有するアダム・ギブソン氏が、ディープラーニングなどAIを活用したシステム化のキーポイントを説明します。また、ディープラーニングの使いこなしに役立つ本質的な技術的知識も解説。今まさに現場でAI技術の実装を行っている方、AIプロジェクトの管理を行っている方に格好の内容となっています。
書誌情報
- 著者: Adam Gibson, 新郷 美紀
- 発行日: 2020-09-23 (紙書籍版発行日: 2020-09-23)
- 最終更新日: 2020-09-23
- バージョン: 1.0.0
- ページ数: 272ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
データサイエンティストであり、作成したディープラーニングのモデルをアプリケーションに適用することや前処理などについて知識を深めたい方・アプリケーションエンジニアやデータエンジニアなどのシステムエンジニアであり、ディープラーニングを学びたい方・プロジェクト決定権を持つか、プロジェクトマネージャであり、ディープラーニングのプロジェクトでやるべきタスクがイメージできていない方
著者について
Adam Gibson
Konduit社のCTO。前職はSkymind社の共同経営者。2010年からオープンソースソフトウェアの開発を行っている。2012年にJavaベースの機械学習システムであるDeeplearning4jを発案。アメリカのミシガン州で育ち、数年間をシリコンバレーで過ごす。現在は東京在住。
新郷 美紀
現在、AI領域のソリューションアーキテクトとして活動中。東京工業大学卒、日本電気勤務。著書に『アプリケーションエンジニアのためのApache Spark入門』(秀和システム)がある。また『詳説Deep Learning―実務者のためのアプローチ』(オライリージャパン)の一部の翻訳を担当。2019年と2020年に世界の人物年鑑Who's Who in the WorldのScience and Engineering部門に選出された。
目次
まえがき
第1章 ディープラーニングプロジェクトはなぜうまくいかないのか
- 1.1 本書がディープラーニングに注力する理由
- 1.2 なぜディープラーニングから学ぼうとするのか
- 1.3 ディープラーニングが採用される要因
- 1.4 ディープラーニングの現場での課題
- 1.5 AIテンプレートの重要性
- 1.6 本書で取り上げる内容
第2章 機械学習プロジェクトの標準プロセス[課題理解からメンテナンスまで]
- 2.1 ビジネス課題の理解
- 2.1.1 チームのスキル要件
- 2.1.2 適切なチームの構築方法
- 2.1.3 データサイエンティストを雇うタイミング
- 2.1.4 ビジネス要件
- 2.1.5 ITインフラ要件
- 2.1.6 機械学習の採用基準の確立
- 2.1.7 課題の設定指針
- 2.2 探索的データ分析
- 2.2.1 探索的データ分析の直感的理解
- 2.2.2 データの理解
- 2.2.3 EDAプロセスの全体像
- 2.2.3.1 EDAプロセスで用いられるツール
- 2.2.4 評価指標の使用方法
- 2.2.5 EDAの繰り返し実行
- 2.2.6 パイプラインの不具合の調査方法
- 2.2.7 プロジェクト範囲の設定方法
- 2.2.8 プロジェクト期間の見積もり方法
- 2.2.9 問題の未然防止策
- 2.2.9.1 EDA結果の検証手順
- 2.3 モデル開発の下準備
- 2.3.1 データ準備の最適化
- 2.3.2 モデルのアーキテクチャの最適化
- 2.3.3 データサイエンスのコンペティションの利用について
- 2.4 モデル開発
- 2.4.1 経験(Experience)の実行
- 2.4.2 経験の実行ステップ
- 2.4.3 評価指標(Metrics:メトリクス)の理解
- 2.5 モデルのサービス展開(デプロイ)
- 2.5.1 サービス展開の要件
- 2.5.2 モデルの公開方法
- 2.5.3 フロントエンドサービスの要件
- 2.5.4 クラウドへのサービス展開
- 2.5.5 オンプレミスへのサービス展開
- 2.5.6 クラスタへのサービス展開
- 2.5.6.1 Kubernetesへのサービス展開
- 2.5.6.2 クラスタのアーキテクチャ概要
- 2.5.7 ハードウェアの選択
- 2.5.7.1 特定用途のチップの利用
- 2.5.7.2 デフォルト値の利用
- 2.5.8 サービス展開の準備
- 2.5.8.1 GDPRの取り扱い
- 2.5.8.2 ソフトウェアのバージョン管理
- 2.5.8.3 モデルのサービス展開手順
- 2.5.8.4 データ処理方式
- 2.6 モデルの品質管理
- 2.6.1 モデルのモニタリング
- 2.6.1.1 インフラストラクチャの指標
- 2.6.1.2 機械学習のモデルの品質検査指標
- 2.6.2 SLAのモニタリング
- 2.6.2.1 SLAの定義
- 2.6.2.2 SLAの典型的な仕組み
- 2.6.2.3 SLAを満たしていない場合の対処方法
- 2.6.3 モデルのメンテナンス
- 2.6.3.1 メンテナンスで生じる問題
- 2.6.4 コンセプトの不安定さのモニタリング
- 2.6.4.1 コンセプトの不安定さが生じる代表例
- 2.6.4.2 コンセプトの不安定さのテスト方法
- 2.6.4.3 コンセプトの不安定さと戦う方法
- 2.6.5 オンラインでのモデルの再訓練
- 2.6.6 A/Bテスト
- 2.7 プロジェクトの検討項目としてのAIテンプレート
- 2.8 まとめ
第3章 ディープラーニングの基本構成
- 3.1 ニューラルネットワークの処理概要
- 3.1.1 ニューラルネットワークの情報伝達の仕組み
- 3.1.2 ニューラルネットの可視化―数学的な理解のために
- 3.2 ニューラルネットワーク処理プロセスの概要
- 3.3 ニューラルネットワークの学習
- 3.4 ニューラルネットワークの各機能
- 3.4.1 重みとは
- 3.4.2 バイアスとは
- 3.4.3 活性化関数とは
- 3.4.3.1 隠れ層の活性化関数
- 3.4.3.2 回帰問題の出力層で使う活性化関数[恒等関数]
- 3.4.3.3 分類問題の出力層で使う活性化関数[シグモイド関数、ソフトマックス関数]
- 3.4.4 損失関数とは
- 3.4.4.1 回帰問題で用いられる損失関数
- 3.4.4.2 分類問題の損失関数
- 3.5 ニューラルネットワークの学習の動作
- 3.5.1 最適化とは
- 3.5.2 勾配降下法とは
- 3.5.2.1 確率的勾配降下法
- 3.5.2.2 ミニバッチ確率的勾配降下法
- 3.5.2.3 バッチ勾配降下法
- 3.5.3 局所解の問題
- 3.6 ニューラルネットワークの隠れ層の学習についての直感的理解
- 3.7 ニューラルネットワークの学習の割合や回数に関する指定
- 3.7.1 (ミニ)バッチサイズ
- 3.7.2 イテレーション数
- 3.7.3 エポック数
- 3.7.4 学習率
- 3.8 ニューラルネットワークの評価
- 3.8.1 回帰問題の評価関数
- 3.8.2 分類問題の評価関数
- 3.9 ディープニューラルネットとは
- 3.9.1 ディープニューラルネットの処理プロセスと構成
- 3.9.2 データの準備・整形
- 3.9.2.1 データのベクトル化
- 3.9.2.2 ラベルエンコーディング
- 3.9.2.3 one-hot エンコーディング
- 3.9.2.4 データの標準化
- 3.9.2.5 データ分割
- 3.9.3 ディープニューラルネットのモデルの実装
- 3.9.4 ディープニューラルネットにする意味
- 3.10 ディープニューラルネットの学習
- 3.10.1 誤差逆伝播法とは
- 3.10.2 数式を用いた誤差逆伝播法についての補足
- 3.10.2.1 計算グラフを用いた偏微分・連鎖律の理解
- 3.10.3 誤差逆伝播法の数式的理解
- 3.11 まとめ
第4章 畳み込みニューラルネットワークのメカニズムと意味をとらえる
- 4.1 CNN の本質を理解するために
- 4.1.1 立ちはだかる学習リソースとのギャップ
- 4.1.1.1 ギャップを埋めるためのチャレンジ
- 4.2 CNNの概要
- 4.2.1 CNN誕生の背景
- 4.2.1.1 全結合型ニューラルネットワークから学ぶCNNの必要性
- 4.2.2 全結合型と畳み込みの違い
- 4.2.3 画像の入力データ
- 4.2.4 CNNの構成要素と操作
- 4.2.4.1 畳み込み層
- 4.2.4.2 プーリング(Pooling)層
- 4.2.4.3 プーリングの役割
- 4.2.4.4 CNNにおける全結合層
- 4.3 CNNの特徴
- 4.3.1 カーネルの役割
- 4.3.2 CNNにとっての学習とは
- 4.3.3 畳み込みの階層構造
- 4.3.4 パラメータ共有(parameter sharing)
- 4.3.5 受容野
- 4.3.6 パディング
- 4.4 まとめ
第5章 再帰型ニューラルネットワークのメカニズムと意味をとらえる
- 5.1 本章の目的
- 5.2 シーケンシャルデータとRNNの概要
- 5.2.1 シーケンシャルデータ
- 5.2.2 RNNが必要な理由
- 5.2.3 RNNアーキテクチャの概要
- 5.2.4 RNNにおけるデータフロー
- 5.2.5 RNNのメモリ機能
- 5.2.6 RNNの操作フロー
- 5.3 LSTM
- 5.3.1 LSTMの全体構成
- 5.3.2 LSTMセルの機能と動作
- 5.3.2.1 第1ステップ:忘却ゲート(Forget Gate)
- 5.3.2.2 第2ステップ:入力ゲート
- 5.3.2.3 第3ステップ:メモリセル
- 5.3.2.4 第4ステップ:出力ゲート
- 5.3.3 データの次元
- 5.3.3.1 入力データのベクトル表現
- 5.3.3.2 隠れ層のユニットのサイズ
- 5.3.3.3 ミニバッチの次元の設定
- 5.4 その他のトピックス
- 5.4.1 RNNのバリエーションについて
- 5.5 まとめ
第6章 AI開発テンプレート適用のユースケース
- 6.1 ビジネスのポイントと分析
- 6.2 機械学習に対応できるチームやプロジェクトの選定
- 6.3 課題の例:解約予測(Churn Prediction)
- 6.4 解約予測で考慮すべき内容
- 6.5 解約予測で用いる探索的データ分析
- 6.6 最初の機械学習の実験(Experiment)
- 6.7 モデルの構築方法
- 6.8 モデルの展開
- 6.9 解約予測モデルの維持管理
- 6.10 長期的に価値を維持するためにすべきこと
- 6.11 従来の解約予測と機械学習による方法の比較
- 6.12 おわりに
Appendix AIテンプレートを実装したサンプル
- A.1 利用するデータセット
- A.2 サンプルの実行条件
- A.3 Docker上でのサンプルの実行手順