MATLAB feedforwardnet
関数は、documentationに記述されているプロパティを持つニューラルネットワークオブジェクトを返します。事前に訓練された重みを持つニューラルネットワークを作成するためのワークフローは次のとおりです。
- ロードデータ
- は、ネットワーク
- は重みとバイアス
- 列車のネットワークを初期化し
- 設定をネットワークを作成します。
手順1,2,3、および5は、ゼロからニューラルネットワークを作成する場合とまったく同じです。簡単な例を見てみましょう。今
% 1. Load data
load fisheriris
meas = meas.';
species = species.';
targets = dummyvar(categorical(species));
% 2. Create network
net = feedforwardnet([16, 16]);
% 3. Configure the network
configure(net, meas, targets)
、我々はニューラルネットワークを持っている4つの入力(がく片と花弁の長さと幅)、および3つの出力(「setosa」、「カワラタケ」、および「virginicaの」がnet
)。それぞれ16個のノードを持つ2つの隠れたレイヤーがあります。これは最初に混乱して
>> net.IW
ans =
3×1 cell array
[16×4 double]
[]
[]
>> net.LW
ans =
3×3 cell array
[] [] []
[16×16 double] [] []
[] [3×16 double] []
:重みは、IW
がワットエイトNPUT Iあり、LW
はL Ayerのワットエイトである二つのフィールドnet.IW
とnet.LW
に格納されていますしかし、意味があります:これらの両方のセル配列の各行は、私たちが持っている層の一つに対応しています。
IW
アレイでは、入力と各レイヤーの間にウェイトがあります。明らかに、入力と最初のレイヤーの間にはウェイトしかありません。この重み行列の形状は、4
の入力と16
の隠れた単位を持つので、16x4
です。 LW
アレイにおいて
、我々は、各層(列)(行)各層から重みを有します。我々の場合、第1層から第2層への重み行列は16x16
、第2層から第3層への重み行列は3x16
です。理にかなっていますよね?それと
、我々はRBMコードから持っている重みを初期化する方法を知っている:それと
net.IW{1,1} = weights_input;
net.LW{2,1} = weights_hidden;
を、あなたはすなわち、教師形式でネットワークを訓練、ステップ5に進むことができます。
ようこそ。この[how-to-ask](http://stackoverflow.com/help/how-to-ask)を読んでそこのガイドラインに従って、プログラミングを記述するコードやエラーメッセージなどの追加情報を使用して質問を洗練してください問題。 – thewaywewere