- 🔗 运行环境:python3
- 🚩 作者:K同学啊
- 🥇 精选专栏:《深度学习100例》
- 🔥 推荐专栏:《新手入门深度学习》
- 📚 选自专栏:《Matplotlib教程》
- 🧿 优秀专栏:《Python入门100题》
- 本文选自专栏:🚀《新手入门深度学习》
AlexNet是引起卷积神经网络热潮的一个网络,产生于2012年,一直是神经网络中比较火热的网络之一,赢得了2012年ImageNet竞赛。AlexNet是更深的LeNet,采用ReLu激活函数和最大池化方法,由输入层、卷积层、池化层、全连接层、输出层构成,包含六千万个参数和65000个神经元,计算层有3个卷积层,3个全连接层,最终输出层为1000通道的Softmax。AlexNet利用了两块GPU进行计算,大大提高了运算效率,并且在ILSVRC-2012竞赛中获得了top-5测试的15.3% error rate,获得第二名的方法error rate为26.2%,相比具有很大差距,在学术界产生了巨大的影响力。
AlexNet网络结构简图如图1所示,包含输入层(Input)、输出层(Output)、5个卷积层(Convolutional layer,Conv)、3个池化层(Pooling layer)、3个全连接层(Fully connected layer,FC)。从对图像的处理过程来看,将图片统一处理成为224×224×3
的大小作为输入,经过第一个卷积层进行卷积计算提取特征,其中卷积核大小为11×11×3
,个数为96个;经过3×3
的最大池化(Max pooling)后,输入到第二个卷积层,其中卷积核大小为5×5×48
,共256个;下一层经过3×3的最大池化过程后,其输出进行三个连续卷积层计算,第三层卷积层内核大小3×3×256
,共384个,第四层卷积层内核大小3×3×192
,共384个,第五层卷积层内核大小3×3×192
,共256个;再经过3×3的最大池化,以及三个连续的全连接层计算,最后输出1000类的图像识别结果。
为使卷积神经网络应用到众多的非线性模型中,在卷积层中引入激活函数,对于神经网络的学习和理解复杂非线性函数有着重要意义。激活函数存在每个神经元的输出之后,在神经元输入数据通过加权求和后,经过激活函数计算进行输出。神经网络的学习过程是神经元参数根据期望结果不断更新的过程,这时要通过神经网络的反向传播来计算更新,激活函数对于神经网络的反向传播有着重要的意义。如果神经元没有被激活或者激活状态没有达到饱和,权重的更新速度会非常慢甚至停止。对神经网络的学习造成严重影响。
早期的激活函数有Sigmoid函数,Tanh函数,可以很好地压缩输出,但容易造成梯度消失问题。随着不断的理论积累,学术界发现ReLu函数,LeakyReLu函数等效果更好的激活函数,成为卷积神经网络的首选激活函数。
关于AlexNet实战内容请看文章:🔥【深度学习100例-卷积神经网络(AlexNet)手把手教学 | 第11天】