Main Content

trainbu

バッチ教師なし重み/バイアス学習

構文

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

説明

trainbu は、バッチの更新を伴う重み学習規則とバイアス学習規則を使用して、ネットワークに学習させます。すべての入力データが渡された後に、重みとバイアスの更新が行われます。

trainbu は直接呼び出されません。代わりに、NET.trainFcn プロパティが 'trainbu' に設定されているネットワークに対し、関数 train によって呼び出され、次のようになります。

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

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

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

net.trainParam.epochs1000

最大学習エポック数

net.trainParam.show25

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

net.trainParam.showCommandLinefalse

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

net.trainParam.showWindowtrue

学習 GUI の表示

net.trainParam.timeinf

最大学習時間 (秒単位)

この関数で、検証ベクトルとテスト ベクトルは学習に影響を与えず、ネットワークの汎化を評価する独立した指標として機能します。

ネットワークの利用

selforgmap を呼び出すことによって、trainbu を使用する標準的なネットワークを作成できます。trainbu を使用して学習が行われるよう、カスタム ネットワークを以下のように準備します。

  1. NET.trainFcn'trainbu' に設定します。(このオプションは、NET.trainParam を既定のパラメーターである trainbu に設定します。)

  2. NET.inputWeights{i,j}.learnFcn を学習関数に設定します。

  3. NET.layerWeights{i,j}.learnFcn を学習関数に設定します。

  4. NET.biases{i}.learnFcn を学習関数に設定します。(重みとバイアスの学習パラメーターは、与えられた学習関数に応じて自動的に既定値に設定されます。)

ネットワークに学習させるには、次のようにします。

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

  2. 重みとバイアスの学習パラメーターを目的の値に設定します。

  3. train を呼び出します。

学習の例については、selforgmap を参照してください。

アルゴリズム

各エポックの終了時に (入力ベクトルのセットの全体が渡されると)、学習関数に基づいてそれぞれの重みとバイアスが更新されます。

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

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

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

  • time の最大値を超える。

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

バージョン履歴

R2010b で導入

参考

|