メインコンテンツ

network

(削除予定) 浅層カスタム ニューラル ネットワークの作成

    network は将来のリリースで削除される予定です。詳細については、Transition Legacy Neural Network Code to dlnetwork Workflowsを参照してください。

    コードの更新に関するアドバイスについては、バージョン履歴を参照してください。

    説明

    network は、新しいカスタム ネットワークを作成します。これは、feedforwardnetnarxnet などの関数によってカスタマイズされるネットワークの作成に使用されます。

    作成

    説明

    net = network は、入力、層、出力のない新しいニューラル ネットワークを返します。

    net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect) は、追加のニューラル ネットワーク オプションを指定します。

    入力引数

    すべて展開する

    入力の数。正の整数として指定します。

    層の数。正の整数として指定します。

    バイアスの結合。numLayers 行 1 列の logical ベクトルとして指定します。

    入力の結合。numLayersnumInputs 列の logical 行列として指定します。

    入力の結合。numLayersnumLayers 列の logical 行列として指定します。

    出力の結合。1 行 numLayers 列の logical ベクトルとして指定します。

    プロパティ

    すべて展開する

    一般

    ネットワーク名。string として指定します。これは、feedforwardnet などのネットワーク作成関数で適切に定義されます。ただし、必要に応じて任意の文字列に設定できます。

    ユーザー データ。構造体として指定します。

    カスタム情報をネットワーク オブジェクトに追加するための場所。1 つのフィールドのみが事前定義されています。それには、すべての Deep Learning Toolbox™ ユーザーに対する "秘密の" メッセージが含まれています。

    net.userdata.note
    

    アーキテクチャ

    入力の数。非負の整数として指定します。

    ネットワーク入力の数とネットワーク入力のサイズは同じものでは "ありません"。入力の数は、ネットワークが入力として受け取るベクトルのセット数を定義します。各入力のサイズ (つまり、各入力ベクトルの要素数) は、入力サイズ (net.inputs{i}.size) によって決まります。

    ほとんどのネットワークには、入力が 1 つだけあり、そのサイズは問題によって決まります。

    このプロパティを変更すると、入力から層への結合を定義する行列のサイズ (net.inputConnect) および入力サブオブジェクトの cell 配列のサイズ (net.inputs) が変化します。

    層の数。非負の整数として指定します。

    このプロパティを変更すると、層との結合を定義する、以下の各ブール行列のサイズが変化します。

    net.biasConnect
    net.inputConnect
    net.layerConnect
    net.outputConnect
    

    また、サイズが層の数に依存する、サブオブジェクト構造体の各 cell 配列のサイズが変化します。

    また、サイズが層の数に依存する、サブオブジェクト構造体の各 cell 配列のサイズが変化します。

    さらに、ネットワークの調整可能パラメーターにある各プロパティのサイズも変化します。

    net.IW
    net.LW
    net.b
    

    バイアスの結合。numLayers 行 1 列の logical ベクトルとして指定します。

    net.biasConnect(i) が 1 の場合、層 i にはバイアスがあり、net.biases{i} はそのバイアスを記述する構造体です。

    このプロパティを変更すると、バイアスの cell 配列 (net.biases) 内の構造体の有無とバイアス ベクトルの cell 配列 (net.b) 内のベクトルの有無が変化します。

    入力の結合。numLayersnumInputs 列の logical 行列として指定します。

    net.inputConnect(i,j) が 1 の場合、層 i には入力 j から得られる重みがあり、net.inputWeights{i,j} はその重みを記述する構造体です。

    このプロパティを変更すると、入力重みサブオブジェクトの cell 配列 (net.inputWeights) 内の構造体の有無と入力重み行列の cell 配列 (net.IW) 内の行列の有無が変化します。

    層の結合。numLayernumLayers 列の logical ベクトルとして指定します。

    net.layerConnect(i,j) が 1 の場合、層 i には層 j から得られる重みがあり、net.layerWeights{i,j} はその重みを記述する構造体です。

    このプロパティを変更すると、層の重みサブオブジェクトの cell 配列 (net.layerWeights) における構造体の有無と層の重み行列の cell 配列 (net.LW) における行列の有無が変化します。

    出力の結合。1 行 numLayers 列の logical ベクトルとして指定します。

    net.outputConnect(i) が 1 の場合、ネットワークには層 i からの出力があり、net.outputs{i} はその出力を記述する構造体です。

    このプロパティを変更すると、ネットワーク出力の数 (net.numOutputs) と出力サブオブジェクトの cell 配列 (net.outputs) 内の構造体の有無が変化します。

    この プロパティ は読み取り専用です。

    net.outputConnect に応じたネットワーク出力の数。非負の整数として指定します。

    この プロパティ は読み取り専用です。

    すべての net.layerWeights{i,j}.delays に応じた層の遅延の最大値。非負の整数として指定します。

    このプロパティは、ネットワークのシミュレーションを行うために指定しなければならない過去の層出力のタイム ステップ数を示します。これは常に、ネットワークの層の重みに関連付けられた遅延の最大値に設定されます。

    numLayerDelays = 0;
    for i=1:net.numLayers
      for j=1:net.numLayers
        if net.layerConnect(i,j)
          numLayerDelays = max( ...
           [numLayerDelays net.layerWeights{i,j}.delays]);
        end
      end
    end
    

    この プロパティ は読み取り専用です。

    ネットワーク内の重みとバイアスの値の数。非負の整数として指定します。これは、次の 2 つの cell 配列に格納される行列の要素数の和です。

    net.IW
    new.b
    

    サブオブジェクト構造

    入力。numInputs 行 1 列の cell 配列として指定します。

    net.inputs{i} は、入力 i を定義する構造体です。

    ニューラル ネットワークにある入力が 1 つだけの場合、次のように cell 配列表記なしで net.inputs{1} にアクセスできます。

    net.input

    入力オブジェクトには次のプロパティがあります。

    Property説明
    net.inputs{i}.name

    入力の名前を定義する文字列。これは、feedforwardnet などのネットワーク作成関数で適切に定義されます。ただし、必要に応じて任意の文字列に設定できます。

    net.inputs{i}.feedbackInput (読み取り専用)

    このネットワークが開ループ フィードバック出力に関連付けられている場合、このプロパティは出力のインデックスを示します。そうでない場合は、空行列になります。

    net.inputs{i}.processFcns

    i 番目のネットワーク入力で使用される処理関数名の行 cell 配列。この処理関数は、ネットワークに使用される前の入力値に適用されます。

    このプロパティを変更するたびに、入力の processParams が、指定された処理関数の既定値に設定され、処理関数およびパラメーターを exampleInput に適用することにより、processSettingsprocessedSize、および processedRange が定義されます。

    処理関数の一覧については、help nnprocess と入力してください。

    net.inputs{i}.processParams

    i 番目のネットワーク入力で使用される処理関数パラメーターの行 cell 配列。この処理パラメーターは、処理関数によって、ネットワークに使用される前の入力値に適用されます。

    このプロパティを変更するたびに、処理関数およびパラメーターを exampleInput に適用することにより、入力の processSettingsprocessedSize、および processedRange が定義されます。

    net.inputs{i}.processSettings (読み取り専用)

    i 番目のネットワーク入力で使用される処理関数設定の行 cell 配列。この処理設定は、処理関数およびパラメーターを exampleInput に適用することによって求められ、整合する結果を、ネットワークに使用される前の新しい入力値に提供するために使用されます。

    net.inputs{i}.processedRange (読み取り専用)

    processingFcns および processingParams で処理された後の exampleInput の値の範囲。

    net.inputs{i}.processedSize (読み取り専用)

    processingFcns および processingParams で処理された後の exampleInput の値にある行の数。

    net.inputs{i}.range

    i 番目のネットワーク入力の各要素の範囲。

    これは任意の Ri 行 2 列の行列に設定できます。ここで、Ri は入力の要素数 (net.inputs{i}.size) であり、列 1 の各要素は、隣にある列 2 の要素より小さい値です。

    j 番目の行では、j 番目の要素の最小値と最大値をその順序で定義します。

    net.inputs{i}(j,:)
    

    一部の初期化関数は、入力範囲を使用して、入力重み行列の適切な初期値を求めます。

    このプロパティで行数を変更するたびに、入力の sizeprocessedSize、および processedRange がそれに整合するよう変化します。また、この入力からの重みのサイズおよび重み行列の次元も変化します。

    net.inputs{i}.size

    i 番目のネットワーク入力にある要素数。これは 0 または正の整数に設定されます。

    このプロパティを変更するたびに、入力の rangeprocessedRange、および processedSize が更新されます。関連する入力重みのサイズも適宜変化します。

    net.inputs{i}.userdata

    カスタム情報を i 番目のネットワーク入力に追加するための場所。

    層。numLayers 行 1 列の cell 配列として指定します。

    net.layers{i} は、層 i を定義する構造体です。

    層オブジェクトには次のプロパティがあります。

    Property説明
    net.layers{i}.name

    層の名前を定義する文字列。これは、feedforwardnet などのネットワーク作成関数で適切に定義されます。ただし、必要に応じて任意の文字列に設定できます。

    net.layers{i}.dimensions

    i 番目の層のニューロンの "物理" 次元。自己組織化マップでは、層のニューロンを多次元に配置できることが重要です。

    これは 0 または正の整数の要素から成る任意の行ベクトルに設定できます。ここで、すべての要素の積は層内のニューロンの数 (net.layers{i}.size) になります。

    層の次元は、層のトポロジ関数 (net.layers{i}.topologyFcn) を使用した層内のニューロンの位置 (net.layers{i}.positions) の計算に使用されます。

    このプロパティを変更するたびに、層のサイズ (net.layers{i}.size) がそれに整合するよう変化します。層のニューロンの位置 (net.layers{i}.positions) およびニューロン間の距離 (net.layers{i}.distances) も更新されます。

    net.layers{i}.distanceFcn

    ニューロンの positions から i 番目の層内のニューロン間の distances を計算するために、どの距離関数を使用するか。ニューロンの距離は自己組織化マップで使用されます。これは任意の距離関数の名前に設定できます。

    関数の一覧については、help nndistance と入力してください。

    このプロパティを変更するたびに、層のニューロン間の距離 (net.layers{i}.distances) が更新されます。

    net.layers{i}.distances (読み取り専用)

    i 番目の層にあるニューロン間の距離。これらの距離は自己組織化マップで使用されます。

    これは常に、層の距離関数 (net.layers{i}.distanceFcn) を層のニューロンの位置 (net.layers{i}.positions) に適用した結果に設定されます。

    net.layers{i}.initFcn

    ネットワーク初期化関数 (net.initFcn) が initlay の場合、i 番目の層を初期化するために、どの層初期化関数を使用するか。ネットワーク初期化が initlay に設定されている場合、このプロパティで示された関数が層の重みとバイアスの初期化に使用されます。

    net.layers{i}.netInputFcn

    シミュレーションおよび学習時に層の重み付き入力およびバイアスが与えられた場合、i 番目の層の正味入力を計算するために、どの正味入力関数を使用するか。

    関数の一覧については、help nnnetinput と入力してください。

    net.layers{i}.netInputParam

    層の正味入力関数のパラメーター。現在の正味入力関数について help を呼び出すと、各フィールドの説明が表示されます。

    help(net.layers{i}.netInputFcn)
    
    net.layers{i}.positions (読み取り専用)

    i 番目の層にあるニューロンの位置。これらの位置は自己組織化マップで使用されます。

    これは常に、層のトポロジ関数 (net.layers{i}.topologyFcn) を層の次元の位置 (net.layers{i}.dimensions) に適用した結果に設定されます。

    層のニューロンの位置をプロットするには、plotsom を使用します。

    たとえば、ネットワークの最初の層のニューロンが [4 5] の次元 (net.layers{1}.dimensions) で配置され、トポロジ関数 (net.layers{1}.topologyFcn) が hextop である場合、ニューロンの位置は次のようにプロットできます。

    plotsom(net.layers{1}.positions)
    

    Self-organizing map showing neuron positions. The function arranges the neurons in a hexagonal pattern.

    net.layers{i}.range (読み取り専用)

    i 番目の層の各ニューロンの出力範囲。

    Si 行 2 列の行列に設定します。ここで、Si は層にあるニューロンの数 (net.layers{i}.size) であり、列 1 の各要素は、隣にある列 2 の要素より小さい値です。

    j 番目の行では、層の伝達関数 net.layers{i}.transferFcn の最小および最大の出力値を定義します。

    net.layers{i}.size

    i 番目の層にあるニューロンの数。これは 0 または正の整数に設定されます。

    このプロパティを変更するたびに、層への入力重みのサイズ (net.inputWeights{i,:}.size)、層への層の重みのサイズ (net.layerWeights{i,:}.size) または層からの層の重みのサイズ (net.layerWeights{i,:}.size)、および層のバイアスのサイズ (net.biases{i}.size) が変化します。

    また、対応する重み行列 (net.IW{i,:}net.LW{i,:}net.LW{:,i}) およびバイアス (net.b{i}) の次元も変化します。

    このプロパティを変更すると、層の出力のサイズ (net.outputs{i}.size) およびターゲットのサイズ (net.targets{i}.size) が存在する場合は、それらのサイズも変化します。

    最後に、このプロパティを変更すると、層のニューロンの次元 (net.layers{i}.dimension) が同じ値に設定されます (これにより、ニューロンが 1 次元配置になります。別の配置が必要な場合は、size を使用する代わりに、dimensions プロパティを直接設定します)。

    net.layers{i}.topologyFcn

    層の次元 (net.layers{i}.dimensions) から i 番目の層のニューロンの位置 (net.layers{i}.positions) を計算するために、どのトポロジ関数を使用するか。

    関数の一覧については、help nntopology と入力してください。

    このプロパティを変更するたびに、層のニューロンの位置 (net.layers{i}.positions) が更新されます。

    plotsom を使用して、層のニューロンの位置をプロットします。たとえば、ネットワークの最初の層のニューロンが [8 10] の次元 (net.layers{1}.dimensions) で配置され、トポロジ関数 (net.layers{1}.topologyFcn) が randtop である場合、ニューロンの位置は次のプロットに似た配置になります。

    plotsom(net.layers{1}.positions)
    

    Self-organizing map showing neuron positions

    net.layers{i}.transferFcn

    シミュレーションおよび学習時に層の正味入力が与えられた場合、i 番目の層の出力を計算するために、どの伝達関数を使用するか。

    関数の一覧については、help nntransfer と入力してください。

    net.layers{i}.transferParam

    層の伝達関数のパラメーター。現在の伝達関数について help を呼び出すと、各フィールドの意味についての説明が表示されます。

    help(net.layers{i}.transferFcn)
    
    net.layers{i}.userdata

    このプロパティを使用すると、カスタム情報を i 番目のネットワーク層に追加できます。

    バイアス。numLayers 行 1 列の cell 配列として指定します。

    net.biasConnect(i) が 1 の場合、net.biases{i} は層 i のバイアスを定義する構造体です。

    バイアス オブジェクトには次のプロパティがあります。

    Property説明
    net.biases{i}.initFcn

    ネットワーク初期化関数が initlay で、i 番目の層の初期化関数が initwb の場合、i 番目の層のバイアス ベクトル (net.b{i}) の設定に使用する重みおよびバイアスの初期化関数。

    net.biases{i}.learn

    学習および適応時に i 番目のバイアス ベクトルが変更されるかどうか。これは 0 または 1 に設定できます。

    これにより、adapt および train を呼び出したときにバイアスの学習が有効または無効になります。

    net.biases{i}.learnFcn

    学習時のネットワーク学習関数が trainbtrainc、または trainr の場合、あるいは適応時のネットワーク適応関数が trains の場合に、i 番目の層のバイアス ベクトル (net.b{i}) を更新するために、どの学習関数を使用するか。

    関数の一覧については、help nnlearn と入力してください。

    このプロパティを変更するたびに、バイアスの学習パラメーター (net.biases{i}.learnParam) が、新しい関数のフィールドと既定値を含むように設定されます。

    net.biases{i}.learnParam

    i 番目の層のバイアスに対する現在の学習関数の学習パラメーターおよび値。このプロパティのフィールドは、現在の学習関数によって異なります。現在の学習関数について help を呼び出すと、各フィールドの意味についての説明が表示されます。

    net.biases{i}.size (読み取り専用)

    i 番目の層のバイアス ベクトルのサイズ。これは常に、i 番目の層のサイズ (net.layers{i}.size) に設定されます。

    net.biases{i}.userdata

    このプロパティを使用すると、カスタム情報を i 番目の層のバイアスに追加できます。

    入力の重み。numLayersnumLayers 列の cell 配列として指定します。

    net.inputConnect(i,j) が 1 の場合、net.inputWeights{i,j} は入力 j から層 i への重みを定義する構造体です。

    入力重みオブジェクトには次のプロパティがあります。

    Property説明
    net.inputWeights{i,j}.delays

    j 番目の入力と i 番目の層に対するその重みの間のタップ付き遅延線。値が昇順に並んだ行ベクトルに設定しなければなりません。要素は、0 または正の整数でなければなりません。

    このプロパティを変更するたびに、重みのサイズ (net.inputWeights{i,j}.size) およびその重み行列の次元 (net.IW{i,j}) が更新されます。

    net.inputWeights{i,j}.initFcn

    ネットワーク初期化関数が initlay で、i 番目の層の初期化関数が initwb である場合、j 番目の入力から i 番目の層への重み行列 (net.IW{i,j}) を初期化するために、重みおよびバイアスのどの初期化関数を使用するか。この関数は、任意の重み初期化関数の名前に設定できます。

    net.inputWeights{i,j}.initSettings (読み取り専用)

    ネットワークに初めて学習させるとき、または関数 configure がネットワークに対して直接呼び出されたときに自動的に発生する構成プロセスの一環として重みを初期化するのに役に立つ値。

    net.inputWeights{i,j}.learn

    学習および適応時に j 番目の入力から i 番目の層への重み行列が変更されるかどうか。これは 0 または 1 に設定できます。

    net.inputWeights{i,j}.learnFcn

    学習時のネットワーク学習関数が trainbtrainc、または trainr の場合、あるいは適応時のネットワーク適応関数が trains の場合に、j 番目の入力から i 番目の層への重み行列 (net.IW{i,j}) を更新するために、どの学習関数を使用するか。これは任意の重み学習関数の名前に設定できます。

    関数の一覧については、help nnlearn と入力してください。

    net.inputWeights{i,j}.learnParam

    j 番目の入力からの i 番目の層の重みに対する現在の学習関数の学習パラメーターおよび値。

    このプロパティのフィールドは、現在の学習関数 (net.inputWeights{i,j}.learnFcn) によって異なります。現在の学習関数のフィールドを確認するには、上記の参照を評価します。

    現在の学習関数について help を呼び出すと、各フィールドの意味についての説明が表示されます。

    net.inputWeights{i,j}.size (読み取り専用)

    j 番目のネットワーク入力からの i 番目の層の重み行列の次元。これは常に、関連付けられた重み行列 (net.IW{i,j}) の行と列の数を示す 2 要素行ベクトルに設定されます。最初の要素は i 番目の層のサイズ (net.layers{i}.size) に等しくなります。2 番目の要素は、重みの遅延ベクトルの長さと j 番目の入力のサイズの積に等しくなります。

    length(net.inputWeights{i,j}.delays) * net.inputs{j}.size
    
    net.inputWeights{i,j}.userdata

    カスタム情報を (i,j) 番目の入力重みに追加するための場所。

    net.inputWeights{i,j}.weightFcn

    j 番目の入力から i 番目の層への重みをその入力に適用するために、どの重み関数を使用するか。これは任意の重み関数の名前に設定できます。重み関数は、シミュレーションおよび学習時に層の入力を変換するために使用します。

    関数の一覧については、help nnweight と入力してください。

    net.inputWeights{i,j}.weightParam

    層の正味入力関数のパラメーター。現在の正味入力関数について help を呼び出すと、各フィールドの説明が表示されます。

    層の重み。numLayersnumLayers 列の cell 配列として指定します。

    net.layerConnect(i,j) が 1 の場合、net.layerWeights{i,j} は層 j から層 i への重みを定義する構造体です。

    層の重みオブジェクトには次のプロパティがあります。

    Property説明
    net.layerWeights{i,j}.delays

    j 番目の層と i 番目の層に対するその重みの間のタップ付き遅延線。値が昇順に並んだ行ベクトルに設定しなければなりません。要素は、0 または正の整数でなければなりません。

    net.layerWeights{i,j}.initFcn

    ネットワーク初期化関数が initlay で、i 番目の層の初期化関数が initwb である場合、j 番目の層から i 番目の層への重み行列 (net.LW{i,j}) を初期化するために、重みおよびバイアスのどの初期化関数を使用するか。この関数は、任意の重み初期化関数の名前に設定できます。

    net.layerWeights{i,j}.initSettings (読み取り専用)

    ネットワークに初めて学習させるとき、または関数 configure がネットワークに対して直接呼び出されたときに自動的に発生する構成プロセスの一環として重みを初期化するのに役に立つ値。

    net.layerWeights{i,j}.learn

    学習および適応時に j 番目の層から i 番目の層への重み行列が変更されるかどうか。これは 0 または 1 に設定できます。

    net.layerWeights{i,j}.learnFcn

    学習時のネットワーク学習関数が trainbtrainc、または trainr の場合、あるいは適応時のネットワーク適応関数が trains の場合、j 番目の層から i 番目の層への重み行列 (net.LW{i,j}) を更新するために、どの学習関数を使用するか。これは任意の重み学習関数の名前に設定できます。

    関数の一覧については、help nnlearn と入力してください。

    net.layerWeights{i,j}.learnParam

    j 番目の層からの i 番目の層の重みに対する現在の学習関数の学習パラメーター フィールドおよび値。このプロパティのフィールドは、現在の学習関数によって異なります。現在の正味入力関数について help を呼び出すと、各フィールドの説明が表示されます。

    net.layerWeights{i,j}.size (読み取り専用)

    j 番目の層からの i 番目の層の重み行列の次元。これは常に、関連付けられた重み行列 (net.LW{i,j}) の行と列の数を示す 2 要素行ベクトルに設定されます。最初の要素は i 番目の層のサイズ (net.layers{i}.size) に等しくなります。2 番目の要素は、重みの遅延ベクトルの長さと j 番目の層のサイズの積に等しくなります。

    net.layerWeights{i,j}.userdata

    カスタム情報を (i,j) 番目の層の重みに追加するための場所。

    net.layerWeights{i,j}.weightFcn

    j 番目の層から i 番目の層への重みをその層の出力に適用するために、どの重み関数を使用するか。これは任意の重み関数の名前に設定できます。重み関数は、ネットワークのシミュレーション時に層の入力を変換するために使用します。

    関数の一覧については、help nnweight と入力してください。

    net.layerWeights{i,j}.weightParam

    層の正味入力関数のパラメーター。現在の正味入力関数について help を呼び出すと、各フィールドの説明が表示されます。

    出力。1 行 numLayers 列の cell 配列として指定します。

    net.outputConnect(i) が 1 の場合、net.outputs{i} は層 i からのネットワーク出力を定義する構造体です。

    ニューラル ネットワークの層 i にある出力が 1 つだけの場合、次のように cell 配列表記なしで net.outputs{i} にアクセスできます。

    net.output

    出力オブジェクトには次のプロパティがあります。

    Property説明
    net.outputs{i}.name

    出力の名前を定義する文字列。これは、feedforwardnet などのネットワーク作成関数で適切に定義されます。ただし、必要に応じて任意の文字列に設定できます。

    net.outputs{i}.feedbackInput

    出力に開ループ フィードバックが実装されている場合 (net.outputs{i}.feedbackMode = 'open')、このプロパティは、関連付けられたフィードバック入力のインデックスを示します。そうでない場合は、空行列です。

    net.outputs{i}.feedbackDelay

    この出力とネットワーク入力の間におけるタイム ステップの差。入力から出力までのネットワークの遅延は、関数 removedelay および adddelay を使用して削除および追加することができ、その結果、このプロパティはそれぞれ増加または減少します。入出力間のタイミング差は、preparets でシミュレーション データおよび学習データの適切な整形に使用され、また、closeloop で開ループ出力を閉じる際の正しい遅延数の追加に、さらに openloop で閉ループを開く際の遅延の削除に使用されます。

    net.outputs{i}.feedbackMode

    非フィードバック出力の場合、文字列 'none'。フィードバック出力の場合、'open' または 'closed' に設定できます。'open' に設定した場合、出力はフィードバック入力に関連付けられ、プロパティ feedbackInput に入力のインデックスが指定されます。

    net.outputs{i}.processFcns

    i 番目のネットワーク出力で使用される処理関数名の行 cell 配列。この処理関数は、ネットワークに使用される前のターゲット値に適用され、ネットワークの出力値として返される前の、層の出力値に逆方向に適用されます。

    このプロパティを変更すると、以下の設定にも影響を与えます。出力パラメーター processParams は、指定された処理関数の既定値に変更されます。processSettingsprocessedSize、および processedRange は、処理関数およびパラメーターを exampleOutput に適用した結果を使用して定義されます。i 番目の層のサイズは processedSize に一致するように更新されます。

    関数の一覧については、help nnprocess と入力してください。

    net.outputs{i}.processParams

    ターゲット値に対する i 番目のネットワーク出力で使用される処理関数パラメーターの行 cell 配列。この処理パラメーターは、処理関数によって、ネットワークに使用される前の入力値に適用されます。

    このプロパティを変更するたびに、処理関数およびパラメーターを exampleOutput に適用することにより、出力の processSettingsprocessedSize、および processedRange が定義されます。i 番目の層のサイズも processedSize に一致するように更新されます。

    net.outputs{i}.processSettings (読み取り専用)

    i 番目のネットワーク出力で使用される処理関数設定の行 cell 配列。この処理設定は、処理関数およびパラメーターを exampleOutput に適用することによって求められ、整合する結果を、ネットワークに使用される前の新しいターゲット値に提供するために使用されます。また、処理設定は、ネットワークによって返される前の層の出力値に、逆方向に適用されます。

    net.outputs{i}.processedRange (読み取り専用)

    processingFcns および processingParams で処理された後の exampleOutput の値の範囲。

    net.outputs{i}.processedSize (読み取り専用)

    processingFcns および processingParams で処理された後の exampleOutput の値にある行の数。

    net.outputs{i}.size (読み取り専用)

    i 番目の層の出力にある要素数。これは常に、i 番目の層のサイズ (net.layers{i}.size) に設定されます。

    net.outputs{i}.userdata

    カスタム情報を i 番目の層の出力に追加するための場所。

    関数

    ネットワーク適応関数。string として指定します。

    ネットワーク適応関数の名前または ''

    adapt が呼び出されると、常にこのネットワーク適応関数を使用して適応が行われます。

    [net,Y,E,Pf,Af] = adapt(NET,P,T,Pi,Ai)
    

    関数の一覧については、help nntrain と入力してください。

    このプロパティを変更するたびに、ネットワークの適応パラメーター (net.adaptParam) が、新しい関数のパラメーターと既定値を含むように設定されます。

    導関数。string として指定します。

    このプロパティでは、逆伝播などの教師ありアルゴリズムを使用してネットワークに学習させるときに、誤差の勾配およびヤコビアンを計算するために使用する導関数を定義します。このプロパティは、任意の導関数の名前に設定できます。

    関数の一覧については、help nnderivative と入力してください。

    データ分割関数。string として指定します。

    このプロパティでは、逆伝播などの教師ありアルゴリズムを使用してネットワークに学習させるときに使用するデータ分割関数を定義します。このプロパティは、分割関数の名前に設定できます。

    関数の一覧については、help nndivision と入力してください。

    このプロパティを変更するたびに、ネットワークの適応パラメーター (net.divideParam) が、新しい関数のパラメーターと既定値を含むように設定されます。

    ネットワーク初期化関数。string として指定します。

    このプロパティでは、ネットワークの重み行列およびバイアス ベクトルを初期化するために使用する関数を定義します。init が呼び出されると、常にこの初期化関数を使用してネットワークが初期化されます。

    net = init(net)
    

    このプロパティを変更するたびに、ネットワークの初期化パラメーター (net.initParam) が、新しい関数のパラメーターと既定値を含むように設定されます。

    ネットワーク性能関数。string として指定します。

    このプロパティでは、ネットワークの性能を測定するときに使用する関数を定義します。train が呼び出されると、学習時には常にこの性能関数を使用してネットワーク性能が計算されます。

    [net,tr] = train(NET,P,T,Pi,Ai)
    

    関数の一覧については、help nnperformance と入力してください。

    このプロパティを変更するたびに、ネットワークの性能パラメーター (net.performParam) が、新しい関数のパラメーターと既定値を含むように設定されます。

    プロット関数。cell 配列として指定します。

    このプロパティは、ネットワークに関連付けられるプロット関数を定義する文字列の行 cell 配列で構成されます。train 関数によって開かれるニューラル ネットワーク学習ウィンドウに、各プロット関数のボタンが表示されます。学習時または学習後にボタンをクリックすると目的のプロットが開きます。

    ネットワーク学習関数。string として指定します。

    このプロパティでは、ネットワークに学習させるときに使用する関数を定義します。これは train が呼び出されたときに常にネットワークの学習に使用される、任意の学習関数の名前に設定できます。

    [net,tr] = train(NET,P,T,Pi,Ai)
    

    関数の一覧については、help nntrain と入力してください。

    パラメーター

    ネットワーク適応パラメーター。パラメーター オブジェクトとして指定します。

    現在の適応関数について help を呼び出すと、各フィールドの意味についての説明が表示されます。

    help(net.adaptFcn)
    

    ネットワーク データ分割パラメーター。パラメーター オブジェクトとして指定します。

    このプロパティでは、現在のデータ分割関数のパラメーターおよび値を定義します。各フィールドの意味についての説明を表示するには、次のコマンドを入力します。

    help(net.divideFcn)
    

    データ分割モード。string として指定します。

    このプロパティでは、データ分割関数が呼び出されたときに分割するターゲット データ次元を定義します。その既定値は、静的ネットワークでは 'sample' で、動的ネットワークでは 'time' です。また、サンプルとタイム ステップの両方でターゲットを分割する場合は 'sampletime'、すべてのスカラー値でターゲットを分割する場合は 'all'、データをまったく分割しない場合は 'none' (この場合、すべてのデータが学習に使用され、検証またはテストには使用されません) に設定できます。

    ネットワーク初期化パラメーター。パラメーター オブジェクトとして指定します。

    このプロパティでは、現在の初期化関数のパラメーターおよび値を定義します。現在の初期化関数について help を呼び出すと、各フィールドの意味についての説明が表示されます。

    help(net.initFcn)
    

    ネットワーク初期化パラメーター。パラメーター オブジェクトの cell 配列として指定します。

    このプロパティは、net.plotFcns 内の各プロット関数のパラメーターおよび値を定義するパラメーター オブジェクトの行 cell 配列で構成されます。各プロット関数について help を呼び出すと、各フィールドの意味についての説明が表示されます。

    help(net.plotFcns{i})
    

    学習関数パラメーター。パラメーター オブジェクトとして指定します。

    このプロパティでは、現在の学習関数のパラメーターおよび値を定義します。現在の学習関数について help を呼び出すと、各フィールドの意味についての説明が表示されます。

    help(net.trainFcn)
    

    重みとバイアスの値

    入力の重み値。入力の重み値の numLayersnumInputs 列の cell 配列として指定します。

    net.inputConnect(i,j)1 (または 0) の場合、j 番目の入力から i 番目の層への重みを表す重み行列 (または null 行列 []) が net.IW{i,j} にあります。

    重み行列には、その適用先の層のサイズ (net.layers{i}.size) に等しい数の行があります。また、入力サイズと重みに関連付けられた遅延の数の積に等しい数の列があります。

    net.inputs{j}.size * length(net.inputWeights{i,j}.delays)
    

    一部のネットワークでは、前処理関数 net.inputs{i}.processFcns が既定で 'removeconstantrows' として指定されています。そのため、ネットワーク入力 X に、すべての行要素の値が同じである m 行が含まれる場合、重み行列の列数は上記の積よりも m 個少なくなります。ネットワーク入力 X の詳細については、train を参照してください。

    これらの次元は、次の入力重みプロパティからも得られます。

    net.inputWeights{i,j}.size
    

    層の重み値。層の重み値の numLayersnumLayers 列の cell 配列として指定します。

    net.layerConnect(i,j) が 1 (または 0) の場合、j 番目の層から i 番目の層への重みを表す重み行列 (または null 行列 []) が net.LW{i,j} にあります。

    重み行列には、その適用先の層のサイズ (net.layers{i}.size) に等しい数の行があります。重みの出所である層のサイズと重みに関連付けられた遅延の数の積に等しい数の列があります。

    net.layers{j}.size * length(net.layerWeights{i,j}.delays)
    

    これらの次元は、次の層の重みプロパティからも得られます。

    net.layerWeights{i,j}.size
    

    バイアス値。バイアス値の numLayers 行 1 列の cell 配列として指定します。

    net.biasConnect(i) が 1 (または 0) の場合、i 番目の層のバイアス ベクトル (または null 行列 []) が net.b{i} にあります。

    バイアス ベクトルの要素数は、そのバイアスが関連付けられている層のサイズ (net.layers{i}.size) に常に等しくなります。

    この次元は、次のバイアス プロパティからも得られます。

    net.biases{i}.size
    

    1 つの入力と 2 つの層があるネットワークの作成

    この例では、入力と層がないネットワークを作成し、入力と層の数をそれぞれ 1 と 2 に設定する方法を説明します。

    net = network
    net.numInputs = 1
    net.numLayers = 2
    

    または、1 行のコードで同じネットワークを作成できます。

    net = network(1,2)
    

    バージョン履歴

    R2006a より前に導入

    すべて折りたたむ