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

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

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 18 Aug. 2021
Bearbeitet: MathWorks Support Team am 9 Sep. 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)

Weitere Antworten (0)

Kategorien

Mehr zu Deep Learning Toolbox finden Sie in Help Center und File Exchange

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!