ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

traingdx

適応学習率を使用したモーメンタム項付き勾配降下法の逆伝播

構文

net.trainFcn = 'traingdx'
[net,tr] = train(net,...)

説明

traingdx は、勾配降下モーメンタムと適応学習率に従って重みとバイアスの値を更新するネットワーク学習関数です。

net.trainFcn = 'traingdx' は、ネットワークの trainFcn プロパティを設定します。

[net,tr] = train(net,...) は、traingdx を使用してネットワークに学習をさせます。

学習は traingdx の学習パラメーターに従って行われます。以下に、学習パラメーターをその既定値と共に示します。

net.trainParam.epochs1000

学習エポックの最大回数

net.trainParam.goal0

性能目標

net.trainParam.lr0.01

学習率

net.trainParam.lr_inc1.05

学習率を増加させる比率

net.trainParam.lr_dec0.7

学習率を減少させる比率

net.trainParam.max_fail6

検証エラーの最大回数

net.trainParam.max_perf_inc1.04

性能の最大増加量

net.trainParam.mc0.9

モーメンタム定数

net.trainParam.min_grad1e-5

性能の勾配の最小値

net.trainParam.show25

表示間のエポック数 (表示なしは NaN)

net.trainParam.showCommandLinefalse

コマンド ライン出力の生成

net.trainParam.showWindowtrue

学習 GUI の表示

net.trainParam.timeinf

最大学習時間 (秒単位)

ネットワークの利用

traingdxfeedforwardnet または cascadeforwardnet を使用する標準的なネットワークを作成できます。traingdx を使用して学習が行われるよう、カスタム ネットワークを以下のように準備します。

  1. net.trainFcn'traingdx' に設定します。これにより、net.trainParamtraingdx の既定のパラメーターに設定されます。

  2. net.trainParam プロパティを目的の値に設定します。

どちらの場合も、結果として得られるネットワークで train を呼び出すことによって、ネットワークが traingdx により学習します。

例については、help feedforwardnet および help cascadeforwardnet を参照してください。

アルゴリズム

関数 traingdx は、適応学習率とモーメンタム学習を組み合わせて使用します。これは、追加の学習パラメーターとしてモーメンタム係数 mc があることを除き、traingda と同じ方法で呼び出されます。

traingdx は、重み関数、正味入力関数、および伝達関数に導関数がある限り、任意のネットワークの学習を行うことができます。

重みとバイアスの変数 X に対する性能 perf の微分の計算には、逆伝播が使用されます。各変数は、モーメンタム項付き勾配降下法に従って調整されます。

dX = mc*dXprev + lr*mc*dperf/dX

ここで、dXprev は重みまたはバイアスに対する前の変更です。

エポックごとに、性能が目標に向かって減少する場合、学習率が係数 lr_inc で増加します。係数 max_perf_inc を超えて性能が増加する場合、係数 lr_dec で学習率が調整され、性能が増加する変更は行われません。

次のいずれかの条件が発生すると、学習が停止します。

  • epochs (反復回数) の最大数に達する。

  • time の最大値を超える。

  • 性能が goal に最小化される。

  • 性能の勾配が min_grad より小さくなる。

  • 検証性能が、最後の低下以降、max_fail 回を超えて増加する (検証の使用時)。

R2006a より前に導入