実践 Deep Learning ―PythonとTensorFlowで学ぶ次世代の機械学習アルゴリズム

Book description

2000年代にニューラルネットワークの研究が再び活発になりました。現在、ディープラーニングは近代的な機械学習の道を切り開いている非常に活発な研究領域となっています。Google、Microsoft、Facebookなどの企業では、社内のディープラーニングチームが急成長しています。しかし、多くの人にとってディープラーニングはまだまだとても複雑で困難な課題です。本書ではサンプルのPython 3プログラムと簡潔な説明を通してこの複雑な分野の主要な概念を紹介します。微積分、行列演算、Pythonの基礎があれば誰でも本書を始めることができます。

Table of contents

  1.  大扉
  2.  原書大扉
  3.  クレジット
  4.  監訳者まえがき
  5.  まえがき
  6.  1章 ニューラルネットワーク
  7.   1.1 知的な機械を作るということ
  8.   1.2 従来のプログラムの限界
  9.   1.3 機械学習のしくみ
  10.   1.4 ニューロン
  11.   1.5 線形パーセプトロンをニューロンとして表現する
  12.   1.6 フィードフォワードニューラルネットワーク
  13.   1.7 線形ニューロンとその限界
  14.   1.8 シグモイド、tanh、ReLUのニューロン
  15.   1.9 ソフトマックス出力層
  16.   1.10 まとめ
  17.  2章 フィードフォワードニューラルネットワークの訓練
  18.   2.1 ファストフード店での問題
  19.   2.2 勾配降下法
  20.   2.3 デルタルールと学習率
  21.   2.4 勾配降下法とシグモイドニューロン
  22.   2.5 逆伝播のアルゴリズム
  23.   2.6 確率的勾配降下法とミニバッチ
  24.   2.7 テストデータ、検証データ、過学習
  25.   2.8 深層ニューラルネットワークでの過学習の防止
  26.   2.9 まとめ
  27.  3章 TensorFlowを使ったニューラルネットワークの実装
  28.   3.1 TensorFlowとは
  29.   3.2 他の選択肢との比較
  30.   3.3 TensorFlowのインストール
  31.   3.4 TensorFlowのVariableの生成と操作
  32.   3.5 TensorFlowでの操作
  33.   3.6 プレースホルダのテンソル
  34.   3.7 TensorFlowでのセッション
  35.   3.8 Variableのスコープと共有
  36.   3.9 CPUとGPU上でのモデルの管理
  37.   3.10 ロジスティック回帰のモデルを記述する
  38.   3.11 ログの記録と訓練
  39.   3.12 TensorBoardを使って計算グラフと学習を可視化する
  40.   3.13 多階層のMNISTモデル
  41.   3.14 まとめ
  42.  4章 勾配降下法を超えて
  43.   4.1 勾配降下法での課題
  44.   4.2 深層ネットワークの誤差曲面での極小値
  45.   4.3 モデルの識別可能性
  46.   4.4 深層ネットワークにおける極小値の影響
  47.   4.5 誤差曲面上の平坦な領域
  48.   4.6 勾配が誤った方向を向く場合
  49.   4.7 モーメンタムに基づく最適化
  50.   4.8 2次の最適化手法の概要
  51.   4.9 適応的な学習率
  52.    4.9.1 AdaGrad —— 過去の勾配の蓄積
  53.    4.9.2 RMSProp —— 勾配の指数加重移動平均
  54.    4.9.3 Adam —— モーメンタムとRMSPropの組み合わせ
  55.   4.10 最適化手法の選択基準
  56.   4.11 まとめ
  57.  5章 畳み込みニューラルネットワーク
  58.   5.1 人間の視覚におけるニューロン
  59.   5.2 特徴選択の欠陥
  60.   5.3 単純な深層ニューラルネットワークにはスケーラビリティがない
  61.   5.4 フィルターと特徴マップ
  62.   5.5 畳み込み層の完全な表現
  63.   5.6 最大プーリング
  64.   5.7 畳み込みネットワーク全体の構成
  65.   5.8 畳み込みネットワークを使ったMNISTの最終解
  66.   5.9 画像の前処理による、さらに頑健なモデル
  67.   5.10 バッチ正規化による訓練の高速化
  68.   5.11 CIFAR-10用の畳み込みネットワーク
  69.   5.12 畳み込みネットワークでの学習の可視化
  70.   5.13 畳み込みネットワークを使い、絵画のスタイルを適用する
  71.   5.14 他の問題領域への畳み込みネットワークの適用
  72.   5.15 まとめ
  73.  6章 埋め込みと表現学習
  74.   6.1 低次元表現の学習
  75.   6.2 主成分分析
  76.   6.3 オートエンコーダーのアーキテクチャー
  77.   6.4 TensorFlowを使ったオートエンコーダーの実装
  78.   6.5 頑健な埋め込み表現のためのノイズ除去
  79.   6.6 オートエンコーダーの疎性
  80.   6.7 入力のベクトルよりもコンテキストに多くの情報が含まれる場合
  81.   6.8 Word2Vecフレームワーク
  82.   6.9 スキップグラムアーキテクチャーの実装
  83.   6.10 まとめ
  84.  7章 シーケンス分析のモデル
  85.   7.1 可変長の入力に対する分析
  86.   7.2 neural n-gramによるseq2seq問題へのアプローチ
  87.   7.3 品詞タグ付け器の実装
  88.   7.4 係り受け解析とSyntaxNet
  89.   7.5 ビームサーチとグローバル正規化
  90.   7.6 内部状態を持ったディープラーニングのモデルの例
  91.   7.7 リカレントニューラルネットワーク
  92.   7.8 勾配消失問題
  93.   7.9 LSTMユニット
  94.   7.10 RNNのモデルのためにTensorFlowが提供するプリミティブ
  95.   7.11 センチメント分析のモデルの実装
  96.   7.12 RNNを使ってseq2seqの問題に取り組む
  97.   7.13 アテンションを使ってRNNを強化する
  98.   7.14 ニューラル翻訳ネットワークの分析
  99.   7.15 まとめ
  100.  8章 メモリ強化ニューラルネットワーク
  101.   8.1 ニューラルチューリングマシン
  102.   8.2 アテンションベースのメモリアクセス
  103.   8.3 NTMでのメモリのアドレス管理
  104.   8.4 微分可能なニューラルコンピューター
  105.   8.5 DNCでの干渉のない書き込み
  106.   8.6 DNCでのメモリの再利用
  107.   8.7 書き込みの時系列的リンク
  108.   8.8 DNCの読み込みヘッドを理解する
  109.   8.9 コントローラーのネットワーク
  110.   8.10 DNCの動作の可視化
  111.   8.11 TensorFlowを使ったDNCの実装
  112.   8.12 DNCに読解させる
  113.   8.13 まとめ
  114.  9章 深層強化学習
  115.   9.1 Atariのゲームを習得した深層強化学習
  116.   9.2 強化学習とは
  117.   9.3 マルコフ決定過程(MDP)
  118.    9.3.1 方策
  119.    9.3.2 利得
  120.    9.3.3 割引累積報酬
  121.   9.4 探索と利用
  122.    9.4.1 ε-貪欲法
  123.    9.4.2 ε-貪欲法の改良
  124.   9.5 方策学習と価値学習
  125.    9.5.1 方策勾配を使った方策学習
  126.   9.6 ポールバランシングへの方策勾配の適用
  127.    9.6.1 OpenAI Gym
  128.    9.6.2 エージェントの作成
  129.    9.6.3 モデルとオプティマイザーの作成
  130.    9.6.4 行動の抽出
  131.    9.6.5 履歴の管理
  132.    9.6.6 方策勾配法のメインの関数
  133.    9.6.7 ポールバランシングでのPGAgentの性能
  134.   9.7 Q学習と深層Qネットワーク
  135.    9.7.1 ベルマン方程式
  136.    9.7.2 価値の反復での問題点
  137.    9.7.3 Q関数の近似
  138.    9.7.4 深層Qネットワーク(DQN)
  139.    9.7.5 DQNの訓練
  140.    9.7.6 学習の安定性
  141.    9.7.7 ターゲットQネットワーク
  142.    9.7.8 体験の再現
  143.    9.7.9 Q関数から方策へ
  144.    9.7.10 DQNとマルコフ性の仮定
  145.    9.7.11 DQNでのマルコフ性の仮定への対策
  146.    9.7.12 DQNによる「ブロックくずし」のプレイ
  147.    9.7.13 アーキテクチャー
  148.    9.7.14 画面の積み重ね
  149.    9.7.15 訓練のセットアップ
  150.    9.7.16 ターゲットQネットワークの更新
  151.    9.7.17 体験の再現の実装
  152.    9.7.18 DQNのメインのループ
  153.    9.7.19 「ブロックくずし」でのDQNAgentの成績
  154.   9.8 DQNの改善と新たな方向性
  155.    9.8.1 深層リカレントQネットワーク(DRQN)
  156.    9.8.2 A3C
  157.    9.8.3 UNREAL
  158.   9.9 まとめ
  159.  著者紹介
  160.  奥付

Product information

  • Title: 実践 Deep Learning ―PythonとTensorFlowで学ぶ次世代の機械学習アルゴリズム
  • Author(s): Nikhil Buduma, 太田 満久, 藤原 秀平, 牧野 聡
  • Release date: April 2018
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118321

You might also like

book

生成 Deep Learning ―絵を描き、物語や音楽を作り、ゲームをプレイする

by David Foster, 松田 晃一, 小沼 千絵

生成型ディープラーニングの解説書。「絵を描く」「曲を作る」といった、これまで人間にしかできないと思われていた創造的な作業を機械に行わせるという、いま最もホットな技術の基礎から応用までをJupyterノートブック環境で実際に試しながら学びます。第I部は基礎編です。機械学習プログラミング、変分オートエンコーダ、GANやRNNなど、生成モデルの作成において重要な基礎技術を学びます。第II部は応用編です。CycleGAN、エンコーダ―デコーダモデル、MuseGANなどのモデルを作成し、作画、作文、作曲といった創造的なタスクに取り組みます。さらには、実環境を用いずにゲームプレイの学習を可能にする、世界モデルを使った強化学習にも取り組みます。

book

詳説 Deep Learning ―実務者のためのアプローチ

by Josh Patterson, Adam Gibson, 本橋 和貴, 牧野 聡, 新郷 美紀

エンタープライズ向けのディープラーニングの解説書。企業でディープラーニングアプリケーションを開発、運用するための実践的な手法を紹介します。対象読者はソフトウェア開発の現場で活躍する実務者。前半はディープラーニング初心者、後半はJavaエンジニア向けの構成です。機械学習、ニューラルネットワークの基礎から始め、ディープラーニングの基本的な概念、実際にチューニングを行う際のベストプラクティス、データのETL(抽出・変換・ロード)の方法、Apache Sparkを用いた並列化について、JavaライブラリDeep Learning4J(DL4J)の開発者でもある著者がわかりやすく丁寧に解説します。

book

直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ

by Antonio Gulli, Sujit Pal, 大串 正矢, 久保 隆宏, 中山 光樹

直感的かつ短いコードでアイデアを形にできるKerasはTensorFlowのラッパーとして大人気のライブラリです。本書でもTensorFlowをバックエンドとして使用し、自然言語処理、画像識別、画像生成、音声合成、テキスト生成、強化学習、AIゲームプレイなどさまざまなモデルをPythonとKerasで実装します。対象読者は、各種のディープラーニングを素早く実装したいプログラマー、データサイエンティスト。ディープラーニングを支える技術の速習にも好適です。数式はなるべく使わずにコードと図で説明します。ニューラルネットワークおよびPython 3の基本を理解している人であれば誰でも始めることができます。

book

実践 bashによるサイバーセキュリティ対策 ―セキュリティ技術者のためのシェルスクリプト活用術

by Paul Troncone, Carl Albing, 髙橋 基信

bashとLinuxの標準コマンドを活用したセキュリティ対策手法についての解説書。サイバーセキュリティの現場では、常にGUIの最新ツールを使えるとは限りません。CUIによるセキュリティ対策はセキュリティ技術者にとって必須の知識です。本書では、Linux/Mac/Windows環境でbashを含む標準的なLinuxのコマンドラインツール群を用いて、各種情報収集や収集した情報の解析、監視、侵入テスト(ペネトレーションテスト)など、サイバーセキュリティの具体的な手法を実践形式で説明します。