書籍概要

Tech × Books plus

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

著者
発売日
更新日

概要

初学者の方々に向けた,ディープラーニングの技術解説書。

2012年に一般画像分類コンテスト(ILSVRC)で衝撃的な性能を達成したAlexNetの登場以来,急速な進化を遂げているディープラーニング。現在の人工知能/AIの発展の中核を担っており,スマートフォンからIoT,クラウドに至るまで幅広い領域で,画像,音声,言語処理をはじめとした多くの対象分野に浸透し,目覚ましい進展をもたらしています。一方,その成長の過程は決して一筋縄ではなく,無数の試行錯誤がありました。

本書では,ディープラーニングの「今」に焦点を当て,「基本機能」を中核に技術面から可能な限り正確にまとめ,どのようなしくみで動いているのか,どのような問題に使えるのか,何が難しいのかまで平易に解説。

多くの問題を一つのアプローチ,アルゴリズムで解ける驚異的な技術。ディープラーニングが一段とパワーアップしていく将来につながる,長く役立つ原理,原則,考え方を平易に紐解く1冊です。

こんな方におすすめ

  • 広くディープラーニング,人工知能を取り巻く技術に関心がある方々
  • ディープラーニングとその周辺分野の研究に興味がある方
  • ディープラーニングの今とこれからについて,知っておきたい方々

知的好奇心から,なぜディープラーニングが成功しているのかを知りたいという方々も大歓迎です。

サンプル

samplesamplesamplesamplesample

目次

第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 確率

サポート

補足情報

岡野原大輔氏のページについて

(2022年1月11日更新)

著者の岡野原大輔氏による本書のサポートページは,次のとおりです。

商品一覧