Keras埋め込みレイヤーでの埋め込みレイヤーのトレーニング方法


8

埋め込み層は、Keras埋め込み層でどのようにトレーニングされますか?(たとえば、tensorflowバックエンドを使用すると、word2vec、glove、fasttextに似ています)

事前トレーニング済みの埋め込みを使用しないと仮定します。

回答:


6

どちらの答えも間違っています。

埋め込みレイヤーは、2次元である1つの埋め込み行列を含むトレーニング可能なレイヤーであり、1つの軸にカテゴリカル入力が取ることができる一意の値の数(たとえば、小文字のアルファベットの場合は26)を含み、もう1つの軸には次元を含みますあなたの埋め込みスペースの。埋め込みレイヤーの役割は、少なくとも監視対象タスクにおいて、当面のタスクに役立つ方法でカテゴリーを密な空間にマッピングすることです。これは通常、埋め込みベクトルに意味的な値があり、この空間に近いカテゴリがタスクにとって意味が近いことを意味します。

これは、離散カテゴリをベクトル特徴表現にマッピングするという意味で、ワンホットエンコーディングに関連しています。ニューラルネットワークでもこれを行うことができますが、これを高密度のレイヤーで使用すると、大量のウェイトが作成され、そのほとんどが定期的に使用されなくなります。埋め込みレイヤーを間に置くと、入力の他の部分と相互作用するようにフィードする前に、学習可能なウェイトの量が減ります。もう1つの利点は、埋め込み行列が基本的にルックアップテーブルとして機能することです。これにより、カテゴリのインデックスのスパース性を実際に使用して、埋め込みの現在の値を調べ、重み行列のそのエントリのみを適応させてバックプロパゲーションを適用できます。 。

http://colah.github.io/posts/2014-07-NLP-RNNs-Representations- >このブログ投稿では、埋め込みレイヤーがKeras埋め込みレイヤーでどのようにトレーニングされるかについて明確に説明しています。お役に立てれば。


最後に良い答え、ありがとう。Word2Vecが言語モデリングの目的としてトレーニングされていることを付け加えると、あなたが言った特定のタスクのためにトレーニングされた埋め込みとは異なります。
エリオット

0

私が理解している限り、これは単純なオートエンコーダです。つまり、入力を別のスペースにマップしようとしているだけなので、特別なトレーニングは必要ありません。単純なフィードフォワードとバックプロップのみです。これが、トレーニングがかなり速い理由です。

事前トレーニング済みの埋め込みを使用する場合は、その方法で行うことができます


オートエンコーダーは、それ自体を予測するモデルです。それはあなたが意味したことですか?
kbrose 2018

確かに、それを単一の非表示層を備えたニューラルネットとして見ることができ、入力と出力が同一である場合、それがKerasが使用するものであるかどうかはわかりませんが、速度とドキュメントを考えると、方法
Valentin Calomme

埋め込みレイヤー自体はそれを行いません。一意の整数入力ごとにベクトルを割り当てるだけです。その周りに自動エンコードモデルを構築して埋め込みをトレーニングすることもできますが、埋め込み層の一部ではありません。
kbrose 2018

あなたの答えが、埋め込み層を「オートエンコーダ」と呼ぶこととは別に、埋め込み層が何をするかについての私の理解と一致するので、私は混乱しました。
kbrose 2018

0

埋め込みレイヤーは、データのマッピングに埋め込み行列を使用し、トレーニング中に更新されることはありません。Keras埋め込みレイヤーにはトレーニング可能なパラメーターはありません。詳細については、Keras埋め込み層のドキュメントを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.