0. 其他处理
计时:
ticnet = train(net, X, y);toc
1. 一个简单的 demo(单层感知器)
P = [1, 1, 1, 1, 0, 0, 0, 0; 0, 0, 1, 1, 0, 1, 1, 0; 0, 1, 0, 1, 1, 0, 1, 0]; % 每一列表示一个输入样本T = [-1, 1, 1, 1, -1, -1, 1, -1]; % 表示输出值p = [0, 1; 0, 1; 0, 1]; % 每一行表示参数的取值范围t = 1; % 输出值的个数;% 模型的定义net = newp(p, t, 'hardlims'); % newp:new perceptronnet = train(net, P, T); % 训练的过程; % 此时得到的 net 便是最终训练好的模型;% 测试newP = [0, 1, 1]';newT = sim(net, newP)newP = [0, 1, 0]';newT = sim(net, newP)
2. nntool
神经网络的可视化显示方式。
- 先输入 data,再定义 network,最后 train
- 通过 simulate 进行仿真测试;
3. BP 神经网络的创建
通过 newff
% 样本矩阵(trainx, testx)以每一列为一个单独的样本,每一个行为一个属性,% target 目标值(trainy, testy)为一个行向量trainx, trainytestx, testy% 创建 BP 网络net = newff(trainx, trainy);% 接口必须统一,方能识别;net.trainParam.epochs = 1500; % 最大训练次数net.trainParam.goal = 1e-13; % 目标误差net.trainParam.show = 1; % 显示级别% 接受训练样本,进行训练net = train(net, trainx, trainy);% 在测试集上进行测试predicted_y = net(testx);
通过 feedforwardnet
net = feedforwardnet([], 'trainlm'); % 第一个参数控制神经网络隐层的拓扑结构,其实就是各个隐层的神经元数目;net.trainParam.epochs = ...;net.trainParam.goal = ...;ticnet = train(net, X, y); % X 构成输入层,y 构成输出层;toc