NetFoldOperator

NetFoldOperator[net]

net が入力列上に折りたたまれて再帰状態を維持するネットを表す.

NetFoldOperator[net,{"outi""in1",}]

各ステップの outiを次のステップの iniにフィードバックすることで再帰状態を保ちながら net が入力上にたたまれるネットを表す.

NetFoldOperator[net,feedback,{"const1","const2",}]

net への入力 constiを,重ね合されたのではなく一定なものとして扱う.

NetFoldOperator[net,feedback,constants,{"out1",}]

指定された出力 outiの値の列を返す.

詳細とオプション

  • NetFoldOperator[net]NetFoldOperator[net,{"Output"->"State"}]に等しく,たたまれたネットの"Output"と呼ばれる出力が"State"と呼ばれる入力にフィードバックされるように指定する.
  • NetFoldOperator[]は,1つまたは複数の列を取って1つまたは複数の同じ長さの列を出力するネットを表す.
  • NetFoldOperator[net,{"out1""in1",}]は,"outi"->"ini"を含むフィードバックの1つで与えられる iniを除いて,net と同じ入力を取る.
  • NetFoldOperator[net,feedback,constants]は,feedback または constants で指定されたものではない任意の入力を重ね合せる.重ね合された入力はすべて同じ長さでなければならない.
  • net"Input"および"State"という名前の2つの入力と"Output"という名前の1つの出力を持つ典型的な場合では,NetFoldOperator[net]からの1つの引数が"Input"という名前の単一の入力列{x1,x2,,xn}を取り,事実上 net[<|"Input"->xi,"State"->si-1|>]を使って si を計算するためにネットを xisi-1に繰り返し適用することで,"Output"という名前の状態の列{s1,s2,,sn}を生成する.初期状態 s0は0の配列である.
  • NetGraph内では,src->NetPort[layer,"state"]という形式の接続を使って,NetFoldOperatorの再帰状態の初期値を与えることができる.同様に,NetPort[layer,"state"]->dst という形式の接続を使って再帰状態の最終値を得ることができる.これらの状態は,未接続のままに置かれると,NetStateObjectで追跡することができる.
  • NetFoldOperator[net,{"out1""in1",}]は,値がフィードバックされるすべての反復ポート iniに名前が付けられた状態ポートを持つ.
  • NetFoldOperator[net,]は,net の,重ね合される各列要素につき1つの,複数のコピー間で重みを共有する形式を許すものと見られる.
  • NetFoldOperator[,"Input"->shape]で入力の形が指定できる.次は,shape の可能な形式である.
  • NetEncoder[]配列を作るエンコーダ
    n長さ n のベクトル
    {n1,n2,}次元 n1×n2×の配列
    "Varying"可変長のベクトル
    {"Varying",n2,n3,}最初の次元が可変長で残りの次元が n2×n3×である配列
  • 次の訓練パラメータも含めることができる.
  • LearningRateMultipliersAutomaticネット中の訓練可能な配列の学習率乗数
  • Options[NetFoldOperator]は層を構築する際のデフォルトオプションのリストを与える.Options[NetFoldOperator[]]はデータについて層を評価する際のデフォルトオプションのリストを与える.
  • Information[NetFoldOperator[]]は層についてのレポートを与える.
  • Information[NetFoldOperator[],prop]NetFoldOperator[]の特性 prop の値を与える.使用可能な特性NetGraphと同じである.

例題

すべて開くすべて閉じる

  (1)

状態と入力を取って出力を生成する「コア」ネットを作る:

コアを入力について評価する:

コアを使い配列の列に作用するNetFoldOperatorを作る:

長さ2のベクトルの入力列についてネットを評価する:

スコープ  (5)

状態と入力の重み付き平均を取るネットを作る:

このネットを入力と状態に適用する:

NetFoldOperatorを使って入力列の平均を折りたたむ高次ネットを作る:

実数列に累積器を折りたたむ:

NetMapOperatorを使って画像の色チャンネルに折りたたみ器をマップする.結果として画像の行が累積される:

演算子を画像に適用する:

折りたたみ操作中に使われる一定の入力を取るネットを作る:

定数の値を与えて,このネットを入力列に適用する:

フィードバックされた2つの独立状態を持つネットを作る.これらの状態は,最終出力列を与える際に追加的に使われる:

入力列が与えられた際に出力列を得る:

単純な非線形関数を使って2つの列からの要素を再帰状態と組み合せるネットを構築する:

入力列が与えられた際に出力列を得る:

最終状態を得る:

NetFoldOperatorの初期状態と最終状態がセットかつ入手できるNetGraphを作る:

初期状態を与えてこのネットを入力列に適用する:

最終状態は出力列の最終要素である:

初期状態と最終状態がより大きいネットから来たのでなければ,NetGraphを使わずにNetPort[All,"States"]を使ってそれらを制御することも可能である:

アプリケーション  (1)

xとyおよびLessGreaterEqualのいずれかを含む文字列に基づいて,xとyの数を比較することで訓練データを作る.訓練データは8文字までの可能なすべての文からなる:

状態サイズが5でRampアクティベーションを使う基本回帰層によって1回のタイムステップで行われる計算を表すNetGraphを定義する:

前のNetGraphNetFoldOperatorに埋め込んで文に適用できるようにする:

前に定義された,入力文字列を読んでLessGreaterEqualのいずれか一つを予測するNetFoldOperatorでネットを作る:

このネットワークを訓練する:

訓練されたネットワークを入力リストに適用する:

訓練集合全体の確度を測定する:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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