2016-10-31 3 views
3

私はディープラーニングの論文でいくつかのNLPを読んできましたが、ファインチューニングはシンプルではあるが混乱するようです。 hereと同じ質問がありましたが、依然として明確ではありません。タスク固有の単語の埋め込みにワード埋め込みの微調整はどのように機能しますか?

微調整前訓練を受けたワード埋め込みY.キム、「文の分類のための畳み込みニューラルネットワーク、」KSタイ、R. Socher、およびCDマニングのような論文で述べたように、「ツリー構造の長い短期記憶ネットワークからのセマンティック表現の改善」、は、細部に入ることなく簡単に言及しただけであった。

私の質問は:

Wordの組み込み環境は、これらの入力ベクトルが新しいニューラルネットワークモデルに差し込まれている意味、構文解析や評判分析などの下流のタスクに(X)特徴pretrained単語ベクトルとしてword2vecや手袋を使用して生成された入力として使用されていますいくつかの特定のタスクでは、この新しいモデルを訓練しながら、何らかの形で更新されたタスク固有の単語埋め込みを得ることができます。

私が知っている限り、トレーニング中に、どのようなバックプロパゲーションがモデルのウエイト(W)を更新していますが、入力フィーチャ(X)は変更されませんので、元のワード埋め込みはどのように正確に調整されますか?これらの微調整されたベクトルはどこから来たのですか?

答えて

3

はい、埋め込みベクトルを入力として入力すると、少なくとも簡単に埋め込みを微調整することはできません。しかし、すべてのフレームワークは、単語/文字/その他の入力トークンのクラス序数である整数を入力として受け取り、埋め込みルックアップを実行するような種類のものを提供します(EmbeddingLayer)。このような埋め込みレイヤーは、1ホットコード化されたクラスに供給される完全に接続されたレイヤーに非常に似ていますが、フロントパスとバックパスの両方でマトリックスから1行をフェッチ/変更するだけで済むため、より効率的です。さらに重要なことは、埋め込みの重みを学習できることです。

従来の方法は、埋め込みの代わりにネットワークに実際のクラスを送り、ネットワーク全体にword2vec/gloveで初期化され埋め込みレイヤーを付加し、ウェイトの学習を続けます。ネットワークの残りの部分が微調整を開始する前に、妥当な何かを開始するまで、最初はいくつかの反復でそれらをフリーズすることも妥当かもしれません。

+0

あなたの答えをありがとう。 EmbeddingLayerはワンホットエンコーディングなどの入力を受け取り、「実際の」隠されたレイヤーに接続します。あれは正しいですか? embeddingLayerをword2vec/gloveで初期化することで、EmbeddingLayerのパラメータとして使用することを意味しますか?簡単な例を挙げていただければ幸いです。ありがとう – LingxB

+0

ケラスの例https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html、TFに関するいくつかの議論http://stackoverflow.com/questions/35687678 /事前に訓練された単語埋め込みを使用する - 単語2vecまたは手袋のテンソルフロー。埋め込みへの入力は通常、**ワンホットエンコードではありませんが、単なる整数です。はい、グローブで初期化するということは、埋め込みレイヤのウェイトマトリックスをグローブベクトルに設定することを意味します。 – Ishamael

関連する問題