A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本文主要从如下几个方面分析深度学习Alexnet网络:

1. 为什么Alexnet能在图2012 ImageNet LSVRC-2012 像识别(分类) competition取得这么好的成绩2. Alexnet的网络结构以及,参数数量的计算3. 为了避免过拟合使用的技巧:Data Augmentation(数据增强),正则化Relu以及dropout,局部响应归一化LRN。4. 对比了多个小的卷积核和大的卷积核的区别(前面BAT面试题)。
1. Alexnet取得成功的原因,主要三条:
  • 大量数据,Deep Learning领域应该感谢李飞飞团队搞出来如此大的标注数据集合ImageNet;

  • GPU,这种高度并行的计算神器确实助了洪荒之力,没有神器在手,Alex估计不敢搞太复杂的模型;

  • 算法的改进,包括网络变深、数据增强、ReLU、Dropout等。



2. Alexnet网络结构以及参数数量的计算

Alexnet网络的大体结构如下(论文以及一般的blog都是如下这个图,但是看起来很不直观):

下面给出两个更好理解的结构图,5个卷积层+3个全连接层:

来源:stackoverflow
https://www.learnopencv.com/understanding-alexnet/

各层的参数计算如下,下图为5个卷积层的参数:

全连接层如下:

可以看到:卷积层的参数明显少于全连接层的参数。其中,网络大概有62.3 million parameters,其中卷积层占比约6%,单占比95%的计算。


3. 为了避免过拟合使用的技巧:Data Augmentation(数据增强),正则化Relu以及dropout3. 1 Data Augmentation(数据增强)

数据增强简单的办法如,图片翻转Mirroring,随机裁剪Random Crops。

3. 2 使用ReLU非线性激活函数

使用ReLU非线性激活函数而不选择sigmoid或tanh函数,ReLU优势在于:

  • 速度快 和sigmoid函数需要计算指数和倒数相比,relu函数其实就是一个max(0,x),计算代价小很多。

  • 减轻梯度消失问题,从而可以训练更深的网络。

  • 稀疏性 通过对大脑的研究发现,大脑在工作的时候只有大约5%的神经元是激活的,而采用sigmoid激活函数的人工神经网络,其激活率大约是50%。有论文声称人工神经网络在15%-30%的激活率时是比较理想的。因为relu函数在输入小于0时是完全不激活的,因此可以获得一个更低的激活率.


3. 3 使用Dropout(只在最后几个全连接层做)

为什么Dropout有效?

Dropout背后理念和集成模型很相似。在Drpout层,不同的神经元组合被关闭,这代表了一种不同的结构,所有这些不同的结构使用一个的子数据集并行地带权重训练,而权重总和为1。如果Dropout层有 n 个神经元,那么会形成 2^{n} 个不同的子结构。在预测时,相当于集成这些模型并取均值。这种结构化的模型正则化技术有利于避免过拟合。Dropout有效的另外一个视点是:由于神经元是随机选择的,所以可以减少神经元之间的相互依赖,从而确保提取出相互独立的重要特征。

3. 4 局部响应归一化LRN(Local Response Normalization)

提出了LRN层,对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。

补充

2个3*3的卷积层和一个5*5卷积层的区别?(某BAT的一个面试题,也可以理解为多个小的卷积层和一个大的卷积层的区别),问题来源:stackoverflow,VGG中给出了答案,如下:

  • 多个卷积层可以增加网络的深度,从而学习更复杂的特征
  • 2个3*3的卷积层的参数少于一个5*5卷积层的参数



【转载】        https://blog.csdn.net/haluoluo211/article/details/81636890


2 个回复

正序浏览
奈斯
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马