◯×一問一答・第4章
G検定 ディープラーニングの概要 一問一答(167問)
活性化関数・誤差関数・正則化・最適化手法など、学習を支える基本要素を扱います。説明文が正しいか誤りかを、◯か×で答えます。
- 167問
- 用語56語から
- 間違えた問題だけ解き直し
収録している問題
答えは問題を開くと表示されます。くわしい解説は各用語のページにあります。
ニューラルネットワークとディープラーニング
要点を読むCPUは、GPUと比べて多くのトランジスタをキャッシュや処理の流れを制御する回路に割き、一連の処理を1つずつできるだけ速く実行するように設計されている。
◯ 正しい 同時に進められる処理の流れは数十程度です。GPUは逆に、演算そのものに多くのトランジスタを割き、数千の処理を同時に進めます。 CPU
小さなモデルを短時間で試すような場面では、GPUやTPUを使わず、CPUだけで学習することも選択肢になる。
◯ 正しい Google Cloudの資料も、柔軟さが求められる試作や、学習に時間のかからない単純なモデル、小規模でバッチサイズの小さいモデルなどをCPU向きの例に挙げています。 CPU
学習済みのニューラルネットワークを使った推論は、GPUかTPUがなければ実行できない。
× 誤り 推論はCPUでも実行できます。初代TPUの論文では、応答時間の制約がある推論で、当時のGPUは同時期のCPUよりわずかに速い程度だったと報告されています。 CPU
GPUを、画像の描画以外の汎用的な計算に使うことを、GPGPUと呼ぶ。
◯ 正しい General-Purpose computing on GPUの略です。NVIDIAが2006年に発表したCUDAなどの仕組みにより、科学技術計算やディープラーニングにGPUを使えるようになりました。 GPU
GPUで学習が速くなるのは、GPUの1つ1つのコアが、CPUのコアよりも1つの処理を速く実行できるからである。
× 誤り 1つの処理を順番にこなす速さでは、GPUはCPUに劣ります。その代わりに数千もの処理を同時に進め、全体の処理量を大きくしています。並列に分けられる計算で強みが出ます。 GPU
ニューラルネットワークの学習にGPUを使う研究は、2012年のAlexNetよりも前から行われていた。
◯ 正しい たとえば2009年には、GPUで深いモデルの教師なし学習を大幅に速める研究が発表されています。AlexNetは、GPUの活用を広く知らしめた例です。 GPU
多層パーセプトロンでは、ある層の各ユニットが、前の層のすべてのユニットと結合した全結合の構造が基本である。
◯ 正しい 全結合層を重ねた構造です。画像の局所的な特徴を扱うCNNは、結合を近くの範囲に限る点が異なります。 多層パーセプトロン
多層パーセプトロンは、ある時刻の隠れ層の出力を次の時刻の入力に戻す、ループのある構造をもつ。
× 誤り 多層パーセプトロンは、入力から出力へ一方向に流れる順伝播型です。出力を次の時刻に戻すループをもつのはRNNです。 多層パーセプトロン
シグモイド関数のような非線形の活性化関数を使えば、隠れ層が1層でも、ユニット数を十分に増やすことで、限られた範囲の入力に対する連続関数を望む精度で近似できる。
◯ 正しい 1989年に示された万能近似定理(普遍性定理)の内容です。ただし、必要なユニット数が非常に多くなる場合があります。 多層パーセプトロン
単純パーセプトロンの出力ユニットを複数に増やしても、隠れ層がなければ、XORのような線形分離できない問題は解けない。
◯ 正しい 隠れ層がないと、各出力ユニットはそれぞれ入力から直接1本の直線(超平面)を引くだけです。出力を増やしても、線形分離できない問題を解く力は増えません。 単純パーセプトロン
単純パーセプトロンの重みは、誤差逆伝播法を使わなければ学習できない。
× 誤り 隠れ層がないので、出力の誤りから直接重みを直すパーセプトロンの学習則で学習できます。誤差逆伝播法は、隠れ層をもつ多層のネットワークを学習するための方法です。 単純パーセプトロン
ミンスキーとパパートは1969年の著書で、単純パーセプトロンの限界を示すとともに、多層のネットワークを学習する方法として誤差逆伝播法を提案した。
× 誤り 1969年の著書『Perceptrons』の中心は、パーセプトロンの限界の分析です。多層のネットワークを誤差逆伝播法で学習できることを示して広めたのは、1986年のラメルハートらの論文です。 単純パーセプトロン
Googleが2017年の論文で性能を報告した初代のTPUは、主にニューラルネットワークの推論に使うためのプロセッサだった。
◯ 正しい 論文では、2015年からデータセンターで推論に使われ、同時期のCPUやGPUより平均で15〜30倍ほど速いと報告されました。学習にも使えるようになったのは、2017年に発表された第2世代からです。 TPU
TPUは、64ビットのような高い精度の浮動小数点演算を多用する計算ほど、性能を発揮しやすい。
× 誤り ニューラルネットワークは計算の精度を多少下げても結果がほとんど変わりません。TPUはこの性質を生かし、精度を下げて多くの計算をこなす設計です。Google Cloudの資料でも、高い精度の計算を要する処理は向かないとされています。 TPU
TPUの名前にあるテンソルは、ニューラルネットワークで扱うデータや重みを表す多次元の配列を指す。
◯ 正しい TPUはTensor Processing Unitの略です。テンソルは、スカラー・ベクトル・行列を一般化した多次元の配列のことです。 TPU
ニューラルネットワークは、2010年代に初めて考案された新しい手法である。
× 誤り 起源は1943年の形式ニューロンや1958年のパーセプトロンにさかのぼります。2010年代に大きく広まったのは、層を深くしたディープラーニングです。 ニューラルネットワーク
1969年にミンスキーとパパートが単純パーセプトロンの限界を示したことは、ニューラルネットワークの研究が一時下火になる一因になったとされる。
◯ 正しい 単純パーセプトロンが線形分離できない問題を解けないことなどが示されました。研究が再び盛んになるのは、1980年代に誤差逆伝播法が広まってからです。 ニューラルネットワーク
CNNやRNNは、ニューラルネットワークとは別の系統の機械学習の手法である。
× 誤り CNNは画像、RNNは時系列データの扱いに合わせて構造を工夫したニューラルネットワークです。どちらも誤差逆伝播法で重みを学習します。 ニューラルネットワーク
活性化関数
要点を読む1つのネットワークの中では、隠れ層と出力層に同じ種類の活性化関数を使わなければならない。
× 誤り 隠れ層では学習のしやすさからReLU関数などを使い、出力層では回帰なら恒等関数、多クラス分類ならソフトマックス関数のように、答えの形に合わせて別の関数を選びます。 活性化関数
誤差逆伝播法で勾配を求めるときには、各ユニットの活性化関数の微分の値が使われる。
◯ 正しい 連鎖律により、出力層から入力層へ勾配を伝える途中で、各層の活性化関数の微分が掛け合わされます。微分が0に近い値ばかりだと、勾配消失問題が起きます。 活性化関数
活性化関数は全結合層だけで使われ、CNNの畳み込み層の出力には使われない。
× 誤り 畳み込み層でも、フィルタで計算した値にバイアスを加え、ReLU関数などの活性化関数に通してから次の層へ渡すのが一般的です。 活性化関数
勾配消失問題が起きると、出力層に近い層よりも、入力層に近い層の重みのほうが更新されにくくなる。
◯ 正しい 勾配は出力層から入力層へ、各層の微分を掛け合わせながら伝わります。そのため入力層に近いほど小さくなります。 勾配消失問題
勾配消失問題は、ネットワークの層を増やすほど起きにくくなる。
× 誤り 層が増えるほど掛け合わせる回数が増え、勾配は小さくなりやすくなります。深いネットワークほど起きやすい問題です。 勾配消失問題
RNNで長い系列を学習すると、時間をさかのぼるほど勾配が小さくなり、遠い過去の情報が学習に反映されにくくなることがある。
◯ 正しい 時間方向に展開したRNNは、深いネットワークと同じ構造になるためです。LSTMやGRUのゲート機構はこの対策です。 勾配消失問題
シグモイド関数に0を入力すると、0.5が出力される。
◯ 正しい 1 / (1 + e^0) = 1 / 2です。グラフは点(0, 0.5)を中心に点対称なS字になります。 シグモイド関数
シグモイド関数は、入力が大きくなるほど出力も上限なく大きくなる。
× 誤り 出力は1に近づくだけで、1を超えません。出力に上限がないのはReLU関数です。 シグモイド関数
LSTMのゲートでは、情報をどれだけ通すかを0から1の割合で表すために、シグモイド関数が使われる。
◯ 正しい 入力ゲート・忘却ゲート・出力ゲートは、シグモイド関数の出力を情報に掛けて、通す量を調整します。 シグモイド関数
ソフトマックス関数の出力は、どの要素も0より大きく、すべてを足すと1になる。
◯ 正しい 指数関数の値は常に正で、それを全体の合計で割るためです。そのため確率として読めます。 ソフトマックス関数
ソフトマックス関数を通すと、変換前のスコアが最も大きいクラスとは別のクラスが、最も大きい確率になることがある。
× 誤り 指数関数は単調に増加するので、スコアの大小の順番は変換後も変わりません。 ソフトマックス関数
ソフトマックス関数では、すべての入力に同じ数を足しても、出力される確率は変わらない。
◯ 正しい exp(z + c) = exp(c) × exp(z)なので、分子と分母のexp(c)が打ち消し合います。 ソフトマックス関数
tanh関数は、入力が0のとき出力が0.5になる。
× 誤り 入力0で出力0.5になるのはシグモイド関数です。tanh関数は原点を通り、入力0で出力0になります。 tanh関数
tanh関数のグラフは、シグモイド関数のグラフを縦横に伸び縮みさせ、上下に平行移動した形になっている。
◯ 正しい tanh(x) = 2σ(2x) − 1 の関係があり、どちらも同じS字形です。違いは出力の範囲と、原点を通るかどうかです。 tanh関数
LSTMでは、セルの状態から出力を作るときなどに、値を−1から1の範囲に収めるためtanh関数が使われる。
◯ 正しい LSTMでは、ゲートの開き具合にはシグモイド関数、値そのものの変換にはtanh関数を使うのが一般的です。 tanh関数
負の側の傾きが0.01のLeaky ReLU関数に−200を入力すると、出力は−2になる。
◯ 正しい 負の入力には0.01を掛けるので、−200×0.01=−2です。ReLU関数なら出力は0になります。 Leaky ReLU関数
Leaky ReLU関数は、入力が正の範囲でも傾きを0.01倍に抑えるため、出力が大きくなりすぎない。
× 誤り 正の範囲ではReLU関数と同じく、入力をそのまま出力します。傾きを小さくするのは負の範囲だけです。 Leaky ReLU関数
負の側の傾きを固定せず、ほかの重みと一緒に学習で決めるようにした活性化関数を、Parametric ReLU(PReLU)という。
◯ 正しい PReLUは2015年に提案され、画像認識の精度向上に使われました。傾きを固定値とするLeaky ReLU関数を一般化したものです。 Leaky ReLU関数
ReLU関数に3を入力すると3が出力され、−2を入力すると0が出力される。
◯ 正しい f(x) = max(0, x)なので、正の入力はそのまま通り、0以下の入力は0になります。 ReLU関数
ReLU関数は、入力が正の範囲では微分が常に1になるため、層を重ねても勾配が小さくなりにくい。
◯ 正しい 微分が最大0.25のシグモイド関数とは違い、活性化関数の微分を掛け合わせる部分で勾配が縮みません。深いネットワークで使われる理由です。 ReLU関数
ReLU関数は指数関数の計算を含むため、シグモイド関数よりも計算に時間がかかる。
× 誤り 指数関数を含むのはシグモイド関数やtanh関数です。ReLU関数は入力を0と比べるだけなので、計算が軽く済みます。 ReLU関数
ソフトマックス関数で、ほかのクラスの入力は変えずに1つのクラスの入力だけを大きくすると、ほかのすべてのクラスの出力は小さくなる。
◯ 正しい ほかのクラスは分子が同じまま、分母の合計だけが大きくなるためです。シグモイド関数を出力ごとに使う場合は、ある出力の入力を変えても、ほかの出力は変わりません。 シグモイド関数とソフトマックス関数の違い
Kクラスのソフトマックス関数に、すべて同じ値を入力すると、K個の出力はすべて1/Kになる。
◯ 正しい 指数関数の値がすべて等しくなるので、合計で割ると等分になります。3クラスなら約0.33ずつです。シグモイド関数を出力ごとに使い、すべて0を入力した場合は、各出力が0.5になります。 シグモイド関数とソフトマックス関数の違い
ソフトマックス関数の出力の合計が1になるのは、関数に入れる前に入力の合計を1に正規化しておいた場合に限られる。
× 誤り 指数関数で正の値にしてから、その合計で割ります。そのため、入力に負の値が含まれていても、入力の合計がいくつでも、出力の合計は必ず1になります。入力の前処理は必要ありません。 シグモイド関数とソフトマックス関数の違い
誤差関数
要点を読むKL情報量は、比べる2つの確率分布が完全に一致するとき0になる。
◯ 正しい P(x) = Q(x)ならlog 1 = 0となり、すべての項が0になります。分布が異なると正の値になります。 KL情報量
KL情報量は負の値をとることがあり、値が小さい(負に大きい)ほど2つの分布はよく似ている。
× 誤り KL情報量は常に0以上です(ギブスの不等式)。最小値の0をとるのは、2つの分布が一致するときです。 KL情報量
VAEでは、潜在変数の分布を標準正規分布などの事前分布に近づけるため、KL情報量を誤差関数の一部に加える。
◯ 正しい 再構成の誤差とKL情報量の和を小さくするように学習します。KLの項は、潜在空間を整える正則化の役割をもちます。 KL情報量
正解ラベルをone-hotベクトルで表した多クラス分類では、交差エントロピーは、正解クラスの予測確率の対数にマイナスを付けた値になる。
◯ 正しい one-hotベクトルでは正解以外のクラスの値が0なので、和の中で正解クラスの項だけが残ります。 交差エントロピー
交差エントロピーを最小にする学習は、モデルの尤度を最大にする最尤推定と同じ意味をもつ。
◯ 正しい データ全体の交差エントロピーは、正解に付けた確率の対数の平均にマイナスを付けたもので、負の対数尤度にあたります。 交差エントロピー
予測が完全に当たり、正解クラスの予測確率が1になっても、交差エントロピーは0にはならない。
× 誤り −log 1 = 0なので、正解に確率1を付けたデータの交差エントロピーは0です。これが最小値です。 交差エントロピー
Contrastive Lossでは、似ていない組の距離がマージン以上に離れていれば、その組の損失は0になる。
◯ 正しい 似ていない組の損失はmax(0, m − D)²に比例するため、距離Dがマージンm以上なら0です。十分に離れた組は学習に影響せず、近すぎる組だけが引き離されます。 Contrastive Loss
Contrastive Lossは、1つのデータとその正解クラスのラベルさえあれば計算でき、データを組にする必要はない。
× 誤り 2つのデータの組と、その組が似ているかどうかを表すラベルから計算します。組を単位に損失を求める点が、1件ずつ計算する交差エントロピーなどと異なります。 Contrastive Loss
Contrastive Lossは、2つの入力を、重みを共有する同じ形のネットワークに通して出力の距離を比べる、シャムネットワークの学習に使われてきた。
◯ 正しい 同じネットワークを2つ並べた形が結合した双子(Siamese twins)に似ていることから、この名が付いています。重みを共有するので、2つの入力は同じ規則で埋め込みに変換されます。 Contrastive Loss
Triplet Lossのマージンを0にすると、アンカーから正例までと負例までの距離が等しい3つ組でも、損失は0になる。
◯ 正しい 損失はmax(0, d(a, p) − d(a, n) + α)です。α = 0で2つの距離が等しければ、max(0, 0) = 0です。マージンを正の値にすると、負例を正例より一定以上遠ざけるまで損失が残ります。 Triplet Loss
Triplet Lossの学習で3つ組を無作為に選ぶと、すでに条件を満たして損失が0になる組が多くなり、学習の効率が下がる。
◯ 正しい 損失が0の組からは、重みを更新する勾配が生じません。そのため、負例がアンカーに近い組を選んで学習する工夫(トリプレットマイニング)が重要になります。 Triplet Loss
Triplet Lossは、Contrastive Lossと同じく、2つのデータの組と、その組が似ているかどうかのラベルから損失を計算する。
× 誤り 組とラベルを使うのはContrastive Lossです。Triplet Lossは、アンカー・正例・負例の3つのデータから1つの損失を計算し、2つの距離の大小関係を学びます。 Triplet Loss
正則化
要点を読むL2正則化を加えて確率的勾配降下法で学習すると、更新のたびに重みが一定の割合で0の方向へ縮むため、荷重減衰(weight decay)とも呼ばれる。
◯ 正しい 更新式が「重みに1より少し小さい数を掛けてから、勾配の分だけ動かす」形になるためです。 L2正則化
L2正則化の罰則は重みの二乗に比例するため、値の大きい重みよりも、値の小さい重みのほうを強く0へ押す。
× 誤り 罰則の傾きは2λwで、重みが大きいほど0へ押す力も強くなります。小さい重みほど押す力は弱まります。 L2正則化
線形回帰にL2正則化を加えたリッジ回帰は、説明変数どうしの相関が強いときに係数を安定させる目的でも使われる。
◯ 正しい 相関の強い説明変数があると、通常の最小二乗法では係数が大きくぶれやすくなります。罰則がこのぶれを抑えます。 L2正則化
L1正則化では、正則化の強さを表す係数λを大きくするほど、値がちょうど0になる重みが増える傾向がある。
◯ 正しい 罰則が強まるほど、予測への影響が小さい重みから0になります。大きくしすぎると、必要な重みまで0になり未学習になります。 L1正則化
L1正則化の罰則が重みを0の方向へ押す強さは、重みの値が小さくなっても弱まらない。
◯ 正しい λ|w|の傾きの大きさは、重みの大きさによらずλで一定です。重みが小さいほど押す力が弱まるL2正則化との違いです。 L1正則化
L1正則化を加えると、加えない場合よりも、訓練データに対する誤差は必ず小さくなる。
× 誤り 正則化は重みの自由度を制限するので、訓練データへの誤差はむしろ大きくなるのが普通です。代わりに未知のデータへの汎化性能の改善を狙います。 L1正則化
正則化の主な目的は、訓練データに対する誤差をできるだけ小さくすることである。
× 誤り 正則化は、訓練データへの当てはまりを少し犠牲にしてでも、未知のデータに対する誤差(汎化誤差)を下げることを狙います。 正則化
早期終了のように、誤差関数に罰則項を加えない方法も、過学習を抑える働きから正則化の一種として扱われることがある。
◯ 正しい 広い意味の正則化は、汎化誤差を下げるための学習の工夫全般を指します。ドロップアウトやデータ拡張も、同じ考え方で正則化に含められます。 正則化
正則化の強さを表す係数を大きくしすぎると、モデルが単純になりすぎて、訓練データにも十分に当てはまらない状態になりやすい。
◯ 正しい 重みが強く0の方向へ押されて表現力が落ち、未学習になります。係数は、検証データや交差検証で選びます。 正則化
ドロップアウトで無効にするユニットの割合は、誤差逆伝播法によって重みと一緒に更新されるパラメータである。
× 誤り 割合は学習を始める前に人が決めるハイパーパラメータです。検証用データの成績を見ながら選びます。 ドロップアウト
ドロップアウトは、不要なユニットを取り除いてモデルを小さくし、推論を速くするための手法である。
× 誤り ユニットを外すのは学習中だけの一時的な操作です。モデルを小さくする手法には、枝刈り(プルーニング)などがあります。 ドロップアウト
ドロップアウトを使うと、使わない場合よりも学習に時間がかかる傾向がある。
◯ 正しい 毎回異なるネットワークを学習するため、更新のばらつきが大きくなります。元の論文では2〜3倍かかるのが一般的だと報告されています。 ドロップアウト
ラッソ回帰で罰則の強さλを0にすると、通常の最小二乗法による線形回帰と同じになる。
◯ 正しい λ=0なら罰則の項が消え、二乗誤差の和だけを最小にすることになります。 ラッソ回帰
ラッソ回帰でλを大きくすると、罰則を打ち消すように、係数の絶対値は全体として大きくなる。
× 誤り λを大きくするほど、係数の絶対値が大きいことへの罰が強まります。係数は全体として0の方向へ縮み、0になる係数も増える傾向があります。 ラッソ回帰
ラッソ回帰は、学習の結果として予測に使う説明変数を自動的に絞り込む、変数選択の働きをもつ。
◯ 正しい 影響の小さい説明変数の係数がちょうど0になり、その変数は予測に使われなくなるためです。 ラッソ回帰
リッジ回帰では、λを大きくするほど係数は全体として0の方向へ縮むが、λが有限である限り、係数がちょうど0になることは通常ない。
◯ 正しい 二乗の罰則は、係数が0に近づくほど押す力が弱まるためです。係数をちょうど0にして変数を絞りたいなら、ラッソ回帰を使います。 リッジ回帰
リッジ回帰の係数は、説明変数の行列Xについて、XᵀXにλIを足した行列の逆行列を使う式で直接求められる。
◯ 正しい w = (XᵀX + λI)⁻¹Xᵀyです。λIを足すことで、XᵀXの逆行列が不安定な場合でも計算が安定します。 リッジ回帰
λを0より大きくしたリッジ回帰は、訓練データに対する二乗誤差の和が、通常の最小二乗法より必ず小さくなる。
× 誤り 最小二乗法は、訓練データの二乗誤差の和を最小にする解です。罰則を加えると、訓練データへの当てはまりは同じか悪くなります。 リッジ回帰
L2正則化を強めていくと、予測への影響が小さい特徴量の重みから順にちょうど0になり、特徴量の選択が行われる。
× 誤り L2正則化が重みを0へ押す力は、重みが小さくなるほど弱まります。そのため重みは0に近づいても、ちょうど0にはなりにくい性質があります。特徴量の選択が起きやすいのはL1正則化です。 L1正則化とL2正則化の違い
重みが2つのとき、L1正則化で許される重みの範囲はひし形になり、角が座標軸の上にあるため、片方の重みが0になる点で解が決まりやすい。
◯ 正しい 誤差の等高線は、ひし形の角で接しやすくなります。L2正則化の範囲は円で角がないため、接点が軸の上に来るとは限りません。 L1正則化とL2正則化の違い
重みの絶対値が0.1のように1より小さいとき、同じλなら、L2正則化の罰則はL1正則化の罰則より小さくなる。
◯ 正しい 0.1の二乗は0.01で、絶対値の0.1より小さくなります。L2は小さな重みをほとんど罰しないため、0まで押し切りません。逆に絶対値が1より大きい重みは、L2のほうが強く罰します。 L1正則化とL2正則化の違い
ドロップアウトは、各層の出力の平均と分散をそろえる正規化の手法である。
× 誤り ドロップアウトは、学習中にニューロンの一部を無作為に無効にして過学習を抑える正則化の手法です。平均と分散をそろえるのは、バッチ正規化などの正規化層です。 正規化と正則化の違い
バッチ正規化には、ミニバッチごとの統計量のぶれによって、弱い正則化の効果もあるとされる。
◯ 正しい 主な目的は学習の安定化ですが、提案論文はドロップアウトが不要になる場合もあったと報告しています。主な目的と副次的な効果を分けて覚えます。 正規化と正則化の違い
L2正規化とL2正則化は、どちらも重みの二乗和を誤差関数に加える同じ処理を指す。
× 誤り L2正規化は、ベクトルをそのL2ノルム(長さ)で割り、長さを1にそろえる処理です。重みの二乗和を誤差関数に加えるのはL2正則化です。 正規化と正則化の違い
誤差逆伝播法
要点を読む勾配のノルムがしきい値を超えたときにしきい値まで縮める勾配クリッピングでは、勾配の向きは保ったまま、大きさだけが小さくなる。
◯ 正しい 勾配全体に同じ倍率を掛けて縮めるためです。進む方向は変えずに、1回の更新で動く量だけを抑えます。 勾配爆発問題
LSTMを使えば勾配爆発問題は起きなくなるので、LSTMの学習で勾配クリッピングを使う必要はない。
× 誤り LSTMのゲート機構は主に勾配消失問題への対策です。LSTMの学習でも、勾配クリッピングを併用することがよくあります。 勾配爆発問題
勾配爆発問題と勾配消失問題は、どちらも逆伝播の途中で多くの値が次々に掛け合わされることから生じる。
◯ 正しい 掛け合わせる値が1より大きい状態が続けば爆発、1より小さい状態が続けば消失になります。原因の根は同じです。 勾配爆発問題
誤差逆伝播法は勾配を求める計算方法であり、求めた勾配を使って重みをどれだけ動かすかは、勾配降下法などの最適化手法が決める。
◯ 正しい 2つは役割が分かれています。SGDやAdamは、逆伝播で求めた勾配を使って重みを更新する側の手法です。 誤差逆伝播法
誤差逆伝播法を使えば、ネットワークの層をいくら深くしても勾配消失問題は起きない。
× 誤り 誤差逆伝播法では各層の微分を掛け合わせるため、深いほど勾配が小さくなることがあります。勾配消失問題はこの計算から生じます。 誤差逆伝播法
誤差逆伝播法は、1986年にラメルハートらが発表した論文をきっかけに広く使われるようになった。
◯ 正しい 考え方自体はそれ以前にも提案されていましたが、この論文が多層のネットワークで内部の表現を学習できることを示し、普及につながりました。 誤差逆伝播法
信用割当問題の「信用」は、学習に使うデータやラベルがどれだけ信頼できるかを指している。
× 誤り 英語のcreditの訳で、ここでは功績や手柄の意味です。データの信頼性ではなく、結果に対する功績や責任を、関わった重みや行動にどう配るかという問題です。 信用割当問題
ミンスキーは1961年の論文で、複雑な課題で成功したとき、その功績を途中の多数の判断にどう配分するかという問題を論じた。
◯ 正しい 論文「Steps Toward Artificial Intelligence」の学習システムの章で、チェスのように勝ち負けが最後に決まる課題を例に論じています。 信用割当問題
強化学習のTD学習は、最終的な報酬を待たずに、次の時点の報酬と価値の見積もりを使って現時点の価値の見積もりを更新する方法で、時間方向の信用割当を助ける。
◯ 正しい 結果が出るまで待たずに、少し先の見積もりとの差を手がかりに各時点の評価を直します。Q学習やSARSAも、この考え方にもとづく手法です。 信用割当問題
y = 3u、u = x²のとき、x = 3におけるyのxについての微分dy/dxの値は18である。
◯ 正しい 連鎖律より、dy/dx = (dy/du) × (du/dx) = 3 × 2xです。x = 3を入れると3 × 6 = 18になります。 連鎖律
連鎖律では、合成関数の微分を、外側の関数の微分と内側の関数の微分の和として求める。
× 誤り 和ではなく積です。dy/dx = (dy/du) × (du/dx)のように、各段階の変化の倍率を掛け合わせます。 連鎖律
PyTorchなどの深層学習のフレームワークは、順伝播の計算の過程を記録し、連鎖律を使って勾配を自動で計算する。
◯ 正しい 自動微分と呼ばれる機能です。計算の過程を計算グラフとして記録し、逆向きにたどりながら各段階の微分を掛け合わせて勾配を求めます。 連鎖律
最適化手法
要点を読むRMSpropは、学習の最初からの勾配の2乗をすべて足し合わせ、その合計の平方根で勾配を割って更新する。
× 誤り 合計を使うのはAdaGradです。RMSpropは指数移動平均を使い、古い勾配の影響を少しずつ薄めます。そのため、学習が長く続いても歩幅が0に近づき続けることはありません。 RMSprop
RMSpropの減衰率(移動平均の係数)を1に近づけるほど、より長い期間の勾配の大きさが平均に反映される。
◯ 正しい 係数が大きいほど、過去の値が残る割合が大きくなります。Hintonの講義では0.9が例として示され、直近の勾配の2乗には0.1の重みが付きます。 RMSprop
RMSpropを使うと、すべてのパラメータが同じ大きさの歩幅で更新される。
× 誤り RMSpropは、パラメータごとに勾配の大きさの記録を持ち、歩幅を個別に調整します。勾配が大きく揺れるパラメータは小さく、勾配が小さいパラメータは相対的に大きく動かします。 RMSprop
AdaGradでは、これまでに大きな勾配を何度も受けたパラメータほど、実質的な学習率が小さくなる。
◯ 正しい 学習率を、過去の勾配の二乗の累積の平方根で割るためです。累積が大きいパラメータほど慎重に動かします。 AdaGrad
AdaGradは、学習が進むにつれて学習率を自動的に大きくしていくため、学習の終盤ほど重みが大きく動く。
× 誤り 逆です。勾配の二乗を足し続けるので分母は大きくなる一方で、実質的な学習率は小さくなり続けます。 AdaGrad
AdaGradでは、まれにしか勾配が生じないパラメータの実質的な学習率が相対的に大きく保たれるため、疎なデータの学習に向くとされる。
◯ 正しい 勾配の二乗の累積が小さいままなので、学習率があまり下がりません。めったに現れない特徴量の重みも学習が進みます。 AdaGrad
AdaDeltaは、AdaGradと同じく、学習の最初からの勾配の二乗をすべて足し合わせた値を使って更新幅を決める。
× 誤り AdaDeltaは勾配の二乗の指数移動平均を使い、古い勾配の影響を少しずつ薄めます。分母が増え続けないため、AdaGradのように更新幅が縮み続けることを避けられます。 AdaDelta
AdaDeltaでも、減衰率ρと、0での割り算を防ぐ小さな値εは、ハイパーパラメータとしてあらかじめ決めておく必要がある。
◯ 正しい AdaDeltaで不要になるのは、全体の学習率の設定です。ρとεは残ります。原論文の実験では、ρ=0.95、ε=1e-6が使われました。 AdaDelta
AdaDeltaは、Adamを改良して生まれた最適化手法である。
× 誤り AdaDeltaは2012年に発表された、AdaGradの改良にあたる手法です。Adamの発表は2014年で、AdaDeltaより後です。Adamを改良した手法にはAdaBoundがあります。 AdaDelta
AdaBoundは、勾配の大きさに上限を設ける勾配クリッピングによって、学習率の範囲を制御する手法である。
× 誤り AdaBoundが上限と下限で切り詰めるのは、勾配ではなくパラメータごとの学習率です。勾配クリッピングは、発想の元になった技術として論文で紹介されています。 AdaBound
AdaBoundを提案した研究は、Adamなどの適応的な手法では学習の終盤に極端に大きな学習率や小さな学習率が現れ、性能が下がる場合があることを問題にした。
◯ 正しい 論文では、CIFAR-10でResNet-34をAdamで学習させ、収束が近づいた段階でも極端な学習率が残ることを示しました。上限と下限は、この極端な値を抑える役割をもちます。 AdaBound
AdaBoundを使えば、上限と下限が最終的に近づいていく値を設定する必要はなくなる。
× 誤り 近づく先の値はハイパーパラメータとして決めます(論文の実験では0.1)。ただし論文では、この値や近づく速さが最終的な結果に与える影響は大きくないと報告されています。 AdaBound
Adamでは、勾配の2乗の移動平均が大きいパラメータほど、実質的な学習率(歩幅)が小さくなる。
◯ 正しい 更新量は、勾配の移動平均を勾配の2乗の移動平均の平方根で割って求めます。勾配が大きく揺れるパラメータほど、慎重に小さく動かします。 Adam
Adamを使えば、学習率などのハイパーパラメータを設定する必要はなくなる。
× 誤り Adamにも学習率αや減衰率β1・β2などのハイパーパラメータがあります。既定値のままでも動きやすいだけで、設定が不要になるわけではありません。 Adam
Adamがバイアス補正を行うのは、移動平均の初期値を0にしているため、学習の初めの推定値が0の側に偏るからである。
◯ 正しい 序盤の移動平均は0から少ししか動いておらず、本来の値より小さく見積もられます。補正でこの偏りを打ち消し、序盤から適切な大きさで更新します。 Adam
勾配降下法で勾配がほぼ0になって学習が停滞したら、その点は局所最適解だと判断してよい。
× 誤り 鞍点や平らな領域(プラトー)でも勾配はほぼ0になります。勾配だけでは、局所最適解かどうかは判断できません。 鞍点
重みの数が多い高次元の損失関数では、勾配が0になる点として、局所最適解よりも鞍点のほうが多く現れると考えられている。
◯ 正しい 極小になるには、すべての方向で谷底になる必要があります。次元が高いと、どこかの方向が下り坂になっている鞍点のほうがずっと多くなります。 鞍点
鞍点の周りには損失がほとんど変わらない平らな領域が広がることがあり、学習が長く停滞する原因になる。
◯ 正しい 勾配が小さいと更新もごく小さくなるためです。損失が下がらず、学習が止まったように見えることがあります。 鞍点
訓練データ6,000件をバッチサイズ200でミニバッチ学習すると、1エポックは30イテレーションになる。
◯ 正しい 1エポックのイテレーション数は、データ数÷バッチサイズです。6,000÷200=30回になります。 イテレーション
イテレーションとは、訓練データ全体をひと通り使い切る学習の単位のことである。
× 誤り それはエポックです。イテレーションは重みの更新1回分の単位で、ミニバッチ学習では1エポックが複数のイテレーションからなります。 イテレーション
ほかの条件を変えずにバッチサイズを2倍にすると、1エポックあたりのイテレーション数はおよそ半分になる。
◯ 正しい 1回の更新で使うデータが2倍になるので、データ全体を使い切るまでの更新回数はおよそ半分になります。割り切れない端数の扱いは実装によります。 イテレーション
AMSGradは、勾配の二乗の移動平均について過去の最大値を使い続けることで、パラメータごとの実質的な学習率が大きくならないようにした、Adamの改良版である。
◯ 正しい Adamでは移動平均が小さくなると、学習率が急に大きくなることがあります。AMSGradは最大値を使ってこれを防ぎ、Adamが最適な解に収束しない例への対策としました。 AMSBound
AMSBoundは、AdaBoundが発表された後に、別の研究がAdaBoundを改良して提案した手法である。
× 誤り AMSBoundは、AdaBoundと同じLuoらの論文で同時に提案されました。違いは元になった手法で、AdaBoundはAdam、AMSBoundはAMSGradです。 AMSBound
AMSBoundでは、学習が進むにつれて、パラメータごとの学習率の違いが小さくなっていく。
◯ 正しい 上限と下限が同じ値に近づくため、どのパラメータの学習率もその値に収まっていきます。パラメータごとに学習率を変える性質が薄れ、SGDに近い動きになります。 AMSBound
訓練データ5,000件を、バッチサイズ50のミニバッチ学習で10エポック学習すると、重みは合計1,000回更新される。
◯ 正しい 1エポックの更新回数は、データ数÷バッチサイズで100回です。10エポックなら100×10で1,000回になります。 エポック
訓練データ全体で1回だけ勾配を計算するバッチ学習では、1エポックで、訓練データの件数と同じ回数だけ重みが更新される。
× 誤り バッチ学習では、全データで勾配を1回計算して1回更新するので、1エポックの更新は1回です。データの件数と同じ回数だけ更新するのは、1件ずつ更新するオンライン学習です。 エポック
エポック数は多いほど汎化性能が高くなるため、計算資源が許す限り大きく設定するのがよい。
× 誤り エポックを重ねると、訓練誤差は下がり続けても、検証誤差はある時点から上がることがあります。これが過学習です。検証誤差が悪化し始めたところで止める早期終了がよく使われます。 エポック
訓練データが1,000件のとき、オンライン学習では1エポックの間に重みを1,000回更新する。
◯ 正しい 1件ごとに1回更新するので、全データを1周する間の更新回数はデータ数と同じです。バッチ学習なら1回です。 オンライン学習
オンライン学習は、バッチサイズを訓練データの全件数に設定したミニバッチ学習と同じである。
× 誤り 全件を1つのまとまりにするのはバッチ学習です。オンライン学習は、バッチサイズを1にした場合にあたります。 オンライン学習
運用中のモデルをオンライン学習で更新し続ける場合、誤ったデータや悪意のあるデータが続けて入ると、性能が急に下がるおそれがある。
◯ 正しい 届いたデータがすぐ重みに反映されるためです。更新後の性能を監視し、問題があれば前のモデルに戻せるようにしておきます。 オンライン学習
勾配が4、学習率が0.05のとき、勾配降下法の1回の更新で、重みは勾配と逆の向きに0.2だけ動く。
◯ 正しい 動く量は学習率×勾配で、0.05×4=0.2です。勾配が正なので、重みは0.2だけ小さくなります。 学習率
学習の初めは小さな学習率から始め、徐々に目標の値まで上げていく工夫を、ウォームアップという。
◯ 正しい 学習の初期は重みが不安定で、いきなり大きな学習率を使うと発散しやすいためです。大きなバッチサイズで学習するときなどに使われます。 学習率
Q学習の学習率は、将来に得られる報酬を現在の価値に換算するときに掛ける係数である。
× 誤り それは割引率の説明です。Q学習の学習率は、新しく得た推定値を、今の行動価値にどれだけ取り入れるかを決める係数です。 学習率
確率的勾配降下法では、ランダムに選んだ一部のデータ(1件またはミニバッチ)から勾配を求めて、重みを更新する。
◯ 正しい 全データで勾配を求めるバッチ学習より1回の更新が軽く、同じ時間で多くの回数を更新できます。 確率的勾配降下法
確率的勾配降下法は、勾配のばらつきのおかげで、浅い局所最適解から抜け出せることがある。
◯ 正しい 一部のデータから求めた勾配は、本来の勾配から少しずれます。このずれが、浅いくぼみから押し出す揺れとして働くことがあります。 確率的勾配降下法
確率的勾配降下法は、毎回すべての訓練データを使って勾配を正確に求めるため、1回の更新にかかる計算量が大きい。
× 誤り 毎回すべてのデータを使うのはバッチ学習(最急降下法)です。確率的勾配降下法は一部のデータだけを使います。 確率的勾配降下法
勾配降下法で重みが局所最適解に到達すると、勾配がほぼ0になるため、そのままでは重みはほとんど更新されなくなる。
◯ 正しい 勾配降下法は勾配に学習率を掛けた分だけ動くので、勾配が0に近いと動けません。周りより低いくぼみに入ると、そこで止まります。 局所最適解
重みの初期値を変えて学習し直しても、勾配降下法がたどり着く局所最適解は常に同じになる。
× 誤り どのくぼみに入るかは、下り始める位置で変わります。初期値やデータの順番が違えば、別の局所最適解にたどり着くことがあります。 局所最適解
大規模なニューラルネットワークでは、多くの局所最適解の損失が大域最適解に近く、実用上は大きな問題になりにくいとする研究がある。
◯ 正しい 近年は、局所最適解よりも、勾配が0になる鞍点や平らな領域での停滞のほうが学習を遅らせる要因として注目されています。 局所最適解
3種類のハイパーパラメータに、それぞれ4つの候補値を用意してグリッドサーチを行うと、評価する組み合わせは64通りになる。
◯ 正しい 組み合わせの数は候補数の掛け算で、4×4×4=64通りです。候補が4つずつなら、種類が1つ増えるたびに組み合わせの数は4倍になります。 グリッドサーチ
グリッドサーチでは、用意した候補値と候補値の間にある値は評価されない。
◯ 正しい 格子の交点だけを調べるためです。最適な値が候補の間にあると見逃すので、粗く調べてから範囲を絞って細かく調べ直すことがあります。 グリッドサーチ
グリッドサーチは、それまでの試行の結果をもとに、次に試す候補値を選んでいく探索方法である。
× 誤り グリッドサーチは、試す組み合わせを最初にすべて決めます。結果をもとに次の候補を選ぶのは、ベイズ最適化などの方法です。 グリッドサーチ
勾配降下法では、重みを勾配と同じ向きに動かすことで、損失を小さくしていく。
× 誤り 勾配は損失が増える向きを指します。損失を減らすには、勾配と逆の向きに動かします。更新式で勾配を引き算するのはこのためです。 勾配降下法
訓練データから無作為に選んだ1件または少数のデータだけで勾配を求め、重みを更新していく方法を、確率的勾配降下法(SGD)という。
◯ 正しい 全データで勾配を求めるバッチ学習より1回の計算が軽く、大量のデータを扱うディープラーニングで広く使われています。 勾配降下法
ニューラルネットワークを勾配降下法で学習するとき、各重みの勾配は誤差逆伝播法によって効率よく求められる。
◯ 正しい 誤差逆伝播法は勾配を計算する方法で、勾配降下法はその勾配を使って重みを更新する方法です。役割を分けて押さえます。 勾配降下法
早期終了では、学習データの誤差ではなく、学習に使っていない検証データの誤差を見て学習を止める時点を決める。
◯ 正しい 学習データの誤差は学習を続けるほど下がり続けるので、止めどきの判断には使えません。検証データの誤差が上がり始めたら過学習のサインです。 早期終了
早期終了は、誤差関数に罰則項を加えてパラメータの値を小さく保つ手法である。
× 誤り 罰則項を加えるのはL1正則化やL2正則化です。早期終了は誤差関数を変えず、学習を打ち切る時点を決めることで過学習を抑えます。 早期終了
早期終了では、検証データの誤差が一度でも前回より悪化したら、その時点で必ず学習を止めなければならない。
× 誤り 検証データの誤差は小刻みに上下します。一定回数続けて改善しなければ止める、という猶予(patience)を設けるのが一般的です。 早期終了
大域最適解は関数全体で損失が最も小さい点なので、その周辺でも損失が最も小さく、局所最適解の条件も満たしている。
◯ 正しい 全国で1位なら、地区でも1位です。大域最適解は局所最適解の1つですが、逆に局所最適解が大域最適解とは限りません。 大域最適解
勾配降下法は、十分な回数だけ更新を続ければ、どのような損失関数でも必ず大域最適解に到達する。
× 誤り 勾配降下法は足元の傾きだけで進むため、局所最適解や鞍点の付近で止まることがあります。凸でない損失関数では、大域最適解に着く保証はありません。 大域最適解
線形回帰を最小二乗法で解く場合のように損失関数が凸関数であれば、局所最適解は大域最適解と一致する。
◯ 正しい 凸関数はお椀のような形で、途中で引っかかるくぼみがありません。そのため、局所最適解であれば必ず関数全体の最小になります。 大域最適解
二重降下現象では、テスト誤差が山になる規模の付近で、訓練誤差もいったん大きく上がる。
× 誤り モデルを大きくするほど、訓練誤差は下がり続けてほぼ0になります。下がって上がり、再び下がるのはテスト誤差のほうです。 二重降下現象
条件によっては、訓練データの量を増やすと、かえってテスト誤差が悪化する場合があると報告されている。
◯ 正しい Nakkiranらは2019年の研究で、訓練データを増やすと(4倍に増やす場合でも)かえってテスト性能が下がる範囲があることを示しました。データが増えると、テスト誤差の山が現れるモデルの規模もずれるためです。 二重降下現象
ノーフリーランチの定理は、パラメータの少ない単純なモデルほど汎化性能が高くなることを示した定理である。
× 誤り 単純なモデルを好む考え方は、オッカムの剃刀に近いものです。ノーフリーランチの定理は、すべての問題で平均すると手法どうしの性能に差がないことを示すもので、単純なモデルが常に優れるとは述べていません。 ノーフリーランチの定理
ノーフリーランチの定理の名前は、「無料の昼食などない」という意味の英語の言い回しに由来する。
◯ 正しい There ain't no such thing as a free lunchという言い回しが元です。ある種類の問題で得をする手法は、別の種類の問題でその分の損をする、という定理の内容を表しています。 ノーフリーランチの定理
ノーフリーランチの定理と同じ趣旨の結果は、最適化(探索)の手法についても、教師あり学習のアルゴリズムについても示されている。
◯ 正しい Wolpertは1996年に教師あり学習について、WolpertとMacreadyは1997年に最適化について、それぞれ論文を発表しました。 ノーフリーランチの定理
ニューラルネットワークの重みやバイアスは、ハイパーパラメータに含まれる。
× 誤り 重みやバイアスは、訓練データから学習によって決まるパラメータです。ハイパーパラメータは、学習の前に決めておく設定値を指します。 ハイパーパラメータ
ミニバッチ学習のバッチサイズと、学習を何エポック行うかは、どちらもハイパーパラメータである。
◯ 正しい どちらも学習の進め方を決める値で、訓練データからは決まりません。学習率や中間層のユニット数も同じ仲間です。 ハイパーパラメータ
ベイズ最適化は、それまでに試した組み合わせの結果をもとに、次に試すハイパーパラメータの値を選ぶ探索方法である。
◯ 正しい 結果を見ずに候補を決めるグリッドサーチやランダムサーチと異なり、よさそうな領域を予測しながら探します。 ハイパーパラメータ
バッチサイズを1にしたミニバッチ学習は、訓練データ全件を使って1回更新するバッチ学習と同じになる。
× 誤り バッチサイズ1は、1件ずつ更新するオンライン学習にあたります。全件を1つのまとまりにした場合がバッチ学習です。 ミニバッチ学習
ミニバッチ学習では、ミニバッチ内のデータそれぞれの勾配を平均して、1回の重みの更新に使う。
◯ 正しい 平均した勾配を使うことで、1件ずつの勾配で更新するよりも、更新の向きのぶれが小さくなります。 ミニバッチ学習
ミニバッチ学習のバッチサイズは、学習の途中で重みと同じように自動で最適な値に更新される。
× 誤り バッチサイズは、学習を始める前に人が決めるハイパーパラメータです。GPUのメモリの量や学習の安定性を見ながら選びます。 ミニバッチ学習
モーメンタムでは、勾配が何回も続けて同じ向きになる場面ほど、1回あたりの更新の幅が大きくなる。
◯ 正しい 前回までの速度に今回の勾配が積み重なるためです。同じ勾配が続けば、更新量は通常のSGDのおよそ1 ÷ (1 − α)倍に近づきます。 モーメンタム
モーメンタムは、パラメータごとに過去の勾配の二乗を使って学習率を自動で調整する手法である。
× 誤り それはAdaGradやRMSpropの考え方です。モーメンタムは学習率の大きさではなく、更新の向きと勢いを工夫します。 モーメンタム
モーメンタム係数を0にすると、モーメンタムの更新は通常の確率的勾配降下法と同じになる。
◯ 正しい 前回の速度をまったく残さないため、その時点の勾配に学習率を掛けた分だけ動く、通常の更新になります。 モーメンタム
ランダムサーチでは、調べるハイパーパラメータの種類の数とは関係なく、試行回数を自由に決められる。
◯ 正しい グリッドサーチの試行回数は、候補数の掛け算で決まります。ランダムサーチは、計算の予算に合わせて回数を先に決められます。 ランダムサーチ
ランダムサーチは、同じ試行回数であれば、グリッドサーチより必ずよい組み合わせを見つける。
× 誤り 多くの場面で効率がよいとされますが、無作為に選ぶので、運によってはよい領域を見逃します。必ず上回るわけではありません。 ランダムサーチ
学習率のように有効な値の桁が大きく変わるハイパーパラメータは、対数の目盛りで均等になるように値を選ぶことが多い。
◯ 正しい 0.0001〜0.1をそのまま均等に選ぶと、約9割が0.01以上の値になります。対数で選ぶと、各桁を同じくらい試せます。 ランダムサーチ
訓練データが1,000件のとき、10エポックの学習で重みを更新する回数は、バッチサイズ50のミニバッチ学習なら200回、オンライン学習なら10,000回である。
◯ 正しい 1エポックの更新回数は、ミニバッチ学習で1,000 ÷ 50 = 20回、オンライン学習で1,000回です。10エポックではそれぞれ200回と10,000回になり、バッチ学習なら10回です。 バッチ学習・ミニバッチ学習とオンライン学習の違い
ミニバッチ学習でバッチサイズを大きくすると、1回の更新に使う勾配のばらつきは小さくなり、1エポックあたりの更新回数は増える。
× 誤り 前半は正しい内容です。ただし1エポックの更新回数は「データ数 ÷ バッチサイズ」なので、バッチサイズを大きくすると減ります。 バッチ学習・ミニバッチ学習とオンライン学習の違い
「バッチサイズ」という言葉は、ふつう訓練データ全体の件数ではなく、ミニバッチ1つに含まれるデータの件数を指す。
◯ 正しい 全件を使う方式をバッチ学習と呼ぶ一方で、ミニバッチの件数もバッチサイズと呼ぶ慣習があります。方式は、1回の更新に何件使うかで見分けます。 バッチ学習・ミニバッチ学習とオンライン学習の違い
線形回帰のように損失の勾配を式で直接求められるモデルでは、誤差逆伝播法を使わずに、勾配降下法だけで重みを学習できる。
◯ 正しい 勾配降下法に必要なのは勾配の値で、求め方は問いません。誤差逆伝播法は、層を重ねたネットワークで多数の重みの勾配を効率よく求めるための方法です。 勾配降下法と誤差逆伝播法の違い
同じ重みと同じデータに対して誤差逆伝播法で求める勾配の値は、勾配降下法の学習率を大きくすると、それに比例して大きくなる。
× 誤り 学習率は、求めた勾配に掛けて重みを動かす幅を決めるだけです。勾配そのものは、重みとデータと損失関数で決まり、学習率には左右されません。 勾配降下法と誤差逆伝播法の違い
誤差逆伝播法では、出力層に近い層から順に勾配を求めるたびにその層の重みを更新し、更新後の重みを使って次の層の勾配を求める必要がある。
× 誤り 通常は、更新前の重みのまますべての層の勾配を求め終えてから、最適化手法でまとめて重みを更新します。勾配の計算と重みの更新は、別の段階として分かれています。 勾配降下法と誤差逆伝播法の違い
グリッドサーチで、候補値を各5通りにしたまま、調べるハイパーパラメータを2種類から4種類に増やすと、試行回数は2倍になる。
× 誤り 試行回数は候補数の掛け算です。2種類なら5×5で25回、4種類なら5の4乗で625回となり、25倍に増えます。 グリッドサーチとランダムサーチの違い
ランダムサーチは試行ごとに値を選び直すので、グリッドサーチと違って、複数の計算機で試行を同時に実行することはできない。
× 誤り どちらも、試す値を前の試行の結果に関係なく決めるので、試行を同時に並列で実行できます。BergstraとBengioも、並列化のしやすさを、ランダムサーチがグリッドサーチと共有する利点に挙げています。 グリッドサーチとランダムサーチの違い
ランダムサーチは、計算の途中で打ち切っても、それまでに終えた試行だけで1つの探索として結果を比べられる。
◯ 正しい 各試行は範囲全体から独立に値を選ぶので、途中までの試行もそれだけで探索として成り立ちます。グリッドサーチは途中で止めると格子の一部しか調べておらず、調べる順番によっては特定の値に偏ります。 グリッドサーチとランダムサーチの違い