Cross-attention
説明を探す
異なる入力行列$ X,Yから、$ Q=XW_Q,​K=YW_K,V=YW_V​として用意する。これは、XXが異なる情報源YYから情報を抽出する処理として解釈できる。
cf. https://zenn.dev/zenkigen_tech/articles/2023-01-shimizu
Pytorchに実装があるみたい
https://docs.pytorch.org/torchtune/0.3/generated/torchtune.modules.TransformerCrossAttentionLayer.html
Attentionについて参考になりそうなリソース
海外の講義資料に説明が載っている
https://atcold.github.io/NYU-DLSP20/ja/week12/12-3/
https://zenn.dev/yukiyada/articles/59f3b820c52571
https://cvml-expertguide.net/terms/dl/seq2seq-translation/transformer/
も参考にする
結局,特徴量の結合をどう行うかは報告書を見る他ないか?
cf. LOCAL AND GLOBAL FEATURES FUSION FOR SOUND EVENT DETECTION WITH HETEROGENEOUS TRAINING DATASET AND POTENTIALLY MISSING LABELS
* 以下の指揮に従えば良さそう:
$ InputC = softmax ((W_QF_B ) (W_K F_C )) W_V F_C (1)
$ InputB = softmax ((W_QF_C ) (W_K F_B )) W_V F_B(2)
CがCNN,BがBEATsのこと
Q,K,VはQuery, Key, Valueのことと思われる
$ F_B,F_Cはそれぞれの中間特徴量のこと
やることは
ベースラインから埋め込みの計算をCNN,BEATsが同時に進めるように変更
式の通りにする
Q,K,Vの行列を取得
sofxmaxに入れる
次の層に入力として与える
Cross-attentionを使うと冒頭には書いてあるが,どう使うのか?
? 上の式自体をCross-attentionで行える?
報告書の該当部分をGPTに渡したが,これ以上の情報はなさそう
まずを読んで基礎を理解しよう
その後Pytorchの資料も見て判断する