深度学习入门笔记(一):深度学习引言

欢迎关注WX公众号:【程序员管小亮】

专栏——深度学习入门笔记

声明

1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。
2)本文仅供学术交流,非商用。因此每一部分具体的参考资料并无详细对应。若是某部分不当心侵犯了你们的利益,还望海涵,并联系博主删除。
3)博主才疏学浅,文中若有不当之处,请各位指出,共同进步,谢谢。
4)此属于初版本,如有错误,还需继续修正与增删。还望你们多多指点。你们都共享一点点,一块儿为祖国科研的推动添砖加瓦。html

深度学习入门笔记(一):深度学习引言

一、简介

其实大部分人都是这样的,即使是咱们这些技术宅,第一次听到深度学习的时候也是一脸懵逼,以为很高大上,然而并不知道它究竟是干啥的。关于什么是深度学习,深度学习能作些什么事情?在 deeplearning.ai 的神经网络和深度学习课程中作过介绍。
在这里插入图片描述
如下是吴恩达老师的原话:程序员

深度学习改变了传统互联网业务,例如如网络搜索和广告,可是深度学习同时也使得许多新产品和企业以不少方式帮助人们,从得到更好的健康关注。
深度学习作的很是好的一个方面就是读取X光图像,除此以外还有生活中的个性化教育,到精准化农业,甚至到驾驶汽车以及其它一些方面。
在接下来的十年中,我认为咱们全部人都有机会创造一个惊人的世界和社会,这就是 AI (人工智能)的力量。我但愿大家能在建立 AI (人工智能)社会的过程当中发挥重要做用。
我认为AI是最新的电力,大约在一百年前,咱们社会的电气化改变了每一个主要行业,从交通运输行业到制造业、医疗保健、通信等方面,我认为现在咱们见到了 AI 明显的使人惊讶的能量,带来了一样巨大的转变。显然,AI 的各个分支中,发展的最为迅速的就是深度学习。所以如今,深度学习是在科技世界中广受欢迎的一种技巧。web

其实只要你一搜深度学习就是各类铺天盖地的新闻和资料,
在这里插入图片描述
关于深度学习的用途,如今最熟知的莫过于,用一个深度神经网络进行猫咪辨认,以下图,能够看到两只小猫咪,那么以电脑为首的机器,能不能识别出有几只猫咪,什么品种的猫咪(我太喜欢小猫小狗了 😃)。
在这里插入图片描述算法

二、神经网络

大概了解了深度学习以后,下一个就应该是神经网络了。数据库

咱们经常用深度学习这个术语来指训练神经网络的过程。有时它指的是特别大规模的神经网络训练。那么神经网络到底是什么呢?编程

让咱们从一个房价预测的例子开始讲起。假设你有一个数据集,它包含了六栋房子的信息。因此也就是说,你知道房屋的具体信息,好比面积是多少平方英尺或者平方米,而且知道房屋价格,目标函数是预测房价。网络

这时,就须要拟合一个根据房屋面积预测房价的函数。若是对线性回归很熟悉,你应该很容易就用这些数据拟合一条直线。
在这里插入图片描述
但奇怪的是,你可能也发现了,价格永远不会是负数,也就是等于或者大于0。所以,直线须要弯曲一点并最终在零结束。这条蓝色的手划线就是最终的函数,用于根据房屋面积预测价格。虽然这条直线拟合的不错,可是由于价格永不负数的缘故,你也许会认为这个函数只拟合房屋价格,没啥普适性,偶然性反而更大一些。架构

把房屋的面积(size)做为神经网络的输入,用 x x 表示,经过一个小圆圈,其实这个小圆圈就是一个单独的神经元(neuron),最终输出了价格(price),用 y y 表示。到这里网络就实现了左边的功能。app

剧透一下,在有关神经网络的文献中,你会常常看到这个函数。从趋于零开始,而后变成一条直线,几乎能够说是彻底拟合了房屋价格和房屋面积的关系。这个函数被称做 ReLU 激活函数,它的全称是 线性整流函数(Rectified Linear Unit, ReLU),又称 修正线性单元。修正能够理解成 m a x ( 0 , x ) max(0,x) ,这也是函数这个形状的缘由。框架

在这里插入图片描述
至于不少同窗担忧的数学问题,这里提出了Relu函数,你如今不用担忧,以后咱们会详细地讲到它。

能够看到咱们已经简单地搭建了一个单神经元网络,若是能够的话也能够叫它 神经网络,无论规模的大小,即使只有一个神经元,它也是经过把这些单个神经元叠加在一块儿来造成一个大的网络。比较经典的类比就是,把这些神经元想象成单独的乐高积木,你就经过搭积木来完成一个更大的神经网络。

下图是神经网络:
在这里插入图片描述
下图是乐高积木:
在这里插入图片描述
有没有一种类似的感受???

仍是来看刚才的例子,不只仅用房屋的面积来预测它的价格,还有其余相关房屋特征,好比卧室的数量,家人的数量等等。
在这里插入图片描述
在kaggle上有一个经典的竞赛题目就是房价预测,具体说明以下:
在这里插入图片描述
能够看到影响最终价格的因素能够不少,甚至高达79个。这些均可以在图上用小圆圈代替,也就是说均可以是 ReLU 的一部分,再或者其它非线性函数的一部分。对于一个房子来讲,这些都是与它息息相关的事情。在这个情景里,除了房屋面积以外,还有好比卧室的数量,邮政编码(交通便利程度),富裕程度等。
在这里插入图片描述
神经网络的神奇之处在于,当你实现它以后,你要作的只是输入 x x ,就能获得输出 y y ,这就成为了一个端到端的系统以实现功能。不过神经网络须要大量的数据,从而精准地从 x x y y 实现映射函数。这些数据是须要有 label 标注的,也就是监督学习,可能你不知道什么是监督学习,别着急,下一节会讲到的。你会发现神经网络在监督学习的环境下是如此的有效和强大,也就是说你只要尝试输入一个 x x ,便可把它映射成 y y ,就好像刚才在房价预测中看到的效果,转换成了一个简单数学问题,是否是很棒!

三、监督学习

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

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

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

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

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

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

四、结构化和非结构化

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

相反非结构化数据是指好比音频,原始音频或者你想要识别的图像或文本中的内容。这里的特征多是图像中的像素值或文本中的单个单词。
在这里插入图片描述
从历史经验上看,处理非结构化数据是很难的,与结构化数据比较,让计算机理解非结构化数据很难,而人类进化得很是善于理解音频信号和图像,文本是一个更近代的发明,可是人们真的很擅长解读非结构化数据

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

五、为何深度学习会兴起?

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

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

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

来画个图,在水平轴上画一个形状,在此绘制出全部任务的数据量,而在垂直轴上,画出机器学习算法的性能。根据图像能够发现,若是把一个传统机器学习算法的性能画出来,做为数据量的一个函数,你可能获得一个弯曲的线,就像图中这样,它的性能一开始在增长更多数据时会上升,可是一段变化后它的性能就会像一个高原同样。
在这里插入图片描述
而数字化社会来临了,数据量变得很是巨大,好比在电脑网站上、在手机软件上以及其它数字化的服务,它们都能建立数据,同时便宜的相机被配置到移动电话,还有加速仪及各种各样的传感器,同时在物联网领域也收集到了愈来愈多的数据。仅仅在过去的20年里对于不少应用,咱们便收集到了大量的数据,远超过机器学习算法可以高效发挥它们优点的规模。
在这里插入图片描述
如图,若是训练一个小型的神经网络,那么这个性能可能会像黄色曲线表示那样;若是训练一个稍微大一点的神经网络,好比说一个中等规模的神经网络(蓝色曲线),它在某些数据上面的性能也会更好一些;若是训练一个很是大的神经网络,它就会变成绿色曲线那样,而且保持变得愈来愈好。

所以你会发现,若是想要得到较高的性能体现,那么有两个条件要达到,第一个是一个规模足够大的神经网络,以发挥数据规模量巨大的优势,另一个是须要能画到 x x 轴的这个位置,也就是须要大量数据。因此事实上现在最可靠的方法来在神经网络上得到更好的性能,每每就是要么训练一个更大的神经网络,要么投入更多的数据,这只能在必定程度上起做用,由于最终你耗尽了数据,或者最终你的网络是如此大规模致使将要用过久的时间去训练,可是仅仅提高规模的的确确地让咱们在深度学习的世界中摸索了不少时间。

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

答案固然是No,还有一个重要的缘由就是不断增加的计算力(CPU和GPU的发展)。 过去的几年里有不少巨大的算法创新,其中不少算法创新都只是为了让神经网络运行得更快(至关于提高计算力)。例如,一个巨大的突破就是用relu函数代替了sigmoid函数。这些新算法大大缩短了神经网络的训练周期,让咱们能够训练更大的神经网络、利用上更多的训练数据。

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

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

推荐阅读

参考文章

  • 吴恩达——《神经网络和深度学习》视频课程