このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
trainbfg
BFGS 準ニュートン法逆伝播
説明
net.trainFcn = 'trainbfg'
は、ネットワークの trainFcn
プロパティを設定します。
[
は、trainedNet
,tr
] = train(net
,...)trainbfg
を使用してネットワークに学習をさせます。
trainbfg
は、BFGS 準ニュートン法に従って重みとバイアスの値を更新するネットワーク学習関数です。
学習は trainbfg
の学習パラメーターに従って行われます。以下に、学習パラメーターをその既定値と共に示します。
net.trainParam.epochs
— 学習の最大エポック数。既定値は 1000 です。net.trainParam.showWindow
— 学習 GUI の表示。既定値はtrue
です。net.trainParam.show
— 表示間のエポック数 (表示なしはNaN
)。既定値は 25 です。net.trainParam.showCommandLine
— コマンド ライン出力の生成。既定値はfalse
です。net.trainParam.goal
— 性能目標。既定値は 0 です。net.trainParam.time
— 最大学習時間 (秒単位)。既定値はinf
です。net.trainParam.min_grad
— 性能の勾配の最小値。既定値は1e-6
です。net.trainParam.max_fail
— 検証エラーの最大回数。既定値は6
です。net.trainParam.searchFcn
— 使用する直線探索ルーチンの名前。既定値は'srchbac'
です。
直線探索法に関連するパラメーター (メソッドによっては使用されない場合がある):
net.trainParam.scal_tol
— delta に分割して、直線探索の許容誤差を決定する。既定値は 20 です。net.trainParam.alpha
— perf が十分に低下しているかを決定するスケール係数。既定値は0.001
です。net.trainParam.beta
— ステップ サイズが十分に大きいかを決定するスケール係数。既定値は0.1
です。net.trainParam.delta
— 区間位置のステップにおける初期ステップ サイズ。既定値は0.01
です。net.trainParam.gamma
— 性能のわずかな低下を回避するパラメーターで、通常は 0.1 に設定 (srch_cha
を参照)。既定値は0.1
です。net.trainParam.low_lim
— ステップ サイズの変更の下限。既定値は0.1
です。net.trainParam.up_lim
— ステップ サイズの変更の上限。既定値は0.5
です。net.trainParam.maxstep
— 最大ステップ長。既定値は100
です。net.trainParam.minstep
— 最小ステップ長。既定値は1.0e-6
です。net.trainParam.bmax
— 最大ステップ サイズ。既定値は26
です。net.trainParam.batch_frag
— 複数のバッチがある場合、それらのバッチが独立していると見なす。非ゼロ値がある場合、断片化されたバッチがあることを意味するため、前の学習済みエポックの最後の層の条件が、次のエポックの初期条件として使用されます。既定値は0
です。
例
入力引数
出力引数
詳細
アルゴリズム
trainbfg
は、重み関数、正味入力関数、および伝達関数に導関数がある限り、任意のネットワークの学習を行うことができます。
重みとバイアスの変数 X
に対する性能 perf
の微分の計算には、逆伝播が使用されます。各変数は、以下に従って調整されます。
X = X + a*dX;
ここで、dX
は探索方向です。パラメーター a
は、探索方向に沿って性能を最小化するように選択されます。直線探索関数 searchFcn
は、最小点を特定するために使用されます。最初の探索方向は、性能の負の勾配になります。後続の反復では、次の式に従って探索方向が計算されます。
dX = -H\gX;
ここで、gX
は勾配であり、H
は近似ヘッセ行列です。BFGS 準ニュートン法の詳細は、Gill、Murray、および Wright (Practical Optimization, 1981) の 119 ページを参照してください。
次のいずれかの条件が発生すると、学習が停止します。
epochs
(反復回数) の最大数に達する。time
の最大値を超える。性能が
goal
に最小化される。性能の勾配が
min_grad
より小さくなる。検証性能 (検証誤差) が、最後の低下以降、
max_fail
回を超えて増加する (検証の使用時)。
参照
[1] Gill, Murray, & Wright, Practical Optimization, 1981
バージョン履歴
R2006a より前に導入