読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】AIの説明に毎回出てくる「ベクトルの内積」って、結局何を測ってるん?【AI】

23レスカテゴリ:AI・機械学習
1: 名無しさん

AIの解説を読むと、だいたい「ベクトルの内積を計算する」って出てくる
掛けて足すだけの計算で、何がわかるんや

2: 名無しさん

>>1
ベクトルは数の並び。、 なら、内積は成分どうしを掛けて足したもの

3: 名無しさん

>>2
その5に意味はあるん?

4: 名無しさん

>>3
図形で見ると、長さと向きのそろい具合の掛け算になってる

、 やから、 で、2本のなす角 は45度

5: 名無しさん

>>4
マイナスになることもあるやろ

6: 名無しさん

>>5
ある。符号で向きの関係がわかる
正なら同じ側(90度より小さい)、0なら直角、負なら反対側
、

7: 名無しさん

向きを見たいなら だけでええやん
長さが混ざる内積をわざわざ使う意味ある?

8: 名無しさん

>>7
長さを1にそろえたベクトル同士なら、内積がそのまま (コサイン類似度)になる。長さを残すかどうかは、使う場面で選んでる
Attention のように、長さも含めた内積をそのまま使う計算もある

9: 名無しさん

>>8
長さが残ると何か困るん

10: 名無しさん

>>9
長いベクトルが有利になる。質問を 、文書を 、 とすると
内積は 、 で が勝つ
向きだけ見ると、 は (同じ向き)、 は約0.707 で、順位が逆になる

11: 名無しさん

ニューラルネットの中では、内積はどこで出てくるん

12: 名無しさん

>>11
いちばん基本のところ。1個のニューロンは、重みベクトル と入力 の内積にバイアス を足してる

、、 なら、

13: 名無しさん

>>12
層になると行列が出てくるやろ。あれは別物?

14: 名無しさん

>>13
同じもの。行列とベクトルの掛け算は、行列の各行とベクトルの内積を並べたもの

1行目が1個目のニューロン、2行目が2個目のニューロン。層の計算は、内積をまとめてやってるだけ

15: 名無しさん

実際のモデルやと、ベクトルは何次元くらいなん

16: 名無しさん

>>15
BERT(Devlin ら、2018年)の基本モデルは768次元
内積1回で、768回の掛け算と767回の足し算をしてる

17: 名無しさん

>>16
そんなに次元が多いと、たまたま似た向きになるベクトルも増えて、区別がつかんようになるんちゃうの

18: 名無しさん

>>17
逆で、次元が多いほどランダムなベクトル同士はほぼ直角になる
成分を標準正規分布からランダムに選んだベクトルの組を2万組作って の平均を計算したら、2次元で約0.63(理論値 )、768次元で約0.029
768次元で になったのは約0.5%。高い次元で が0.3もあれば、偶然ではまず出ない

19: 名無しさん

長さ1のベクトルとの内積には、別の意味があるって聞いた

20: 名無しさん

>>19
その向きの成分を取り出す計算になる(射影)
なら で、 の横方向の成分そのもの
モデルの中で「この向きの特徴がどれだけ入ってるか」を読み取る計算、と見ることもできる

21: 名無しさん

>>20
統計の相関係数も、似た形やった気がする

22: 名無しさん

>>21
そう。 と からそれぞれ平均を引いたベクトルを作って、その2本の を計算すると、相関係数そのものになる

23: 名無しさん

内積は「長さ×向きのそろい具合」。ニューロンも層も、内積をまとめて計算してるだけなんやな

管理人のひとこと