Matlab实现神经网络算法

线性关系可以说是最简单的关系,但在大多数实际问题求解中,线性关系往往不能体现事物之间的复杂关系。而神经网络算法具有非线性关系的逼近能力。在以往所学的算法中,往往是通过得到一个f(x)函数来描述y和x之间的关系的,但神经网络算法是通过层级之间一系列权重来体现关系的。附上一张经典的图。
在这里插入图片描述

算法的原理部分比较复杂,感兴趣的可以自行了解。而通过matlab则极容易建立神经网络模型。这里通过一个小的题目使该算法更容易理解。

根据城市的GDP和人口数(为了简单起见,只选了两个属性)来为中国的城市划分等级,共5级
clc%清屏
P = [3454.32, 432.2, 3243.3, 343,6, 4321,8;
		213.4, 342.4,4325.5,654.3,432.7];
		%输入2*5矩阵,输入层有五个神经元,第一行为GDP,第二行为人口数
		
T = -1:0.5:1 %定义输出,-1,-0.5,0,0.5,1代表城市的五个等级

net = newff(minmax(P),[7,1],{'tansig','purelin'},'trainlm')
%maxmin归一化处理,使输入输出在一个数量级内
%隐藏神经元的数量在一定范围内越大精度越高,一般取输入层神经元个数的两倍
%激活函数
%训练、修正算法

net.trainParam.show = 50 
net.trainParam.lr=0.05 %学习率,取值较小,一般取0.1,0,05,0,01
net.trainParam.epochs=1000%训练的最大次数,停止条件1
net.trainParam.goal=1e-5;%设置精度,误差小于精度,则停止,停止条件2
[net,tr]=train(net,P,T)%开始训练
y = sim(net,[4323.3,7654.6]')%模拟,输入某个城市的GDP和人口数,注意矩阵的转置
  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值