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.epochs | 1000 | 最大学習エポック数 |
net.trainParam.show | 25 | 表示間のエポック数 (表示なしは |
net.trainParam.showCommandLine | false | コマンド ライン出力の生成 |
net.trainParam.showWindow | true | 学習 GUI の表示 |
net.trainParam.time | inf | 最大学習時間 (秒単位) |
この関数で、検証ベクトルとテスト ベクトルは学習に影響を与えず、ネットワークの汎化を評価する独立した指標として機能します。
ネットワークの利用
selforgmap
を呼び出すことによって、trainbu
を使用する標準的なネットワークを作成できます。trainbu
を使用して学習が行われるよう、カスタム ネットワークを以下のように準備します。
NET.trainFcn
を'trainbu'
に設定します。(このオプションは、NET.trainParam
を既定のパラメーターであるtrainbu
に設定します。)各
NET.inputWeights{i,j}.learnFcn
を学習関数に設定します。各
NET.layerWeights{i,j}.learnFcn
を学習関数に設定します。各
NET.biases{i}.learnFcn
を学習関数に設定します。(重みとバイアスの学習パラメーターは、与えられた学習関数に応じて自動的に既定値に設定されます。)
ネットワークに学習させるには、次のようにします。
NET.trainParam
プロパティを目的の値に設定します。重みとバイアスの学習パラメーターを目的の値に設定します。
train
を呼び出します。
学習の例については、selforgmap
を参照してください。
アルゴリズム
各エポックの終了時に (入力ベクトルのセットの全体が渡されると)、学習関数に基づいてそれぞれの重みとバイアスが更新されます。
次のいずれかの条件が満たされると、学習が停止します。
epochs
(反復回数) の最大数に達する。性能が
goal
に最小化される。time
の最大値を超える。検証性能 (検証誤差) が、最後の低下以降、
max_fail
回を超えて増加する (検証の使用時)。
バージョン履歴
R2010b で導入