G検定 練習問題 #0194・Attention

内積をスケーリングする理由

ディープラーニングの要素技術 › Attention 穴埋め 難易度 標準

TransformerのScaled Dot-Product Attentionでは、クエリとキーの内積を( ア )で割ってからソフトマックス関数に入力する。ベクトルの次元が大きいと内積の絶対値が( イ )なりやすく、ソフトマックス関数の出力が( ウ )、勾配が非常に小さくなるのを防ぐためである。( ア )〜( ウ )に入る語句の組み合わせとして、最も適切なものを1つ選べ。

正解と解説を見る

解説

正解 A

この問題の論点:内積をスケーリングする理由

ポイント

内積をキーの次元数の平方根で割るのは、ソフトマックス関数の出力が極端に偏り、勾配が小さくなるのを防ぐためです。

選択肢ごとの解説

  1. A

    適切 正解

    成分が平均0・分散1で互いに独立なら、次元数d_kのベクトルどうしの内積の分散はd_kになります。√d_kで割ると分散が1にそろい、ソフトマックス関数の出力が極端に偏るのを防げます。

  2. B

    不適切

    次元数d_kそのもので割ると、内積の分散は1/d_kまで小さくなり、次元が大きいほど重みが均等に近づいてしまいます。内積の標準偏差が√d_kなので、平方根で割ります。

  3. C

    不適切

    内積の大きさを左右するのはベクトルの次元数で、系列の長さではありません。1組のクエリとキーの内積は、系列が長くなっても足し合わせる成分の数が変わらないためです。

  4. D

    不適切

    内積は成分どうしの積を次元の数だけ足し合わせるため、次元が大きいほど絶対値は大きくなりやすくなります。小さくなって重みが均等になるという説明は、向きが逆です。

試験での狙われ方

スケーリングに使う値と、その理由(ソフトマックス関数の出力が偏ると勾配が小さくなること)を穴埋めで問う形が考えられます。

参考

表示設定

テーマ
文字の大きさ
問題演習