MATLAB智能算法30个案例分析(3-2)

神经网路部分

function err=Bpfun(x,P,T,hiddennum,P_test,T_test)

%% 训练&测试BP网络

%% 输入

% x:一个个体的初始权值和阈值

% P:训练样本输入

% T:训练样本输出

% hiddennum:隐含层神经元数

% P_test:测试样本输入

% T_test:测试样本期望输出

%% 输出

% err:预测样本的预测误差的范数

inputnum=size(P,1); % 输入层神经元个数

outputnum=size(T,1); % 输出层神经元个数

%% 新建BP网络

net=newff(minmax(P),[hiddennum,outputnum],{'tansig','logsig'},'trainlm');

%% 设置网络参数:训练次数为1000,训练目标为0.01,学习速率为0.1

net.trainParam.epochs=1000;

net.trainParam.goal=0.01;

LP.lr=0.1;

net.trainParam.show=NaN;

% net.trainParam.showwindow=false; %高版MATLAB

%% BP神经网络初始权值和阈值

w1num=inputnum*hiddennum; % 输入层到隐层的权值个数

w2num=outputnum*hiddennum;% 隐层到输出层的权值个数

w1=x(1:w1num); %初始输入层到隐层的权值

B1=x(w1num+1:w1num+hiddennum); %初始隐层阈值

w2=x(w1num+hiddennum+1:w1num+hiddennum+w2num); %初始隐层到输出层的阈值

B2=x(w1num+hiddennum+w2num+1:w1num+hiddennum+w2num+outputnum); %输出层阈值

net.iw{1,1}=reshape(w1,hiddennum,inputnum);

net.lw{2,1}=reshape(w2,outputnum,hiddennum);

net.b{1}=reshape(B1,hiddennum,1);

net.b{2}=reshape(B2,outputnum,1);

%% 训练网络以

net=train(net,P,T);

%% 测试网络

Y=sim(net,P_test);

err=norm(Y-T_test);

原文发布于微信公众号 - 帮你学MatLab(MatLab_helper)

原文发表时间:2016-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

卷积神经网络(一)——卷积、边缘化与池化层

卷积神经网络(一) ——卷积、边缘化与池化层 (原创内容,转载请注明来源,谢谢) 一、概述 卷积神经网络网络(Convolutional Neural Netw...

704110
来自专栏量化投资与机器学习

深度学习Matlab工具箱代码注释之cnntrain.m

%%========================================================================= %...

22380
来自专栏深度学习与计算机视觉

Object Detection系列(三) Fast R-CNN

Object Detection系列(一) R-CNN Object Detection系列(二) SPP-Net Object Detectio...

48750
来自专栏技术小站

吴恩达深度学习笔记 3.1~3.11 浅层神经网络

神经网络的结构与逻辑回归类似,只是神经网络的层数比逻辑回归多了一层,多出的中间一层叫隐藏层,那么,神经网络的计算就相当于多进行一次逻辑回归的计算

15920
来自专栏绿巨人专栏

神经网络学习笔记 - 损失函数的定义和微分证明

37750
来自专栏IT派

用Python实现机器学习算法——简单的神经网络

导读:Python 被称为是最接近 AI 的语言。最近一位名叫Anna-Lena Popkes的小姐姐在GitHub上分享了自己如何使用Python(3.6及以...

10900
来自专栏红色石头的机器学习之路

Coursera吴恩达《神经网络与深度学习》课程笔记(4)-- 浅层神经网络

上节课我们主要介绍了向量化、矩阵计算的方法和python编程的相关技巧。并以逻辑回归为例,将其算法流程包括梯度下降转换为向量化的形式,从而大大提高了程序运算速度...

29600
来自专栏杂七杂八

matlab留出法实现

留出法(hold-out) 方法:直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即.在S上训练出模型后,用T来评估其作为测...

72390
来自专栏贾志刚-OpenCV学堂

卷积神经网络是如何实现不变性特征提取的

传统的图像特征提取(特征工程)主要是基于各种先验模型,通过提取图像关键点、生成描述子特征数据、进行数据匹配或者机器学习方法对特征数据二分类/多分类实现图像的对象...

19620
来自专栏AI深度学习求索

AI科技:如何利用图片像素之间的像素度进行图像分割?

论文:Learning Pixel-level Semantic Affinity with Image-level Supervision for Weakl...

15320

扫码关注云+社区

领取腾讯云代金券