network
浅層カスタム ニューラル ネットワークの作成
構文
net = network
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)
説明
network
は、新しいカスタム ネットワークを作成します。これは、feedforwardnet
、narxnet
などの関数によってカスタマイズされるネットワークの作成に使用されます。
引数なしの net = network
は、入力、層、出力のない新しいニューラル ネットワークを返します。
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)
は、次のオプションの引数を取ります (既定値と共に示します)。
numInputs | 入力の数 (0) |
numLayers | 層の数 (0) |
biasConnect |
|
inputConnect |
|
layerConnect |
|
outputConnect | 1 行 |
これは、以下を返します。
net | プロパティ値が指定された新しいネットワーク |
プロパティ
アーキテクチャのプロパティ
net.numInputs | 0 または正の整数 | 入力の数。 |
net.numLayers | 0 または正の整数 | 層の数。 |
net.biasConnect |
|
|
net.inputConnect |
|
|
net.layerConnect |
|
|
net.outputConnect | 1 行 |
|
net.numOutputs | 0 または正の整数 (読み取り専用) |
|
net.numInputDelays | 0 または正の整数 (読み取り専用) | すべての |
net.numLayerDelays | 0 または正の数値 (読み取り専用) | すべての |
サブオブジェクト構造体のプロパティ
net.inputs |
|
|
net.layers |
|
|
net.biases |
|
|
net.inputWeights |
|
|
net.layerWeights |
|
|
net.outputs | 1 行 |
|
関数のプロパティ
net.adaptFcn | ネットワーク適応関数の名前または |
net.initFcn | ネットワーク初期化関数の名前または |
net.performFcn | ネットワーク性能関数の名前または |
net.trainFcn | ネットワーク学習関数の名前または |
パラメーターのプロパティ
net.adaptParam | ネットワーク適応パラメーター |
net.initParam | ネットワーク初期化パラメーター |
net.performParam | ネットワーク性能パラメーター |
net.trainParam | ネットワーク学習パラメーター |
重みとバイアスの値のプロパティ
net.IW | 入力の重み値の |
net.LW | 層の重み値の |
net.b | バイアス値の |
その他のプロパティ
net.userdata | 有用な値を格納するために使用できる構造体 |
例
1 つの入力と 2 つの層があるネットワークの作成
この例では、入力と層がないネットワークを作成し、入力と層の数をそれぞれ 1 と 2 に設定する方法を説明します。
net = network net.numInputs = 1 net.numLayers = 2
または、1 行のコードで同じネットワークを作成できます。
net = network(1,2)
フィードフォワード ネットワークの作成およびプロパティの表示
この例では、入力が 1 つの 2 層フィードフォワード ネットワークを作成する方法を説明します。最初の層だけにバイアスがあります。入力の重みは、入力 1 から層 1 に結合します。層の重みは、層 1 から層 2 に結合します。層 2 はネットワーク出力で、ターゲットがあります。
net = network(1,2,[1;0],[1; 0],[0 0; 1 0],[0 1])
次のコードを使用して、ネットワーク サブオブジェクトを表示できます。
net.inputs{1} net.layers{1}, net.layers{2} net.biases{1} net.inputWeights{1,1}, net.layerWeights{2,1} net.outputs{2}
任意のネットワーク サブオブジェクトのプロパティを変更できます。次のコードは、両方の層の伝達関数を変更します。
net.layers{1}.transferFcn = 'tansig'; net.layers{2}.transferFcn = 'logsig';
最初の入力から最初の層への結合の重みは、以下のように表示できます。入力から層への結合の重みは、net.IW
に格納されます。値がまだ設定されていない場合、これらの結果は空になります。
net.IW{1,1}
最初の層から 2 番目の層への結合の重みは、以下のように表示できます。層から層への結合の重みは、net.LW
に格納されます。ここでも、値がまだ設定されていない場合、結果は空になります。
net.LW{2,1}
最初の層のバイアス値は、以下のように表示できます。
net.b{1}
入力 1 から 2 への要素の数を変更するには、各要素の範囲を以下のように設定します。
net.inputs{1}.range = [0 1; -1 1];
ネットワークに学習させた後、sim
を使用してネットワークをシミュレーションできます。たとえば、2 要素入力ベクトルのネットワークをシミュレーションします。
p = [0.5; -0.1]; y = sim(net,p)
バージョン履歴
R2006a より前に導入