电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

零基础入门深度学习-神经网络和反向传播算法

15页
  • 卖家[上传人]:第***
  • 文档编号:60828771
  • 上传时间:2018-11-19
  • 文档格式:PDF
  • 文档大小:2.15MB
  • / 15 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、关闭 零基础入门深度学习(3) - 神经网络和反向传播算法 机器学习 深度学习入门 无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追 求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就out了?现在救命稻草来了,零基础入门深 度学习系列文章旨在讲帮助爱编程的你从零基础达到入门级水平。零基础意味着你不需要太多的数学知识,只要会写程序就行 了,没错,这是专门为程序员写的文章。虽然文中会有很多公式你也许看不懂,但同时也会有更多的代码,程序员的你一定能看 懂的(我周围是一群狂热的Clean Code程序员,所以我写的代码也不会很差)。 文章列表 零基础入门深度学习(1) - 感知器 零基础入门深度学习(2) - 线性单元和梯度下降 零基础入门深度学习(3) - 神经网络和反向传播算法 零基础入门深度学习(4) - 卷积神经网络 零基础入门深度学习(5) - 循环神经网络 零基础入门深度学习(6) - 长短时记忆网络(LSTM) 零基础入门深度学习(7) - 递归神经网络 往期回顾 在上一篇文章中

      2、,我们已经掌握了机器学习的基本套路,对模型、目标函数、优化算法这些概念有了一定程度的理解,而且已经会训练单个 的感知器或者线性单元了。在这篇文章中,我们将把这些单独的单元按照一定的规则相互连接在一起形成神经网络,从而奇迹般的获得了强 大的学习能力。我们还将介绍这种网络的训练算法:反向传播算法。最后,我们依然用代码实现一个神经网络。如果您能坚持到本文的结 尾,将会看到我们用自己实现的神经网络去识别手写数字。现在请做好准备,您即将双手触及到深度学习的大门。 神经元 神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数是阶跃函数;而当我们说神经元时,激活函数往往选择为 sigmoid函数或tanh函数。如下图所示: 计算一个神经元的输出的方法和计算一个感知器的输出是一样的。假设神经元的输入是向量 ,权重向量是 (偏置项是),激活函数是 sigmoid函数,则其输出 : sigmoid函数的定义如下: 将其带入前面的式子,得到 sigmoid函数是一个非线性函数,值域是(0,1)。函数图像如下图所示 sigmoid函数的导数是: 可以看到,sigmoid函数的导数非常有趣,它可

      3、以用sigmoid函数自身来表示。这样,一旦计算出sigmoid函数的值,计算它的导数的值就非常 方便。 神经网络是啥 神经网络其实就是按照一定规则连接起来的多个神经元。上图展示了一个全连接(full connected, FC)神经网络,通过观察上面的图, 我们可以发现它的规则包括: 神经元按照层来布局。最左边的层叫做输入层,负责接收输入数据;最右边的层叫输出层,我们可以从这层获取神经网络输出数据。 输入层和输出层之间的层叫做隐藏层,因为它们对于外部来说是不可见的。 同一层的神经元之间没有连接。 第N层的每个神经元和第N-1层的所有神经元相连(这就是full connected的含义),第N-1层神经元的输出就是第N层神经元的输入。 每个连接都有一个权值。 上面这些规则定义了全连接神经网络的结构。事实上还存在很多其它结构的神经网络,比如卷积神经网络(CNN)、循环神经网络(RNN),他们 都具有不同的连接规则。 计算神经网络的输出 神经网络实际上就是一个输入向量 到输出向量 的函数,即: 根据输入计算神经网络的输出,需要首先将输入向量 的每个元素的值赋给神经网络的输入层的对应神经元,

      4、然后根据式1依次向前计算每 一层的每个神经元的值,直到最后一层输出层的所有神经元的值计算完毕。最后,将输出层每个神经元的值串在一起就得到了输出向量 。 接下来举一个例子来说明这个过程,我们先给神经网络的每个单元写上编号。 式 令 则 如上图,输入层有三个节点,我们将其依次编号为1、2、3;隐藏层的4个节点,编号依次为4、5、6、7;最后输出层的两个节点编号为8、 9。因为我们这个神经网络是全连接网络,所以可以看到每个节点都和上一层的所有节点有连接。比如,我们可以看到隐藏层的节点4,它 和输入层的三个节点1、2、3之间都有连接,其连接上的权重分别为。那么,我们怎样计算节点4的输出值呢? 为了计算节点4的输出值,我们必须先得到其所有上游节点(也就是节点1、2、3)的输出值。节点1、2、3是输入层的节点,所以,他们的 输出值就是输入向量 本身。按照上图画出的对应关系,可以看到节点1、2、3的输出值分别是。我们要求输入向量的维度和输入 层神经元个数相同,而输入向量的某个元素对应到哪个输入节点是可以自由决定的,你偏非要把赋值给节点2也是完全没有问题的,但这 样除了把自己弄晕之外,并没有什么价值。

      5、 一旦我们有了节点1、2、3的输出值,我们就可以根据式1计算节点4的输出值: 上式的是节点4的偏置项,图中没有画出来。而分别为节点1、2、3到节点4连接的权重,在给权重编号时,我们把目标节 点的编号 放在前面,把源节点的编号 放在后面。 同样,我们可以继续计算出节点5、6、7的输出值。这样,隐藏层的4个节点的输出值就计算完成了,我们就可以接着计算输出层的 节点8的输出值: 同理,我们还可以计算出的值。这样输出层所有节点的输出值计算完毕,我们就得到了在输入向量时,神经网络的输出向量 。这里我们也看到,输出向量的维度和输出层神经元个数相同。 神经网络的矩阵表示 神经网络的计算如果用矩阵来表示会很方便(当然逼格也更高),我们先来看看隐藏层的矩阵表示。 首先我们把隐藏层4个节点的计算依次排列出来: 接着,定义网络的输入向量 和隐藏层每个节点的权重向量。令 代入到前面的一组式子,得到: 现在,我们把上述计算的四个式子写到一个矩阵里面,每个式子作为矩阵的一行,就可以利用矩阵来表示它们的计算了。令 带入前面的一组式子,得到 在式2中, 是激活函数,在本例中是函数;是某一层的权重矩阵; 是某层的输入向

      6、量; 是某层的输出向量。式2说明神经网络 的每一层的作用实际上就是先将输入向量左乘一个数组进行线性变换,得到一个新的向量,然后再对这个向量逐元素应用一个激活函数。 每一层的算法都是一样的。比如,对于包含一个输入层,一个输出层和三个隐藏层的神经网络,我们假设其权重矩阵分别为 ,每个隐藏层的输出分别是,神经网络的输入为 ,神经网络的输入为 ,如下图所示: 则每一层的输出向量的计算可以表示为: 这就是神经网络输出值的计算方法。 神经网络的训练 现在,我们需要知道一个神经网络的每个连接上的权值是如何得到的。我们可以说神经网络是一个模型,那么这些权值就是模型的参数,也 就是模型要学习的东西。然而,一个神经网络的连接方式、网络的层数、每层的节点数这些参数,则不是学习出来的,而是人为事先设置 的。对于这些人为设置的参数,我们称之为超参数(Hyper-Parameters)。 接下来,我们将要介绍神经网络的训练算法:反向传播算法。 反向传播算法(Back Propagation) 我们首先直观的介绍反向传播算法,最后再来介绍这个算法的推导。当然读者也可以完全跳过推导部分,因为即使不知道如何推导,也不影

      7、 响你写出来一个神经网络的训练代码。事实上,现在神经网络成熟的开源实现多如牛毛,除了练手之外,你可能都没有机会需要去写一个神 经网络。 我们以监督学习为例来解释反向传播算法。在零基础入门深度学习(2) - 线性单元和梯度下降一文中我们介绍了什么是监督学习,如果忘记 了可以再看一下。另外,我们设神经元的激活函数 为函数(不同激活函数的计算公式不同,详情见反向传播算法的推导一节)。 我们假设每个训练样本为,其中向量 是训练样本的特征,而 是样本的目标值。 首先,我们根据上一节介绍的算法,用样本的特征 ,计算出神经网络中每个隐藏层节点的输出,以及输出层每个节点的输出。 然后,我们按照下面的方法计算出每个节点的误差项 : 对于输出层节点 , 式 式 其中, 是节点 的误差项,是节点 的输出值, 是样本对应于节点 的目标值。举个例子,根据上图,对于输出层节点8来说,它的输出值 是,而样本的目标值是,带入上面的公式得到节点8的误差项应该是: 对于隐藏层节点, 其中,是节点 的输出值,是节点 到它的下一层节点 的连接的权重,是节点 的下一层节点 的误差项。例如,对于隐藏层节点4来 说,计算方法如下:

      8、 最后,更新每个连接上的权值: 其中,是节点 到节点 的权重, 是一个成为学习速率的常数,是节点 的误差项,是节点 传递给节点 的输入。例如,权重的更 新方法如下: 类似的,权重的更新方法如下: 偏置项的输入值永远为1。例如,节点4的偏置项应该按照下面的方法计算: 我们已经介绍了神经网络每个节点误差项的计算和权重更新方法。显然,计算一个节点的误差项,需要先计算每个与其相连的下一层节点的 误差项。这就要求误差项的计算顺序必须是从输出层开始,然后反向依次计算每个隐藏层的误差项,直到与输入层相连的那个隐藏层。这就 是反向传播算法的名字的含义。当所有节点的误差项计算完毕后,我们就可以根据式5来更新所有的权重。 以上就是基本的反向传播算法,并不是很复杂,您弄清楚了么? 反向传播算法的推导 反向传播算法其实就是链式求导法则的应用。然而,这个如此简单且显而易见的方法,却是在Roseblatt提出感知器算法将近30年之后才被发 明和普及的。对此,Bengio这样回应道: 很多看似显而易见的想法只有在事后才变得显而易见。 接下来,我们用链式求导法则来推导反向传播算法,也就是上一小节的式3、式4、式5。

      9、前方高能预警接下来是数学公式重灾区,读者可以酌情阅读,不必强求。 按照机器学习的通用套路,我们先确定神经网络的目标函数,然后用随机梯度下降优化算法去求目标函数最小值时的参数值。 我们取网络所有输出层节点的误差平方和作为目标函数: 其中,表示是样本 的误差。 然后,我们用文章零基础入门深度学习(2) - 线性单元和梯度下降中介绍的随机梯度下降算法对目标函数进行优化: 随机梯度下降算法也就是需要求出误差对于每个权重的偏导数(也就是梯度),怎么求呢? 观察上图,我们发现权重仅能通过影响节点 的输入值影响网络的其它部分,设是节点 的加权输入,即 式 式 是的函数,而是的函数。根据链式求导法则,可以得到: 上式中,是节点 传递给节点 的输入值,也就是节点 的输出值。 对于的推导,需要区分输出层和隐藏层两种情况。 输出层权值训练 对于输出层来说,仅能通过节点 的输出值来影响网络其它部分,也就是说是的函数,而是的函数,其中 。所以我们可以再次使用链式求导法则: 考虑上式第一项: 考虑上式第二项: 将第一项和第二项带入,得到: 如果令,也就是一个节点的误差项 是网络误差对这个节点输入的偏导数的相反数。带入上式,得到: 上式就是式3。 将上述推导带入随机梯度下降公式,得到: 上式就是式5。 隐藏层权值训练 现在我们要推导出隐藏层的。 首先,我们需要定义节点 的所有直接下游节点的集合。例如,对于节点4来说,它的直接下游节点是节点8、节点9。可以看 到只能通过影响再影响。设是节点 的下游节点的输入,则是的函数,而是的函数。因为有多 个,我们应用全导数公式,可以做出如下推导: 因为,带入上式得到: 上式就是式4。 数学公式警报解除 至此,我们已经推导出了反向传播算法。需要注意的是,我们刚刚推导出的训练规则是根据激活函数是sigmoid函数、平方和误差、全连接网 络、随机梯度下降优化算法。如果激活函数不同、误差计算方式不同、网络连接结构不同、优化算法不同,则具体的训练规则也会不一样。 但是无论怎样,训练规则的推导方式都是一样的,应用链式求导法则进行推导即可。 神经网络的实现 现在,我们要根据前面的算法,实现一个基本的全连接神经网络,这并不需要太多代码。我们在这里依然采用面向对象设计。 首先,我们先做一个基本的模型: 如上图,可以分解出5个领域对象来实现神经网络: Netw

      《零基础入门深度学习-神经网络和反向传播算法》由会员第***分享,可在线阅读,更多相关《零基础入门深度学习-神经网络和反向传播算法》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.