G検定 ディープラーニングの仕組み 問題

ゆめさくが作った練習問題です。本試験の問題ではありません。

ディープラーニングの仕組みの問題を2⁠8問、小分野ごとにまとめました。選ぶと、その場で正誤と解説が出ます。

ログインなしで解けます。答えはこのブラウザの中だけに残り、どこにも送りません。

この分野の小分野

  • ディープラーニングの概要(10問)
  • ディープラーニングの要素技術(18問)

ディープラーニングの仕組みの問題

28 問

選ぶと、すぐに正誤と解説が出ます。選んだ答えは変えられません。

  1. ディープラーニングの概要

    問 1単純パーセプトロンと比べたときの、多層パーセプトロンの構造上の違いはどれですか。

  2. 問 2GPU がディープラーニングの学習に向く主な理由はどれですか。

  3. 問 3TPU の説明として最も適切なものはどれですか。

  4. 問 4Leaky ReLU 関数が ReLU 関数と異なる点はどれですか。

  5. 問 5住宅の価格のような連続した数値を予測する回帰のタスクで、誤差関数としてよく使われるものはどれですか。

  6. 問 6Triplet Loss の学習で使う3つ組と、その学習の狙いとして最も適切なものはどれですか。

  7. 問 7線形回帰の誤差に重みの二乗和の罰則 (L2 正則化) を加えた手法の名前はどれですか。

  8. 問 8シグモイド関数の導関数の最大値は0.25です。シグモイド関数を活性化関数に使った層を10層重ねたとき、誤差逆伝播法で連鎖律により掛け合わされる活性化関数の微分の積の最大値に最も近いものはどれですか。

  9. 問 9勾配降下法で学習が停滞する原因になる鞍点の説明として最も適切なものはどれですか。

  10. 問 10調整するハイパーパラメータが多く、性能に強く効くものが少数に限られるとき、グリッドサーチよりランダムサーチが効率的になりやすい理由として最も適切なものはどれですか。

  11. ディープラーニングの要素技術

    問 11784個の入力を受け取り、128個の値を出力する全結合層があります。出力ごとにバイアスが1つあるとき、この層が学習するパラメータの数はどれですか。

  12. 問 12活性化関数をはさまずに全結合層を何層重ねても、表現できる関数の範囲が1層の全結合層と変わらない理由として最も適切なものはどれですか。

  13. 問 13縦横64×64の入力に、3×3のカーネルをストライド2、パディング1で畳み込みます。出力の特徴マップの縦横の大きさはどれですか。

  14. 問 143チャンネルの入力に3×3のカーネルを使い、64チャンネルを出力する畳み込み層があります。出力チャンネルごとにバイアスが1つあるとき、この層のパラメータの数はどれですか。

  15. 問 15Dilated Convolution (Atrous Convolution) の特徴として最も適切なものはどれですか。

  16. 問 16バッチ正規化 (Batch Normalization) の処理として最も適切なものはどれですか。

  17. 問 17RNN や小さなミニバッチの学習で、レイヤー正規化がバッチ正規化より使いやすい理由として最も適切なものはどれですか。

  18. 問 18CNN の出力の手前で、全結合層の代わりにグローバルアベレージプーリング (GAP) を使う利点として最も適切なものはどれですか。

  19. 問 19ResNet の残差ブロックで、重みを持つ層が学習する対象として最も適切なものはどれですか。

  20. 問 20RNN の学習で、ネットワークを時間方向に展開してから誤差逆伝播法を当てはめる手法はどれですか。

  21. 問 21系列を出力する RNN の学習で、次の時刻の入力にモデル自身の予測ではなく1つ前の時刻の正解を与える方法はどれですか。

  22. 問 22GRU の説明として最も適切なものはどれですか。

  23. 問 23Transformer の Scaled Dot-Product Attention で、クエリとキーの内積をキーの次元数の平方根で割る理由として最も適切なものはどれですか。

  24. 問 24Transformer のデコーダにある Source-Target Attention (Encoder-Decoder Attention) で、クエリ、キー、バリューの出どころとして最も適切なものはどれですか。

  25. 問 25Multi-Head Attention の説明として最も適切なものはどれですか。

  26. 問 26オートエンコーダの学習で、出力の正解として使うものはどれですか。

  27. 問 27データ拡張の手法である Mixup の説明として最も適切なものはどれですか。

  28. 問 280から9の手書き数字を認識するモデルのデータ拡張として、画像の内容と正解のラベルが食い違うおそれが最も大きいものはどれですか。

28 問中 0 問に答えました

解説の一覧

解いたあとに読み返せるよう、全問の解説を並べています。問いを開くと解説が出ます。

ディープラーニングの概要

問1単純パーセプトロンと比べたときの、多層パーセプトロンの構造上の違いはどれですか。

正解は入力層と出力層のあいだに隠れ層を持つことです。単純パーセプトロンは入力層と出力層だけでできており、多層パーセプトロンは間に隠れ層をはさみます。隠れ層を何層も重ねて深くしたものがディープラーニングの土台です。出力のニューロンが1つに限られるとする説明は誤りで、多層パーセプトロンは多クラスの出力も持てます。重みを持たないとする説明は、どちらのモデルも重みを学習する点と合いません。出力を次の時刻へ戻す経路は、回帰結合を持つ RNN の特徴です。

問2GPU がディープラーニングの学習に向く主な理由はどれですか。

正解は多数の演算器で行列の積和演算を並列に処理できるためです。ニューラルネットワークの計算の大半は、重みの行列と入力の掛け算と足し算で、同じ形の計算を大量に同時に進められます。GPU は単純な演算器を数多く並べた作りなので、この並列の計算が得意です。分岐の多い処理を1つずつ素早くこなすのは CPU の得意分野です。主記憶を使わないとする説明は誤りで、GPU も専用のメモリに重みや途中結果を置きます。データを集めて前処理する働きは、演算装置の性質とは関係がありません。

問3TPU の説明として最も適切なものはどれですか。

正解はニューラルネットワークの行列演算に特化して設計された専用の集積回路です。TPU は特定の用途向けに作る集積回路 (ASIC) で、原論文では8ビットの積和演算器を6⁠5,5⁠3⁠6個並べた行列演算の装置を中心に持ち、ニューラルネットワークの推論を速めると説明されています。描画のために作られ汎用の計算に広がった装置は GPU です。幅広い処理を受け持つ汎用の装置は CPU です。量子ビットを使う装置は量子コンピュータで、TPU とは別物です。出典は TPU の原論文です。

問4Leaky ReLU 関数が ReLU 関数と異なる点はどれですか。

正解は入力が負のときも0にせず、小さな傾きを持つ値を出すことです。ReLU 関数は負の入力に対して出力も勾配も0になるため、学習の途中で出力が0のまま更新されなくなるニューロンが出ることがあります。Leaky ReLU 関数は負の側にわずかな傾きを残し、勾配が流れ続けるようにします。0から1の範囲に押し込めるのはシグモイド関数の性質です。合計を1にそろえるのはソフトマックス関数です。0以上で1を出すのはステップ関数で、単純パーセプトロンで使われた形です。

問5住宅の価格のような連続した数値を予測する回帰のタスクで、誤差関数としてよく使われるものはどれですか。

正解は平均二乗誤差です。予測値と正解の値の差を二乗して平均したもので、数値のずれが大きいほど誤差が大きくなるため、連続した値を当てる回帰に向きます。交差エントロピーは、モデルが出したクラスの確率と正解のクラスを比べる誤差関数で、分類に使います。Triplet Loss は、基準のデータと同類、異類の3つ組の距離を比べて埋め込みを学ぶ誤差関数です。Contrastive Loss も、2つのデータの組が似ているかどうかで距離を学ぶ誤差関数で、数値の予測には使いません。

問6Triplet Loss の学習で使う3つ組と、その学習の狙いとして最も適切なものはどれですか。

正解は基準と同類と異類を使い、同類との距離を異類との距離よりマージン以上小さくすることです。顔の照合を扱った原論文では、基準 (anchor) と同じ人物 (positive)、別の人物 (negative) の画像を組にし、基準と同じ人物の距離にマージンを足しても別の人物との距離より小さくなるよう学びます。ずれを二乗して小さくするのは平均二乗誤差です。検証の誤差で学習を止めるのは早期終了です。モデルの多数決と重みの付け直しはアンサンブルやブースティングの考え方です。出典は FaceNet の原論文です。

問7線形回帰の誤差に重みの二乗和の罰則 (L2 正則化) を加えた手法の名前はどれですか。

正解はリッジ回帰です。リッジ回帰は、線形回帰の誤差に重みの二乗の和を罰則として足し、重みが大きくなりすぎるのを抑えて過学習を防ぎます。ラッソ回帰は、重みの絶対値の和を罰則にする L1 正則化を加えた線形回帰で、L2 正則化とは別の手法です。ロジスティック回帰は、シグモイド関数で確率を出す分類の手法の名前で、正則化の種類を表す名前ではありません。多項式回帰は、入力の2乗や3乗などの項を加えて曲線を当てはめる手法で、罰則を足すこと自体を指す名前ではありません。

問8シグモイド関数の導関数の最大値は0.2⁠5です。シグモイド関数を活性化関数に使った層を1⁠0層重ねたとき、誤差逆伝播法で連鎖律により掛け合わされる活性化関数の微分の積の最大値に最も近いものはどれですか。

正解は約1⁠0⁠0万分の1です。連鎖律では層ごとの微分を掛け合わせるので、最大でも0.2⁠5を1⁠0回掛けた値になり、0.2⁠5の1⁠0乗は約9.5×1⁠0のマイナス7乗です。入力側の層ほど勾配が小さくなり、勾配消失問題の原因になります。約1⁠0⁠0⁠0分の1は0.5を1⁠0回掛けた値で、導関数の最大値を取り違えています。約2.5は0.2⁠5を1⁠0回足した値で、掛け算と足し算を取り違えています。約0.2⁠5は層の数によらず1層分の値のままとみなしており、掛け合わせを見落としています。

問9勾配降下法で学習が停滞する原因になる鞍点の説明として最も適切なものはどれですか。

正解はある方向では極小、別の方向では極大になっていて、勾配が0になる点です。馬の鞍のような形の点で、勾配が0になるため勾配降下法の更新が止まりやすく、高次元の誤差関数では多く現れます。モーメンタムなどの手法は、こうした平らな所を抜け出す助けになります。全体で最も小さい値をとる点は大域最適解で、鞍点とは違います。誤差が発散し始める点は学習率の設定の問題です。検証の誤差が最小になる回数は、早期終了で学習を止める目安の話です。

問10調整するハイパーパラメータが多く、性能に強く効くものが少数に限られるとき、グリッドサーチよりランダムサーチが効率的になりやすい理由として最も適切なものはどれですか。

正解は同じ試行回数でも、効くパラメータについて試せる値の種類が多くなるためです。たとえば2つのパラメータを3×3の格子で9回試すと、それぞれ3通りの値しか試せませんが、ランダムに9回選べば効く方のパラメータで9通りの値を試せます。原論文はこれを有効な次元が低い場合の効率として示しました。格子をすべて試すのはグリッドサーチの側の性質で、最良を必ず見つける保証もありません。前の結果から次を予測するのはベイズ最適化の考え方です。勾配で更新するのは重みの学習の話です。出典は Bergstra と Bengio の論文です。

ディープラーニングの要素技術

問117⁠8⁠4個の入力を受け取り、1⁠2⁠8個の値を出力する全結合層があります。出力ごとにバイアスが1つあるとき、この層が学習するパラメータの数はどれですか。

正解は1⁠0⁠0,4⁠8⁠0です。全結合層ではすべての入力とすべての出力が重みで結ばれるので、重みは7⁠8⁠4×1⁠2⁠8で1⁠0⁠0,3⁠5⁠2個あり、これに出力ごとのバイアス1⁠2⁠8個を足して1⁠0⁠0,4⁠8⁠0個になります。1⁠0⁠0,3⁠5⁠2はバイアスを数え忘れた値です。1⁠0⁠1,1⁠3⁠6はバイアスを入力の数の7⁠8⁠4個として足した値で、バイアスは出力ごとに付くという点と合いません。9⁠1⁠2は入力の数と出力の数を足しただけの値で、入力と出力の組ごとに重みがあることを見落としています。

問12活性化関数をはさまずに全結合層を何層重ねても、表現できる関数の範囲が1層の全結合層と変わらない理由として最も適切なものはどれですか。

正解は線形関数を何度合成しても、結果は1つの線形関数で書けるためです。全結合層は入力に重みの行列を掛けてバイアスを足す線形の変換で、2層を続けても重みの積を1つの行列、バイアスをまとめた1つのベクトルとみなせます。非線形な活性化関数をはさむことで初めて、深くした分だけ表現力が増します。勾配が小さくなる話は学習のしにくさで、表現できる範囲の話ではありません。パラメータは層を重ねると増えます。出力の範囲を0から1に収めるのはシグモイド関数で、全結合層そのものの性質ではありません。

問13縦横6⁠4×6⁠4の入力に、3×3のカーネルをストライド2、パディング1で畳み込みます。出力の特徴マップの縦横の大きさはどれですか。

正解は3⁠2×3⁠2です。出力の大きさは、入力の大きさにパディングの2倍を足してカーネルの大きさを引き、ストライドで割って小数を切り捨て、1を足して求めます。6⁠4+2-⁠3は6⁠3で、2で割って切り捨てると3⁠1、1を足して3⁠2です。3⁠1×3⁠1は、パディングを0として計算した値です。6⁠2×6⁠2は、ストライド1、パディング0で計算した値です。6⁠4×6⁠4は、ストライド1、パディング1のときの値で、ストライド2で縦横がおよそ半分になる点を見落としています。

問143チャンネルの入力に3×3のカーネルを使い、6⁠4チャンネルを出力する畳み込み層があります。出力チャンネルごとにバイアスが1つあるとき、この層のパラメータの数はどれですか。

正解は1,7⁠9⁠2です。1つのフィルタは入力の3チャンネル分の3×3の重みを持つので2⁠7個の重みがあり、これが出力の6⁠4チャンネル分あって1,7⁠2⁠8個、そこにバイアス6⁠4個を足して1,7⁠9⁠2個になります。1,7⁠2⁠8はバイアスを数え忘れた値です。6⁠4⁠0は、フィルタが入力の3チャンネルすべてにまたがることを見落とし、3×3×6⁠4にバイアスを足した値です。5⁠7⁠6はその上でバイアスも数えていない値です。重みを位置ごとに共有するので、入力画像の大きさはパラメータの数に入りません。

問15Dilated Convolution (Atrous Convolution) の特徴として最も適切なものはどれですか。

正解はカーネルの要素の間に間隔をあけ、パラメータ数を増やさずに受容野を広げることです。原論文では、間隔を1、2、4と広げた3×3の畳み込みを重ねると、受容野が3×3、7×7、1⁠5×1⁠5と指数的に広がる一方、各層のパラメータ数は同じだと示されています。解像度を落とさずに広い文脈を見られるため、画素ごとの分類に使われます。チャンネルごとに畳み込んで1×1で混ぜるのは Depthwise Separable Convolution です。チャンネルごとの平均はグローバルアベレージプーリングです。出力を引き伸ばすのは転置畳み込みです。出典は Dilated Convolution の原論文です。

問16バッチ正規化 (Batch Normalization) の処理として最も適切なものはどれですか。

正解はミニバッチ内の平均と分散で各特徴を正規化し、学習するスケールとシフトを掛け直すことです。原論文は、層への入力の分布が学習中に変わる問題を、ミニバッチごとの正規化で抑え、高い学習率を使えるようにしました。正規化のあとに学習するスケールとシフトを掛けて、表現力を損なわないようにしています。1つのサンプルの全特徴で正規化するのはレイヤー正規化です。1つのチャンネルの中だけで正規化するのはインスタンス正規化です。チャンネルを組に分けるのはグループ正規化です。出典はバッチ正規化の原論文です。

問17RNN や小さなミニバッチの学習で、レイヤー正規化がバッチ正規化より使いやすい理由として最も適切なものはどれですか。

正解は1つのサンプルの中で統計をとるので、ミニバッチの大きさに左右されず学習時と推論時で同じ計算をすることです。原論文は、バッチ正規化の効果がミニバッチの大きさに依存し、RNN への当てはめ方がはっきりしない点を挙げ、1つのサンプルの層の中で平均と分散を計算する方法を示しました。ほかのサンプルの統計を使うのはバッチ正規化の側で、ミニバッチが小さいと統計はむしろ不安定になります。レイヤー正規化もスケールとシフトを学習します。レイヤー正規化はチャンネルごとではなく、1つのサンプルの層の全体で統計をとります。チャンネルごとに統計をとるのはバッチ正規化やインスタンス正規化です。出典はレイヤー正規化の原論文です。

問18CNN の出力の手前で、全結合層の代わりにグローバルアベレージプーリング (GAP) を使う利点として最も適切なものはどれですか。

正解は各チャンネルを平均して1つの値にするので、重みが増えず過学習しにくいことです。GAP は特徴マップの各チャンネルを平均し、チャンネル数と同じ長さのベクトルにします。原論文は、学習する重みを持つ全結合層より解釈しやすく過学習しにくいと述べています。解像度を保って受容野を広げるのは Dilated Convolution です。最大値を残すのは最大値プーリングで、位置の情報はむしろ捨てる方向に働きます。GAP は入力の大きさが変わっても同じ長さに出力できるので、大きさを固定する話とは逆です。出典は Network In Network の原論文です。

問19ResNet の残差ブロックで、重みを持つ層が学習する対象として最も適切なものはどれですか。

正解は目的の写像から入力を引いた差分で、ブロックの出力は差分に入力を足して作ることです。原論文は、求めたい写像を H(x) としたとき、層には F(x) = H(x) − x を学ばせ、スキップ結合で入力を足して F(x) + x を出力にしました。恒等写像が最適なら差分を0に近づければよく、層を深くしても学習が進みやすくなります。写像そのものを学び入力を掛けるとする説明は、足し算でつなぐ仕組みと合いません。勾配を引くとする説明や、半分に縮めてつなげるとする説明も、残差の考え方とは別物です。出典は ResNet の原論文です。

問20RNN の学習で、ネットワークを時間方向に展開してから誤差逆伝播法を当てはめる手法はどれですか。

正解は BPTT です。BPTT (Backpropagation Through Time) は、時刻ごとに同じ重みを使う RNN を時間方向に並べた深いネットワークとみなし、最後の時刻から過去の時刻へ順に誤差を伝えて勾配を求めます。系列が長いと勾配消失や勾配爆発が起きやすくなります。教師強制は、学習時に次の時刻の入力へ正解を与える方法で、勾配の求め方ではありません。双方向 RNN は、過去から未来と未来から過去の2方向に読むモデルの構造です。ゲート機構は、LSTM や GRU が情報を残すか捨てるかを調整する部品で、勾配の求め方ではありません。

問21系列を出力する RNN の学習で、次の時刻の入力にモデル自身の予測ではなく1つ前の時刻の正解を与える方法はどれですか。

正解は教師強制です。教師強制 (teacher forcing) は、学習時にデコーダの入力として前の時刻の正解を与え、予測の誤りが後の時刻へ積み重なるのを防いで学習を安定させます。推論時には正解が無いので自分の予測を入力にするため、学習時との違いが課題として残ります。BPTT は時間方向に展開して勾配を求める方法で、入力に何を与えるかの話ではありません。エルマンネットワークは、隠れ層の出力を次の時刻へ戻す単純な RNN の構造の名前です。双方向 RNN は系列を2方向に読むモデルの構造です。

問22GRU の説明として最も適切なものはどれですか。

正解はリセットゲートと更新ゲートの2つで、過去の隠れ状態をどれだけ使うかを決めることです。原論文の隠れユニットでは、リセットゲートが新しい候補を作るときに前の隠れ状態をどれだけ忘れるかを決め、更新ゲートが前の状態と新しい候補をどの割合で混ぜるかを決めます。3つのゲートとセル状態を持つのは LSTM で、GRU はそれより少ない部品で長い依存を扱います。ゲートを持たず出力を戻すのは、エルマンネットワークのような単純な RNN です。2方向に読むのは双方向 RNN です。出典は GRU を提案した論文です。

問23Transformer の Scaled Dot-⁠Product Attention で、クエリとキーの内積をキーの次元数の平方根で割る理由として最も適切なものはどれですか。

正解は次元が大きいと内積が大きくなり、ソフトマックスの勾配が極端に小さくなるのを防ぐためです。原論文は、キーの次元数が大きいと内積の値が大きくなり、ソフトマックスの出力が一点に偏って勾配がとても小さい領域に入ると考え、内積を次元数の平方根で割りました。0から1に収めて確率にするのは割ったあとのソフトマックスの役目で、割り算だけでは範囲は決まりません。位置の情報を加えるのは位置エンコーディングです。割り算をしても内積の計算量は変わりません。出典は Transformer の原論文です。

問24Transformer のデコーダにある Source-⁠Target Attention (Encoder-⁠Decoder Attention) で、クエリ、キー、バリューの出どころとして最も適切なものはどれですか。

正解はクエリはデコーダの前の層から、キーとバリューはエンコーダの出力から来ることです。原論文では、デコーダのいま作っている位置が問いかけ (クエリ) となり、入力文をエンコーダで処理した結果 (キーとバリュー) のどこに注目するかを決めます。これで出力の各位置が入力文のすべての位置を参照できます。クエリとキー、バリューを逆にした説明は、出力側が入力側を見にいく向きと合いません。すべてがエンコーダから来るのはエンコーダの Self-⁠Attention、すべてがデコーダから来るのはデコーダの Self-⁠Attention です。出典は Transformer の原論文です。

問25Multi-⁠Head Attention の説明として最も適切なものはどれですか。

正解は複数の異なる線形変換で射影した部分空間ごとに並列に Attention を計算し、結果をつなげることです。原論文では、クエリ、キー、バリューをヘッドごとに別の重みで低い次元へ射影し、8個のヘッドで並列に Attention を計算してから連結しました。1つの Attention では平均されて埋もれる別々の関係を、ヘッドごとに捉えられます。直列に重ねるのは層を深くする話で、ヘッドの考え方とは違います。区間ごとに計算するのは計算量を減らす工夫の一種です。文をつなげて記号を挟むのは入力の作り方の話です。出典は Transformer の原論文です。

問26オートエンコーダの学習で、出力の正解として使うものはどれですか。

正解は入力したデータそのものです。オートエンコーダは、エンコーダで入力を少ない次元の表現に圧縮し、デコーダで元の入力を復元するように学習します。正解のラベルが要らないので、ラベルの無いデータから特徴を学べ、中間の表現は次元削減に使えます。かつては積層オートエンコーダで層ごとに事前学習する方法も使われました。人が付けたラベルを正解にするのは通常の教師あり学習です。次の時刻の入力を当てるのは時系列の予測です。別のモデルの予測をまねるのは知識蒸留の考え方です。

問27データ拡張の手法である Mixup の説明として最も適切なものはどれですか。

正解は2枚の画像とそれぞれのラベルを、毎回ランダムに決めた比率で混ぜ合わせて学習データを作ることです。原論文は、2つの学習例とそのラベルを、足して1になる重みで混ぜた点 (凸結合) で学習させ、例と例の間で単純な線形のふるまいをするよう促すと述べています。混ぜる比率は毎回ランダムに決め、画像とラベルには同じ比率を使います。一部の領域を塗りつぶすのは Cutout や Random Erasing です。別の画像の領域を貼り替えるのは CutMix で、ラベルは面積の比で混ぜます。左右の反転は Random Flip で、ラベルを混ぜることはしません。出典は Mixup の原論文です。

問280から9の手書き数字を認識するモデルのデータ拡張として、画像の内容と正解のラベルが食い違うおそれが最も大きいものはどれですか。

正解は画像を1⁠8⁠0度回転させることです。数字の6を1⁠8⁠0度回すと9に見え、9は6に見えるため、ラベルを付け替えずに使うと誤った学習データが混ざります。データ拡張では、変換してもラベルが変わらない範囲を、タスクごとに見極めることが大切です。明るさを少し変えても、書かれた数字の形は変わりません。数ピクセルの平行移動は、数字の位置のずれに強くするための一般的な拡張です。弱いノイズを加えても数字は読み取れ、ラベルはそのまま保たれます。

ほかの分野

G検定の頁に、5分野の入口と試験の案内があります。

続きはゆめさくで

試験の知識を仕事につなげる一歩を、ここにまとめています。