どのようにして階層型​ニューラルネットワー​クの各層の接続状況を​カスタマイズできます​か?

11 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 14 Feb 2018
階層型ニューラルネットワークの各層の接続状況をカスタマイズしたいと考えています。具体的には、2つの階層型ネットワークを繋げたいのですが、一方のネットワークの入力の一部をもう片方のネットワークの入力に直接繋げたいと考えています。

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 18 Ago 2021
Modificato: MathWorks Support Team il 9 Set 2021
階層型ニューラルネットワークのカスタマイズについては可能で、具体的なカスタマイズ方法については、下記ドキュメント箇所に紹介がございます。 
基本的に 
>> net = network;
より、空の状態のネットワークオブジェクトを作成してから、 
入力層や隠れ層の層の数の設定や、各層間における接続状況をコマンドラインベースで手動で設定いただくことになります。 
上記ページでは、 
異なるグループの入力層が2種類あり、それぞれ、ユニット数が 2,5 
隠れ層が 3種類あり、隠れ層1,2 はそれぞれ独立しており、 
隠れ層3 には、フィードバックがあるようなネットワークとなっております。
別の例として、下記例では、 入力ユニットが 105 あり、 そのうち 101 ~ 105 までは、第1層目の隠れ層を通らないような仕様としたモデルとさせて頂いております。
net = network; % ネットワーク初期化
net.numInputs = 2; % 入力層の数を指定 (ユニットではなくグループ数)
net.numLayers = 3; % 隠れ層(2)と出力層(1)の数
net.layers{1}.size = 10; % 隠れ層1のユニット数(10)
net.layers{2}.size = 5; % 隠れ層2のユニット数(5)
net.layers{3}.size = 3; % 出力層のユニット数
net.biasConnect = [1;1;1];
net.inputConnect = [1 0;0 1;0 0]; % 入力層から直接接続される隠れ層/出力層設定
net.LayerConnect = [0 0 0;1 0 0;0 1 0]; % 隠れ層同士の接続状況
net.outputConnect = [0 0 1]; % 出力への接続状況
net.trainFcn = 'trainlm'; % 学習関数
% 伝達関数指定
net.layers{1}.transferFcn = 'logsig';
net.layers{2}.transferFcn = 'logsig';
net.layers{3}.transferFcn = 'purelin';
% 入出力データ設定
X = rand(105,1000);
T = rand(3,1000);
X = con2seq(mat2cell(X,[100 5]))
T = con2seq(T);
% 学習
net = train(net,X,T);
view(net)

Più risposte (0)

Categorie

Scopri di più su Deep Learning Toolbox in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!