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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/TeFuirnever/article/details/100669859

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

声明

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

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

1、简介

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

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

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

2、神经网络

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

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

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

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

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

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

在这里插入图片描述
至于很多同学担心的数学问题,这里提出了Relu函数,你现在不用担心,之后我们会详细地讲到它。

可以看到我们已经简单地搭建了一个单神经元网络,如果可以的话也可以叫它 神经网络,不管规模的大小,即便只有一个神经元,它也是通过把这些单个神经元叠加在一起来形成一个大的网络。比较经典的类比就是,把这些神经元想象成单独的乐高积木,你就通过搭积木来完成一个更大的神经网络。

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

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

3、监督学习

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

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

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

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

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

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

4、结构化和非结构化

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

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

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

5、为什么深度学习会兴起?

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

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

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

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

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

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

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

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

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

参考文章

  • 吴恩达——《神经网络和深度学习》视频课程
展开阅读全文

没有更多推荐了,返回首页