ある電力会社が、設備センサーの長い時系列データを使ってRNNを学習させている。学習の途中で損失が急激に大きくなり、やがてNaN(数値として表せない値)になった。調べると、一部の重みが極端に大きな値になっていた。起きている現象(ア)と、その対策(イ)の組み合わせとして、最も適切なものを1つ選べ。
正解と解説を見る
解説
正解 B
この問題の論点:勾配爆発の症状と対策
ポイント
損失の発散や重みの極端な増大は勾配爆発問題の典型的な症状です。勾配クリッピングで勾配の大きさを抑えます。
選択肢ごとの解説
- A
不適切
勾配消失問題では勾配が0に近づき、重みはほとんど更新されなくなります。重みが極端に大きくなる今回の症状とは逆です。上限を設ける勾配クリッピングは、小さすぎる勾配には効きません。
- B
適切 正解
逆伝播で勾配が層や時刻をさかのぼるたびに掛け合わされ、急激に大きくなるのが勾配爆発問題です。勾配のノルムがしきい値を超えたら縮小する勾配クリッピングで、極端な更新を防げます。
- C
不適切
過学習は、訓練誤差が下がる一方で検証誤差が上がる現象です。訓練中の損失そのものが発散する今回の症状とは異なります。ドロップアウトは発散への直接の対策にはなりません。
- D
不適切
現象の判断は正しいものの、学習率を大きくすると1回の更新幅がさらに広がり、発散しやすくなります。勾配爆発への対策としては、むしろ学習率を下げることが検討されます。
補足
RNNの学習では、時間をさかのぼって誤差を伝える際(BPTT)に、同じ重みが時刻の数だけ繰り返し掛け合わされます。重みの大きさによっては、勾配が指数的に大きくなったり(勾配爆発)、小さくなったり(勾配消失)します。勾配爆発には勾配クリッピング、勾配消失にはLSTMやGRUのようなゲート付きの構造が代表的な対策です。
試験での狙われ方
症状から勾配消失と勾配爆発のどちらが起きているかを見分け、対応する対策を選ばせる形が考えられます。