学习笔记|什么是深度学习?

1. 深度学习概述

深度学习本质上是神经网络。只是神经网络这个词在80、90年代的时候被搞臭了,因为当时神经网络被吹捧得过于浮夸,最后弄得大家都很厌恶神经网络这个词。只要把神经网络写到论文中,一般要被拒的。后来,为了重振神经网络的雄风,需要弄个新的、高大上的名字来替代。由于计算机性能越来越好,可以搞的网络层级越来越多,于是人们就给神经网络取了个比较牛的名字叫做“深度学习”。

2. 神经元模型

神经网络顾名思义就是对人类神经的一个模拟,当然只是形式上的模拟。我们知道,人的神经网络由千亿个神经元组成,而每一个神经元由树突、细胞体、轴突组成,树突用来接受传入的信息,而轴突用来将信号传递给其他神经元,通过突触,神经元被连接到一起,形成复杂的网络。

神经元
人工神经网络对神经元进行模拟,建立了神经元模型,如下图。神经元模型包含输入、输出与计算功能,输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞体。
神经元模型

图中这个神经元模型包括三个输入,一个计算,和一个输出。图中从输入到求和就对应着前面提到的线性模型,三条边包含了三个权值,下面的蓝色块是偏置,求和项就是 b + ∑ j = 1 3 w j x j b+\sum_{j=1}^{3} w_{j} x_{j} b+j=13wjxj。但是注意到求和之后并未直接输出,而是经过了一个非线性函数 σ ( z ) \sigma(z) σ(z)进行计算后输出的,这是为什么呢?这是因为线性模型过于简单,缺乏灵活性,比如下面这个图,无论怎么调整 w w w b b b,都无法拟合出红色这条线,始终是存在偏差的。所以我们需要更加复杂的、更富有弹性的函数,因此就增加了非线性函数的计算。
线性模型过于简单,缺乏灵活性
这个非线性函数也被称为激活函数。常见的激活函数有, Sigmoid:  S ( x ) = 1 1 + e − x \text{Sigmoid: } S(x)=\frac{1}{1+e^{-x}} Sigmoid: S(x)=1+ex1 ReLu:  f ( x ) = max ( 0 , x ) \text{ReLu: }f(x)=\text{max}(0, x) ReLu: f(x)=max(0,x)这两个函数的微分比较好计算,我想是它们称为常见激活函数的一个重要原因。将线性模型的输出在输入到上述非线性函数中我们就可以得到更加具有弹性的模型了。如果激活函数使用Sigmoid函数,那一个神经元的数学表达式就可以表达为, y = 1 1 + e − ( b + ∑ j = 1 N w j x j ) y=\frac{1}{1+e^{-(b+\sum_{j=1}^{N} w_{j} x_{j})}} y=1+e(b+j=1Nwjxj)1
一个神经元的输出可作为令一个神经元的输入,这就好比上一个神经元的轴突末梢会与下一个神经元的树突相连,用来传递信息,这样就将两个神经元连接在一起了,如下图所示。
神经元的连接

3. 神经元的连接

我们采用不同的方式对神经元进行连接就会得到不同的网络架构。比如我们将神经元排成一层一层的,上一层的所有神经元连接到下一层的所有神经元,就形成了如下图所示的网络。我们将这样的网络称为前向全连接网络。一般把网络第一层称为输入层,最后一层称为输出层,中间的层称为隐藏层
神经网络模型

后来人们发现隐藏层叠得越多,网络的性能就越好。例如,在一个图片识别的公共测试集上,2012年AlexNet共8层,错误率为16.4%,2014年VGG共19层,错误率为7.3%,2014年GoogleNet共22层,错误率6.7%,2015年Residual Net有152层,错误率降到了3.57%。因此,现在的网络都是越叠越高,这种叠了很多层的神经网络就称为“深度学习”。

4. 神经网络的训练

在构建了这个模型之后,就可以基于损失函数对参数进行优化了,采用的方法就是梯度下降法。但是我们注意到当神经网络叠的层次比较多的时候,参数的数目是爆炸性增长的,比如现在的语音识别网络简单一点的也有七八层,每一层有上千个神经元,参数量就达到上百万个。如果直接采用梯度下降法,每迭代一步都对所有参数进行微分计算,计算量将时巨大的!为了使梯度下降法更有效率,一种叫做后向传播(backpropagation)的算法被提出。后向传播本质上也是一种梯度下降法,但是要讲清楚它非常麻烦,如果感兴趣可以观看李宏毅老师的视频,他讲得还是很清楚的。
现在我们再来看一下用神经网络的方法解决李宏毅老师提出的访问流量预测问题,他做实验的结果如下。从表中可以看出随着网络层次的增加,在训练集上的误差是越来越小的,但是在测试集上并不是这样的。可以看到,4层网络时误差比3层网络的误差还要大。像这种训练误差在减小,测试误差反而增大的情况,在机器学习中称为过拟合。造成过拟合的原因主要有训练数据不足、分布不合理、噪声很强等,或者模型过于复杂等。至于如何解决过拟合问题,李宏毅老师的视频中都有,如果感兴趣可以去学习一下。
访问流量预测

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值