ニューラル ネットワーク サブオブジェクトのプロパティ
これらのプロパティは、ネットワークの入力、層、出力、ターゲット、バイアス、および重みの詳細を定義します。
入力
これらのプロパティは、各 i 番目のネットワーク入力の詳細を定義します。
net.inputs{1}.name
このプロパティは、入力の名前を定義する文字列で構成されます。これは、feedforwardnet
などのネットワーク作成関数で適切に定義されます。ただし、必要に応じて任意の文字列に設定できます。
net.inputs{i}.feedbackInput (読み取り専用)
このネットワークが開ループ フィードバック出力に関連付けられている場合、このプロパティは出力のインデックスを示します。そうでない場合は、空行列になります。
net.inputs{i}.processFcns
このプロパティでは、i 番目のネットワーク入力で使用される処理関数名の行 cell 配列を定義します。この処理関数は、ネットワークに使用される前の入力値に適用されます。
副作用. このプロパティを変更するたびに、入力の processParams
が、指定された処理関数の既定値に設定され、処理関数およびパラメーターを exampleInput
に適用することにより、processSettings
、processedSize
、および processedRange
が定義されます。
処理関数の一覧については、help nnprocess
と入力してください。
net.inputs{i}.processParams
このプロパティは、i 番目のネットワーク入力で使用される処理関数パラメーターの行 cell 配列を保持します。この処理パラメーターは、処理関数によって、ネットワークに使用される前の入力値に適用されます。
副作用. このプロパティを変更するたびに、処理関数およびパラメーターを exampleInput
に適用することにより、入力の processSettings
、processedSize
、および 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,:)
用途. 一部の初期化関数は、入力範囲を使用して、入力重み行列の適切な初期値を求めます。
副作用. このプロパティで行数を変更するたびに、入力の size
、processedSize
、および processedRange
がそれに整合するよう変化します。また、この入力からの重みのサイズおよび重み行列の次元も変化します。
net.inputs{i}.size
このプロパティでは、i 番目のネットワーク入力にある要素数を定義します。これは 0 または正の整数に設定されます。
副作用. このプロパティを変更するたびに、入力の range
、processedRange
、および processedSize
が更新されます。関連する入力重みのサイズも適宜変化します。
net.inputs{i}.userdata
このプロパティを使用すると、カスタム情報を i 番目のネットワーク入力に追加できます。
層
これらのプロパティは、各 i 番目のネットワーク層の詳細を定義します。
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}.distances
これは常に、層の距離関数 (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)
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)
net.layers{i}.transferFcn
このプロパティでは、シミュレーションおよび学習時に層の正味入力が与えられた場合、i 番目の層の出力を計算するために、どの伝達関数を使用するかを定義します。
関数の一覧については、help nntransfer
と入力してください。
net.layers{i}.transferParam
このプロパティでは、層の伝達関数のパラメーターを定義します。現在の伝達関数について help
を呼び出すと、各フィールドの意味についての説明が表示されます。
help(net.layers{i}.transferFcn)
net.layers{i}.userdata
このプロパティを使用すると、カスタム情報を i 番目のネットワーク層に追加できます。
出力
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
は、指定された処理関数の既定値に変更されます。processSettings
、processedSize
、および processedRange
は、処理関数およびパラメーターを exampleOutput
に適用した結果を使用して定義されます。i 番目の層のサイズは processedSize
に一致するように更新されます。
関数の一覧については、help nnprocess
と入力してください。
net.outputs{i}.processParams
このプロパティは、ターゲット値に対する i 番目のネットワーク出力で使用される処理関数パラメーターの行 cell 配列を保持します。この処理パラメーターは、処理関数によって、ネットワークに使用される前の入力値に適用されます。
副作用. このプロパティを変更するたびに、処理関数およびパラメーターを exampleOutput
に適用することにより、出力の processSettings
、processedSize
、および 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 番目の層の出力に追加できます。
バイアス
net.biases{i}.initFcn
このプロパティでは、ネットワーク初期化関数が initlay
で、i 番目の層の初期化関数が initwb
の場合に、i 番目の層のバイアス ベクトル (net.b{i}
) の設定に使用する重みおよびバイアスの初期化関数を定義します。
net.biases{i}.learn
このプロパティでは、学習および適応時に i 番目のバイアス ベクトルが変更されるかどうかを定義します。これは 0 または 1 に設定できます。
これにより、adapt
および train
を呼び出したときにバイアスの学習が有効または無効になります。
net.biases{i}.learnFcn
このプロパティでは、学習時のネットワーク学習関数が trainb
、trainc
、または 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 番目の層のバイアスに追加できます。
入力重み
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
このプロパティでは、学習時のネットワーク学習関数が trainb
、trainc
、または 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
を呼び出すと、各フィールドの説明が表示されます。
層の重み
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
このプロパティでは、学習時のネットワーク学習関数が trainb
、trainc
、または 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
を呼び出すと、各フィールドの説明が表示されます。