Download presentation
Presentation is loading. Please wait.
1
Artificial Neural Networks
ANN Artificial Neural Networks
3
人工神经网络是一个非线性的有向图,图中含有可以通过改变权大小来存放模式的加权边,并且可以从不完整的或未知的输入找到模式。
4
擅长两个方面: 目前应用: 对大量的数据进行分类,并且只有较少的几种情况; 必须学习一个复杂的非线性映射。
人们主要将其用于语音、视觉、知识处理、辅助决策等方面。 在数据压缩、模式匹配、系统建模、模糊控制、求组合优化问题的最佳解的近似解(不是最佳近似解)等方面也有较好的应用。
5
人工神经元模拟生物神经元的一阶特性。 输入:X=(x1,x2,…,xn) 联接权:W=(w1,w2,…,wn)T
xn wn ∑ x1 w1 x2 w2 net=XW … 人工神经元模拟生物神经元的一阶特性。 输入:X=(x1,x2,…,xn) 联接权:W=(w1,w2,…,wn)T 网络输入: net=∑xiwi 向量形式: net=XW
6
4、S形函数 a+b o (0,c) net a c=a+b/2 2018/11/19
7
2、弱点:训练速度非常慢、局部极小点的逃离问题、算法不一定收敛。 3、优点:广泛的适应性和有效性。
1、BP算法的出现 非循环多级网络的训练算法 UCSD PDP小组的Rumelhart、Hinton和Williams1986年独立地给出了BP算法清楚而简单的描述 1982年,Paker就完成了相似的工作 1974年,Werbos已提出了该方法 2、弱点:训练速度非常慢、局部极小点的逃离问题、算法不一定收敛。 3、优点:广泛的适应性和有效性。
8
输出函数分析 应该将net的值尽量控制在收敛比较快的范围内 可以用其它的函数作为激活函数,只要该函数是处处可导的 0.5 f ′(net)
0.5 f ′(net) 0.25 o 1 1 (0,0.5) net (0,0) o 应该将net的值尽量控制在收敛比较快的范围内 可以用其它的函数作为激活函数,只要该函数是处处可导的 2018/11/19
9
网络的拓扑结构 x1 o1 输出层 隐藏层 输入层 x2 o2 om xn … W(1) W(2) W(3) W(L) 2018/11/19
10
网络的拓扑结构 x1 o1 输出层 隐藏层 输入层 x2 o2 om xn … W V 2018/11/19
11
2、向后传播阶段——误差传播阶段: (1)计算实际输出Op与相应的理想输出Yp的差; (2)按极小化误差的方式调整权矩阵。 (3)网络关于第p个样本的误差测度:
(4) 网络关于整个样本集的误差测度: 2018/11/19
12
1、输出层权的调整 ∆wpq wpq= wpq+∆wpq ∆wpq=αδqop =αfn′ (netq)(yq-oq)op
ANp ANq 第L-1层 第L层 ∆wpq wpq= wpq+∆wpq ∆wpq=αδqop =αfn′ (netq)(yq-oq)op =αoq(1-oq) (yq-oq)op 2018/11/19
13
2、隐藏层权的调整 ANp ANq ANh vhp δpk-1 δ1k wp1 wpq δqk wpm δmk 第k-2层 第k层
… 2018/11/19
14
基本BP算法 neti=x1w1i+x2w2i+…+xnwni 2018/11/19
15
clc clc; clear; close all; ld=200; x=rand(2,ld); x=(x-0.5)*3; x1=x(1,:); x2=x(2,:); F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
17
net=newff(minmax(x),[5,1],{'tansig','purelin'},'trainlm');
net.trainParam.epochs = 5000; net.trainParam.goal = 1e-3; net.trainParam.lr = 0.05; net.trainParam.mc = 0.8; [net,tr]=train(net,x,F);
22
interval=0.1; [x1, x2]=meshgrid(-1.5:interval:1.5); F = 20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2); mesh(x1,x2,F); Surf(x1,x2,F);
23
interval=0.1; [i, j]=meshgrid(-1.5:interval:1.5); row=size(i); tx1=i(:); tx1=tx1'; tx2=j(:); tx2=tx2'; tx=[tx1;tx2]; %testing ty=sim(net,tx); v=reshape(ty,row); figure subplot(1,3,2) mesh(i,j,v);
Similar presentations