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

조회 수: 11 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2018년 2월 14일
편집: MathWorks Support Team 2021년 9월 9일
階層型ニューラルネットワークの各層の接続状況をカスタマイズしたいと考えています。具体的には、2つの階層型ネットワークを繋げたいのですが、一方のネットワークの入力の一部をもう片方のネットワークの入力に直接繋げたいと考えています。

채택된 답변

MathWorks Support Team
MathWorks Support Team 2021년 8월 18일
편집: MathWorks Support Team 2021년 9월 9일
階層型ニューラルネットワークのカスタマイズについては可能で、具体的なカスタマイズ方法については、下記ドキュメント箇所に紹介がございます。 
基本的に 
>> 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개)

카테고리

Help CenterFile Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!