このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
narnet
非線形自己回帰ニューラル ネットワーク
説明
narnet(
は、次の引数を取ります。feedbackDelays
,hiddenSizes
,feedbackMode
,trainFcn
)
増加する 0 または正のフィードバック遅延から成る行ベクトル
feedbackDelays
1 つ以上の隠れ層のサイズの行ベクトル
hiddenSizes
フィードバックのタイプ
feedbackMode
学習関数
trainFcn
これは、NAR ニューラル ネットワークを返します。
NAR (非線形自己回帰) ニューラル ネットワークには、時系列の過去の値からその時系列を予測するように学習させることができます。
例
NAR ネットワークの学習および新しいデータでの予測
非線形自己回帰 (NAR) ニューラル ネットワークの学習および新しい時系列データでの予測を行います。時系列の一連の値の予測は、"複数ステップの予測" としても知られています。閉ループ ネットワークは複数ステップの予測を実行できます。閉ループ ネットワークは、外部フィードバックが失われた場合に、内部フィードバックを使用して予測を続けることができます。NAR による予測では、時系列の将来の値を、その時系列の過去の値のみから予測します。
簡単な時系列の予測データを読み込みます。
T = simplenar_dataset;
NAR ネットワークを作成します。隠れ層のフィードバック遅延とサイズを定義します。
net = narnet(1:2,10);
preparets
を使用して時系列データを準備します。この関数は、初期の入力遅延状態と層の遅延状態を入力するのに必要なステップ数だけ、入力とターゲットの時系列を自動的にシフトします。
[Xs,Xi,Ai,Ts] = preparets(net,{},{},T);
ネットワークを完全に開ループで作成してから、複数ステップ先の予測を行うために、そのネットワークを閉ループに変換することを推奨します。これにより、この閉ループ ネットワークを使用して必要なだけ先の値を予測することができます。このニューラル ネットワークを閉ループ モードのみでシミュレーションすると、このネットワークは入力系列に含まれるタイム ステップ数と同じ数だけ予測を実行できます。
NAR ネットワークに学習をさせます。関数 train
は、検証ステップおよびテスト ステップを含め、開ループ (直並列アーキテクチャ) でネットワークの学習を行います。
net = train(net,Xs,Ts,Xi,Ai);
学習済みネットワークを表示します。
view(net)
ネットワーク入力 Xs
、初期の入力状態 Xi
、および初期の層の状態 Ai
から、開ループ ネットワークのネットワーク出力 Y
、最終の入力状態 Xf
、および最終の層の状態 Af
を計算します。
[Y,Xf,Af] = net(Xs,Xi,Ai);
ネットワーク性能を計算します。
perf = perform(net,Ts,Y)
perf = 1.0100e-09
次の 20 タイム ステップの出力を予測するには、まず閉ループ モードでネットワークのシミュレーションを行います。開ループ ネットワーク net
の最終の入力状態 Xf
と層の状態 Af
が、閉ループ ネットワーク netc
の初期の入力状態 Xic
と層の状態 Aic
になります。
[netc,Xic,Aic] = closeloop(net,Xf,Af);
閉ループ ネットワークを表示します。このネットワークには入力が 1 つだけあります。閉ループ モードでは、この入力が出力に接続されます。遅延付きターゲット入力が遅延付き直接出力接続に置き換えられます。
view(netc)
20 タイム ステップ先のネットワークのシミュレーションを行うには、長さ 20 の空の cell 配列を入力します。ネットワークには、Xic
および Aic
に指定されている初期条件のみが必要です。
Yc = netc(cell(0,20),Xic,Aic)
Yc=1×20 cell array
Columns 1 through 5
{[0.8346]} {[0.3329]} {[0.9084]} {[1.0000]} {[0.3190]}
Columns 6 through 10
{[0.7329]} {[0.9801]} {[0.6409]} {[0.5146]} {[0.9746]}
Columns 11 through 15
{[0.9077]} {[0.2807]} {[0.8651]} {[0.9897]} {[0.4093]}
Columns 16 through 20
{[0.6838]} {[0.9976]} {[0.7007]} {[0.4311]} {[0.9660]}
入力引数
feedbackDelays
— フィードバック遅延
[1:2]
(既定値) | 行ベクトル
0 または正のフィードバック遅延。増加する行ベクトルとして指定します。
hiddenSizes
— 隠れ層のサイズ
10
(既定値) | 行ベクトル
隠れ層のサイズ。1 つ以上の要素の行ベクトルとして指定します。
feedbackMode
— フィードバック モード
'open'
(既定値) | 'closed'
| 'none'
フィードバックのタイプ。'open'
、'closed'
、'none'
のいずれかとして指定します。
trainFcn
— 学習関数名
'trainlm'
(既定値) | 'trainbr'
| 'trainbfg'
| 'trainrp'
| 'trainscg'
| ...
学習関数名。次のいずれかに指定します。
学習関数 | アルゴリズム |
---|---|
'trainlm' | レーベンバーグ・マルカート法 |
'trainbr' | ベイズ正則化 |
'trainbfg' | BFGS 準ニュートン法 |
'trainrp' | 弾性逆伝播法 |
'trainscg' | スケーリング共役勾配法 |
'traincgb' | Powell・Beale リスタート付き共役勾配法 |
'traincgf' | Fletcher・Powell 共役勾配法 |
'traincgp' | Polak・Ribiére 共役勾配法 |
'trainoss' | 1 ステップ割線法 |
'traingdx' | 可変学習率勾配降下法 |
'traingdm' | モーメンタム項付き勾配降下法 |
'traingd' | 勾配降下法 |
例: たとえば、'traingdx'
のように、可変学習率勾配降下法アルゴリズムを学習アルゴリズムとして指定できます。
学習関数の詳細は、浅層の多層ニューラル ネットワークの学習と適用および多層ニューラル ネットワークの学習関数の選択を参照してください。
データ型: char
バージョン履歴
R2010b で導入
参考
preparets
| removedelay
| timedelaynet
| narxnet
| closeloop
| network
| train
| openloop
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)