Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

network

浅層カスタム ニューラル ネットワークの作成

構文

net = network
net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect)

ヘルプの表示

help network/network と入力します。

ヒント

深層学習ネットワークを作成する方法については、畳み込みニューラル ネットワークの層の指定を参照してください。

説明

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

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

net = network(numInputs,numLayers,biasConnect,inputConnect,layerConnect,outputConnect) は、次のオプションの引数を取ります (既定値と共に示します)。

numInputs

入力の数 (0)

numLayers

層の数 (0)

biasConnect

numLayers 行 1 列のブール ベクトル (ゼロ ベクトル)

inputConnect

numLayersnumInputs 列のブール行列 (ゼロ行列)

layerConnect

numLayersnumLayers 列のブール行列 (ゼロ行列)

outputConnect

1 行 numLayers 列のブール ベクトル (ゼロ ベクトル)

これは、以下を返します。

net

プロパティ値が指定された新しいネットワーク

プロパティ

アーキテクチャのプロパティ

net.numInputs

0 または正の整数

入力の数。

net.numLayers

0 または正の整数

層の数。

net.biasConnect

numLayer 行 1 列のブール ベクトル

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

net.inputConnect

numLayernumInputs 列のブール ベクトル

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

net.layerConnect

numLayernumLayers 列のブール ベクトル

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

net.outputConnect

1 行 numLayers 列のブール ベクトル

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

net.numOutputs

0 または正の整数 (読み取り専用)

net.outputConnect に応じたネットワーク出力の数。

net.numInputDelays

0 または正の整数 (読み取り専用)

すべての net.inputWeights{i,j}.delays に応じた入力遅延の最大値。

net.numLayerDelays

0 または正の数値 (読み取り専用)

すべての net.layerWeights{i,j}.delays に応じた層の遅延の最大値。

サブオブジェクト構造体のプロパティ

net.inputs

numInputs 行 1 列の cell 配列

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

net.layers

numLayers 行 1 列の cell 配列

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

net.biases

numLayers 行 1 列の cell 配列

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

net.inputWeights

numLayersnumInputs 列の cell 配列

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

net.layerWeights

numLayersnumLayers 列の cell 配列

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

net.outputs

1 行 numLayers 列の cell 配列

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

関数のプロパティ

net.adaptFcn

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

net.initFcn

ネットワーク初期化関数の名前または ''

net.performFcn

ネットワーク性能関数の名前または ''

net.trainFcn

ネットワーク学習関数の名前または ''

パラメーターのプロパティ

net.adaptParam

ネットワーク適応パラメーター

net.initParam

ネットワーク初期化パラメーター

net.performParam

ネットワーク性能パラメーター

net.trainParam

ネットワーク学習パラメーター

重みとバイアスの値のプロパティ

net.IW

入力の重み値の numLayersnumInputs 列の cell 配列

net.LW

層の重み値の numLayersnumLayers 列の cell 配列

net.b

バイアス値の numLayers 行 1 列の cell 配列

その他のプロパティ

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 より前に導入