首页 > Web开发 > 详细

AlexNet

时间:2021-01-17 21:45:50      阅读:36      评论:0      收藏:0      [点我收藏+]


Paper: ImageNet Classification with Deep Convolutional Neural Networks
Github:https://github.com/pytorch/vision/blob/master/torchvision/models/alexnet.py


AlexNet模型有多伦多大学,Geoff Hinton实验室设计,夺得了2012ImageNet ILSVRC比赛的冠军,并且错误率远低于第二名,使得卷积神经网络乃至深度学习重新引起了广泛的关注。在此之前,由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注。

AlexNet的特点

AlexNet是在LeNet的基础上加深了网络的结构,学习更丰富更高维的图像特征。AlexNet的特点:

  • 更深的网络结构。
  • 使用ReLU激活函数加速收敛。
  • 使用多GPU并行,加速训练。也为之后的分组卷积(group convolution)理论奠定基础。
  • 使用数据增强,提出Dropout抑制过拟合。
  • 使用交叠池化(Overlapping Pooling)防止过拟合。

使用ReLU激活函数加速收敛

在最初的感知机模型中,输入和输出的关系如下:

\[y=\sum_iw_ix_i+b \]

只是单纯的线性关系,这样的网络结构有很大的局限性:即使用很多这样结构的网络层叠加,其输出和输入仍然是线性关系,无法处理有非线性关系的输入输出。因此,对每个神经元的输出做非线性变换(激活函数)就非常重要。

在此之前,激活函数主要使用的是tanh:\(f(x)=tanh(x)\)以及sigmoid:\(f\left(x\right)=\frac1{1+\left(e^{-x}\right)^{-1}}\),但是这些都是饱和激活函数,输入值处于饱和区时(x→∞时),其梯度几乎为0,因此收敛极慢!

针对这一问题,在AlexNet中引入了线性整流单元(Rectified Linear Units, ReLU)作为激活函数,即:\(f\left(x\right)=\max(0,x)\)。其不存在饱和区,导师始终为1,梯度更大,计算量也更少,因此收敛得更快。

如下图所示,为tanh和`ReLU·的收敛速度对比:
技术分享图片

如何理解ReLU函数的非线性

这里有个问题,前面提到,激活函数要用非线性的,是为了使网络结构有更强的表达能力。但这里使用的ReLU本质上却是个线性的分段函数,那是如何使用ReLU进行非线性变换的呢?

AlexNet

原文:https://www.cnblogs.com/mumuzeze/p/13864397.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!