您当前的位置:首页 > 电脑百科 > 人工智能

深入浅出神经网络的改进方法

时间:2020-09-16 13:16:00  来源:  作者:

以下文章来源于Datawhale ,作者Michael

高尔夫球员刚开始学习打高尔夫球时,通常会花很长时间练习挥杆。慢慢地,他们才会在此基础上练习其他击球方式,学习削球、左曲球和右曲球。本章仍着重介绍反向传播算法,这就是我们的“挥杆基本功”——神经网络中大部分工作、学习和研究的基础。

本文将着重讲解利用交叉熵代价函数改进神经网络的学习方法。

干货:深入浅出神经网络的改进方法

 

一、交叉熵代价函数

大多数人不喜欢被他人指出错误。我以前刚学习弹钢琴不久,就在听众前做了一次首秀。我很紧张,开始时错将八度音阶的曲段演奏得很低。我不知所措,因为演奏无法继续下去了,直到有人指出了其中的错误。我当时非常尴尬。不过,尽管不愉快,我们却能因为明显的错误而快速地学到正确的知识。下次我肯定能演奏正确!然而当错误不明确的时候,学习会变得非常缓慢。学习速度下降的原因实际上也是一般的神经网络学习缓慢的原因,并不仅仅是特有的。

引入交叉熵代价函数

如何解决这个问题呢?研究表明,可以使用交叉熵代价函数来替换二次代价函数。

将交叉熵看作代价函数有两点原因。第一,它是非负的,C > 0。可以看出(57)的求和中的所有单独项都是负数,因为对数函数的定义域是(0, 1)。求和前面有一个负号。

第二,如果对于所有的训练输入x,神经元实际的输出都接近目标值,那么交叉熵将接近0。假设在本例中,y = 0而a ≈ 0,这是我们想要的结果。方程(57)中的第一个项会消去,因为y = 0,而第二项实际上就是−ln(1 − a) ≈ 0;反之,y = 1而a ≈ 1。所以实际输出和目标输出之间的差距越小,最终交叉熵的值就越小。

综上所述,交叉熵是非负的,在神经元达到较高的正确率时接近0。我们希望代价函数具备这些特性。其实二次代价函数也拥有这些特性,所以交叉熵是很好的选择。然而交叉熵代价函数有一个比二次代价函数更好的特性:它避免了学习速度下降的问题。

代价函数曲线要比二次代价函数训练开始部分陡峭很多。这个交叉熵导致的陡度正是我们期望的,当神经元开始出现严重错误时能以最快的速度学习。

二、改进神经网络的应用实践

使用交叉熵来对MNIST数字进行分类

如果程序使用梯度下降算法和反向传播算法进行学习,那么交叉熵作为其中一部分易于实现。我们会使用一个包含30个隐藏神经元的网络,小批量的大小也设置为10,将学习率设置为η,训练30轮。network2.py的接口和network.py的略有区别,但用法还是很好懂的。可以在Python shell中使用help(network2.Network.SGD)这样的命令来查看network2.py的接口文档。

>>> import mnist_loader
>>> training_data, validation_data, test_data = 
... mnist_loader.load_data_wrApper()
>>> import network2
>>> net = network2.Network([784, 30, 10], cost=network2.CrossEntropyCost)
>>> net.large_weight_initializer()
>>> net.SGD(training_data, 30, 10, 0.5, evaluation_data=test_data,
... monitor_evaluation_accuracy=True)

注意,net.large_weight_initializer()命令使用第1章介绍的方式来初始化权重和偏置。这里需要执行该命令,因为后面才会改变默认的权重初始化命令。运行上面的代码,神经网络的准确率可以达到95.49%,这跟第1章中使用二次代价函数得到的结果(95.42%)相当接近了。

对于使用100个隐藏神经元,而交叉熵及其他参数保持不变的情况,准确率达到了96.82%。相比第1章使用二次代价函数的结果(96.59%)有一定提升。看起来是很小的变化,但考虑到误差率已经从3.41%下降到3.18%了,消除了原误差的1/14,这其实是可观的改进。

跟二次代价相比,交叉熵代价函数能提供类似的甚至更好的结果,然而这些结果不能证明交叉熵是更好的选择,原因是在选择学习率、小批量大小等超参数上花了一些心思。为了让提升更有说服力,需要对超参数进行深度优化。然而,这些结果仍然是令人鼓舞的,它们巩固了先前关于交叉熵优于二次代价的理论推断。

转自:Datawhale ; Michael Nielsen,计算机科学家;

本文内容节选自《深入浅出神经网络与深度学习》一书,由Michael Nielsen所著,李航等推荐。本书深入了讲解神经网络和深度学习技术,作者以技术原理为导向,辅以贯穿全书的 MNIST 手写数字识别项目示例,讲解了如何利用所学知识改进深度学习项目,值得学习。



Tags:神经网络   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  Tags: 神经网络  点击:(47)  评论:(0)  加入收藏
MNIST 这里就不多展开了,我们上几期的文章都是使用此数据集进行的分享。手写字母识别EMNIST数据集Extended MNIST (EMNIST), 因为 MNIST 被大家熟知,所以这里就推出了 EMNIST...【详细内容】
2021-09-08  Tags: 神经网络  点击:(182)  评论:(0)  加入收藏
理解什么是人工智能,以及机器学习和深度学习如何影响它,是一种不同凡响的体验。在 Mate Labs 我们有一群自学有成的工程师,希望本文能够分享一些学习的经验和捷径,帮助机器学习...【详细内容】
2021-06-09  Tags: 神经网络  点击:(128)  评论:(0)  加入收藏
资料来源:getwallpapers.com 深度学习是机器学习中重要分支之一。它的目的是教会计算机做那些对于人类来说相当自然的事情。深度学习也是无人驾驶汽车背后的一项关键性技术,...【详细内容】
2021-04-13  Tags: 神经网络  点击:(168)  评论:(0)  加入收藏
私有虚拟网络(VPN)是在公用网络基础之上建立的私有加密通信隧道网络,企业对于自管辖网络中个人使用VPN软件行为具有监管责任,但技术上却很难识别VPN的加密与通信方式,因此利用人工智能(AI)领域的神经网络技术从网络流量中识...【详细内容】
2021-01-07  Tags: 神经网络  点击:(193)  评论:(0)  加入收藏
深层神经网络的模型概括,过度拟合和正则化方法的挑战> Source 在完成了与神经网络有关的多个AI项目之后,我意识到模型的概括能力对于AI项目的成功至关重要。 我想写这篇文章来...【详细内容】
2020-10-30  Tags: 神经网络  点击:(101)  评论:(0)  加入收藏
本文最初发表于 Towards Data Science 博客,经原作者 Andre Ye 授权,InfoQ 中文站翻译并分享。卷积神经网络(Convolutional Nerual Network,CNN)构成了图像识别的基础,这无疑是深...【详细内容】
2020-10-16  Tags: 神经网络  点击:(115)  评论:(0)  加入收藏
本报告讨论了非常厉害模型优化技术 —— 知识蒸馏,并给大家过了一遍相关的TensorFlow的代码。...【详细内容】
2020-09-25  Tags: 神经网络  点击:(92)  评论:(0)  加入收藏
算法算法从1950年代的早期研究开始,机器学习的所有工作似乎都随着神经网络的创建而积累起来。 从逻辑回归到支持向量机,相继提出了新算法之后的算法,但是从字面上看,神经网络是...【详细内容】
2020-09-17  Tags: 神经网络  点击:(90)  评论:(0)  加入收藏
卷积神经网络(CNN)广泛应用于深度学习和计算机视觉算法中。虽然很多基于CNN的算法符合行业标准,可以嵌入到商业产品中,但是标准的CNN算法仍然有局限性,在很多方面还可以改进。这篇文章讨论了语义分割和编码器-解码器架构...【详细内容】
2020-09-17  Tags: 神经网络  点击:(93)  评论:(0)  加入收藏
▌简易百科推荐
作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。在本文中,我将介绍两个...【详细内容】
2021-12-17  deephub    Tags:AI   点击:(15)  评论:(0)  加入收藏
基于算法的业务或者说AI的应用在这几年发展得很快。但是,在实际应用的场景中,我们经常会遇到一些非常奇怪的偏差现象。例如,Facebook将黑人标记为灵长类动物、城市图像识别系统...【详细内容】
2021-11-08  数据学习DataLearner    Tags:机器学习   点击:(32)  评论:(0)  加入收藏
11月2日召开的世界顶尖科学家数字未来论坛上,2013年诺贝尔化学奖得主迈克尔·莱维特、2014年诺贝尔生理学或医学奖得主爱德华·莫索尔、2007年图灵奖得主约瑟夫·斯发斯基、1986年图灵奖得主约翰·霍普克罗夫特、2002...【详细内容】
2021-11-03  张淑贤  证券时报  Tags:人工智能   点击:(39)  评论:(0)  加入收藏
鉴于物联网设备广泛部署、5G快速无线技术闪亮登场,把计算、存储和分析放在靠近数据生成的地方来处理,让边缘计算有了用武之地。 边缘计算正在改变全球数百万个设备处理和传输...【详细内容】
2021-10-26    计算机世界  Tags:边缘计算   点击:(45)  评论:(0)  加入收藏
这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Samplin...【详细内容】
2021-10-21  Python部落    Tags:机器学习   点击:(43)  评论:(0)  加入收藏
要开始为开源项目做贡献,有一些先决条件:1. 学习一门编程语言:由于在开源贡献中你需要编写代码才能参与开发,你需要学习任意一门编程语言。根据项目的需要,在后期学习另一种语言...【详细内容】
2021-10-20  TSINGSEE青犀视频    Tags:机器学习   点击:(37)  评论:(0)  加入收藏
SimpleAI.人工智能、机器学习、深度学习还是遥不可及?来这里看看吧~ 从基本的概念、原理、公式,到用生动形象的例子去理解,到动手做实验去感知,到著名案例的学习,到用所学来实现...【详细内容】
2021-10-19  憨昊昊    Tags:神经网络   点击:(47)  评论:(0)  加入收藏
语言是人类思维的基础,当计算机具备了处理自然语言的能力,才具有真正智能的想象。自然语言处理(Natural Language Processing, NLP)作为人工智能(Artificial Intelligence, AI)的核心技术之一,是用计算机来处理、理解以及运...【详细内容】
2021-10-11    36氪  Tags:NLP   点击:(48)  评论:(0)  加入收藏
边缘计算是什么?近年来,物联网设备数量呈线性增长趋势。根据艾瑞测算, 2020年,中国物联网设备的数量达74亿,预计2025年突破150亿个。同时,设备本身也变得越来越智能化,AI与互联网在...【详细内容】
2021-09-22  汉智兴科技    Tags:   点击:(54)  评论:(0)  加入收藏
说起人工智能,大家总把它和科幻电影中的机器人联系起来,而实际上这些科幻场景与现如今的人工智能没什么太大关系。人工智能确实跟人类大脑很相似,但它们的显著差异在于人工智能...【详细内容】
2021-09-17  异步社区    Tags:人工智能   点击:(57)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条