1. 主要解决的是什么问题?
预测类、聚类分析
2. 原理、思路是啥?
什么是人工神经网络(ANN)→模拟大脑对信号处理的一种算法
基本原理介绍:
权关系是具体不清楚他们之间的关系(并未给出准确的对应关系,只是假设他们之间的关系可以用一组权来表示);阈值/偏置表示的是神经网络可以产生刺激的临界值
神经网络的工作状态分为学习和工作两种状态。学习状态:利用学习算法来调整神经元间的连接权重,使得网络输出更符合实际。工作状态:神经元间的连接权值不变,进行预测数据或别的用途。
利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。(信号的正向传播&误差的反向传播)
3. 建模步骤?
最重要:归一化处理/无量纲化处理
4.论文中怎么写?
5.模型的优点和缺点?
适合大样本,可以实现对非线性的预测;没有具体公式。
受样本影响大,尽量获取足够多的样本,它的多少直接关系到所建模型的可靠性。
建模时尽量减少隐含层神经元的个数。由于隐含层神经元个数的确定是凭经验的,而个数的多少直接关系到网络的性能。个数太少,网络容易陷入局部极小值;太多,则网络的预测结果不稳定。为此隐含层神经元个数的确定利用“试错法”来实现,即先给定一个较小的值,根据训练的结果逐渐增加,这样可找到适合该模型隐含层神经元个数的最小值,从而提高了网络的稳定性。
6.代码讲解:
net=newff(PR,[S1 S2...SNl]),{TF1 TF2...TFNl},BTF)
PR:由R维的输入样本最小最大值构成的R*2维矩阵。
[S1 S2…SNl]各层的神经元个数。
{TF1 TF2…TFNl}各层的神经元传递函数。
BTF训练用函数的名称。
net=train(net,P,T)
Y2=sim(net,P2)
%traingd
clear;
clc;
P=[-1 -1 2 2 4;0 5 0 5 7];
T=[-1 -1 1 1 -1];
%利用minmax函数求输入样本范围
net = newff(minmax(P),[7,1],{'tansig','purelin'},'trainlm');
net.trainParam.show=50;%
net.trainParam.lr=0.05;
net.trainParam.epochs=1000;
net.trainParam.goal=1e-5;
[net,tr]=train(net,P,T);
net.iw{1,1}%隐层权值
net.b{1}%隐层阈值
net.lw{2,1}%输出层权值
net.b{2}%输出层阈值
y3=sim(net,P);
7.模型拓展
- Eg1.1981年生物学家格若根(W.
Grogan)和维什(W.Wirth)发现了两类蚊子(或飞蠓midges).他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:若抓到三只新的蚊子,它们的触角长和翼长分别为(1.24,1.80);(1.28,1.84);(1.40,2.04).问它们应分别属于哪一个种类?
- Eg2.下表为某药品的销售情况,进行明年1月的预测;
8.附:BP算法