メインコンテンツ

traingdm

R2026b

(削除予定) モーメンタム項付き勾配降下法を使用した逆伝播

traingdm は将来のリリースで削除される予定です。詳細については、レガシ ニューラル ネットワーク コードの dlnetwork ワークフローへの移行を参照してください。

コードの更新に関するアドバイスについては、バージョン履歴を参照してください。

構文

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

説明

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

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

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

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

net.trainParam.epochs1000

最大学習エポック数

net.trainParam.goal0

性能目標

net.trainParam.lr0.01

学習率

net.trainParam.max_fail6

検証エラーの最大回数

net.trainParam.mc0.9

モーメンタム定数

net.trainParam.min_grad1e-5

性能の勾配の最小値

net.trainParam.show25

進行状況の表示間隔のエポック数

net.trainParam.showCommandLinefalse

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

net.trainParam.showWindowtrue

学習 GUI の表示

net.trainParam.timeinf

最大学習時間 (秒単位)

ネットワークの利用

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

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

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

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

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

詳細

すべて折りたたむ

アルゴリズム

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

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

dX = mc*dXprev + lr*(1-mc)*dperf/dX

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

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

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

  • time の最大値を超える。

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

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

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

バージョン履歴

R2006a より前に導入