auの日記

プログラミング初心者の日記。(auはハンドルネームです)

ベクトルを学んだおかげでone-hotベクトルが理解できた

auです。

最近数学を学んでいることを書いています。

最近ベクトルを学んだのですが、ディープラーニングを学ぶ時にめちゃめちゃ役立ったので、書いておこうと思います。

one-hot ベクトルとは

まず、one-hotベクトルとは、カラムの1つだけが1で、他のあたいは0で表現されている行列です。カテゴリー変数(数や量で測れない値)を0,1の変数に変換して、学習器が学習しやすい形に変換しています。

調べたら調べるほど自然言語処理のone-hotベクトルが複雑になってきたので詳細はバッサリ省きます。

とりあえず、自然言語処理でone-hot ベクトルをする場合、ベクトルの内積を用いて評価します。

単語同士をv1とv2があるとします。その際に、cosθを求める公式を使って、単語のベクトルの関係性を知るために角度を求めます。

cosθ = v1*v2/|v1|*|v2|

少し長くなってしまいましたが、単語同士の関係性を見つけるためにcosθを求める必要がありました。ちょうどこれをやったばかりだったので、プログラミングだとこんな風に使うんだということが具体的に分かった気がします。