本書は、深層学習(ディープラーニング)に基づく2つの技術、畳込みニューラルネットワーク(CNN)とVision Transformer(ViT)を通して、画像認識の基礎を実践例とともに解説するものです。
画像認識技術は、顔認証や異常検知など、現代社会に欠かせない技術として広く応用されており、研究開発も盛んに行われています。本書では、確かな理解のもとに画像認識技術の研究開発が可能となるよう、前半において理論的な基盤(深層学習の基本事項、畳込みニューラルネットワーク(CNN)、Vision Transformer(ViT))を、紙数を割いてわかりやすく解説していきます。また後半では、画像認識の基本的手法である物体検出と領域分割、学習データの大規模化に欠かせない自己教師あり学習を実例とともに解説し、最終章では今後ますます重要になると見込まれるVision and Languageのマルチモーダル処理を詳細に扱います。
全体を通して、擬似コードなどでアルゴリズムを把握できるようにしたほか、Python(PyTorch)のサンプルコードも用意し、読者自身が手を動かして画像認識を実践することができるようにしました。
https://www.ohmsha.co.jp/book/9784274231841/
正誤表やDLデータ等がある場合はこちらに掲載しています
第1章 画像認識の概要
第2章 深層学習の基礎
第3章 畳込みニューラルネットワーク
第4章 Vision Transformer
第5章 物体検出
第6章 領域分割
第7章 自己教師あり学習
第8章 画像と自然言語
第1章 画像認識の概要
1.1 画像認識とは
1.2 基本的な画像分類の方法
1.2.1 画像特徴量の抽出
1.2.2 分類
1.3 画像認識の歴史の概略
1.3.1 深層学習の台頭前(2000年代初期)の画像認識
1.3.2 深層学習の台頭後(2012年以降)の画像認識
1.3.3 現在(2024年3月時点)の画像認識
1.4 機械学習とは
第2章 深層学習の基礎
2.1 深層学習の基本概念
2.2 多層パーセプトロン
2.2.1 全結合層
2.2.2 全結合層の実装
2.2.3 活性化関数
2.3 損失関数
2.3.1 回帰に用いられる損失関数
2.3.2 分類に用いられる損失関数
2.3.3 目的関数
2.4 勾配降下法
2.4.1 概要
2.4.2 なぜ勾配降下法で最適化できるのか?
2.4.3 確率的勾配降下法
2.5 誤差逆伝播法
2.5.1 素直な勾配計算は計算コストが高い
2.5.2 上層での計算結果を利用する
2.5.3 計算グラフ
2.5.4 誤差逆伝播法の実装
2.6 画像分類の実装
2.6.1 実装について
2.7 深層学習の成功に欠かせない技術
2.7.1 活性化関数の改善
2.7.2 正規化
2.7.3 残差学習
2.7.4 確率的勾配降下法の改良
2.7.5 正則化
2.7.6 データ拡張
2.8 本章のまとめ
第3章 畳込みニューラルネットワーク
3.1 畳込みニューラルネットワークの概要
3.2 畳込み層
3.2.1 畳込み処理
3.2.2 畳込み処理の役割
3.2.3 パディング
3.2.4 ストライド
3.2.5 パディングとストライドによる画像サイズの変化
3.2.6 テンソルによるデータ表現
3.2.7 複数入力,複数出力の畳込み層
3.2.8 畳込み層の実装
3.2.9 基本的な畳込み層の設計
3.3 プーリング層
3.3.1 最大プーリングと平均プーリング
3.3.2 大域平均プーリング
3.3.3 プーリング層は必要?
3.4 出力層
3.5 様々な畳込み層
3.5.1 拡大畳込み
3.5.2 点単位の畳込み
3.5.3 チャネル別畳込み
3.5.4 可分畳込み
3.5.5 画像を拡大するための畳込み処理
3.5.6 変形可能な畳込み
3.6 代表的なCNN
3.6.1 ResNet
3.6.2 Squeeze-and-Excitation Network
3.6.3 EfficientNet
3.6.4 ConvNeXt
3.7 本章のまとめ
第4章 Vision Transformer
4.1 Vision Transformerの登場
4.2 ViTの概要
4.2.1 パッチ埋込み
4.2.2 位置埋込み
4.2.3 層正規化
4.2.4 自己注意機構
4.2.5 順伝播層
4.2.6 スキップ接続
4.2.7 ViTにおける主要演算のまとめ
4.2.8 分類ヘッド
4.3 ViTの効果的な学習方法
4.3.1 初期ViTの課題
4.3.2 効果的な学習方法:DeiT
4.3.3 より効果的な学習方法
4.4 ViTの軽量化
4.4.1 注意機構の効率化
4.4.2 推論の高速化
4.4.3 Flash attention
4.4.4 モデルの効率性評価に関する注意
4.5 位置情報の表現方法
4.5.1 絶対位置符号
4.5.2 2次元絶対位置符号
4.5.3 相対位置埋込み
4.5.4 条件位置埋込み
4.5.5 位置表現方法の比較
4.6 ViTの解析
4.6.1 マルチヘッド注意機構は目的関数を滑らかにする
4.6.2 ViTはローパスフィルタ,CNNはハイパスフィルタ
4.7 ViTのメタアーキテクチャ
4.7.1 MetaFormer
4.7.2 MLPFormer
4.7.3 PoolFormer
4.7.4 IdentityFormer
4.7.5 メタアーキテクチャにおける比較
4.8 本章のまとめ
第5章 物体検出
5.1 物体検出とは
5.1.1 概要
5.1.2 物体検出タスクの定式化
5.2 CNNによる物体検出
5.2.1 CNNベースの物体検出器の概要
5.2.2 Faster R-CNN
5.2.3 FCOS
5.3 ViTによる物体検出
5.3.1 DETR
5.3.2 Pix2Seq
5.4 物体検出器の性能評価
5.4.1 平均適合率
5.4.2 Faster R-CNN, DETR, Pix2Seqの性能比較
5.4.3 FPNの効果について
5.4.4 物体検出精度を高めるための工夫
5.5 本章のまとめ
第6章 領域分割
6.1 領域分割とは
6.2 意味的領域分割
6.2.1 意味的領域分割とは
6.2.2 CNNによる意味的領域分割
6.2.3 ViTによる意味的領域分割
6.2.4 意味的領域分割手法の学習方法
6.2.5 意味的領域分割手法の性能比較
6.3 インスタンス領域分割
6.3.1 インスタンス領域分割とは
6.3.2 CNNによるインスタンス領域分割
6.3.3 ViTによるインスタンス領域分割
6.3.4 インスタンス領域分割の評価方法
6.3.5 インスタンス領域分割手法の性能比較例
6.4 総括的領域分割
6.4.1 総括的領域分割とは
6.4.2 Mask2Formerによる総括的領域分割
6.4.3 総括的領域分割の評価方法
6.4.4 総括的領域分割手法の性能比較例
6.5 Segment Anything Model
6.5.1 モデル構造
6.5.2 学習データセットの構築
6.5.3 SAMの性能
6.6 本章のまとめ
第7章 自己教師あり学習
7.1 教師あり学習の課題
7.1.1 データセットの構築には膨大なコストが必要
7.1.2 データの表現学習
7.1.3 獲得される表現が限定的になる可能性がある
7.2 自己教師あり学習による表現学習
7.2.1 良い表現とは?
7.2.2 相互情報量の最大化が鍵
7.3 対比学習(対照学習)に基づく表現学習
7.3.1 SimCLR
7.3.2 MoCo
7.3.3 InfoNCE損失の最小化は相互情報量の下限の最大化に一致
7.3.4 利用するデータ拡張の重要性
7.3.5 なぜ射影ヘッドが必要なのか?
7.4 負例が不要な表現学習
7.4.1 BYOL
7.4.2 なぜ負例なしでもうまく学習できるのか?
7.4.3 MAE
7.4.4 iBOT
7.5 自己教師あり学習手法の性能評価
7.5.1 画像分類での評価
7.5.2 その他の下流タスクでの評価
7.6 本章のまとめ
第8章 画像と自然言語
8.1 画像と自然言語とは
8.1.1 V&Lの難しさ
8.2 Transformer台頭前のV&Lモデル
8.2.1 画像特徴の抽出
8.2.2 言語特徴の抽出
8.2.3 画像特徴と言語特徴のアライメント
8.2.4 伝統的なVQAモデルのまとめ
8.3 Transformer台頭後のV&Lモデル
8.3.1 モデル設計から大規模事前学習へ
8.3.2 Oscar
8.3.3 ALBEF
8.3.4 ITCとMLMの理論的背景
8.3.5 CoCa
8.3.6 CLIP
8.3.7 V&Lモデルの特性調査
8.4 大規模言語モデルを利用したV&L
8.4.1 大規模言語モデルとは
8.4.2 大規模言語モデルによるパラダイムシフト
8.4.3 BLIP-2
8.4.4 指示学習(教示学習)
8.4.5 アダプタによる効率的なファインチューニング
8.5 自然言語を利用した画像認識
8.6 本章のまとめ
参考文献