どのようにして階層型ニューラルネットワークの各層の接続状況をカスタマイズできますか?
11 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 14 Feb 2018
Modificato: MathWorks Support Team
il 9 Set 2021
階層型ニューラルネットワークの各層の接続状況をカスタマイズしたいと考えています。具体的には、2つの階層型ネットワークを繋げたいのですが、一方のネットワークの入力の一部をもう片方のネットワークの入力に直接繋げたいと考えています。
Risposta accettata
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)
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Deep Learning Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!