前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零开始深度学习(二):深度学习简介

从零开始深度学习(二):深度学习简介

作者头像
我是管小亮
发布2020-04-20 16:35:32
4010
发布2020-04-20 16:35:32
举报

文章首发于本人CSDN账号:https://blog.csdn.net/tefuirnever

由于微信不允许外部链接,你需要点击页尾左下角的“阅读原文”,才能访问文中的链接。

1、监督学习

神经网络有很多种类,根据不同的场景,考虑到使用的效果,会产生不一样的化学反应,事实证明,目前几乎所有神经网络创造的经济价值,本质上都离不开 监督学习

监督学习是指:利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有监督学习。

如今深度学习比较热门的领域,就是在线广告。这也许不是最鼓舞人心的,但真的很赚钱(还真是真实=-=)。具体就是通过在网站上输入一个广告的相关信息,因为也输入了用户的相关信息,于是网站就会考虑是否向你展示广告,你的点击的行为会直接影响到一些大型在线广告公司的收入。再举一个某宝的例子,你在挑选自己想要的产品时,系统会推荐一些类似的或者相关的产品给你,而这有可能会导致你的连带消费,这个点击行为可能会直接影响到一些产品公司的收入。

除此之外,计算机视觉在过去的几年里也依靠深度学习取得了长足的进步。最经典的例子是手写数字识别,输入你的手写数字,计算机就可以输出相应的真实数字。

还有在语音识别方面的进步也是非常令人兴奋的。比如语音输入转换为文字,像讯飞之类的输入法公司。还有得益于深度学习,机器翻译也有很大的发展,比如百度。

而这些都是监督学习,因为都是利用一组已知类别的样本调整分类器的参数。

2、结构化和非结构化

你可能也听说过机器学习对于结构化数据和非结构化数据的应用,结构化数据意味着数据的基本数据库。例如在房价预测中,你可能有一个数据库,有专门的几列数据告诉你卧室的大小和数量,这就是结构化数据。或预测用户是否会点击广告,你可能会得到关于用户的信息,比如年龄以及关于广告的一些信息,然后对你的预测分类标注,这就是结构化数据,意思是每个特征,比如说房屋大小卧室数量,或者是一个用户的年龄,都有一个很好的定义。

相反非结构化数据是指比如音频,原始音频或者你想要识别的图像或文本中的内容。这里的特征可能是图像中的像素值或文本中的单个单词。

从历史经验上看,处理非结构化数据是很难的,与结构化数据比较,让计算机理解非结构化数据很难,而人类进化得非常善于理解音频信号和图像,文本是一个更近代的发明,但是人们真的很擅长解读非结构化数据。

神经网络的兴起就是这样最令人兴奋的事情之一,多亏了深度学习和神经网络,计算机现在能更好地解释非结构化数据,这是与几年前相比的结果。许多新的令人兴奋的应用被使用,语音识别、图像识别、自然语言文字处理,甚至可能比两三年前的还要多!!!

3、为什么会兴起?

推动深度学习变得如此热门的主要因素有三个:数据规模、计算量及算法的创新。

1958年Rosenblatt发明的感知算法可对输入的多维数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权值。1986年Hiton发明的MLP的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。该方法引发了神经网络的第二次热潮。2006年,深度学习元年。Hiton提出了深层网络训练中梯度消失问题的解决方案:“无监督训练对权值进行初始化+有监督训练微调”。其主要思想是先通过自学习的方法学习到训练数据的结构,然后在该结构上进行有监督训练微调。2012年Hiton课题组首次参加ImageNet图像识别比赛,AlexNet夺得冠军,并碾压了第二名(SVM)的分类性能。

这么看来其实深度学习和神经网络之前的基础技术理念已经存在大概几十年了,为什么它们现在才突然流行起来呢?先来看一下时间线中最重要的2012年,为什么深度学习在这一年火了?先来看一下为什么深度学习能够如此有效?

来画个图,在水平轴上画一个形状,在此绘制出所有任务的数据量,而在垂直轴上,画出机器学习算法的性能。根据图像可以发现,如果把一个传统机器学习算法的性能画出来,作为数据量的一个函数,你可能得到一个弯曲的线,就像图中这样,它的性能一开始在增加更多数据时会上升,但是一段变化后它的性能就会像一个高原一样。

而数字化社会来临了,数据量变得非常巨大,比如在电脑网站上、在手机软件上以及其它数字化的服务,它们都能创建数据,同时便宜的相机被配置到移动电话,还有加速仪及各类各样的传感器,同时在物联网领域也收集到了越来越多的数据。仅仅在过去的20年里对于很多应用,我们便收集到了大量的数据,远超过机器学习算法能够高效发挥它们优势的规模。

如图,如果训练一个小型的神经网络,那么这个性能可能会像黄色曲线表示那样;如果训练一个稍微大一点的神经网络,比如说一个中等规模的神经网络(蓝色曲线),它在某些数据上面的性能也会更好一些;如果训练一个非常大的神经网络,它就会变成绿色曲线那样,并且保持变得越来越好。

因此你会发现,如果想要获得较高的性能体现,那么有两个条件要达到,第一个是一个规模足够大的神经网络,以发挥数据规模量巨大的优点,另外一个是需要能画到轴的这个位置,也就是需要大量数据。所以事实上如今最可靠的方法来在神经网络上获得更好的性能,往往就是要么训练一个更大的神经网络,要么投入更多的数据,这只能在一定程度上起作用,因为最终你耗尽了数据,或者最终你的网络是如此大规模导致将要用太久的时间去训练,但是仅仅提升规模的的确确地让我们在深度学习的世界中摸索了很多时间。

然而真的只有这两个因素嘛?只有数据和算法?

答案当然是No,还有一个重要的原因就是不断增长的计算力(CPU和GPU的发展)。过去的几年里有很多巨大的算法创新,其中很多算法创新都只是为了让神经网络运行得更快(相当于提升计算力)。例如,一个巨大的突破就是用relu函数代替了sigmoid函数。这些新算法大大缩短了神经网络的训练周期,让我们可以训练更大的神经网络、利用上更多的训练数据。

除此之外,强大计算力的另一个很重要的原因是,它可以让你更快的验证自己的想法,以便不断试错,以得到更好的想法。例如,你有一个神经网络架构的想法,你用代码实现了你的想法,然后运行它,进行训练,然后通过观察它,分析运行结果,然后你再修改自己的想法细节,然后再运行再观察再修改…。就这样不停地来回试错,所以执行这个试错的周期就很关键了。这也是为什么很多传统方向的人会有一些鄙视我们方向,因为他们把深度学习理解为调参......好气啊我。

综合以上,深度学习火起来的三大要素就是,数据,计算力,算法。而算法在不断地被创新,训练数据不断地在被收集,计算力CPU、GPU也在不断地增强,所以你我要充满信心,深度学习会越来越强大,越来越厉害,做更多的事!!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员管小亮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档