ディープラーニングを支える技術-「正解」を導くメカニズム[技術基礎]


ディープラーニングを支える技術 ——「正解」を導くメカニズム[技術基礎] Tech × Books plus


技術評論社


著者:岡野原大輔


本書について
本書の構成
本書の補足情報

第1章 ディープラーニングと人工知能 ——なぜディープラーニングが成功しているのか
1.1 ディープラーニング,知能,人工知能とは何か
 多様な問題を一つのアプローチで解ける「ディープラーニング」
 ディープラーニングは「データ」から解法を学習する
 知能とは何か。人工知能とは何か。
 ポランニーのパラドックス
 人は無意識下で膨大かつ複雑な処理をしている
 システム1とシステム2
 コンピュータ上で実現可能な知能を求める
 人にとっての難しさと人工知能にとっての難しさは違う
 なぜ人工知能の実現が難しいか
  人は言語をどのように獲得しているか
  人は画像をどのように認識しているか
  人は画像を分解し,そこから3次元情報を復元する
 人は経験を積むことで多くの機能を獲得できる
 意識下と無意識下の処理の融合
1.2 人工知能の歴史
 ダートマス会議
 シンボリック,ノンシンボリック
  シンボリック派:記号処理によって問題解決を図る
  ノンシンボリック派:パターン処理によって問題解決を図る
  ノンシンボリック派の代表例:パーセプトロン
 将来は,シンボリック派とノンシンボリック派の融合が必要となる
 AI楽観主義と現実との戦い
 第五世代コンピュータ:そして,AI冬の時代
 機械学習の時代
 機械学習はデータからルールや知識を獲得する
  機械学習はエキスパートを必要とせず,さまざまな問題にも適用できる
  1990年代に多くの機械学習手法が登場する
  機械学習の応用がビジネスにも大きなインパクトを与える
 ディープラーニングの時代
 [基礎]ニューラルネットワーク:基本構造,勾配降下法,アーキテクチャ設計
  ニューラルネットワークは従来,注目を受けていなかった
 驚異のディープラーニングの登場:AlexNetの衝撃
  ディープラーニングは,インターンをきっかけに広がった
  ディープラーニングは,多くの問題で既存手法を凌駕する性能を達成した
  ディープラーニングと強化学習の融合
  研究分野への注目
1.3 なぜディープラーニングは急速に発展したか
 [急速な発展の背景①]計算機の指数的な性能向上
  指数的な性能向上により,突然解けるようになる
 GPUがディープラーニング発展の中心的な役割を果たした
 ディープラーニングに特化した専用チップも登場している
 スマートフォンのチップ
 ハードウェアの性能改善が人工知能の発展で重要
 [急速な発展の背景②]データの爆発的な増加
  動画データとゲノムデータが急激に増える
 巨大な学習データが最初に必要
 従来の機械学習からディープラーニングへと変わっていく
1.4 ディープラーニングと計算コスト
 人の学習と,今の機械学習/ディープラーニングの学習
 なぜディープラーニングは大量のデータと計算リソースを必要とするのか
  [仮説①]人は学習結果を応用し,再利用している
  [仮説②]人も膨大な量のデータを使って学習している
  [仮説③]人の脳は,省エネかつ高い計算能力を持つ
1.5 ディープラーニングは今後どう使われるのか
 自動運転,先進運転支援システム
  人の運転は高度な認識と予測を駆使している
  センサーや認識技術の発展が進む
 ロボット
  [タスクの例]説明書を読み,家具を組み立てるために必要なのは?
  ディープラーニングは指示理解,認識,制御,プランニングで必要とされる
 医療/ヘルスケア
  診断,医学の進歩に貢献する
 人と人工知能の共存
  コンピュータにしかできないことを活かす
  人の判断とコンピュータの判断を組み合わせる
 [補足]数字で見るディープラーニングの今
1.6 本章のまとめ

第2章 [入門]機械学習 ——コンピュータの「学習」とは何か
2.1 機械学習の背景
 演繹的なアプローチと帰納的なアプローチ
 機械学習と従来のプログラミング
 機械学習の簡単な例:気温とアイスクリーム
2.2 モデル,パラメータ,データ
 モデルとパラメータ:「状態」や「記憶」を持つことができる
 データ
 独立同分布(i.i.d.)
 データは同一分布から独立にサンプリングされるという仮定
  非i.i.d.環境
 訓練データの偏りから誤った結論を導かないために
 データからモデルのパラメータを推定する:データから「学習」する
  パラメータ数とモデルの表現力
2.3 汎化能力:未知のデータに対応できるか
 データをすべて丸暗記
  世の中のデータは種類数が無数にあり,丸暗記できない
 汎化能力:有限の訓練データから無限のデータを予測する
 過学習:汎化能力と迷信
 過学習はなぜ起こるのか:たまたま訓練事例を説明する間違ったモデルが見つかってしまう
  [過学習を防ぐ①]訓練データを増やす
  [過学習を防ぐ②]仮説数を必要最低限に抑える
 ニューラルネットワークはパラメータ数が多いが汎化する
2.4 問題設定:教師あり学習,教師なし学習,強化学習
 [代表的な学習手法①]教師あり学習
  教師あり学習のタスクの例
 パラメトリックモデル
 学習と推論の2つのフェーズから成る
 [代表的な学習手法②]教師なし学習
  教師なし学習でできること
  教師なし学習の代表例:クラスリング,表現変換と次元削減,生成モデル
 ディープラーニングによる「表現学習」:自己教師あり学習
 [代表的な学習手法③]強化学習
  [ゲームの例]強化学習はどのような学習なのか
  エージェントと環境
  決定的な遷移と確率的な遷移
  強化学習の「報酬」と「報酬仮説」
 教師あり学習と強化学習は何か違うのか
  [違い①]i.i.d.を仮定するか
  [違い②]受動的か,能動的か
  [違い③]フィードバックは直接的か,間接的か
2.5 問題設定の分類学
 学習問題設定の三つの軸
 [学習問題設定の基準①]訓練データが網羅的か,サンプリングか
  訓練データが網羅的に列挙できる場合:三目並べ
  訓練データが網羅的に列挙できない場合:囲碁
 [学習問題設定の基準②]ワンショットか,逐次的か
  問題の内部で逐次的な出力を順に求める場合
 [学習問題設定の基準③]学習フィードバックが教師的か,評価的か
  教師的なフィードバックの方が学習は簡単
  評価的なフィードバックの方が設定しやすい
 [三つの基準の活用術]学習手法の分類/整理
  バンデッド問題
  構造出力の教師あり学習
2.6 機械学習の基本:機械学習のさまざまな概念を知る
 教師あり学習による画像分類
 機械学習による「学習」の実現:特徴抽出の重要性
 ①訓練データを用意する
 ②学習対象のモデルを用意する:要素,重み,バイアス
  内積を使う
  入力と重みをスカラー値からベクトルに一般化
  パラメータの表し方
  線形モデル
  スコアから分類結果に変換する:閾値関数
 [小まとめ]❶入力〜❷学習モデルまで
 ③損失関数を設計する:モデルを学習させるための準備
  マージンと更新
  損失関数の設計と損失関数の微分の形はとても重要
 損失関数に用いられる関数の例
  0/1損失関数
  クロスエントロピー損失関数
  クロスエントロピー損失関数とシグモイド関数
  二乗損失,絶対損失
 ④目的関数を導出する:訓練誤差
 ⑤最適化問題を解く:勾配降下法,勾配
  勾配降下法と勾配の基本
 勾配降下法:勾配の負の方向に向かってパラメータを逐次的に更新する
 確率的勾配降下法
  確率的勾配降下法の効果:高速化,正則化
 正則化:汎化性能を改善する
 ⑥学習して得られたモデルを評価する:汎化誤差
 モデルの評価とデータ準備における注意点
2.7 確率モデルとしての機械学習
 最尤推定,MAP推定,ベイズ推定
 学習問題を確率の枠組みでとらえるメリット:ベイジアンニューラルネットワーク
2.8 本章のまとめ

第3章 ディープラーニングの技術基礎 ——データ変換の「層」を組み合わせて表現学習を実現する
3.1 表現学習:「表現」の重要性と難題
 情報をいかに表現するか:機械学習における重要な問題
 文書の表現問題
  BoW:「局所的な情報」である「単語の出現情報」で文書を表す
  BoW表現の問題
 画像の表現問題:BoVW
 従来の専門家による特徴設計/表現方法の設計
 ディープラーニングは表現学習を実現しているから高性能である
3.2 ディープラーニングの基礎知識
 ディープラーニングとは何か
 ニューラルネットワークは「脳のしくみ」からスタートした
  強度に共通する重み(パラメータ)
 ニューラルネットワークは挙動を望むように変えられる
 ニューラルネットワークで複雑な問題を扱う:大量の関数の組み合わせと学習データが必要
3.3 ニューラルネットワークはどのようなモデルなのか
 単純な線形識別器の例
 線形識別器の拡張:複数の線形の関係を扱う
 線形識別器を重ねて多層のニューラルネットワークを作る
 モデルの表現力:そのモデルがどのくらい多くの関数を表現できるか
 非線形の活性化関数を挟むことでモデルの表現力を上げる
  活性化関数と万能近似定理
 層とパラメータ
 ニューラルネットワークの別の見方
  神経回路網として見たニューラルネットワーク:基本構成,活性化,活性値
  計算グラフとして見たニューラルネットワーク:分岐/合流/繰り返し,パラメータ共有
3.4 ニューラルネットワークの学習
 学習とは何か:「パラメータ調整」による挙動の修正
 ニューラルネットワークの「学習」の実現:最適化問題と目的関数
 学習を実現する最適化問題を解く:どのように最適化するか
  [最適化戦略①]パラメータを1つずつ修正していく
  [最適化戦略②]パラメータをランダムにまとめて修正していく
  [最適化戦略③]パラメータを勾配を使ってまとめて修正していく戦略
3.5 誤差逆伝播法:勾配を効率的に計算する
 勾配の求め方:偏微分
 誤差逆伝播法による勾配の効率的な計算
 誤差逆伝播法の導入:大きなシステムにおける離れた変数間の相互作用
 合成関数の微分:構成する各関数の微分の積で全体の微分を計算する
 動的計画法による高速化:逆向きに微分を掛け合わせていくと効率が良い
 微分の共通部分
 ニューラルネットワークに誤差逆伝播法を適用する
 [小まとめ①]学習と誤差逆伝播法:各変数についての偏微分を効率良く求める
 [小まとめ②]たくさんの入力とパラメータが一つの出力につながる:共有化,高速化と計算コストの目安
 1層の隠れ層を持つニューラルネットワークに対する誤差逆伝播法
 ディープラーニングフレームワークは順計算さえ定義すれば,誤差逆伝播法は自動的に実現される
  ディープラーニングにおけるアーキテクチャ設計
3.6 ニューラルネットワークの代表的な構成要素
 ニューラルネットワークの構成要素:テンソル,接続層,活性化関数
 [主要な構成要素①]テンソル:構造化されたデータ
 [主要な構成要素②]接続層:ニューラルネットワークの挙動を特徴づける
 総結合層:Fully Connected Layer
  MLP:多層パーセプトロン
 畳み込み層:Convolutional Layer
  画像とパターンが一致しているかは「内積の大きさ」で評価できる
  画像中にパターンがどの位置で出現しているかを調べる:特徴マップ
  特徴マップ
  フルカラー画像中にパターンがどの位置で出現しているかを考える
  複数のパターンがそれぞれどこに出現しているのかを調べる
  パターン検出は「畳み込み操作」で実現される:カーネル,フィルタ,ストライド
  パターン検出後の特徴マップからパターンを再度検出する
 畳み込み層とCNN
 [畳み込み層と総結合層の違い①]疎な結合
 [畳み込み層と総結合層の違い②]重み共有
 パラメータ数の劇的削減
 可変サイズの画像や音声を扱える:FCN
 プーリング操作とプーリング層
 回帰結合層:Recurrent Layer
  回帰結合層は系列データ向けに作られている
 RNNは任意長の入力を扱える状態機械
  ループがある場合,誤差逆伝播法はどのように計算するか
  RNNは工夫しなければ,学習が難しい
  RNNは状態を有限の値に収めることが難しい
  勾配爆発/消失問題
 ゲート機構
  代表的なゲート
 LSTM:広く使われているゲート機構
 GRU
 [主要な構成要素❸]活性化関数:活性化関数に必要な3つの性質
 ReLU:スイッチのような活性化関数
  ReLUの優れた性質
  ReLUはディープラーニングの「学習」における三大発明の一つ
 シグモイド関数
  シグモイド関数の微分
 Tanh関数
  シグモイド関数との関係
 Hard Tanh関数
 LReLU
  PReLU
 Softmax関数
 さまざまな活性化関数:ELU,SELU,Swishなど
  MaxOut
  CReLU
  Lifting Layer
3.7 本章のまとめ

第4章 ディープラーニングの発展 ——学習と予測を改善した正規化層/スキップ接続/注意機構
4.1 学習を可能にした要素技術の一つ:ReLUのような活性化関数
 [再入門]ReLUのような活性値,誤差を保つ活性化関数
4.2 正規化層
 正規化関数と正規化層:活性値の正規化
 なぜ活性値を正規化するのが学習に大事なのか
  [活性値の正規化の重要性①]非線形を生み出し,表現力を高く保つ
  [活性値の正規化の重要性②]学習の高速化と安定化
  [活性値の正規化の重要性③]汎化性能を改善する
 バッチ正規化
  ミニバッチを使って全体の統計量を近似する
  正規化後の分布を2つめのパラメータで制御する
  「推論時」に使う統計量は「学習時」に推定しておく
  バッチ正規化の適用
  バッチ正規化は学習を劇的に安定化し,学習率を大きくできる
  正規化後の分布を決めるβとγは挙動を変える重要な役割を持っている
  バッチ正規化を使う際の注意点:スケール情報の消失,他データへの依存性
  テンソルデータの正規化:チャンネルごとの正規化
 層/サンプル/グループ正規化
  層正規化
  サンプル正規化
  グループ正規化
 重み正規化
 重み標準化
  重み標準化の効果と使い方
 [アドバンス解説]白色化
  共分散行列から固有値を求める
  ZCA変換を使い,特徴を白色化する
4.3 スキップ接続
 スキップ接続のしくみ:変換をスキップして出力に接続
 勾配消失問題:なぜ誤差逆伝播時に誤差が途中で消失してしまうのか
 スキップ接続は高速道路のように情報や誤差をそのまま伝える
 スキップ接続は逐次的推論を実現する
 スキップ接続は情報を落とさず,ボトルネックを使える
 スキップ接続の変種
  [スキップ接続の変種①]PreActivation
  [スキップ接続の変種②]Single ReLU
4.4 注意機構:入力に応じて,データの流れ方を動的に変える
 注意機構の基本
 「注意」の重要な役割と注意機構:選択/フィルタリング
 [注意機構の役割①]表現力を改善できる
  データに応じて関数の形を変えられる能力
 [注意機構の役割②]学習効率を改善できる
  影響を与える範囲を限定的にするしくみ
 [注意機構の役割③]汎化能力を改善できる
 「時間スケール」の異なる記憶のしくみ
 ニューラルネットワークの記憶の方法
  [記憶のしくみ①]活性値/内部状態:すぐアクセス,小容量
  [記憶のしくみ②]重み/パラメータ:過去と一致しているかを調べている
  [記憶のしくみ③]Fast Weight
  [記憶のしくみ④]過去の内部状態を「注意機構」で読み出す
 代表的な注意機構
 最初の注意機構
  遠距離の情報をどのように考慮するか
  注意機構を使って,遠距離の情報を読み取る
  注意機構は読み取る情報を選択できる
  注意機構は「微分可能」で,「end-to-end」で学習できる
  注意機構は遠く離れた情報を1ステップで読み込む
  ソフト注意機構とハード注意機構
 自己注意機構/Transformer
  スケール化内積注意機構
  複数ヘッドを使った注意機構
  要素ごとのMLPを使った変換
 符号化と復号化から成る「Transformer」
 位置符号化
 効率的な自己注意機構へ:自己注意機構の致命的欠点
 Big Bird:線形の計算量で処理できる自己注意機構
4.5 本章のまとめ

第5章 ディープラーニングを活用したアプリケーション ——大きな進化を遂げた画像認識,音声認識,自然言語処理
5.1 画像認識
 画像分類
  ニューラルネットワークによる画像処理
  画像認識の基本的な処理の流れ
 画像分類の発展の歴史
 AlexNet
  AlexNetの基本:画像認識の基本的なアイディアを導入した
  AlexNetのパラメータ数と特徴マップ
 VGGNet
 GoogleNet:Inceptionモジュール
  画像認識ではスケールが異なる対象の処理が必要
  各層の結果を足す場合と結合する場合の違い
 ResNet:スキップ接続の導入
 DenseNet
 SENet:注意機構の先駆け
  Squeeze操作とExcitation操作を組み合わせる
  画像全体から求めた「注目すべきチャンネル」だけ残す
 ILSVRCとその後
 ViT,MLP-Mixer
 [分類以外のタスク]検出,セグメンテーション
 検出
 セマンティックセグメンテーション
  U-Net
  インスタンスセグメンテーション
  パノプティックセグメンテーション
 Mask R-CNN:検出とインスタンスセグメンテーションの実現例
  [Mask R-CNN①]CNNを使った特徴抽出
  [Mask R-CNN②]検出候補の列挙
  [Mask R-CNN③]検出候補の推定
  [Mask R-CNN④]セグメンテーションの推定
 画像認識の高速化
  グループ化畳み込み操作
  チャンネルシャッフル:グループ化畳み込みの問題への対応
  デプスワイズ畳み込み操作
  シフト
  その他の畳み込み操作:Dilated畳み込み操作,Deformable畳み込み操作
5.2 音声認識
 音声認識処理の三つのステップ
  [ステップ①]フロントエンド
  [ステップ②]音響モデル
  [ステップ③]言語モデル
 ニューラルネットワークと音声認識
 LASによる音声認識
 LASの基礎知識
 Listener
 Speller
 学習時と推論時の分布の違いに対応する
 推論
5.3 自然言語処理
 言語理解:コーパスで「事前学習」する
 BERT:マスクされた単語を予測する
  BERTのモデルの学習
  学習時と推論時の分布の不一致を学習する
  多くのタスクに役立つBERT
  [BERTの特徴①]自己注意機構で表現力を大きく向上できる
  [BERTの特徴②]前後の文脈情報を見て文を深く理解する
  [BERTの特徴③]大量のコーパスを利用し事前学習させる
 GPT-2/GPT-3
5.4 本章のまとめ

Appendix [厳選基礎]機械学習&ディープラーニングのための数学
A.1 線形代数
A.2 微分
A.3 確率

索引

Column
 モデルとは何か
 汎用人工知能 AGI
 ビッグデータと機械学習、ディープラーニング
 連続値のパラメータから成るモデルの仮説数 仮説数、パラメータ数、モデル複雑度
 生成モデルと識別モデル
 ディープラーニングに登場する「関数」
 クロスエントロピーの導出
 なぜ勾配が、値を最も急速に下げる方向になるのか
 なぜ 0/1 損失関数は「学習」に使われないのか サロゲート損失関数
 ニューラルアーキテクチャ探索 NAS
 tf-idfによる特徴抽出
 脳科学と人工知能の接点 脳を含む情報処理装置を理解するために
 線形モデルと非線形モデルと万能近似定理
 特異モデル
 帰納バイアス
 ディープラーニングフレームワークの基礎知識
 多くの分野で、誤差逆伝播法は再発見されている
 Fast Weight
 MLPと注意機構
 Geoffrey Hinton
 ヒートマップを使った検出手法 CornerNet、CenterNet
 音声認識の損失関数 CTC、RNN-T

書籍目次技術書籍

Posted by shi-n