LinearLayer

LinearLayer[n]

サイズ n の出力ベクトルで を計算する,訓練可能で完全に結合されたネット層を表す.

LinearLayer[{n1,n2,}]

次元 n1×n2×の配列を出力する層を表す.

LinearLayer[]

出力配列の次元がコンテキストから推測されるようにする.

LinearLayer[n,opts]

初期重みやその他のパラメータについてのオプションを含む.

詳細とオプション

  • 次の任意のパラメータを含むことができる.
  • "Biases"Automaticバイアス(w.x+bb)の初期ベクトル
    "Weights"Automatic重み(w.x+bw)の初期行列
    LearningRateMultipliers Automatic重みおよび/またはバイアスに適用する学習率乗数
  • 重みとバイアスは,明示的に指定されていないあるいはAutomaticとして与えらえている場合は,NetInitializeあるいはNetTrainが使われたときに自動的に加えられる.
  • 設定"Biases"->Noneは,バイアスを使用しないように指定する.
  • 重みとバイアスが加えられると,LinearLayer[][input]は層を適用した結果を明示的に計算する.
  • LinearLayer[][{input1,input2,}]は,各 inputiについて明示的に出力を計算する.
  • NumericArrayが入力として与えられると,出力はNumericArrayになる.
  • NetExtractを使ってLinearLayerオブジェクトから重みとバイアスを抽出することができる.
  • LinearLayerNetChainNetGraph等の中で使われることが多い.
  • LinearLayerNetGraph等で使うために次のポートを開放する.
  • "Input"配列
    "Output"サイズ n1×n2×の配列
  • LinearLayer[{}]は,LinearLayerが単一の実数を生成するように指定する.
  • LinearLayer[n,"Input"->m]LinearLayerの最も一般的な使い方で,長さ m のベクトルを取って長さ n のベクトルを生成するLinearLayerを表す
  • より大きいネットのそれ以前の層から推測できない場合は,オプション"Input"shape を使ってLinearLayerの入力を固定することができる.次は,使用可能な shape の形である.
  • "Real"単一の実数
    m長さ m のベクトル
    {m1,m2,}次元 m1×m2×の配列
    NetEncoder[]エンコーダ
  • Options[LinearLayer]は層を構築する際のデフォルトオプションのリストを与える.Options[LinearLayer[]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
  • Information[LinearLayer[]]は層についてのレポートを与える.
  • Information[LinearLayer[],prop]LinearLayer[]の特性 prop の値を与える.使用可能な特性NetGraphと同じである.

例題

すべて開くすべて閉じる

  (2)

出力が長さ5のベクトルであるのLinearLayerを作る:

ランダムに初期化されたLinearLayerを作る:

この層を入力ベクトルに適用して出力ベクトルを生成する:

スコープ  (11)

引数  (2)

3×2行列を生成するLinearLayerを作成する:

任意の深さの出力配列を指定する:

スカラー出力に対応する空リスト:

ポート  (6)

層の"Input"ポートが長さ3のベクトルを取ると指定する:

"Input"ポートと"Output"ポートを明示的に指定する:

実数を取って実数を返す層を定義する:

初期化した層を入力に適用する:

完全に定義された"Input"ポートと"Output"ポートを持つLinearLayerは初期化できる:

初期化した層を入力に適用する:

クラスを取ってそのワンホットエンコーディングベクトルを生成するNetEncoderを定義する:

このエンコーダを層の"Input"ポートに加える:

この層をクラスの成員に適用する:

画像を取って28×28行列を生成するNetEncoderを定義する:

このエンコーダを層の"Input"ポートに加える:

この層をクラスの成員に適用する:

パラメータ  (3)

"バイアス"  (1)

LinearLayerをバイアスなしで定義して初期化する:

これはDotに等しい:

"重み"  (2)

重み行列を指定する.バイアスは使わない:

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

重みを抽出する:

特定の重み行列とバイアスベクトルを使う:

この層は完全に指定されており,初期化の必要はない:

オプション  (2)

LearningRateMultipliers  (2)

凍結した重みとバイアスがあるLinearLayerを作る:

この層が中にあるネットを訓練する:

層の重みとバイアスは変化していない:

重みは凍結しているがバイアスは層ではないLinearLayerを作る:

この層が中にあるネットを訓練する:

重みは変化していないが,バイアスは訓練中に変化した:

アプリケーション  (1)

NetChain内の線形層を積み重ねて2層パーセプトロンを作る:

パーセプトロンを「MNIST」の手書き数字のデータ集合で訓練する:

見たことのない数字を分類する:

特性と関係  (2)

LinearLayer[n]は,NetChain内で,単純に n として指定される:

ベクトルの入出力についてはLinearLayerで計算する:

LinearLayerをデータについて評価する:

同じ結果を手作業で計算する:

考えられる問題  (3)

LinearLayerは,すべての入出力次元が分かるまで初期化できない:

LinearLayerは記号入力を取れない:

出力サイズが n で入力サイズが mLinearLayerは,n×m 次元の重み行列を持つ:

nm が大きすぎる場合は,そのようなLinearLayerを含むネットの初期化あるいは訓練には,システムメモリあるいはGPUメモリが足りないかもしれない:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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