模式识别与机器学习_作业_中科院_国科大_来源网络 (5)

更新时间:2023-06-08 09:47:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

作业答案5:

作业一:试用感知器算法实现逻辑“或”的功能(初始加权值、阈值和训练速率系数可自己设定)

答案:

kkkkkxxxx1212输入为、,输出为y。当和均为0时,yk为0,否则yk为1。

设阈值θ=0.06,训练速率系数η=0.02,初始设置加权为w1(0) 0.058,(0)w2 0.065。由于只有一个输出,得加权修正公式为:

wi(n 1) wi(n) kxk

k Tk yk

第一步:w(0)=(0.058, 0.065),加入x1=(0, 0),

11s1 w1x1 w2x2 0.06,则y=0。由于T=0,δ= T- y=0,故11111

w(1)=(0.058, 0.065)

第二步:加入x2=(0, 1),

2s2 w1x12 w2x2 0.005,则y=1。由于T=1,δ= T- y=0,故 22111

w(2)=w(1)=(0.058, 0.065)

第三步:加入x3=(1, 0),

33T- y=1,s3 w1x1 w2x2 -0.002,则y=0。由于T=1,则δ= 33333

w(3)=w(2)+0.02(1)x3=(0.078, 0.065)

第四步:加入x4=(1, 1),

4s4 w1x14 w2x2 0.083,则y=1。由于T=1,则δ= T- y=0,44444

故w(4)=w(3)=(0.078, 0.065)

第五步:加入x1=(0, 0),

S1=-0.06,则y1=0。由于T1=0,δ1=0,故w(5)=(0.078, 0.065) 第六步:加入x2=(0, 1),

S2=0.005,则y2=1。由于T2=1,δ2=0,故w(6)=(0.078, 0.065)

第七步:加入x3=(1, 0),

S3=0.018,则y3=1。由于T3=1,δ3=0,故w(7)=(0.078, 0.065)

第八步:加入x4=(1, 1),

S4=0.083,则y4=1。由于T4=1,δ4=0,故w(8)=(0.078, 0.065)

所以:w=(0.078, 0.065),阈值θ=0.06。

作业二:

试编写一程序,用感知器算法实现逻辑“或”(如上题)的功能。(可选)

答案:

源代码:

#include<iostream>

usingnamespacestd;

int x[4][2]={0,0,0,1,1,0,1,1};

int y[4]={0,1,1,1};

doublet,rate;

double w0[2]={0,0};

int main()

{ } cin>>t>>rate; cin>>w0[0]>>w0[1]; bool flag=true; while(flag) { } cout<<w0[0]<<" "<<w0[1]<<" "<<t<<endl; return 0; flag=false; for(int i=0;i<4;i++) { } doubleytmp=w0[0]*x[i][0]+w0[1]*x[i][1]-t; inty_int=0; if(ytmp<0) { } w0[0]+=rate*(y[i]-y_int)*x[i][0]; w0[1]+=rate*(y[i]-y_int)*x[i][1]; flag=true; y_int=0; y_int=1; else if(y_int!=y[i])

运行截图:

本文来源:https://www.bwwdw.com/article/08d1.html

Top