ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ニューラル ネットワーク サブオブジェクトのプロパティ

これらのプロパティは、ネットワークの入力、層、出力、ターゲット、バイアス、および重みの詳細を定義します。

入力

これらのプロパティは、各 i 番目のネットワーク入力の詳細を定義します。

net.inputs{1}.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 番目のネットワーク入力に追加できます。

これらのプロパティは、各 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 は、指定された処理関数の既定値に変更されます。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 番目の層の出力に追加できます。

バイアス

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 番目の層のバイアスに追加できます。

入力の重み

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 を呼び出すと、各フィールドの説明が表示されます。

層の重み

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 を呼び出すと、各フィールドの説明が表示されます。