(十四)从零开始学人工智能-深度学习基础及CNN

一、深度学习基础

​ 从本次开始,我们将开启新的篇章:深度学习系列。主要涉及三个部分,一是,深度学习基础:包括深度学习历史及基本概念,感知机,BP神经网络,神经网络等初步介绍;过程中会引入一些基础概念:反向传播,随机梯度下降,学习率衰减,损失函数等;二是,深度学习典型算法第一部分:包括深度神经网络DNN、卷积神经网络CNN、深度置信网络DBN等;三是,深度学习典型算法第二部分:包括递归神经网络RNN,循环神经网络RNN,生成对抗式网络GAN等。本次只介绍第一部分,深度学习基础。

1.1 深度学习及其发展历史

1.1.1 什么是学习?

赫伯特·西蒙教授(Herbert Simon,1975年图灵奖获得者、1978年诺贝尔经济学奖获得者)曾对“学习”给了一个定义:“如果一个系统,能够通过执行某个过程,就此改进了它的性能,那么这个过程就是学习”。学习的核心目的,就是改善性能。

1.1.2 什么是机器学习?

那机器学习又是什么呢?不知道大家还记不记得,在该系列教程开篇我们提到过这个问题: 机器学习本质是什么? 我们当时是这么说的:

机器学习 ≈ ≈ 寻找一个函数/数学

如下图所示,常用的语音识别、图像识别、对话系统等,训练模型的过程都是在寻找一个任务相关的最优化函数。

在这里插入图片描述

也就是说,需要找到一个关于输入输出的映射关系,也就是一个最优化函数,那如何确定这样一个最优化的函数呢?

在这里插入图片描述

形象的说,为了确定最优化映射关系(函数),会生成一系列的函数,这就是模型的训练过程,再从中选取最优的函数,如上图所示, f 1 f_1 f1就优于 f 2 f_2 f2,因为 f 1 f_1 f1能准确识别图片,而 f 2 f_2 f2不能。

1.1.3 什么是深度学习?

今天的主角登场!深度学习又是什么?它和机器学习又是啥关系?这在第一堂课中其实也提及了。

简要回顾一下:

一位微软工程师对它们的解释

在这里插入图片描述
What?借用网上一句话,不要慌,看不懂的一律当作约饭机器学习处理。

言归正传,本着不以说清楚为目的的教程都是耍流氓的精神:

人工智能:计算机领域类的一套概念。

机器学习:一种实现人工智能的方法。

深度学习:一种实现机器学习的技术。

今天我们从另一个角度来进行解释,因为之前我们已经讲过了统计的相关课程,今天从统计的角度进行解释:学习的四个象限

在这里插入图片描述

怎么理解呢?
由「可推理可统计」向「可推理不可统计」发展部分的手段为机器学习,由「可推理可统计」向「不可推理可统计」法阵的手段为深度学习,而深度学习用到了神经网络的理论。两个学习都是人工智能的范围。那第IV象限是什么鬼? 那属于强学习范畴了,目前我们狭义上的弱机器学习是搞不定的。

1.1.4 深度学习发展历史

当遇到一个陌生对手的时候,如何以最佳方式干翻 t a ta ta?最好入手的地方当然是深扒 t a ta ta的过去,只有了解 t a ta ta的过去,把握历史,才能抓住现在与未来!

  • 1943年
    由神经科学家麦卡洛克( W . S . M c C i l l o c h W.S.McCilloch W.S.McCilloch) 和数学家皮兹( W . P i t t s W.Pitts W.Pitts)在《数学生物物理学公告》上发表论文《神经活动中内在思想的逻辑演算》( A L o g i c a l C a l c u l u s o f t h e I d e a s I m m a n e n t i n N e r v o u s A c t i v i t y A Logical Calculus of the Ideas Immanent in Nervous Activity ALogicalCalculusoftheIdeasImmanentinNervousActivity)。建立了神经网络和数学模型,称为 M C P MCP MCP模型。所谓 M C P MCP MCP模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型,也就诞生了所谓的“模拟大脑”,人工神经网络的大门由此开启。 M C P MCP MCP当时是希望能够用计算机来模拟人的神经元反应的过程,该模型将神经元简化为了三个过程:输入信号线性加权,求和,非线性激活(阈值法)。如下图所示
    在这里插入图片描述

  • 1958年
    计算机科学家罗森布拉特( R o s e n b l a t t Rosenblatt Rosenblatt)提出了两层神经元组成的神经网络,称之为“感知器”( P e r c e p t r o n s Perceptrons Perceptrons)。第一次将 M C P MCP MCP用于机器学习分类。**“感知器”**算法算法使用 M C P MCP MCP模型对输入的多维数据进行二分类,且能够使用梯度下降法从训练样本中自动学习更新权值。1962年,该方法被证明为能够收敛,理论与实践效果引起第一次神经网络的浪潮。

  • 1969年
    纵观科学发展史,无疑都是充满曲折的,深度学习也毫不例外。 1969年,美国数学家及人工智能先驱 M a r v i n M i n s k y Marvin Minsky MarvinMinsky在其著作中证明了感知器本质上是一种线性模型( l i n e a r m o d e l linear model linearmodel),只能处理线性分类问题,就连最简单的 X O R XOR XOR(亦或)问题都无法正确分类。这等于直接宣判了感知器的死刑,神经网络的研究也陷入了将近20年的停滞。

  • 1986年
    由神经网络之父 G e o f f r e y H i n t o n Geoffrey Hinton GeoffreyHinton在1986年发明了适用于多层感知器( M L P MLP MLP)的 B P ( B a c k p r o p a g a t i o n ) BP(Backpropagation) BPBackpropagation算法,并采用 S i g m o i d Sigmoid Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮。

    注: S i g m o i d Sigmoid Sigmoid函数是一个在生物学中常见的 S S S型的函数,也称为 S S S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质, S i g m o i d Sigmoid Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间。

  • 90年代时期
    1991年 B P BP BP算法被指出存在梯度消失问题,也就是说在误差梯度后项传递的过程中,后层梯度以乘性方式叠加到前层,由于 S i g m o i d Sigmoid Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习,该问题直接阻碍了深度学习的进一步发展。

    此外90年代中期,支持向量机算法诞生( S V M SVM SVM算法)等各种浅层机器学习模型被提出, S V M SVM SVM也是一种有监督的学习模型,应用于模式识别,分类以及回归分析等。支持向量机以统计学为基础,和神经网络有明显的差异,支持向量机等算法的提出再次阻碍了深度学习的发展。

  • 发展期 2006年 - 2012年
    2006年,加拿大多伦多大学教授、机器学习领域泰斗、神经网络之父—— G e o f f r e y H i n t o n Geoffrey Hinton GeoffreyHinton和他的学生 R u s l a n S a l a k h u t d i n o v Ruslan Salakhutdinov RuslanSalakhutdinov在顶尖学术刊物《科学》上发表了一篇文章,该文章提出了深层网络训练中梯度消失问题的解决方案:无监督预训练对权值进行初始化 + + +有监督训练微调。斯坦福大学、纽约大学、加拿大蒙特利尔大学等成为研究深度学习的重镇,至此开启了深度学习在学术界和工业界的浪潮。

    2011年, R e L U ReLU ReLU激活函数被提出,该激活函数能够有效的抑制梯度消失问题。2011年以来,微软首次将 D L DL DL应用在语音识别上,取得了重大突破。微软研究院和 G o o g l e Google Google的语音识别研究人员先后采用**深度神经网络 ( D N N ) (DNN) DNN**技术降低语音识别错误率20%~30%,是语音识别领域十多年来最大的突破性进展。2012年, D N N DNN DNN技术在图像识别领域取得惊人的效果,在 I m a g e N e t ImageNet ImageNet评测上将错误率从26%降低到15%。在这一年, D N N DNN DNN还被应用于制药公司的 D r u g e A c t i v i t y DrugeActivity DrugeActivity预测问题,并获得世界最好成绩。

  • 爆发期 2012 - 至今
    2012年, H i n t o n Hinton Hinton课题组为了证明深度学习的潜力,首次参加 I m a g e N e t ImageNet ImageNet图像识别比赛,其通过构建的卷积神经网络( C N N CNN CNN)网络 A l e x N e t AlexNet AlexNet一举夺得冠军,且碾压第二名( S V M SVM SVM方法)的分类性能。也正是由于该比赛,CNN吸引到了众多研究者的注意。

    A l e x N e t AlexNet AlexNet的创新点在于:

    (1)首次采用 R e L U ReLU ReLU激活函数,极大增大收敛速度且从根本上解决了梯度消失问题。

    (2)由于 R e L U ReLU ReLU方法可以很好抑制梯度消失问题, A l e x N e t AlexNet AlexNet抛弃了“预训练 + + +微调”的方法,完全采用有监督训练。也正因为如此, D L DL DL的主流学习方法也因此变为了纯粹的有监督学习。

    (3)扩展了 L e N e t 5 LeNet5 LeNet5结构,添加** D r o p o u t Dropout Dropout层**减小过拟合, L R N LRN LRN层增强泛化能力/减小过拟合。

    (4)第一次使用 G P U GPU GPU加速模型计算。

2013、2014、2015、2016年,通过 I m a g e N e t ImageNet ImageNet图像识别比赛, D L DL DL的网络结构,训练方法, G P U GPU GPU硬件的不断进步,促使其在其他领域也在不断的征服战场。

1.1.5 小结

深度学习经过半个多世纪的发展,现在已经广泛应用到我们日常生活中,今天我们将从基础的开始,沿着感知机->神经网络->深度神经网络逐次介绍, 并在介绍的过程中引入一些深度学习里的基础概念:反向传播,随机梯度下降,学习率衰减,损失函数等。

1.2 从感知机到深度神经网络

1.2.1 感知机

如果大家有印象的话,我们在概率统计机器学习时,简单介绍过感知机。它是一个二分类的线性模型,结构如下图所示,
在这里插入图片描述

可以看到,一个感知器有如下组成部分:

  • 输入权值 一个感知器可以接收多个输入 ( x 1 , x 2 , … , x n ∣ x i ∈ R ) (x_1,x_2,\dots,x_n|x_i\in R) (x1,x2,,xnxiR),每个输入上有一个权值 w i ∈ R w_i\in R wiR,此外还有一个偏置项 b ∈ R b\in R bR,就是上图中的 w 0 w_0 w0

  • 激活函数 感知器的激活函数可以有很多选择,比如我们可以选择下面这个 阶跃函数 f f f 来作为激活函数:
    f ( z ) = { 1 z > 0 0 o t h e r w i s e f(z)= \begin{cases} \begin{aligned} 1 && z > 0\\ 0 && otherwise\\ \end{aligned} \end{cases} f(z)={ 10z>0otherwise

    先不用管激活函数这个概念,现只需知道是将线性转为非线性表达即可。

  • 输出 感知器的输出由下面这个公式来计算

    y = f ( w ∗ x + b ) y=f(w*x+b) y=f(wx+b)

如果看完上面的公式一下子就晕了,不要紧,我们用一个简单的例子来帮助理解。

例子:用感知器实现 a n d and and函数
我们设计一个感知器,让它来实现 a n d and and运算。 a n d and and是一个二元函数(带有两个参数 x 1 x_1 x1 x 2 x_2 x2),下面是它的真值表:

x 1 x_1 x1 x 2 x_2 x2 y y y
0 0 0
0 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值