




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章人工神经网络目录CONTENTS10.1感知机10.2神经网络模型10.3BP神经网络算法思想及实现10.4BP神经网络算法实现10.5本章小结10.1从感知机到多层感知机学习基础学习认知能力信息素养高M-P神经元模型如图10-1所示。输出一般可以表示为:1.激活函数假设有两个输入信号x1和x2,经过感知机处理后,输出结果为y,其网络结构如图10-2所示。10.1从感知机到多层感知机sigmoid函数、tanh函数和阶跃函数的图形如图10-3所示。10.1从感知机到多层感知机而对于图10-4所示的异或问题就显得无能为力。但是,可以通过对逻辑与、逻辑或、逻辑与非进行叠加后来实现逻辑异或运算,如图10-5所示。10.2神经网络模型一个单隐藏层的神经网络模型如图10-6所示。将神经网络每一层加上权值进行扩充后,就变成了图10-7所示的两层神经网络模型。:10.2神经网络模型经过输入层后,隐藏层的输出可通过以下公式得到:则上式就变为::使用矩阵形式可以表示为:10.2神经网络模型隐藏层到输出层的初始权值、偏置及输入为:则有:10.3BP神经网络算法思想及实现假设有n个输入样本,每个特征向量xi包含m个特征xi=(d1,d2,…,dm)。现在要确定神经网络的映射函数:神经网络的输出要无限接近真实的标签值,就是要最小化预测误差,如果采用均方误差,则目标函数为:10.3BP神经网络算法思想及实现是一个2×3的矩阵,是一个二维的列向量,则有:第i个输出结果为yi,则误差函数可以表示为:10.3BP神经网络算法思想及实现BP反向传播计算分为两个部分:(1)隐藏层到输出层的参数W和b的更新;(2)从输入层到隐藏层的参数W和b的更新。10.3BP神经网络算法思想及实现输入为4个样本,每个样本包含两个数x1和x2,如果增加一个偏置x0,则每个输入样本包含3个数(x0,x1,x2);输出为1个数,其值为0或1。importnumpyasnpdefinit_data():X=np.array([[1,0,0],[1,0,1],[1,1,0],[1,1,1]])Y=np.array([[0,1,1,0]])W1=np.random.random((3,4))*2-1W2=np.random.random((4,1))*2-1alpha=0.1returnX,Y,W1,W2,alpha10.3BP神经网络算法思想及实现(1)前向传播:根据输入数据和权值矩阵,计算X×W1,并将其代入激活函数,得到输入层到隐藏层的输出hidden_out;然后将其作为隐藏层到输出层的输入,再计算hidden_out*W2,将其代入激活函数,得到输出层的输出output_out。(2)计算误差:根据输出层的输出output_out与真实标签Y的取值,得到输出层的误差delta_output;根据隐藏层的输出hidden_out和隐藏层到输出层的权值矩阵W2,得到隐藏层的误差delta_hidden。(3)更新权值:先利用delta_output和hidden_out得到W2的变化量,然后更新W2;根据输入层的X和delta_hidden得到W1的变化量,然后更新W1。10.3BP神经网络算法思想及实现3.学习到参数W1和W2经过若干次迭代后,返回W1和W2。defbp_nn(X,Y,W1,W2,alpha,iter):foriinrange(iter):W1,W2=bp_train(X,Y,W1,W2,alpha)ifi%1000==0:hidden_out=sigmoid(np.dot(X,W1))#隐藏层输出为4×4的矩阵
output_out=sigmoid(np.dot(hidden_out,W2))#输出层输出为4×1的向量
print('当前误差:',np.mean(np.abs(Y.T-output_out)))returnW1,W210.3BP神经网络算法思想及实现4.测试样本defmodel_test(X,W1,W2):hidden_out=sigmoid(np.dot(X,W1))#隐藏层输出为4×4的矩阵
output_out=sigmoid(np.dot(hidden_out,W2))#输出层输出为4×1的向量
print('BP神经网络模型测试结果:')forsampleinmap(judge,output_out):print(sample,end='')10.3BP神经网络算法思想及实现当前误差:0.4979871475935289当前误差:0.4914224281784273…当前误差:0.10820928582709059当前误差:0.0934149541358422BP神经网络输出:
[[0.07394936][0.89675472][0.94200876][0.09623804]]BP神经网络训练结果:0110BP神经网络模型测试结果:0101110.4BP神经网络算法实现──鸢尾花分类1鸢尾花(iris)数据集包含4个特征,1个类别属性,共有150个样本。iris是鸢尾植物,数据集中存储了其萼片和花瓣的长宽,共4个属性;鸢尾花分为3类:山鸢尾(setosa)、变色鸢尾(versicolor)和维吉尼亚鸢尾(virginica)。其属性及类别描述如表10-1所示。10.4BP神经网络算法实现──鸢尾花分类22.样本标签数据处理为了方便实现对样本数据的多分类,可对原样本标签进行预处理,即把原分类标签0、1和2分别转换为[1,0,0]、[0,1,0]和[0,0,1]。foriinrange(len(all_feature)):newdata=[]newdata.append(list(all_feature[i]))ifall_data[i][4]=='setosa':newdata.append([1,0,0])elifall_data[i][4]=='versicolor':newdata.append([0,1,0])else:newdata.append([0,0,1])data.append(newdata)10.4BP神经网络算法实现──鸢尾花分类33.创建神经网络结构假设要构建一个3层神经网络模型,即包含一个输入层、一个隐藏层及一个输出层网络结构,需要初始化各层的权值,为方便调用,我们可以定义一个MyBPNetwork类,通过输入层、隐藏层和输出层神经元个数,构建输入层到隐藏层和隐藏层到输出层的权值矩阵,然后再通过随机生成函数初始化权值矩阵。10.4BP神经网络算法实现──鸢尾花分类33.创建神经网络结构defupdate(self,feature):foriinrange(self.in_num-1):self.in_layer[i]=feature[i]forjinrange(self.hidden_num):z=0.0foriinrange(self.in_num):z=z+self.in_layer[i]*self.W1[i][j]self.hid_out[j]=sigmoid(z)
forkinrange(self.output_num):z=0.0forjinrange(self.hidden_num):z=z+self.hid_out[j]*self.W2[j][k]self.out_out[k]=sigmoid(z)returnself.out_out10.4BP神经网络算法实现──鸢尾花分类defback_propagate(self,y_label,alpha):"""反向传播"""delta_output=[0.0]*self.output_numforindexinrange(self.output_num):err=y_label[index]-self.out_out[index]delta_output[index]=dsigmoid(self.out_out[index])*errdelta_hidden=[0.0]*self.hidden_numforiinrange(self.hidden_num):err=0.0forjinrange(self.output_num):err=error+delta_output[j]*self.W2[i][j]delta_hidden[i]=dsigmoid(self.hid_out[i])*err
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 莆田学院《空间分析与决策支持》2023-2024学年第二学期期末试卷
- 四川汽车职业技术学院《生物信息学(双语)》2023-2024学年第二学期期末试卷
- Unit 2 Different families Part A Let's talk Let's learn融合课(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册
- 山东女子学院《统计建模与软件》2023-2024学年第二学期期末试卷
- 陕西警官职业学院《大学语文》2023-2024学年第二学期期末试卷
- 黑龙江农业经济职业学院《工程测量》2023-2024学年第二学期期末试卷
- 河南建筑职业技术学院《生物统计与试验设计实验》2023-2024学年第二学期期末试卷
- 广东技术师范大学《老年学》2023-2024学年第二学期期末试卷
- Unit 5 Into the wild 单元教学设计 -2024-2025学年高中英语外研版(2019)必修第一册
- Unit 4 What can you do PB Let's learn (教学设计)-2024-2025学年人教PEP版英语五年级上册
- 创伤中心临床路径管理制度
- 《教育研究方法》课程教学大纲
- 《固体食品罐用冷轧电镀锡钢板及钢带》编制说明
- 2025年全国道路运输企业安全管理人员考试题库(含答案)
- 经济学原理(双语)-教学大纲
- 太阳能光伏发电安装工程监理实施细则
- 2024年同等学力人员申请硕士学位英语试卷与参考答案
- 小学一年级数学20以内的口算题(可直接打印A4)
- 提高大面积金刚砂地坪施工质量【QC成果】
- 糖尿病饮食指南食谱
- 2024年律师事务所代收款协议书模板
评论
0/150
提交评论