📄 runbp.m
字号:
ErrorsLastNEpochs = zeros(1,NEpochs);TestErrorsLastNEpochs = zeros(1,NEpochs);startEpoch = totalNEpochs + 1;for epoch = 1:NEpochs, sumSqrError = 0.0; sumSqrTestError = 0.0; outputWGrad = zeros(size(outputWeights)); hiddenWGrad = zeros(size(hiddenWeights)); for pat = 1:nTrainingPats, % 傈规氢 菩胶(pass) inp = [input(:,pat)',[1]]'; hiddenNetInputs = hiddenWeights * inp; hiddenStates = sigmoidFunc(hiddenNetInputs); hidStatesBias = [[hiddenStates]',[1]]'; outputNetInputs = outputWeights * hidStatesBias; outputStates = sigmoidFunc(outputNetInputs); % 开规氢 菩胶(pass) targetStates = target(:,pat); error = outputStates - targetStates; sumSqrError = sumSqrError + dot(error,error); outputDel = outputDeltas(outputStates, targetStates); outputWGrad = outputWGrad + outputDel * hidStatesBias'; hiddenDel = hiddenDeltas(outputDel,hidStatesBias,outputWeights); hiddenWGrad = hiddenWGrad + hiddenDel(1:nHidden,:) * inp'; end % epoch狼 付瘤阜俊 啊吝摹 盎脚 outputWChange = eta * outputWGrad; outputWeights = outputWeights + outputWChange; hiddenWChange = eta * hiddenWGrad; hiddenWeights = hiddenWeights + hiddenWChange; %抛胶飘 菩畔栏肺 匙飘况农狼 己瓷 矫氰 for pat = (nTrainingPats+1):nPats % 傈氢氢 菩胶(pass) inp = [input(:,pat)',[1]]'; hiddenNetInputs = hiddenWeights * inp; hiddenStates = sigmoidFunc(hiddenNetInputs); hidStatesBias = [[hiddenStates]',[1]]'; outputNetInputs = outputWeights * hidStatesBias; outputStates = sigmoidFunc(outputNetInputs); targetStates = target(:,pat); error = outputStates - targetStates; sumSqrTestError = sumSqrTestError + dot(error,error); end %% epoch狼 付瘤阜俊 夸距 烹拌 免仿 gradSize = norm([hiddenWGrad(:);outputWGrad(:)]); totalNEpochs = totalNEpochs + 1; MSE = sumSqrError/nTrainingPats; TestMSE = sumSqrTestError/nTestPats; if totalNEpochs == 1 startError = MSE; end ErrorsLastNEpochs(1,epoch) = MSE; TestErrorsLastNEpochs(1,epoch) = TestMSE; fprintf(1,'%d MSError=%f, MSTestError=%f, |G|=%f\n',... totalNEpochs,MSE,TestMSE,gradSize);endclf; if totalNEpochs > minEpochsPerErrorPlot epochs = [1:totalNEpochs];end% 切嚼 菩畔 笼钦俊 措茄 切嚼 目宏 敲吩errorsPerEpoch(1,startEpoch:totalNEpochs) = ErrorsLastNEpochs;subplot(2,1,1), ... axis([1 max(minEpochsPerErrorPlot,totalNEpochs) 0 startError]), hold on, ... plot(epochs(1,1:totalNEpochs),errorsPerEpoch(1,1:totalNEpochs)),... title('Mean Squared Error on the Training Set'), ... xlabel('Learning Epoch'), ... ylabel('MSE');% 抛胶飘 菩畔 笼钦俊 措茄 切嚼 目宏 敲吩TestErrorsPerEpoch(1,startEpoch:totalNEpochs) = TestErrorsLastNEpochs;subplot(2,1,2), ... axis([1 max(minEpochsPerErrorPlot,totalNEpochs) 0 startError]), hold on, ... plot(epochs(1,1:totalNEpochs),TestErrorsPerEpoch(1,1:totalNEpochs)), ... title('Mean Squared Error on the Test Set'), ... xlabel('Learning Epoch'), ... ylabel('MSE');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -