#negative samplingとは?
こんにちは。
今回は、word2vecでよく使われるネガティブ サンプリングについて解説したいと思います。
#negative samplingをする目的
通常word2vecの出力層のノードの数は辞書として登録している単語の数と同じくらいありますね。仮に50000個の出力ノードがあった場合、最小2乗誤差で誤差を求めた場合多大な時間が掛かりますね。その多大な時間を節約するためにnegative samplingを行います。
#negative samplingの動作
ネガティブサンプリングは、分かりやすく申すと出力層に対してドロップアウトのようなことを行なっています。大抵教師ラベルは一つだけ1のラベルがあり他の全てが0になります。(onehot encoding)その0のラベルに該当する出力ノードのうちいくつかは最小2乗誤差を求めるために使用せずに、除外します。(除外する割合は任意に決められます。)除外するノードをランダムで変えていくと、確率論ですが全ての出力ノードと教師ラベルから誤差を求めた場合と似たような出力を得ることができます。数式は割愛しますが、tensorflowの翻訳ページなどが分かりやすかったです。
More than 5 years have passed since last update.
negative sampling(ネガティブ サンプリング)とは word2vec編
Last updated at Posted at 2017-08-15
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme