NetPairEmbeddingOperator
配列のペアを取り,net を使ってそれをベクトル空間に埋め込み,埋込みの下での距離を出力するネットを表す.
NetPairEmbeddingOperator[net,opts]
使用する距離関数およびその他のパラメータについてのオプションを含む.
詳細とオプション
- NetPairEmbeddingOperator[net]の net は,厳密に1つの入力を取り厳密に1つの出力を生成する.
- NetExtractを使ってNetPairEmbeddingOperator[net]オブジェクトから net を抽出することができる.
- 次の任意のパラメータを含めることができる.
-
DistanceFunction EuclideanDistance 使用する距離関数 LearningRateMultipliers Automatic ネット中の訓練可能な配列についての学習率乗数 - DistanceFunctionの次の値がサポートされている.
-
EuclideanDistance 入力間のユークリッド距離 CosineDistance 入力間の余弦距離 - NetPairEmbeddingOperatorで表されるネットの入出力ポートは以下の通りである.
-
"Input" 配列のペア "Output" 実数 - より大きいネットの他の層から推測できない場合は,オプション"Input"->{n1,n2,…}を使ってNetPairEmbeddingOperatorの入力配列の各ペアの入力次元を固定することができる.
- NetPairEmbeddingOperatorが訓練された場合,損失が指定されていなければ,NetTrainは自動的にContrastiveLossLayerを追加する.
- NetExtractは,"Net"を介した前進および反転ネットへのアクセスを許す.
- Options[NetPairEmbeddingOperator]は層を構築する際のデフォルトオプションのリストを与える.Options[NetPairEmbeddingOperator[…]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
- Information[NetPairEmbeddingOperator[…]]は層についてのレポートを与える.
- Information[NetPairEmbeddingOperator[…],prop]はNetPairEmbeddingOperator[…]の特性 prop の値を与える.使用可能な特性はNetGraphと同じである.
例題
すべて開くすべて閉じる例 (2)
NetChainを使って入力を埋め込むNetPairEmbeddingOperatorを作る:
ランダムに初期化されたNetChainを使って長さ2のベクトルペアを埋め込むNetPairEmbeddingOperatorを作る:
スコープ (1)
入出力がそれぞれ1つのNetGraphを作る:
NetGraphを使ってベクトルを埋め込むNetPairEmbeddingOperatorを作る:
NetPairEmbeddingOperator[net]内の埋込みネットワークはNetExtractを使って抽出することができる:
オプション (1)
DistanceFunction (1)
CosineDistance関数を使って埋め込まれた2つの配列間の距離を計算するNetPairEmbeddingOperatorを作る:
アプリケーション (2)
位相のみに基づく合成データ集合を埋め込む多層パーセプトロンを訓練する.まず,平面上で密な螺旋のような多様体について訓練データを作る:
NetPairEmbeddingOperatorを使って埋込みのパフォーマンスを測定する損失ネットワークを定義する:
点のペアのサンプルを取り,それらの多様体についてのパラメータ化がPiより大きい場合にそれらをTrueと関連付ける生成器を作る:
生成器を使ってこのネットワークを訓練し,もとのパラメータ化が近いときは同じものとしてそれらを分類する:
MNISTデータ集合の数字の埋込みについて学ぶ.まず,データをインポートしてラベルが0から4までの例だけを取る:
画像のペアのサンプルを取り,ペアのラベルが異なる場合はTrueと,ラベルが同じ場合はFalseと関連付けることで,訓練集合を作る:
埋込みネットワークとして使うたたみ込みネットワークを定義する:
ネットワークを数字のペアのリストに適用し,埋込み下での距離を計算する.ラベルが同じ数字間の距離は小さい:
特性と関係 (1)
NetMapOperatorを使ってNetPairEmbeddingOperatorを実装することができる.初期化されたLinearLayerを作る:
線形層を埋込みネットとして使ってNetPairEmbeddingOperatorを作り,入力について評価する:
前のNetPairEmbeddingOperatorと等しいNetMapOperatorでNetGraphを定義し,同じ入力について評価する:
考えられる問題 (1)
複数の入出力があるネットは,NetPairEmbeddingOperator[net]の埋込みネットワークとして使うことはできない:
テキスト
Wolfram Research (2017), NetPairEmbeddingOperator, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetPairEmbeddingOperator.html (2020年に更新).
CMS
Wolfram Language. 2017. "NetPairEmbeddingOperator." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/NetPairEmbeddingOperator.html.
APA
Wolfram Language. (2017). NetPairEmbeddingOperator. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NetPairEmbeddingOperator.html