[ディープラーニングを支える技術 ——「正解」を導くメカニズム[技術基礎]:書籍案内|技術評論社](https://gihyo.jp/book/2022/978-4-297-12560-8) ## 目次 ### 第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 確率