Python机器学习项目化教程(微课视频版)课件 第10章 人工神经网络.pptx

Python机器学习项目化教程(微课视频版)课件 第10章 人工神经网络.pptx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第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,alpha

10.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,W2

10.3BP神经网络算法思想及实现4.测试样本defmodel_test(X,W1,W2):hidden_out=sigmoid(np.dot(X,W1))#隐藏层输出为4×4的矩阵output_out=sigmoid(np.dot(hidden_out,W2))#输

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档