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 より前に導入
