TensorFlowの日本語まとめ

TensorFlowの公式サイトに書かれている英文を英語ど素人が翻訳(日本語訳/和訳)します。 間違いがありましたら、優しく教えていただけますと幸いです。 内容を理解したら、使ってみたい。

3.Noise-Contrastiveトレーニングでスケールアップ

 ニューラル確率的言語モデルは、伝統的にソフトマックス関数の面でWt("target"のため)が 前の言葉h("history"のため)を与えられた次の単語の確率を最大化するために、maximum likelihood (ML) を使用して訓練されます。

f:id:TensorFlow:20160123194226p:plain

 

スポンサーリンク

 

 

score(w_t,h)コンテキストh単語w_t互換性を計算します。ドット製品が一般的に使用されます。私たちは訓練セットにそのlog-likelihoodを最大化することで、このモデルを訓練します。すなわち、最大化です。

f:id:TensorFlow:20160123194846p:plain

 

これは、言語モデリングのための適切に正規化された確率モデルを生成しますしかし、これは、非常に高価です。何故なら私たちは、すべてのトレーニング段階で、計算して、現在のコンテキストのh内の他のすべての単語Vのw′ のスコアを使用して、各確率を正規化する必要があるためです。

f:id:TensorFlow:20160123195401p:plain

 

一方word2vecでの学習機能のために、私たちは完全な確率モデルを必要としませんCROWとskip-gramモデルではなく、同じコンテキストで、k虚数(ノイズ)の言葉w~から実際のターゲット単語wtを識別するために、バイナリ分類目的(ロジスティック回帰)を使用して訓練されています。私たちはCBOWモデルの下にこれを説明します。skip-gramの方向は、単純に反転されます。

f:id:TensorFlow:20160123200045p:plain

数学的には、各々たとえば)目的は、最大化することです。

f:id:TensorFlow:20160123200150p:plain

Qθ(D=1| H、w)は学んだの埋め込みベクトルθに換算したデータセットD中のコンテキストhの単語wを見るモデル下のバイナリロジスティック回帰確率です実際には、私たちはノイズ分布からkの対照的な言葉を描画することで予想を接近します。 (すなわち、私たちは、Monte Carlo averageを計算します。)

 

モデルはノイズワードに真の言葉確率、低確率を割り当てるときに、この目的は最大になります技術的には、これ負のサンプリングと呼ばれ、この損失関数を使用するための良い数学的な動機があります:アップデートには、限界にソフトマックス機能のアップデートを近似提案しています。しかし、計算上では、特に語彙(V)内のすべての単語を損失関数を計算すると、今は私たちが(k)を選択し、ノイズワードの数に比例するので、魅力的とされていません。これは、訓練することではるかに高速になります。私たちは実際には、非常によく似たnoise-contrastive estimation (NCE) の損失を利用します。これのためにTensorFlowは便利なヘルパー機能のtf.nn.nce_loss()を持っています。

 

これが実際にどのように動作するかのための直感的な感触を取得してみましょう

 

(原文サイト)

Vector Representations of Words