AIセキュリティから学ぶ ディープラーニング[技術]入門
書籍情報
発売日 : 2021年01月04日
著者/編集 : 田篭 照博
出版社 : 技術評論社
発行形態 : 単行本
書籍説明
目次
■第1部:ディープラーニングの基礎
●第1章:ディープラーニングの全体像
1.1:ディープラーニングとは
1.2:ディープラーニングが対象とする問題
1.3:ディープラーニングの構成要素
1.4:ディープラーニングの脅威とは
●第2章:ディープラーニングを始めるための環境構築
2.1:Dockerのインストール
2.2:イメージのビルド
2.3:コンテナの起動とJupyter Notebookの稼働確認
2.4:Jupyter Notebookの基本操作
●第3章:ディープラーニングに必要な数学とNumPyの操作
3.1:NumPyの基本
3.2:ベクトル(1次元配列)
3.3:行列(2次元配列)
3.4:ndarrayの軸(axis)
3.5:3次元以上の配列
3.6:微分
3.7:偏微分
3.8:勾配
3.9:まとめ
■第2部:ディープラーニングの仕組み
●第4章:ディープニューラルネットワーク
4.1:DNNのアーキテクチャ(入力層/隠れ層/出力層)
4.2:順伝播/重み/バイアス
4.3:活性化関数
4.4:出力層とソフトマックス関数
4.5:入力データのバッチ化
4.6:正解データ
4.7:正解率
●第5章:分類モデルを開発してみよう
5.1:事前準備
5.2:Layerクラスの開発
5.3:順伝播を体験しよう
5.4:SimpleClassifierクラスの開発
5.5:画像分類を体験しよう
5.6:活性化関数によるモデルの表現力の変化を体験しよう
●第6章:ディープニューラルネットワークの学習
6.1:学習の全体像
6.2:推論と正解の誤差を把握する
6.3:勾配降下法による重みとバイアスの更新
6.4:合成関数と連鎖律
6.5:誤差逆伝播
6.6:ミニバッチによる学習
6.7:学習に関するその他のトピック
●第7章:分類モデルの学習機能開発
7.1:ユーティリティ関数の準備
7.2:Layerクラスの改修
7.3:SimpleClassifierクラスの改修
7.4:学習
7.5:クイズ
●第8章:畳み込みニューラルネットワーク
8.1:CNNの全体像
8.2:畳み込み演算
8.3:畳み込み演算による特徴の抽出
8.4:3次元の畳み込み演算
8.5:畳み込み層の連結
8.6:最大プーリング層
8.7:畳み込みブロックから全結合層への連結
8.8:CNNの学習
■第3部:ディープラーニングのフレームワーク
●第9章:TensorFlowとKeras
9.1:TensorFlowとKerasとは
9.2:KerasによるMNIST分類モデルの開発
9.3:Kerasを利用したCNNによる画像分類
9.4:Tensorオブジェクト
9.5:TensorFlowによる勾配降下法の体験
9.6:Kerasによる最適化アルゴリズムの体験
■第4部:ディープラーニングのセキュリティ
●第10章:ディープニューラルネットワークへの攻撃
10.1:敵対的サンプルとは
10.2:ノルム
10.3:Fast Gradient Sign Method
10.4:Fast Gradient Sign Methodの実装
10.5:Jacobian Saliency Map Attack
10.6:Jacobian Saliency Map Attackの実装
10.7:C&W Attack
10.8:C&W Attackの実装
10.9:Boundary Attack
10.10:Boundary Attackの実装
10.11:Projected Gradient Descent Attack
10.12:OSSを利用したPGD Attackの体験
●第11章:ディープニューラルネットワークの防御
11.1:敵対的サンプルに対する防御の現状
11.2:敵対的サンプルに対する防御の種類
11.3:敵対的トレーニング
11.4:敵対的トレーニングを体験しよう
11.5:Feature Squeezingによる防御
11.6:プリプロセスを利用した敵対的サンプルの検知方法
11.7:Median Smoothingの実装
11.8:Squeezing Color Bitsの実装
●第12章:リアル空間上での脅威
12.1:自動運転領域での敵対的サンプル
12.2:物理セキュリティへの脅威
12.3:マルウェア検知の回避
12.4:音声の敵対的サンプル
12.5:ディープフェイクとその検知の回避
●第1章:ディープラーニングの全体像
1.1:ディープラーニングとは
1.2:ディープラーニングが対象とする問題
1.3:ディープラーニングの構成要素
1.4:ディープラーニングの脅威とは
●第2章:ディープラーニングを始めるための環境構築
2.1:Dockerのインストール
2.2:イメージのビルド
2.3:コンテナの起動とJupyter Notebookの稼働確認
2.4:Jupyter Notebookの基本操作
●第3章:ディープラーニングに必要な数学とNumPyの操作
3.1:NumPyの基本
3.2:ベクトル(1次元配列)
3.3:行列(2次元配列)
3.4:ndarrayの軸(axis)
3.5:3次元以上の配列
3.6:微分
3.7:偏微分
3.8:勾配
3.9:まとめ
■第2部:ディープラーニングの仕組み
●第4章:ディープニューラルネットワーク
4.1:DNNのアーキテクチャ(入力層/隠れ層/出力層)
4.2:順伝播/重み/バイアス
4.3:活性化関数
4.4:出力層とソフトマックス関数
4.5:入力データのバッチ化
4.6:正解データ
4.7:正解率
●第5章:分類モデルを開発してみよう
5.1:事前準備
5.2:Layerクラスの開発
5.3:順伝播を体験しよう
5.4:SimpleClassifierクラスの開発
5.5:画像分類を体験しよう
5.6:活性化関数によるモデルの表現力の変化を体験しよう
●第6章:ディープニューラルネットワークの学習
6.1:学習の全体像
6.2:推論と正解の誤差を把握する
6.3:勾配降下法による重みとバイアスの更新
6.4:合成関数と連鎖律
6.5:誤差逆伝播
6.6:ミニバッチによる学習
6.7:学習に関するその他のトピック
●第7章:分類モデルの学習機能開発
7.1:ユーティリティ関数の準備
7.2:Layerクラスの改修
7.3:SimpleClassifierクラスの改修
7.4:学習
7.5:クイズ
●第8章:畳み込みニューラルネットワーク
8.1:CNNの全体像
8.2:畳み込み演算
8.3:畳み込み演算による特徴の抽出
8.4:3次元の畳み込み演算
8.5:畳み込み層の連結
8.6:最大プーリング層
8.7:畳み込みブロックから全結合層への連結
8.8:CNNの学習
■第3部:ディープラーニングのフレームワーク
●第9章:TensorFlowとKeras
9.1:TensorFlowとKerasとは
9.2:KerasによるMNIST分類モデルの開発
9.3:Kerasを利用したCNNによる画像分類
9.4:Tensorオブジェクト
9.5:TensorFlowによる勾配降下法の体験
9.6:Kerasによる最適化アルゴリズムの体験
■第4部:ディープラーニングのセキュリティ
●第10章:ディープニューラルネットワークへの攻撃
10.1:敵対的サンプルとは
10.2:ノルム
10.3:Fast Gradient Sign Method
10.4:Fast Gradient Sign Methodの実装
10.5:Jacobian Saliency Map Attack
10.6:Jacobian Saliency Map Attackの実装
10.7:C&W Attack
10.8:C&W Attackの実装
10.9:Boundary Attack
10.10:Boundary Attackの実装
10.11:Projected Gradient Descent Attack
10.12:OSSを利用したPGD Attackの体験
●第11章:ディープニューラルネットワークの防御
11.1:敵対的サンプルに対する防御の現状
11.2:敵対的サンプルに対する防御の種類
11.3:敵対的トレーニング
11.4:敵対的トレーニングを体験しよう
11.5:Feature Squeezingによる防御
11.6:プリプロセスを利用した敵対的サンプルの検知方法
11.7:Median Smoothingの実装
11.8:Squeezing Color Bitsの実装
●第12章:リアル空間上での脅威
12.1:自動運転領域での敵対的サンプル
12.2:物理セキュリティへの脅威
12.3:マルウェア検知の回避
12.4:音声の敵対的サンプル
12.5:ディープフェイクとその検知の回避
著者情報
田篭 照博
田篭 照博(たごもり てるひろ)アプリケーションエンジニアからセキュリティエンジニアに転身し、サイバーセキュリティ関連企業の米国シリコンバレー拠点にて研究とサービス開発を担当。並行して、米国スタンフォード大学の客員研究員として、ディープニューラルネットワークの形式検証に関するフレームワーク開発と研究に従事。主な著書に『堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門』などがある。
田篭, 照博