Main Content

fitnet

関数近似ニューラル ネットワーク

説明

net = fitnet(hiddenSizes) は、サイズが hiddenSizes の隠れ層を持つ関数近似ニューラル ネットワークを返します。

net = fitnet(hiddenSizes,trainFcn) は、サイズが hiddenSizes の隠れ層と trainFcn によって指定される学習関数を持つ関数近似ニューラル ネットワークを返します。

すべて折りたたむ

学習データを読み込みます。

[x,t] = simplefit_dataset;

1 行 94 列の行列 x には入力値が含まれ、1 行 94 列の行列 t には関連付けられたターゲット出力値が含まれます。

サイズが 10 の隠れ層を 1 つ持つ関数近似ニューラル ネットワークを構築します。

net = fitnet(10);

ネットワークを表示します。

view(net)

入力と出力のサイズは 0 に設定されます。これらのサイズは、学習データに従って学習中に調整されます。

学習データを使用してネットワーク net に学習させます。

net = train(net,x,t);

学習済みネットワークを表示します。

view(net)

入力と出力のサイズが 1 に設定されていることがわかります。

学習済みネットワークを使用してターゲットを推定します。

y = net(x);

学習済みネットワーク性能を評価します。既定の性能関数は、平均二乗誤差です。

perf = perform(net,y,t)
perf = 1.4639e-04

関数近似ネットワークの既定の学習アルゴリズムは、レーベンバーグ・マルカート法 ('trainlm') です。ベイズ正則化学習アルゴリズムを使用して、性能の結果を比較します。

net = fitnet(10,'trainbr');
net = train(net,x,t);

y = net(x);
perf = perform(net,y,t)
perf = 3.3416e-10

ベイズ正則化学習アルゴリズムは、ターゲット値の推定という観点からネットワーク性能を改善します。

入力引数

すべて折りたたむ

ネットワークの隠れ層のサイズ。行ベクトルとして指定します。ベクトルの長さはネットワークの隠れ層の数を決定します。

例: たとえば、[10,8,5] のように、最初の隠れ層のサイズが 10、2 番目のサイズが 8、3 番目のサイズが 5 である 3 つの隠れ層を持つネットワークを指定できます。

入力と出力のサイズは 0 に設定されます。これらのサイズは、学習データに従って学習中に調整されます。

データ型: single | double

学習関数名。次のいずれかに指定します。

学習関数アルゴリズム
'trainlm'

レーベンバーグ・マルカート法

'trainbr'

ベイズ正則化

'trainbfg'

BFGS 準ニュートン法

'trainrp'

弾性逆伝播法

'trainscg'

スケーリング共役勾配法

'traincgb'

Powell・Beale リスタート付き共役勾配法

'traincgf'

Fletcher・Powell 共役勾配法

'traincgp'

Polak・Ribiére 共役勾配法

'trainoss'

1 ステップ割線法

'traingdx'

可変学習率勾配降下法

'traingdm'

モーメンタム項付き勾配降下法

'traingd'

勾配降下法

例: たとえば、'traingdx' のように、可変学習率勾配降下法アルゴリズムを学習アルゴリズムとして指定できます。

学習関数の詳細は、浅層の多層ニューラル ネットワークの学習と適用および多層ニューラル ネットワークの学習関数の選択を参照してください。

データ型: char

出力引数

すべて折りたたむ

関数近似ネットワーク。network オブジェクトとして返されます。

ヒント

  • 関数近似は、一連の入力について、関連する一連のターゲット出力を生成するようにニューラル ネットワークに学習させるプロセスです。目的の隠れ層と学習アルゴリズムを持つネットワークを構築した後に、一連の学習データを使用してこのネットワークに学習させなければなりません。ニューラル ネットワークによってデータが当てはめられることで、入出力関係が汎化されます。その後、学習済みネットワークを使用して、学習に使われていない入力に対する出力を生成します。

バージョン履歴

R2010b で導入