G検定 · LESSON 3
ディープラーニングの概要11%(当サイト設定) · 6項目
ニューラルネットワークの基本、活性化関数、誤差関数、正則化、誤差逆伝播法、最適化の手法を学びます。
3.1ニューラルネットワークとディープラーニング
ニューラルネットワークとディープラーニング(単純パーセプトロン、多層パーセプトロン、CPU・GPU・TPU)
概念
単純パーセプトロンは入力層と出力層だけのモデルで、線形分離可能な問題しか解けません(XOR 問題を解けない)。隠れ層を加えた多層パーセプトロンは非線形の問題も扱え、層を深くしたものがディープラーニングです。学習には大量の行列演算が必要で、並列計算が得意な GPU、Google が開発した深層学習向けの TPU が使われます。
仕組み・手順
- 単純パーセプトロンの限界(線形分離)を理解する
- 隠れ層が非線形の表現を可能にすることを理解する
- CPU・GPU・TPU の得意な処理を区別する
業務での例
画像の学習を CPU から GPU に移して、行列の並列計算で学習の時間を大幅に短くする。
紛らわしい点・試験の注意
- XOR は単純パーセプトロンでは解けない(多層なら解ける)
- GPU はもともと画像処理用で、並列の演算が得意
- TPU は Google が開発したテンソル計算向けのプロセッサ
ミニクイズ
Q1. 単純パーセプトロンの限界として最も適切なものはどれか。
- 学習の計算量が非常に大きく、当時のコンピュータでは計算できなかった
- 出力が連続値になるため、分類の問題にはまったく使うことができない
- 線形分離可能な問題しか解けず、XOR のような線形分離できない問題は解けない
- 入力の数が 2 つまでに限られ、3 つ以上の入力を扱うことができない
答えと解説を見る
正解:C 線形分離可能な問題しか解けず、XOR のような線形分離できない問題は解けない
単純パーセプトロンは直線(超平面)で分けられる問題しか解けない。隠れ層を加えた多層パーセプトロンで非線形な問題を扱えるようになった。
Q2. ディープラーニングの計算に使うハードウェアを選ぶ。複雑な処理を順番に高速にこなすのが得意で、OS や一般のアプリケーションの実行を担う汎用のプロセッサは最も適したものはどれか。
- TPU
- CPU
- FPGA
- GPU
答えと解説を見る
正解:B CPU
CPU は複雑な処理を少数のコアで順に実行する。大量の並列計算は GPU・TPU が向く。(判断の分かれ目:逐次的で複雑な処理が得意な汎用の処理装置)
参考リンク
3.2活性化関数
活性化関数(シグモイド、tanh、ReLU、Leaky ReLU、ソフトマックス、勾配消失問題)
概念
活性化関数は、ニューロンの出力を非線形に変換します。シグモイド関数(0〜1)は微分の最大値が 0.25 と小さく、層が深いと勾配が消えやすい(勾配消失問題)。tanh(−1〜1)は微分の最大値が 1 で改善されます。ReLU(0 以下は 0、正はそのまま)は勾配消失を起こしにくく広く使われ、Leaky ReLU は負の領域にもわずかな傾きを持たせます。ソフトマックス関数は多クラス分類の出力層で、出力の合計を 1 にして確率として扱います。
仕組み・手順
- 隠れ層には ReLU 系を基本とする
- 出力層は、二値分類にシグモイド、多クラス分類にソフトマックス、回帰に恒等関数
- 勾配消失が起きたら活性化関数や正規化を見直す
業務での例
10 種類の商品の画像分類で、隠れ層に ReLU、出力層にソフトマックスを使い、各クラスの確率を出す。
紛らわしい点・試験の注意
- シグモイドの微分の最大値は 0.25、tanh は 1
- ReLU は入力が負だとニューロンが学習しなくなること(dying ReLU)がある
- ソフトマックスは出力層で使い、隠れ層には通常使わない
ミニクイズ
Q1. 活性化関数を選ぶ。深いネットワークの隠れ層で、勾配消失を起こしにくく計算も軽い関数を使いたい。最も適したものはどれか。
- ReLU 関数
- ソフトマックス関数
- 恒等関数
- シグモイド関数
答えと解説を見る
正解:A ReLU 関数
ReLU は入力が正ならそのまま出力し(微分は 1)、負なら 0。勾配が消えにくい。負の側で学習が止まる問題には Leaky ReLU。(判断の分かれ目:深い隠れ層、勾配消失を避けたい)
Q2. 活性化関数を選ぶ。住宅の価格(制限のない連続値)を予測する回帰の出力層で、値をそのまま出力したい。最も適したものはどれか。
- ソフトマックス関数
- 恒等関数
- ReLU 関数
- シグモイド関数
答えと解説を見る
正解:B 恒等関数
回帰の出力層では、入力をそのまま返す恒等関数を使うのが一般的。(判断の分かれ目:回帰の出力層)
参考リンク
3.3誤差関数
誤差関数(平均二乗誤差関数、交差エントロピー、KL 情報量、Contrastive Loss、Triplet Loss)
概念
誤差関数(損失関数)は予測と正解のずれを数値にしたもので、これを小さくするように学習します。回帰には平均二乗誤差、分類には交差エントロピーが使われます。KL 情報量(KL ダイバージェンス)は 2 つの確率分布の違いを測り、VAE などで使われます。距離学習では、似たペアを近く、異なるペアを遠ざける Contrastive Loss や、基準・正例・負例の 3 つの組を使う Triplet Loss を使います。
仕組み・手順
- タスクの種類(回帰・分類・距離学習)に合わせて誤差関数を選ぶ
- 確率分布の比較には KL 情報量を使う
- 顔の照合などの類似度の学習には距離学習の損失を使う
業務での例
社員証の顔の照合で、同じ人の画像を近く、別人の画像を遠くに配置するよう Triplet Loss で学習する。
紛らわしい点・試験の注意
- 分類に平均二乗誤差を使うと学習が遅くなりやすい(交差エントロピーが一般的)
- KL 情報量は対称ではない(A から B と B から A で値が違う)
- Triplet Loss はアンカー・正例・負例の 3 つ組を使う
ミニクイズ
Q1. 誤差関数(損失関数)を選ぶ。顔の認証で、同じ人の画像どうしは近く、別の人の画像とは遠くなるよう、基準・同じ人・別の人の 3 つ組で埋め込みを学習したい。最も適したものはどれか。
- Triplet Loss
- 交差エントロピー
- カルバック・ライブラー情報量(KL)
- 平均二乗誤差関数
答えと解説を見る
正解:A Triplet Loss
Triplet Loss は基準(アンカー)と正例を近づけ、負例を遠ざける距離学習の誤差関数。2 つ組で学ぶのが Contrastive Loss。(判断の分かれ目:3 つ組で距離を学習)
Q2. 誤差関数(損失関数)を選ぶ。2 つの確率分布がどれだけ異なるかを測り、VAE の潜在変数の分布を標準正規分布に近づける項として使いたい。最も適したものはどれか。
- 平均二乗誤差関数
- Triplet Loss
- カルバック・ライブラー情報量(KL)
- 交差エントロピー
答えと解説を見る
正解:C カルバック・ライブラー情報量(KL)
KL 情報量は 2 つの分布の差を表す(非対称)。VAE の損失の正則化項に使われる。(判断の分かれ目:確率分布どうしの違い)
参考リンク
3.4正則化
正則化(L1・L2 正則化、ラッソ回帰、ドロップアウト)
概念
正則化は過学習を防ぐ手法です。L1 正則化は重みの絶対値の和を誤差に加え、不要な重みを 0 にしやすい(特徴量の選択の効果)。L1 を線形回帰に使ったものがラッソ回帰です。L2 正則化は重みの二乗和を加え、重みを全体的に小さくします(L2 の線形回帰はリッジ回帰)。ドロップアウトは学習中にランダムにニューロンを無効化し、多数のモデルのアンサンブルのような効果を得ます。
仕組み・手順
- 学習データと検証データの誤差の差から過学習を確認する
- 特徴量を絞りたいなら L1、全体を滑らかにしたいなら L2
- ニューラルネットワークではドロップアウトを使う
業務での例
特徴量が 500 個ある売上の予測で、ラッソ回帰により多くの特徴量の係数を 0 にし、重要な 30 個に絞る。
紛らわしい点・試験の注意
- L1 は重みが 0 になりやすい(スパース)、L2 は小さくなるが 0 にはなりにくい
- ドロップアウトは推論の時には使わない
- L1 と L2 を組み合わせたものが Elastic Net
ミニクイズ
Q1. 過学習を抑える正則化の手法を選ぶ。ニューラルネットワークの学習の時に、一定の割合のニューロンをランダムに無効にし、アンサンブルに近い効果を得たい。最も適したものはどれか。
- ドロップアウト
- L1 正則化
- L2 正則化
- 早期終了
答えと解説を見る
正解:A ドロップアウト
ドロップアウトは学習のたびに異なるネットワークを学ぶことになり、過学習を抑える。推論の時はすべてのニューロンを使う。(判断の分かれ目:ランダムにニューロンを無効化)
Q2. 過学習を抑える正則化の手法を選ぶ。学習を続けると検証データの誤差が上がり始めるので、その時点で学習を打ち切りたい。最も適したものはどれか。
- L1 正則化
- 早期終了
- L2 正則化
- ドロップアウト
答えと解説を見る
正解:B 早期終了
早期終了(early stopping)は検証誤差が改善しなくなった時点で学習を止める。(判断の分かれ目:検証誤差の悪化で打ち切り)
参考リンク
3.5誤差逆伝播法
誤差逆伝播法(連鎖律、勾配消失・勾配爆発、信用割当問題)
概念
誤差逆伝播法は、出力の誤差を出力層から入力層へ逆向きに伝え、微分の連鎖律を使って各重みの勾配を効率よく計算する方法です。層が深いと、勾配が小さくなりすぎる勾配消失や、大きくなりすぎる勾配爆発が起きます。信用割当問題は、どの重みが誤差にどれだけ責任があるかを決める問題で、誤差逆伝播法はその解決策の一つです。
仕組み・手順
- 連鎖律で合成関数の微分を計算する考え方を理解する
- 勾配消失には ReLU・正規化・スキップ結合で対処する
- 勾配爆発には勾配のクリッピングで対処する
業務での例
深い RNN の学習で勾配爆発が起きたため、勾配の大きさに上限を設ける勾配クリッピングを使う。
紛らわしい点・試験の注意
- 誤差逆伝播法は勾配の計算の方法で、重みの更新の方法(最適化)は別
- 勾配消失はシグモイド関数で起きやすい
- 勾配クリッピングは勾配爆発の対策(勾配消失の対策ではない)
ミニクイズ
Q1. 隠れ層でシグモイド関数を使うと勾配消失が起きやすい理由として最も適切なものはどれか。
- 出力が負の値にならないため、重みがすべて同じ値に収束してしまうため
- 出力の合計が必ず 1 になるため、複数のクラスを同時に学習できないため
- 微分の最大値が 0.25 と小さく、層を重ねるほど勾配が 0 に近づくため
- 入力が 0 のときに微分ができず、学習の計算が止まってしまうため
答えと解説を見る
正解:C 微分の最大値が 0.25 と小さく、層を重ねるほど勾配が 0 に近づくため
誤差逆伝播法では各層の微分を掛け合わせるため、小さな値が重なると入力側の勾配が消える。tanh は微分の最大値が 1 でシグモイドより改善される。
Q2. Leaky ReLU 関数が ReLU 関数の改良として提案された理由として最も適切なものはどれか。
- 入力が正のときの傾きを 0.25 以下に抑え、勾配爆発が起きないようにするため
- 入力の大きさにかかわらず出力を一定にし、学習を安定させるため
- 出力を 0〜1 の範囲に収め、各ニューロンの出力を確率として扱えるようにするため
- 負の入力にも小さな傾きを持たせ、学習しなくなるニューロンを防ぐため
答えと解説を見る
正解:D 負の入力にも小さな傾きを持たせ、学習しなくなるニューロンを防ぐため
ReLU は負の入力で勾配が 0 になり、学習が止まるニューロン(dying ReLU)が生じうる。Leaky ReLU は負の側にわずかな傾きを持つ。
参考リンク
3.6最適化手法
最適化手法(勾配降下法、確率的勾配降下法、モーメンタム、AdaGrad、RMSprop、Adam、学習率、早期終了、二重降下現象、ハイパーパラメータ探索)
概念
勾配降下法は、誤差の勾配の逆方向に重みを少しずつ更新します。全データで計算するバッチ、1 件ずつの確率的勾配降下法(SGD)、少量ずつのミニバッチがあります。モーメンタムは慣性を加えて振動を抑え、AdaGrad は更新が大きかった重みの学習率を下げ、RMSprop はその低下が進みすぎる問題を改善、Adam はモーメンタムと RMSprop を組み合わせます。学習率は更新の幅です。早期終了は検証の誤差が増え始めたら学習を止めます。二重降下現象は、モデルを大きくすると誤差が一度増えてから再び減る現象です。ハイパーパラメータはグリッドサーチ・ランダムサーチ・ベイズ最適化で探索します。
仕組み・手順
- まず Adam などの一般的な手法と標準の学習率で試す
- 検証の誤差を監視し、早期終了を設定する
- ハイパーパラメータはランダムサーチやベイズ最適化で効率よく探す
業務での例
学習の誤差が振動して下がらないため、学習率を下げ、最適化の手法をモーメンタム付きの SGD から Adam に変える。
紛らわしい点・試験の注意
- 学習率が大きすぎると発散、小さすぎると遅い・局所解に陥る
- AdaGrad は学習率が 0 に近づきすぎる問題があり、RMSprop で改善
- 鞍点(ある方向では極小、別の方向では極大)でも学習が停滞する
ミニクイズ
Q1. ニューラルネットワークの学習で、出力の誤差に対する各重みの勾配を効率よく求める方法はどれか。
- 順伝播
- 勾配クリッピング
- 確率的勾配降下法
- 誤差逆伝播法
答えと解説を見る
正解:D 誤差逆伝播法
誤差逆伝播法は合成関数の微分(連鎖律)を使う。どの重みが誤差に責任があるかを決める問題(信用割当問題)の解き方でもある。順方向の計算は順伝播。 【他の選択肢】順伝播は入力から出力を計算する処理。確率的勾配降下法は求めた勾配で重みを更新する方法。勾配クリッピングは大きすぎる勾配を縮める対策。
Q2. 勾配降下法の最適化手法を選ぶ。慣性(勾配の移動平均)と、パラメータごとの学習率の調整(勾配の二乗の移動平均)の両方の考えを組み合わせたい。最も適したものはどれか。
- 確率的勾配降下法(SGD)
- Adam
- AdaGrad
- モーメンタム
答えと解説を見る
正解:B Adam
Adam はモーメンタムと RMSprop を組み合わせた手法で、広く使われている。AdaBound・AMSBound は Adam の改良。(判断の分かれ目:モーメンタムと RMSprop の組み合わせ)
参考リンク
レッスンは当サイトが各試験実施団体の公開ページとシラバスをもとに独自に作成したもので、試験の内容を保証するものではありません。製品の仕様は変わることがあるため、参考リンク先の最新情報を確認してください。
ご利用上の注意(非公式・独自問題・合格保証なし)
- 本サイトの問題は、公開されているスキル概要・試験ガイドをもとに当サイトが独自に作成した練習問題であり、実際の試験問題ではありません。
- 本サイトは生成AI活用普及協会(GUGA)・日本ディープラーニング協会(JDLA)その他の試験実施団体と提携しておらず、各団体による承認・推奨を受けたものではありません。記載の試験名・団体名は各権利者の商標または登録商標である場合があります。
- 本コンテンツは学習の補助であり、合格を保証するものではありません。試験の内容・形式・前提条件は予告なく変更されます。受験前に必ず試験ページで最新情報を確認してください。
- 本模擬試験の正答率は、本試験の換算(スケール)スコアとは換算できず、合否を予測するものではありません。
- 未ログイン時の進捗はこのブラウザ内(localStorage)に保存します。Google でログインすると学習記録をアカウントに同期します。端末内の記録とサーバー上の記録は別に削除します。詳しくは保存・同期の説明とCookie・保存設定をご確認ください。