ベクトルの利用 - 趣味で学問

ベクトルの利用

いろいろ利用されてるベクトルですが、学問分野ごとに利用のされ方は異なります。私が知っているのはそんなに多くなくて、そのうち単語のベクトル表現と平面的な流れのベクトル表現を紹介しておこうと思います。前者は言語処理、後者はベクトル解析などで利用されてます。

1.単語のベクトル表現

ニューラルネットワークを用いて翻訳したりする場合、それぞれの単語をなんとかして数値で表現する必要があります。この数値表現に400次元くらいの多次元のベクトルが利用されています(2017年ごろの話です)。400次元のベクトルってどういうこと?と思うかもしれませんが、具体的には下のように表現しただけで難しいことをやってるわけではないです。

(0.12, 0,33, 0.08, 0.01, 0.17, … ,0.10, 0.06)

400次元なのでカンマで区切って数値が400個入ってます。

スキップグラムというニューラルネットワークを用いた方法があって、大量の文のデータからそれぞれの単語にこの400次元のベクトルを割り当てることができます。その後の利用のためもあって各次元の値は0から1の間に収まってます。確か単位ベクトルで表現されていたと思うんですが、記憶が曖昧なので、とりあえずここでは単位ベクトルとさせてください。

この方法で嬉しいのは、使い方が似ている言葉はよく似た値のベクトルになっていることです。ベクトルが似ているというのは、二次元でいうと(0.90, 0.43)と(0.85, 0.53)みたいに、それぞれの次元の値(x座標の0.90と0.85、y座標の0.43と0.53)が近い場合をいいます。ただしこの近い近くないというのは相対的なもので、ベクトルどうしを比較して一番近いのはどれか、といったことが重要になります。

そしてベクトルが近い近くないはベクトルの内積をとってみれば簡単にわかります。ベクトルの内積はベクトルの向きが似ているほど(上で例に挙げた二つの二次元ベクトルの場合など)大きな値になり、似ていないほど小さな値になります。各ベクトルを単位ベクトル化しておけば、ベクトルが近いほど1に近づいて、ベクトルの向きが違うほど0に近づきます。ベクトルの内積は各成分どうしをかけて、それを全部の次元で足すだけなので、計算機なら数百次元のベクトルの内積などあっという間に計算できます。400次元の二つのベクトル(0.12, 0,33, … ,0.10, 0.06)と(0.06, 0,35, … ,0.08, 0.20)の内積を計算すると

0.12×0.06 + 0.33×0.35 + … + 0.10×0.08 + 0.06×0.20 = 0.81

たとえば「りんご」という語をベクトル化して他の言葉と内積を取っていくと下のようになったとします。

単語内積
みかん0.81
オレンジ0.67
ふな0.34
言葉0.21

この中では内積の値が0.81で一番大きい「みかん」が一番「りんご」に近い使われ方の言葉だということを示しています。果物とかは値が比較的大きくて、同じ名詞でも「ふな」とか「言葉」は使われ方がちょっと違うというのがこの値から読み取ることができます。

今一般的に使われている機械翻訳はニューラルネットワーク翻訳で間違いないので、機械翻訳の一番最初から最後まで、ベクトルの内積が頻繁に計算されています。

関連ページ:単位ベクトルベクトルの内積

2.平面的な流れのベクトルによる表現

川の流れを上から見てみると、場所ごとに流れの向きと強さがあって、それが連続して変わっていっているはずです。ひとまず時間による流れの変化は置いておいて、ある瞬間の川の流れを考えてみます。本当は川の流れは連続しているはずですが、人が表現して理解するには何かしらの簡略化が必要です。図1のように、場所ごとに流れを区切って、それぞれ方向と大きさを持つ小さな矢印として書き込んでみます。そうすると流れの様子をそこから見つけ出すことができます。

図1のそれぞれの矢印の「方向と大きさを持つ」という性質、これはベクトルの性質そのものです。自然科学などで利用するためにはやはり数値表現が必要なので、この矢印をベクトルを用いて記述すればよいことになります。水の流れなので速度ベクトルv=(a,b)として、場所r(x,y)における流れをvベクトル=v(x,y)=(a,b)のように数値で表現することができます。位置(x,y)もベクトルなのでv(rベクトル)のように、ベクトルの値で一つの値がきまるベクトルとして書くこともできます。図1のA(2, 1)におけるvベクトルはv(2, 1)=(3,1)、B(-3,-2)では v(-3, -2)=(3,4)です(上手く描けないので流れ成分のスケールは1/10に変えてます)。さらに時刻を加えてvベクトル=v(x,y,t)=(a,b)とすればある瞬間のある位置における流れを、同じvベクトルで表現することができます。

上で示した流れのベクトル表現は、大学数学のベクトル解析という分野で習うはずです。私は大学ではベクトル解析の講義を受けたことはなくて、この表現をどこで使ったかというと「シミュレーション工学」なる計算機シミュレーションの講義においてです。こんなふうにベクトルはいろいろな用途で使われている、とても便利な表現方法です。

関連ページ:位置ベクトル

<< 空間における平面と直線の方程式

ホーム » 高校数学を理解する » 数2B » ベクトルの利用

むつきさっち

物理と数学が苦手な工学博士。 機械翻訳で博士を取ったので一応人工知能研究者。研究過程で蒐集した知識をまとめていきます。紹介するのはたぶんほとんど文系分野。 でも物理と数学も入門を書く予定。いつの日か。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA