深度学习CNN-基本概念
2017-12-03 20:55
281 查看
背景
深度学习可谓是如火如荼,风头正盛。读研期间身边就有很多人在进行相关工作,工作之后发现在工业界也是相当受追捧。因此,自己也下定决心开始窥探一下深度学习的奥秘。
总体结构
从一个例子中先大体把握一下CNN的结构,有一个基本的认识。ImageNet LSVRC是一个图片分类的比赛,其训练集包括127W+张图片,验证集有5W张图片,测试集有15W张图片。本文截取2010年Alex Krizhevsky的CNN结构进行说明,该结构在2010年取得冠军,top-5错误率为15.3%。
上图模型的基本参数为:
输入:224×224大小的图片,3通道
第一层卷积:5×5大小的卷积核96个,每个GPU上48个。
第一层max-pooling:2×2的核。
第二层卷积:3×3卷积核256个,每个GPU上128个。
第二层max-pooling:2×2的核。
第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。
第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。
第五层卷积:3×3的卷积核256个,两个GPU上个128个。
第五层max-pooling:2×2的核。
第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。
第二层全连接:4096维
Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。
基本概念
激活函数:能够把输入的特征保留并映射下来。在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。
在近些年ReLU变得非常流行。它的函数公式是
。换句话说,这个激活函数就是一个关于0的阈值。
优点:
相较于sigmoid和tanh函数,ReLU对于随机梯度下降的收敛有巨大的加速作用(Krizhevsky等的论指有6
倍之多)。据称这是由它的线性,非饱和的公式导致的。
sigmoid和tanh神经元含有指数运算等耗费计算资源的操作,而ReLU可以简单地通过对一个矩阵进行阈值计算得到。
缺点:
在训练的时候,ReLU单元比较脆弱并且可能“死掉”。举例来说,当一个很大的梯度流过Re LU的神经元的时候,可能会导致梯度更新到一种特别的状态,在这种状态下神经元将无法被其他任何数据点再次激活。如果这种情况发生,那么从此所以流过这个神经元的梯度将都变成0。也就是说,这个ReLU单元在训练中将不可逆转的死亡,因为这导致了数据多样化的丢失。例如,如果学习率设置得太高,可能会发现网络中40%的神经元都会死掉(在整个训练集中这些神经元都不会被激活)。通过合理设置学习率,这种情况的发生概率会降低。
Leaky ReLU是为解决“Re LU死亡”问题的尝试。ReLU中当x<0时,函数值为0。而Leaky
ReLU则是给出一个很小的负数梯度值,比如0.01。所以其函数公式为
其中α
是一个小的常量。有些研究者的论文指出这个激活函数表现很错,但是其效果并不是很稳定。Kaiming He等人在2015年发布的论Delving Deep into Rectifiers中介绍了一种新方法PReLU,把负区间上的斜率当做每个神经元中的一个参数。然而该激活函数在在不同任务中均有益处的一致性并没有特别清晰。
卷积层:用来提取特征。
pooling层:对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。
softmax层:全连接层之后的分类器。
这篇文章中对于卷积层、pooling层有更详尽的解释。http://blog.csdn.net/yjl9122/article/details/70198357
Finetuning
比如在一些特定的领域的识别分类中,我们很难拿到大量的数据。因为像在ImageNet上毕竟是一个千万级的图像数据库,通常我们可能只能拿到几千张或者几万张某一特定领域的图像,比如识别衣服啊、标志啊、生物种类等等。在这种情况下重新训练一个新的网络是比较复杂的,而且参数不好调整,数据量也不够,因此fine-tuning微调就是一个比较理想的选择。
所谓fine tune就是用别人训练好的模型,加上我们自己的数据,来训练新的模型。fine tune相当于使用别人的模型的前几层,来提取浅层特征,然后在最后再落入我们自己的分类中。
计划
下周准备对机器学习方法做个简单的总结,完成基本知识储备之后就开始在实践中探索这些方法。
深度学习可谓是如火如荼,风头正盛。读研期间身边就有很多人在进行相关工作,工作之后发现在工业界也是相当受追捧。因此,自己也下定决心开始窥探一下深度学习的奥秘。
总体结构
从一个例子中先大体把握一下CNN的结构,有一个基本的认识。ImageNet LSVRC是一个图片分类的比赛,其训练集包括127W+张图片,验证集有5W张图片,测试集有15W张图片。本文截取2010年Alex Krizhevsky的CNN结构进行说明,该结构在2010年取得冠军,top-5错误率为15.3%。
上图模型的基本参数为:
输入:224×224大小的图片,3通道
第一层卷积:5×5大小的卷积核96个,每个GPU上48个。
第一层max-pooling:2×2的核。
第二层卷积:3×3卷积核256个,每个GPU上128个。
第二层max-pooling:2×2的核。
第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。
第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。
第五层卷积:3×3的卷积核256个,两个GPU上个128个。
第五层max-pooling:2×2的核。
第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。
第二层全连接:4096维
Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。
基本概念
激活函数:能够把输入的特征保留并映射下来。在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。
在近些年ReLU变得非常流行。它的函数公式是
。换句话说,这个激活函数就是一个关于0的阈值。
优点:
相较于sigmoid和tanh函数,ReLU对于随机梯度下降的收敛有巨大的加速作用(Krizhevsky等的论指有6
倍之多)。据称这是由它的线性,非饱和的公式导致的。
sigmoid和tanh神经元含有指数运算等耗费计算资源的操作,而ReLU可以简单地通过对一个矩阵进行阈值计算得到。
缺点:
在训练的时候,ReLU单元比较脆弱并且可能“死掉”。举例来说,当一个很大的梯度流过Re LU的神经元的时候,可能会导致梯度更新到一种特别的状态,在这种状态下神经元将无法被其他任何数据点再次激活。如果这种情况发生,那么从此所以流过这个神经元的梯度将都变成0。也就是说,这个ReLU单元在训练中将不可逆转的死亡,因为这导致了数据多样化的丢失。例如,如果学习率设置得太高,可能会发现网络中40%的神经元都会死掉(在整个训练集中这些神经元都不会被激活)。通过合理设置学习率,这种情况的发生概率会降低。
Leaky ReLU是为解决“Re LU死亡”问题的尝试。ReLU中当x<0时,函数值为0。而Leaky
ReLU则是给出一个很小的负数梯度值,比如0.01。所以其函数公式为
其中α
是一个小的常量。有些研究者的论文指出这个激活函数表现很错,但是其效果并不是很稳定。Kaiming He等人在2015年发布的论Delving Deep into Rectifiers中介绍了一种新方法PReLU,把负区间上的斜率当做每个神经元中的一个参数。然而该激活函数在在不同任务中均有益处的一致性并没有特别清晰。
卷积层:用来提取特征。
pooling层:对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征。
softmax层:全连接层之后的分类器。
这篇文章中对于卷积层、pooling层有更详尽的解释。http://blog.csdn.net/yjl9122/article/details/70198357
Finetuning
比如在一些特定的领域的识别分类中,我们很难拿到大量的数据。因为像在ImageNet上毕竟是一个千万级的图像数据库,通常我们可能只能拿到几千张或者几万张某一特定领域的图像,比如识别衣服啊、标志啊、生物种类等等。在这种情况下重新训练一个新的网络是比较复杂的,而且参数不好调整,数据量也不够,因此fine-tuning微调就是一个比较理想的选择。
所谓fine tune就是用别人训练好的模型,加上我们自己的数据,来训练新的模型。fine tune相当于使用别人的模型的前几层,来提取浅层特征,然后在最后再落入我们自己的分类中。
计划
下周准备对机器学习方法做个简单的总结,完成基本知识储备之后就开始在实践中探索这些方法。
相关文章推荐
- 深度 | 一篇文章带你进入无监督学习:从基本概念到四种实现模型(附论文)
- 深度学习25个基本概念
- [置顶] 【DL--05】深度学习基本概念—函数式模型
- [置顶] 【DL--07】深度学习基本概念—epochs
- 深度学习概览之自然语言处理:从基本概念到前沿研究
- 深度学习25个基本概念
- 零基础入门深度学习六:深度学习基本概念
- 深度学习中的一些基本概念
- 深度学习25个基本概念
- [置顶] 【DL--03】深度学习基本概念—张量
- 深度学习基本概念
- 基于keras的深度学习基本概念讲解——深度学习之从小白到入门
- 深度学习25个基本概念
- 深度学习框架TensorFlow学习与应用(一)——基本概念与简单示例
- 深度学习25个基本概念
- 深度学习:卷积神经网络与图像识别基本概念
- [深度学习]tensorflow基本概念01
- 【直观梳理深度学习关键概念】优化算法、调参基本思路、正则化方式等
- 深度学习25个基本概念
- 深度学习笔记五:卷积神经网络CNN(基本理论)