前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >人工智能常见知识点⑦

人工智能常见知识点⑦

原创
作者头像
会洗碗的CV工程师
发布2024-01-21 21:23:06
3330
发布2024-01-21 21:23:06
举报
文章被收录于专栏:LongJava学习资料LongJava学习资料

一.实验目的:

1. 学习由实际问题去建立神经网络模型的过程;

2. 应用matlab软件进行程序设计,熟练掌握神经网络相关方法。

3. 设计matlab程序来求解学习模型;

4. 通过实例开发,熟悉神经网络学习算法的设计。

5. 掌握神经网络方法的应用。

6. 训练综合应用神经网络方法去解决实际问题。

二.实验设备:

电脑

相应的开发软件matlab

实验一:

三.实验要求:

1. 计算题 :如图所示,神经元i有4个输入,分别为5,-10,6和-4,对应的权值分别为0.6、0.8、-1.5和-0.8,偏差为0.5。e = 2.71828

试求激活函数f()分别为下列函数时神经元i的输出yi 给出计算过程和计算结果。

解:v = 5*0.6+(-10)*0.8+6*(-1.5)+(-4)*(-0.8) + 0.5 = -10.3

(1) 线行函数f(v)=2v+1;

f(v) = 2*(-10.3) + 1 = -19.6;

(2)阈值函数

从上述得知v = -10.3; v<0;

因此yi = 0;

(3)分段函数

从上述得知:v<-1/2; 因此yi = 0;

(4)Sigmoid函数,a=1

由上面得知:v = -10.3, a = 1, e = 2.71828

yi = 1 / (1+e(10.3*1))= 0.0000336;

2. 橘子/香蕉模式识别问题。

向量输入是三维的,输入输出关系由下式描述. 当输出香蕉时,感知机输出为1;输出橘子时,感知机输出为-1。其中:阈值b=0,权值矩阵W=[-1,0,0],问题:当输入为:XA=[-1,0,-1]; ?XB=[-1, -1, -1],分别判别感知机的输出,哪个是香蕉?哪个是橘子?给出计算过程和计算结果。

解:当输入是XA = [-1,0,-1]时;

因为 W = [-1,0,0];

a = (-1*-1)+(0*0) + (-1*0) = 1;

所以输入时XA时,感知机输出的是香蕉。

当输入是XA = [-1,-1,-1];

a = (-1*-1) + (0*-1) + (0*-1);

所以输入时XB时,感知机输出的是香蕉。

3. 在0≤x≤4p区间内,用subplot(m,n,p)绘制曲线如下两条曲线:

提示:x=0:pi/100:4*pi

Y=sin5x y=cos5x

代码:

clear;

x = 0:pi/100:4*pi;

Y = sin(5*x);

y = cos(5*x);

subplot(2,1,1),plot(x,Y);subplot(2,1,2),plot(x,y)

运行结果:

4. 使用newff函数设计一个BP神经网络,神经网络有5个神经元组成的隐含层创建的。

1) P输入和T目标

P = [0 1 2 3 4 5 6 7 8 9 10];

T = [0 1 2 3 4 3 2 1 2 3 4];

2) 用sim函数对网络进行仿真

3) 在一个坐标系中,画出目标和网络的输出。给出实验结果截图。

5. 上题的结果并不理想,使用net.trainParam.epochs调整迭代次数,用train函数重新训练神经网络,用sim函数对网络进行仿真,在一个坐标系中,画出目标图和网络的输出。给出代码和结果运行截图。

net.trainParam.epochs = 10;

??????net = train(net,P,T);

1) 调整迭代次数为50

p = [0 1 2 3 4 5 6 7 8 9 10];

t = [0 1 2 3 4 3 2 1 2 3 4];

net = newff(p,t,5);

net.trainParam.epochs = 50;

net = train(net,p,t);

y = sim(net,p);

scatter(p,t);hold on;

plot(p,y);

2) 调整迭代次数为100

p = [0 1 2 3 4 5 6 7 8 9 10];

t = [0 1 2 3 4 3 2 1 2 3 4];

net = newff(p,t,5);

net.trainParam.epochs = 50;

net = train(net,p,t);

y = sim(net,p);

scatter(p,t);hold on;

plot(p,y);

3) 调整迭代次数为150

p = [0 1 2 3 4 5 6 7 8 9 10];

t = [0 1 2 3 4 3 2 1 2 3 4];

net = newff(p,t,5);

net.trainParam.epochs = 150;

net = train(net,p,t);

y = sim(net,p);

scatter(p,t);hold on;

plot(p,y);

3.1实验步骤

实现代码如下:

p = [0 1 2 3 4 5 6 7 8 9 10];

t = [0 1 2 3 4 3 2 1 2 3 4];

net = newff(p,t,5);

net.trainParam.epochs = 1500;

net = train(net,p,t);

y = sim(net,p);

scatter(p,t);hold on;

plot(p,y);

3.2实验结果

最终发现迭代次数在1500左右最能模拟出比较贴切实际值的曲线。

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.实验目的:
  • 二.实验设备:
  • 3.1实验步骤
  • 3.2实验结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com