ある農業法人が、収穫した果実の画像から等級を判定するCNNを開発している。畳み込み層を単純に積み重ねた構成のまま、層の数を18層から54層に増やして学習を収束させたところ、テストデータだけでなく訓練データに対する誤差も18層のときより大きくなった。この結果の解釈と対処として、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 A
この問題の論点:深層化による訓練誤差の悪化
ポイント
深くしたことで訓練誤差まで悪化する現象は過学習とは異なり、スキップ結合で残差を学習させることで抑えられます。
選択肢ごとの解説
- A
適切 正解
スキップ結合でブロックの出力をF(x)+xにすると、間の層は入力との差分(残差)だけを学べばよくなります。不要な層はF(x)を0に近づけるだけで済むため、深くしても訓練誤差が悪化しにくくなります。ResNetの考え方です。
- B
不適切
過学習なら、訓練データに対する誤差は小さいままで、テストデータに対する誤差だけが大きくなります。今回は訓練誤差も悪化しているため過学習ではなく、当てはまりを抑えると訓練誤差はさらに大きくなります。
- C
不適切
54層のモデルは、追加した層が入力をそのまま伝えれば18層と同じ働きができるため、表現力の不足は原因ではありません。原因は最適化の難しさで、単純に積み重ねる構成のまま層を増やすと、かえって悪化しやすくなります。
- D
不適切
シグモイド関数の微分の最大値は0.25と小さく、層を重ねるほど勾配が小さくなる勾配消失を起こしやすくします。深いネットワークをかえって学習しにくくするため、訓練誤差の悪化は解消しません。
試験での狙われ方
訓練誤差とテスト誤差の変化から過学習かどうかを見分け、ResNetのスキップ結合が何を解決したかを問う形が見られます。