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

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 Center および File ExchangeDeep Learning Toolbox についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!