欢迎来到天天文库
浏览记录
ID:5184584
大小:206.61 KB
页数:22页
时间:2017-12-05
《人工智能应用技术实验报告-人工神经网络程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告课程名称人工智能应用技术实验项目人工神经网络程序设计实验仪器WindowsXP、VisualC++学院信息管理学院专业信息安全班级/学号信安1401学生姓名实验日期2016-5-10成绩22指导教师北京信息科技大学信息管理学院(课程上机)实验报告实验课程名称:人工智能应用技术专业:信息安全班级:学号:姓名: 实验名称人工神经网络程序设计实验地点学院机房实验时间5/101—4节1.实验目的:l掌握基本神经网络的常用学习规则l掌握人工神经网络的训练过程2.实验内容:l相关知识:基本神经网络(感知器,前馈网络)的常用学习规则l实验环境:WindowsXP,
2、Visualstudiol主要内容:人工神经网络的程序设计与实现221.实验要求:l完成神经网络学习程序的调试,课堂演示程序执行结果l输出神经网络权值调整过程值,分析结果数据,绘制神经网络l提交实验报告2.实验准备:掌握感知器学习算法①初始化:将权值向量赋予随机值,t=0(迭代次数)②连接权的修正:对每个输入样本xk及期望输出dk完成如下计算a.计算网络输出:y=f(S),其中S=∑wixi,f为激活函数b.计算输出层单元期望输出dk与实际输出y间的误差:ek=dk-yc.若ek为零,则说明当前样本输出正确,不必更新权值,否则更新权值:w(t+1)=w(t)
3、+α×ek×xkt=t+10<α<1为学习率。③对所有的输入样本重复步骤(2),直到所有的样本输出正确为止221.实验过程:#include#include"stdafx.h"#defineMAX_ITERATIONS1000#defineINPUT_NEURONS2#defineNUM_WEIGHTS(INPUT_NEURONS+1)#defineALPHA(double)0.2doubleweights[NUM_WEIGHTS];typedefstruct{doublea;doubleb;doubleexpected;}training
4、_data_t;#defineMAX_TESTS4training_data_ttraining_set[MAX_TESTS]={{-1.0,-1.0,-1.0},{-1.0,1.0,1.0},{1.0,-1.0,1.0},{1.0,1.0,1.0}};22doublecompute(inttest){doubleresult;/*Equation10.2*/result=((training_set[test].a*weights[0])+(training_set[test].b*weights[1])+(1.0*weights[2]));if(resu
5、lt>0.0)result=1.0;elseresult=-1.0;returnresult;}intmain(){inti,test;doubleoutput;intchange;/*Initializetheweightsfortheperceptron*/for(i=0;i6、Testontheperceptron*/output=compute(test);/*PerceptronLearningAlgorithm*/doubledif=training_set[test].expected-output;if((int)training_set[test].expected!=(int)output){/*UseEquation10.3*/weights[0]+=ALPHA*training_set[test].expected*training_set[test].a;weights[1]+=ALPHA*training_s7、et[test].expected*training_set[test].b;weights[2]+=ALPHA*training_set[test].expected;change=1;22}}}/*CheckthestatusofthePerceptron*/for(i=0;i#include22#include"8、maths.c"#include"rand.h"#d
6、Testontheperceptron*/output=compute(test);/*PerceptronLearningAlgorithm*/doubledif=training_set[test].expected-output;if((int)training_set[test].expected!=(int)output){/*UseEquation10.3*/weights[0]+=ALPHA*training_set[test].expected*training_set[test].a;weights[1]+=ALPHA*training_s
7、et[test].expected*training_set[test].b;weights[2]+=ALPHA*training_set[test].expected;change=1;22}}}/*CheckthestatusofthePerceptron*/for(i=0;i#include22#include"
8、maths.c"#include"rand.h"#d
此文档下载收益归作者所有