G検定 · LESSON 4

ディープラーニングの要素技術16%(当サイト設定) · 7項目

畳み込み層、正規化層、プーリング層とスキップ結合、回帰結合層、Attention、オートエンコーダ、データ拡張を学びます。

4.1全結合層・畳み込み層

全結合層・畳み込み層(カーネル、ストライド、パディング、特徴マップ、Dilated Convolution、Depthwise Separable Convolution)

概念

全結合層はすべての入力とすべての出力をつなぐ層です。畳み込み層は、小さなフィルタ(カーネル)を画像の上で動かし、局所的な特徴を抽出して特徴マップを作ります。ストライドはフィルタを動かす幅、パディングは画像の周りに値(多くは 0)を足して出力の大きさを調整します。出力のサイズは(入力 + 2×パディング − カーネル)÷ ストライド + 1 です。Dilated Convolution はフィルタの間隔を空けて広い範囲を見ます。Depthwise Separable Convolution はチャネルごとの畳み込みと 1×1 の畳み込みに分け、計算量を減らします(MobileNet)。

仕組み・手順

  1. 出力のサイズの計算式を使えるようにする
  2. 畳み込みが全結合よりパラメータが少ない理由(重みの共有)を理解する
  3. 軽量化には Depthwise Separable Convolution を使う

業務での例

32×32 の画像に、3×3 のカーネル・ストライド 1・パディング 1 で畳み込むと、出力は 32×32 になる。

紛らわしい点・試験の注意

ミニクイズ

Q1. 畳み込み層が全結合層と比べて画像に向いている理由として最も適切なものはどれか。

  1. 画像を 1 列のベクトルに並べ直してから計算するため、縦と横の位置の関係を考えなくて済む
  2. 重みを持たない固定の計算だけを行うため、学習の時間がまったくかからない
  3. すべての入力をすべての出力とつなぐため、画像の離れた位置の関係を最初の層から必ず学習できる
  4. 局所的な特徴を重みを共有するフィルタで抽出し、パラメータが少なくて済むため
答えと解説を見る

正解:D 局所的な特徴を重みを共有するフィルタで抽出し、パラメータが少なくて済むため

畳み込みは重み共有と局所結合により、パラメータ数を抑えて空間的な構造を扱える。全結合層は画像を平らにするため位置の関係が失われる。

Q2. 入力画像 32×32、フィルタ 5×5、ストライド 1、パディング 0 の畳み込みを行ったときの出力の特徴マップの大きさはどれか。

  1. 27×27
  2. 28×28
  3. 32×32
  4. 30×30
答えと解説を見る

正解:B 28×28

(32−5+2×0)/1+1=28。パディングを 2 にすると 32×32 を保てる。

参考リンク

4.2正規化層

正規化層(バッチ正規化、レイヤー正規化、インスタンス正規化、グループ正規化)

概念

正規化層は、層の出力の分布を整えて学習を安定・高速にします。バッチ正規化はミニバッチの中で特徴ごとに正規化し、レイヤー正規化はデータ 1 件の中ですべての特徴を正規化します(Transformer で使用)。インスタンス正規化はデータ 1 件・チャネルごと(画風の変換で使用)、グループ正規化はチャネルをグループに分けて正規化し、小さなバッチでも安定します。

仕組み・手順

  1. 正規化の単位(バッチ・データ・チャネル・グループ)を区別する
  2. バッチが小さいならレイヤー正規化やグループ正規化を検討する
  3. Transformer にはレイヤー正規化を使う

業務での例

GPU のメモリの都合でバッチのサイズが 2 しか取れない物体検出の学習で、バッチ正規化をグループ正規化に替えて学習を安定させる。

紛らわしい点・試験の注意

ミニクイズ

Q1. 正規化層の手法を選ぶ。画風の変換(スタイル変換)で、1 つの画像の 1 つのチャネルごとに正規化し、画像ごとのコントラストの違いを取り除きたい。最も適したものはどれか。

  1. グループ正規化
  2. インスタンス正規化
  3. レイヤー正規化
  4. バッチ正規化
答えと解説を見る

正解:B インスタンス正規化

インスタンス正規化はスタイル変換でよく使われる。(判断の分かれ目:1 データ・1 チャネルごと)

Q2. 正規化層の手法を選ぶ。物体検出の学習で GPU のメモリが足りずミニバッチを 2 件にしか できないので、1 つのデータ内のチャネルをいくつかのまとまりに分けて正規化したい。最も適したものはどれか。

  1. インスタンス正規化
  2. バッチ正規化
  3. グループ正規化
  4. レイヤー正規化
答えと解説を見る

正解:C グループ正規化

グループ正規化はバッチのサイズに依存せず、レイヤー正規化とインスタンス正規化の中間。(判断の分かれ目:小さなバッチでも使えるチャネルのまとまり単位)

参考リンク

4.3プーリング層・スキップ結合

プーリング層(最大値プーリング、グローバルアベレージプーリング)・スキップ結合(ResNet)

概念

プーリング層は特徴マップを縮小し、小さな位置のずれへの頑健性を高めます。最大値プーリングは領域の最大値、平均値プーリングは平均値を取ります。学習するパラメータはありません。グローバルアベレージプーリングは各チャネルの特徴マップ全体の平均を取り、全結合層の代わりに使ってパラメータを減らします。スキップ結合は、層を飛ばして入力を出力に足す結合で、ResNet で導入され、非常に深いネットワークの学習を可能にしました。

仕組み・手順

  1. プーリングにはパラメータがないことを確認する
  2. グローバルアベレージプーリングで全結合層のパラメータを減らす
  3. 深いネットワークではスキップ結合で勾配消失を防ぐ

業務での例

画像分類の最後の層を、大きな全結合層からグローバルアベレージプーリングに替え、パラメータを減らして過学習を抑える。

紛らわしい点・試験の注意

ミニクイズ

Q1. CNN で、小領域の最大値や平均をとって特徴マップを縮小し、小さな位置ずれに強くする層はどれか。

  1. 全結合層
  2. 畳み込み層
  3. バッチ正規化層
  4. プーリング層
答えと解説を見る

正解:D プーリング層

最大値プーリング・平均値プーリングには学習するパラメータがない。最後の選択肢はスキップ結合。 【他の選択肢】畳み込み層はフィルタで特徴を取り出す(重みを学習する)。全結合層はすべてのユニットをつなぐ。バッチ正規化層は入力の分布をそろえる。

Q2. グローバルアベレージプーリング(GAP)を使う利点として最も適切なものはどれか。

  1. 特徴マップごとの平均で 1 つの値にし、全結合層の代わりにパラメータを減らせる
  2. 特徴マップを拡大して元の画像と同じ大きさに戻し、画素ごとに分類できる
  3. 特徴マップの中の最大値だけを残し、画像の中の最も目立つ部分の位置を記録できる
  4. 入力の画像の平均の明るさを調整し、データ拡張の代わりに使える
答えと解説を見る

正解:A 特徴マップごとの平均で 1 つの値にし、全結合層の代わりにパラメータを減らせる

GAP は GoogLeNet・ResNet などで使われ、過学習を抑える効果もある。CAM にも使われる。

参考リンク

4.4回帰結合層

回帰結合層(RNN、BPTT、LSTM、GRU、双方向 RNN、教師強制、エルマンネットワーク)

概念

RNN(再帰型ニューラルネットワーク)は、前の時刻の隠れ状態を次の時刻に渡し、時系列や文章を扱います。学習は時間方向に展開した誤差逆伝播法(BPTT)で行いますが、長い系列では勾配消失が起きます。LSTM は入力・忘却・出力のゲートとセルで長期の依存関係を保持し、GRU はリセット・更新の 2 つのゲートで LSTM を簡素化したものです。双方向 RNN は過去と未来の両方向の情報を使います。教師強制は、学習時に前の時刻の正解を次の入力にする方法です。エルマンネットワークは隠れ層の出力を次の時刻の入力に戻す初期の RNN です。

仕組み・手順

  1. 系列のデータに RNN 系を使う理由を理解する
  2. LSTM のゲートの役割を整理する
  3. 文全体が使える場合は双方向 RNN を検討する

業務での例

文中の固有表現(人名・地名)の抽出で、前後の文脈を使うため双方向 LSTM を使う。

紛らわしい点・試験の注意

ミニクイズ

Q1. RNN(リカレントニューラルネットワーク)の説明として最も適切なものはどれか。

  1. 前の時刻の隠れ層の状態を次の時刻の計算に使い、系列のデータを扱える
  2. 画像の局所的な特徴をフィルタで抽出し、位置のずれに強い認識を行う
  3. 入力を低次元の潜在表現に圧縮し、それを元の入力に復元するように学習する
  4. 生成器と識別器の 2 つのネットワークを競わせて、本物に近いデータを生成する
答えと解説を見る

正解:A 前の時刻の隠れ層の状態を次の時刻の計算に使い、系列のデータを扱える

RNN は時間方向に展開して BPTT(通時的誤差逆伝播法)で学習する。単純な RNN はエルマンネットワークとも呼ばれる。

Q2. 系列データのモデルを選ぶ。文章の固有表現の抽出で、各単語の判定に、その単語より前の文脈と後ろの文脈の両方を使いたい(文全体は事前に手元にある)。最も適したものはどれか。

  1. LSTM
  2. Transformer
  3. GRU
  4. 双方向 RNN
答えと解説を見る

正解:D 双方向 RNN

双方向 RNN は順方向と逆方向の 2 つの RNN を組み合わせる。リアルタイムの予測には使えない。(判断の分かれ目:前後の両方向の文脈)

参考リンク

4.5Attention

Attention(Seq2Seq、Self-Attention、Source-Target Attention、Multi-Head Attention、Transformer、位置エンコーディング、クエリ・キー・バリュー)

概念

Seq2Seq はエンコーダで入力の系列を、デコーダで出力の系列を扱うモデルです(機械翻訳)。Attention は、出力の各時点で入力のどこに注目するかを重みで決める仕組みです。クエリとキーの類似度から重みを計算し、バリューの重み付き和を取ります。Source-Target Attention は入力と出力の間、Self-Attention は同じ系列の中の関係を計算します。Multi-Head Attention は複数の Attention を並列に使います。Transformer は RNN を使わず Attention だけで構成し、並列計算が可能です。語の順序の情報は位置エンコーディングで加えます。

仕組み・手順

  1. クエリ・キー・バリューの役割を理解する
  2. Self-Attention と Source-Target Attention の違いを区別する
  3. Transformer で位置エンコーディングが必要な理由を理解する

業務での例

機械翻訳で、「bank」が「銀行」か「土手」かを、Self-Attention で文中の「money」などの語との関係から判断する。

紛らわしい点・試験の注意

ミニクイズ

Q1. 系列データのモデルを選ぶ。RNN を使わず、すべての単語の関係を Self-Attention で並列に計算して、長い文章を高速に学習したい。最も適したものはどれか。

  1. 双方向 RNN
  2. GRU
  3. Transformer
  4. LSTM
答えと解説を見る

正解:C Transformer

Transformer は再帰構造を持たないため並列計算でき、長い依存関係もとらえやすい。(判断の分かれ目:再帰をやめ並列に Attention)

Q2. 翻訳の Seq2Seq モデルの学習で、デコーダの次の入力に、前の時刻のモデルの出力ではなく正解の単語を与える方法はどれか。

  1. スケジュールドサンプリング
  2. 教師強制(teacher forcing)
  3. 知識の蒸留
  4. ビームサーチ
答えと解説を見る

正解:B 教師強制(teacher forcing)

教師強制で学習は安定するが、推論の時は自分の出力を使うため、学習と推論の条件の違い(露出バイアス)が生じうる。最後の選択肢は蒸留。 【他の選択肢】ビームサーチは推論の時の探索の方法。蒸留は大きなモデルの出力で小さなモデルを学習する方法。スケジュールドサンプリングは正解とモデルの出力を確率的に切り替えて、教師強制の露出バイアスを和らげる方法。

参考リンク

4.6オートエンコーダ

オートエンコーダ(積層オートエンコーダ、VAE、VQ-VAE・β-VAE)

概念

オートエンコーダは、入力を低次元に圧縮(エンコード)してから元に戻す(デコード)ように学習し、データの特徴(潜在表現)を得ます。積層オートエンコーダは何層も重ねて事前学習に使われました。VAE(変分オートエンコーダ)は潜在変数を確率分布として学び、新しいデータを生成できます。VQ-VAE は潜在表現を離散的なベクトル(コードブック)で表し、β-VAE は潜在表現の要素が独立した意味を持つよう(もつれを解く)調整します。

仕組み・手順

  1. 入力と出力が同じになるよう学習する仕組みを理解する
  2. 生成を行うなら VAE を使う
  3. 異常検知では、復元の誤差が大きいデータを異常とする

業務での例

工場の正常な製品の画像だけでオートエンコーダを学習し、復元の誤差が大きい製品を不良の候補として検出する。

紛らわしい点・試験の注意

ミニクイズ

Q1. 長さの違う日本語の文を英語の文に翻訳するモデルを作りたい。基本の構成として最も適切なものはどれか。

  1. 入力の系列をエンコーダで表現に変え、デコーダで出力の系列を生成する Seq2Seq
  2. 入力を圧縮して同じ入力を復元するオートエンコーダ
  3. 2 つの文を入力し、同じ意味かを判定する分類のモデル
  4. 各時刻の入力に 1 つのラベルを付ける系列ラベリングのモデル
答えと解説を見る

正解:A 入力の系列をエンコーダで表現に変え、デコーダで出力の系列を生成する Seq2Seq

入力と出力の長さが異なってもよい。固定長のベクトルに情報を詰め込む限界を補うため、Attention が導入された。 【他の選択肢】系列ラベリングは入力と出力の長さが同じ。2 文の分類は文を生成しない。オートエンコーダは同じ入力の復元を学ぶ。

Q2. オートエンコーダの説明として最も適切なものはどれか。

  1. 生成器と識別器を競わせて、本物と区別できないデータを生成するモデル
  2. 入力を潜在表現に圧縮し、元の入力に復元するように学習するモデル
  3. 状態と行動から報酬が大きくなる方策を学ぶ、強化学習のモデル
  4. 正解のラベルを使い、入力の画像のクラスを予測するように学習する分類のモデル
答えと解説を見る

正解:B 入力を潜在表現に圧縮し、元の入力に復元するように学習するモデル

正解ラベルが不要で、次元削減、異常検知(復元誤差が大きいものを異常とする)、ノイズ除去などに使う。かつては積層オートエンコーダによる事前学習に使われた。

参考リンク

4.7データ拡張

データ拡張(Crop、Flip、Rotate、Cutout、Random Erasing、Mixup、CutMix、RandAugment、paraphrasing)

概念

データ拡張は、学習データに変換を加えて量と多様性を増やし、汎化性能を上げる方法です。画像では、切り抜き(Crop)・反転(Flip)・回転(Rotate)、一部を隠す Cutout・Random Erasing、2 枚の画像を混ぜる Mixup(全体を重ねる)・CutMix(一部を切り貼りする)、変換の組み合わせを自動で選ぶ RandAugment があります。テキストでは言い換え(paraphrasing)などを使います。

仕組み・手順

  1. タスクの意味を壊さない変換を選ぶ
  2. 学習データだけに拡張を行う
  3. 拡張の強さを検証データで調整する

業務での例

文字認識で上下反転を使うと「6」と「9」が入れ替わり意味が壊れるため、反転は使わず小さな回転と拡大縮小だけを使う。

紛らわしい点・試験の注意

ミニクイズ

Q1. データ拡張の手法を選ぶ。ある画像の一部の領域を切り取り、別の画像の同じ位置に貼り付け、ラベルは面積の比率で混ぜたい。最も適したものはどれか。

  1. Mixup
  2. Cutout(Random Erasing)
  3. CutMix
  4. paraphrasing
答えと解説を見る

正解:C CutMix

CutMix は Cutout と Mixup の考えを組み合わせた手法。(判断の分かれ目:一部を切り貼りし、面積の比でラベルを混ぜる)

Q2. データ拡張の手法を選ぶ。文章の分類のデータを増やすため、意味を変えずに別の言い回しの文を作りたい。最も適したものはどれか。

  1. CutMix
  2. paraphrasing
  3. Mixup
  4. Cutout(Random Erasing)
答えと解説を見る

正解:B paraphrasing

paraphrasing(言い換え)は自然言語のデータ拡張。ノイズを加える noising もある。(判断の分かれ目:文章の言い換え)

参考リンク

レッスンは当サイトが各試験実施団体の公開ページとシラバスをもとに独自に作成したもので、試験の内容を保証するものではありません。製品の仕様は変わることがあるため、参考リンク先の最新情報を確認してください。

ご利用上の注意(非公式・独自問題・合格保証なし)