-- Views
April 16, 26
スライド概要
東北大学で2023年に開講していた「パターン認識論」のスライドです
本スライドでは、画像認識に有効な畳み込みニューラルネットワーク(CNN)として、畳み込み層の重み共有やプーリング層の種類、チャネル構造や複数畳み込みの統合手法を説明し、GoogLeNet の全体構造と ResNet のスキップ接続による学習安定化を紹介します。また、時間的依存関係を扱う手法として TDNN や 1‑D CNN、RNN の Elman 型・Jordan 型と BPTT による学習、重み共有の仕組みを解説し、LSTM の入力・忘却・出力ゲートと内部構造、双方向 LSTM が前後情報を利用できる利点を示します。さらに、単語をベクトルに変換する埋め込み手法と、映画プロットからジャンルを予測する Bi‑LSTM の応用例を取り上げています。
I'll be writing programs, papers, and ramblings.
パターン認識論 第13回 伊藤 彰則 1
Convolutional NN (CNN) ◦画像の認識に有効 ◦下の方では一部のユニット間の結合だ けを持つ[Fukushima+ 1983] • 最初のレイヤーでは低次元特 徴(線、角、点など)を検出 • 上位レイヤーではそれらを組み 合わせた「図形」に反応するユ ニットが学習される 2
Convolutional NN ◦畳み込み(Convolution)層の構造 ◦ある隠れユニットは前の層におけるそ の周辺のユニットとだけ結合する ◦ユニットは数種類に限られ、同じユ ニットは異なる場所でも重みを共有す る 3
畳み込み(Convolution) ◦ 連続系 ∞ ◦ 𝑓 ∗ 𝑔 𝑥 = −∞ 𝑓 𝑡 𝑔 𝑥 − 𝑡 𝑑𝑡 ◦ 離散系 ◦ 𝑓 ∗ 𝑔 𝑖 = σ∞ 𝑘=−∞ 𝑓 𝑘 𝑔(𝑖 − 𝑘) ◦ 𝑓がコンパクト台を持つ場合 ◦ 𝑓 ∗ 𝑔 𝑖 = σ𝐾 𝑘=−𝐾 𝑓 𝑘 𝑔 𝑖 − 𝑘 = σ𝐾 𝑘=−𝐾 𝑤𝑘 𝑥𝑖−𝑘 重み係数 入力信号 (フィルタ) 4
Convolutional NN ◦畳み込み(Convolution)層の構造 channels filters
Convolutional NN ◦ プーリング層の構造 ◦ 畳み込み出力をまとめる(2次元では2x2) 直前の層の値の最大値を 出力する (Max pooling) または平均値を出力する (Average pooling) 画像の場合は1回のプーリングでサイズが 縦横半分ずつになる 6
カラー画像の場合 ◦チャネルが複数ある→3次元 (テンソル) プーリング 畳み 込み 画像 (3次元) チャネル= 畳み込みユ ニットの種類 7
複数の畳み込み ◦異なる畳み込み(畳み込み領域の 違いなど)と統合 畳み 込み Depth concat 8
Convolutional Neural Networkの例 Convolution layer Pooling layer Output Pooling Convolution layer layer Convolution layer layer Full connection layer Feature extraction Recognition 9
CNN developed by Google (GoogLeNet) 全体像 10
CNN developed by Google (GoogLeNet) 前段 11
CNN developed by Google (GoogLeNet) 中段1 12
CNN developed by Google (GoogLeNet) 中段2 13
CNN developed by Google (GoogLeNet) 最終段 14
ResNet ◦ ReLUなどの活性化関数を使っても、深 いネットワークでは学習が難しくなり、 性能が上がらない ◦ 誤差の逆伝播を容易にするため、ネッ トワークをスキップする結合を加える →ResNet [He+ 2016] 15
時間的な依存関係の導入 ◦ NNに時間の概念を導入 ◦ 入力層にはベクトルが時間とともに入力される と仮定 1 2 3 4 ……… t 時間依存のないネットワークの場合 1 2 3 4 ……… t 時刻tの出力は 時刻tの入力にのみ 依存する 16
Time Delay Neural Network (TDNN) ◦時刻tの前後のフレームを利用 123 t-1 1 234 t 345 t+1 2 3 4 ……… t 17
1-D CNN 18
プーリングをしてもよい 19
Recurrent Neural Network (RNN) ◦過去の出力を入力にフィードバック 1 2 3 4 ……… t 1 2 3 4 ……… t Elman型ネットワーク 20
Recurrent Neural Network (RNN) ◦過去の出力を入力にフィードバック 1 2 3 4 ……… t 1 2 3 4 ……… t Jordan型 ネットワーク 21
RNNの学習 ◦Backpropagation Through Time (BPTT) 1 2 3 4 ……… t 1 2 3 4 ……… t 22
RNNの学習 t 無限に続くが 実際には適 当なところで 打ち切る 1 2 3 4 ……… t t-1 t-2 重みを共有 23
RNNとLSTM ◦Long Short-Term Memory ◦1つの層に複雑な内部構造 通常のRNN Ct LSTM Ot It x Ct Ft x x 24
LSTMの内部構造 それぞれの丸は ベクトルの記憶・演算 Ot It x Ft Ct x x 25
LSTMの内部構造 現在の状態を 記憶する 入力の積和に 非線形演算 Ot It x Ft Ct x x 26
LSTMの内部構造 入力と記憶の積 和から「どのくら い入力を覚える か」を計算 入力と記憶の積和 から「どのくらい記 憶を出力するか」 を計算 Ot It x Ft Ct x x 入力と記憶の積和 から「どのくらい記憶 を忘れるか」を計算 27
LSTMの利点 ◦過去の記憶をどのくらい保持する かを制御できる ◦タスクによってどのくらい前の入力が 現在の出力に影響するかが違う ◦単純なRNNでは最近の入力によって どれくらい前からの影響を考慮するか を変えることができなかった 28
例:LSTM言語モデル ◦過去の単語列から次 に来る単語の確率を 予測する ◦入力:現在の単語の one-hot vector ◦出力:各単語の出現確 率予測値 Sundermeyer, Schlüter, Ney: LSTM Neural Networks for Language Modeling. Proc. Interspeech, 2012. 29
Bidirectional LSTM ◦左→右と右→左のLSTMの組み合わせ ◦ ある時間とその前後の情報を考慮できる 全結合 LSTM LSTM 30
言語の扱い ◦RNN系のモデルで言語を扱う ◦言語は単語や文字などのトークンの系 列 ◦トークンを比較的低次元のベクトルに 変換してからニューラルネットで扱う →単語/文字埋め込み(embedding) 31
Embedding ◦𝑉種類の単語を扱うと仮定 ◦ 単語𝑤→単語番号𝑛𝑤 1 ≤ 𝑛𝑊 ≤ 𝑉 1 𝑉 →ベクトル𝒙𝑤 = 𝑥𝑤 , … , 𝑥𝑤 One-hotベクトル 1 𝑛 = 𝑛𝑤 𝑛 𝒙𝑤 = ቊ 0 𝑛 ≠ 𝑛𝑤 ◦埋め込みベクトル 𝒆𝑤 = 𝒙𝑤 𝑊𝑒 ここで 𝑊𝑒 は𝑉 × 𝑁𝑒 行列 𝑁𝑒 は埋め込みベクトルの次元で数百ぐ らい 32
Embedding 単語番号 5 34 Embedding vector One-hot vector 1 FC 1 53 実際には、One-hot ベ ク ト ル と Full Connection の 部 分 は 、 表を参照する 形で実装されてい る FC 1 FC 𝑉 Embedding layer 33
例:単語埋め込みとBiLSTMを 使った映画ジャンルの分類 ◦ Ertugrul et al.,”Movie Genre Classification from Plot Summaries using Bidirectional LSTM,” Proc. Int. Conf. on Semantic Computing, 2018. 映画のプロットを入力して、その 映画のジャンルを当てる スリラー、ホラー、コメディ、ドラマ の4分類 34