matlab实现多层神经网络训练
激活函数:
function [y] = sigmod(x)
% y = 1.0 ./ (1 + exp(-x)); % sigmod函数
y = 2.0 ./ (1 + exp(-2.*x)) - 1; % tansig函数
end
激活函数导数:
function [y] = sigmod_deri(x)
% y = x .* (1 - x);
y = 1 - x.^2;
end
多层神经网络训练:
clear;
clc;
close all;
% 构造数据
x = 1 : 0.01 : 10;
y = 1.1 * x.^3 + 2.1 * x.^2 + 3.1 * x + 1.2 + 15 .* sin(100.*x);
len = length(x);
% 数据归一化
map_min = -1;
map_max = 1;
min_x = min(x);
max_x = max(x);
min_y = min(y);
max_y = max(y);
normal_x = (x - repmat(min_x, 1, len)) ./ (max_x - min_x) .* (map_max - map_min) + map_min;
normal