trainrp
弾性逆伝播法
説明
net.trainFcn = 'trainrp'
は、ネットワークの trainFcn
プロパティを設定します。
[
は、trainedNet
,tr
] = train(net
,...)trainrp
を使用してネットワークに学習させます。
trainrp
は、弾性逆伝播法アルゴリズム (Rprop) に従って重みとバイアスの値を更新するネットワーク学習関数です。
学習は trainrp
の学習パラメーターに従って行われます。以下に、学習パラメーターをその既定値と共に示します。
net.trainParam.epochs
— 学習の最大エポック数。既定値は1000
です。net.trainParam.show
— 表示間のエポック数 (表示なしはNaN
)。既定値は25
です。net.trainParam.showCommandLine
— コマンド ライン出力の生成。既定値はfalse
です。net.trainParam.showWindow
— 学習 GUI の表示。既定値はtrue
です。net.trainParam.goal
— 性能目標。既定値は0
です。net.trainParam.time
— 最大学習時間 (秒単位)。既定値はinf
です。net.trainParam.min_grad
— 性能の勾配の最小値。既定値は1e-5
です。net.trainParam.max_fail
— 検証エラーの最大回数。既定値は6
です。net.trainParam.lr
— 学習率。既定値は0.01
です。net.trainParam.delt_inc
— 重みの変化のインクリメント。既定値は1.2
です。net.trainParam.delt_dec
— 重みの変化のデクリメント。既定値は0.5
です。net.trainParam.delta0
— 初期の重みの変化。既定値は0.07
です。net.trainParam.deltamax
— 重みの最大変化。既定値は50.0
です。
例
入力引数
出力引数
詳細
アルゴリズム
trainrp
は、重み関数、正味入力関数、および伝達関数に導関数がある限り、任意のネットワークの学習を行うことができます。
重みとバイアスの変数 X
に対する性能 perf
の微分の計算には、逆伝播が使用されます。各変数は、以下に従って調整されます。
dX = deltaX.*sign(gX);
ここで、deltaX
の要素はすべて delta0
に初期化されており、gX
は勾配です。各反復で、deltaX
の要素が変更されます。gX
の要素によって、ある反復から次の反復までに符号が変化した場合、deltaX
の対応する要素が delta_dec
ずつ減少します。gX
の要素によって、ある反復から次の反復まで符号が変化しなかった場合、deltaX
の対応する要素が delta_inc
ずつ増加します。次を参照してください。Riedmiller, M., and H. Braun, “A direct adaptive method for faster backpropagation learning: The RPROP algorithm,” Proceedings of the IEEE International Conference on Neural Networks,1993, pp. 586–591.
次のいずれかの条件が発生すると、学習が停止します。
epochs
(反復回数) の最大数に達する。time
の最大値を超える。性能が
goal
に最小化される。性能の勾配が
min_grad
より小さくなる。検証性能 (検証誤差) が、最後の低下以降、
max_fail
回を超えて増加する (検証の使用時)。
参照
[1] Riedmiller, M., and H. Braun, “A direct adaptive method for faster backpropagation learning: The RPROP algorithm,” Proceedings of the IEEE International Conference on Neural Networks,1993, pp. 586–591.
バージョン履歴
R2006a より前に導入