EmbeddingLayer

EmbeddingLayer[size,n]

1から n までの整数を次元 size の連続ベクトル空間に埋め込む訓練可能な層を表す.

EmbeddingLayer[size]

n がコンテキストから推測されるままにする.

詳細とオプション

  • EmbeddingLayerは,単一の整数あるいは階数 k の整数配列に作用し,前者の場合はベクトルを,後者の場合は階数 k+1の配列を生成する.
  • EmbeddingLayer[size]を指定すると,整数を生成するNetEncoder[]が入力に接続された場合に n を推測するネットが作成される.
  • EmbeddingLayerが行う埋込みは,訓練中に学習される.
  • 次の任意のパラメータを含めることができる.
  • LearningRateMultipliersAutomatic重みの学習率乗数
    "Weights" Automaticinitial matrix of weights of dimensions n×size
  • Automaticの設定のとき,NetInitializeあるいはNetTrainが使われると重みが自動的に加えられる.
  • 重みが加えられると,EmbeddingLayer[][input]は層を適用して明示的に出力を計算する.
  • EmbeddingLayer[][{input1,input2,}]は各 inputiについて明示的に出力を計算する.
  • NumericArrayが入力として与えられると,出力はNumericArrayになる.
  • NetExtractを使ってEmbeddingLayerオブジェクトから重みを抽出することができる.
  • EmbeddingLayerは,NetChainNetGraph等の中で使われることが多い.
  • EmbeddingLayerNetGraph等で使うために次のポートを開放する.
  • "Input"整数または階数 k の整数配列
    "Output"ベクトルまたは階数 k+1の配列
  • EmbeddingLayer[size,n,"Input"->shape]で入力の形状を指定することができる.次は shape の可能な形である.
  • NetEncoder[]整数または整数配列を生成するエンコーダ
    "Integer"単一の整数
    d長さ d の整数ベクトル
    {d1,d2,}次元 d1×d2×の整数配列
    "Varying"可変長の整数ベクトル
    {"Varying",d2,d3,}第1次元が可変長で残りの次元が d2×d3×の配列
  • Options[EmbeddingLayer]は層を構築する際のデフォルトオプションのリストを与える.Options[EmbeddingLayer[]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
  • Information[EmbeddingLayer[]]は層についてのレポートを与える.
  • Information[EmbeddingLayer[],prop]EmbeddingLayer[]の特性 prop の値を与える.使用可能な特性NetGraphと同じである.

例題

すべて開くすべて閉じる

  (2)

整数1,2,3を取り,サイズ4のベクトルを生成するEmbeddingLayerを作る:

整数1,2,3を取りサイズ2のベクトルを生成する,ランダムに初期化されたEmbeddingLayerを作る:

この層を整数に適用する:

この層を整数のベクトルに適用する:

スコープ  (4)

1から10までの整数の可変長数列を最終次元がサイズ2の行列によって表される長さ2のベクトル列に埋め込む,ランダムに初期化されたEmbeddingLayerを作る:

この層を単一の整数に適用して出力ベクトルを作る:

この層を長さが等しくない多数の数列に同時に適用する:

符号化された入力を持つEmbeddingLayerを作る.n はエンコーダから推測される:

ランダムに初期化し,この層を適用する:

入力が文字列を表す整数列であるEmbeddingLayerを作る:

この層を文字列に適用する:

入力が文字列からのトークンを表すコードの列であるEmbeddingLayerを作る:

オプション  (1)

"Weights"  (1)

重みを明示的に指定してEmbeddingLayerを作る:

この層を入力に適用する:

アプリケーション  (2)

テキスト処理のアプリケーションでは,単語全体に作用するネットワークが埋込みを使って人間の言語の膨大な語彙を操作可能なベクトルサイズに圧縮することが多い.

文字列からの連続する単語をサイズ10のベクトル列に埋め込み,次にそれらのベクトルを処理し,再帰層を使って最終ベクトルを作成する鎖を作る.まず,一般的な英単語を使ってエンコーダを作る:

ネットを作り,入力にエンコーダを付けてランダムに初期化する:

ネットをランダムに初期化し,文に適用する:

NetModelを使って訓練済みのEmbeddingLayerを得る:

NetEncoderはネットの入力に加えられている:

2つのトークンがある文に埋込みを適用する:

より長い文の埋込みを可視化する:

特性と関係  (1)

初期化されたEmbeddingLayerを指標のリストについて評価する:

これは以下に等しい:

Wolfram Research (2016), EmbeddingLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/EmbeddingLayer.html (2020年に更新).

テキスト

Wolfram Research (2016), EmbeddingLayer, Wolfram言語関数, https://reference.wolfram.com/language/ref/EmbeddingLayer.html (2020年に更新).

CMS

Wolfram Language. 2016. "EmbeddingLayer." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/EmbeddingLayer.html.

APA

Wolfram Language. (2016). EmbeddingLayer. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EmbeddingLayer.html

BibTeX

@misc{reference.wolfram_2024_embeddinglayer, author="Wolfram Research", title="{EmbeddingLayer}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/EmbeddingLayer.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_embeddinglayer, organization={Wolfram Research}, title={EmbeddingLayer}, year={2020}, url={https://reference.wolfram.com/language/ref/EmbeddingLayer.html}, note=[Accessed: 22-November-2024 ]}