G検定 練習問題 #0387・Attention

スケーリング後のスコアと重み

ディープラーニングの要素技術 › Attention 単一選択 難易度 応用

TransformerのScaled Dot-Product Attentionで、クエリq=(1, 0, 2, 1)と、3つのキーk1=(2, 1, 1, 0)、k2=(0, 1, 1, 2)、k3=(1, 3, 0, 1)から注意の重みを求める。キーの次元数は4である。スケーリング後のスコアと、ソフトマックス関数で求めたキー1とキー3の重みの比の組み合わせとして、最も適切なものを1つ選べ。eは自然対数の底(約2.72)とする。

正解と解説を見る

解説

正解 B

この問題の論点:スケーリング後のスコアと重み

ポイント

注意の重みの比は、スコアの差を指数とするeのべき乗で決まります。スコアは内積をキーの次元数の平方根で割って求めます。

選択肢ごとの解説

  1. A

    不適切

    (4, 4, 2)は内積をそのまま使った値で、スケーリングが抜けています。Scaled Dot-Product Attentionでは、内積をキーの次元数の平方根√4=2で割ってから、ソフトマックス関数に入れます。

  2. B

    適切 正解

    内積は1×2+0×1+2×1+1×0=4、同様に4、2です。√4=2で割るとスコアは(2, 2, 1)です。重みはeのスコア乗に比例するので、比はe^2÷e^1=e倍です。重みは約0.42、0.42、0.16になります。

  3. C

    不適切

    スコアは正しいものの、重みをスコアに比例させています。ソフトマックス関数はeのスコア乗を合計で割るため、重みの比はスコアの比ではなく、スコアの差で決まるe^(2-1)=e倍です。

  4. D

    不適切

    (1, 1, 0.5)は、内積をキーの次元数4そのもので割った値です。割る数は次元数の平方根です。次元数で割るとスコアの差が縮み、重みが均等に近づきます。

補足

ソフトマックス関数では、すべてのスコアに同じ数を足しても重みは変わりません。重みを決めるのはスコアどうしの差だけです。差が大きいほど、スコアが最大のキーに重みが集中します。内積を次元数の平方根で割らないと、次元が大きいときに差が広がりやすく、重みが1つのキーに偏って勾配が小さくなります。

試験での狙われ方

割る数が次元数かその平方根かと、ソフトマックス関数が比例配分ではないことの2点を、同時に確かめる形が考えられます。

参考

表示設定

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