卷积网络的发展历史-AlexNet

简介

2012 年,Krizhevsky 与 Hinton 推出了 AlexNet,引起了许多学者对深度学习的研究,可以算是深度学习的热潮的起始标志。在图像分类领域不得不提的就是ImageNet大规模视觉挑战赛(ILSVRC),它被称为深度学习在图像分类任务研究方面进展的标杆。AlexNet网络参加了ILSVRC2012年大赛,以高出第二名10%的性能优势取得了冠军。AlexNet网络也是VGGNet、GoogLeNet、ResNet、DenseNet等经典网络的基础和开端。

特点

AlexNet 的特点如下所示:

(1)采用双GPU网络结构,从而可以设计出更"大"、更"深"的网络(相较于当时的算力来说);

(2)采用ReLu代替tanh,稍微解决梯度消失问题(Gradient Vanishing Problem),加快网络收敛速度;

(3)提出局部相应归一化(LRN, Local Response Normalization);

(4)令pooling操作中的stride小于池化核的大小,从而使相邻的池化区域存在重叠部分,这一操作称为Overlapping Pooling;

(5)对训练数据进行随机裁剪(Random Crop),将训练图像由256×256裁剪为224×224,并做随机的镜像翻转(Horizontal Reflection)。并在测试时,从图像的四个角以及中心进行裁剪,并进行镜像翻转,这样可以得到10个Patch,将这些 Patch 的结果进行平均,从而得到最终预测结果;

(6)对训练图像做PCA(主成分分析),利用服从 (0,0.1) 的高斯分布的随机变量对主成分进行扰动。这一操作能减少指标Top-1的1%错误率;

(7)利用dropout 避免网络过拟合。

代码

python 复制代码
 self.features = nn.Sequential(
            nn.Conv2d(in_channels=3, out_channels=96, kernel_size=11, stride=4, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(3, 2),
            nn.Conv2d(96, 256, 5, 1, 2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(3, 2),
            nn.Conv2d(256, 384, 3, 1, 1),
            nn.ReLU(inplace=True),
            nn.Conv2d(384, 384, 3, 1, 1),
            nn.ReLU(inplace=True),
            nn.Conv2d(384, 256, 3, 1, 1),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(3, 2)
        )
相关推荐
火山引擎开发者社区4 小时前
火山 DTS 正式支持 MySQL 同步到 Milvus , 解决业务库到向量库最后一公里
人工智能
火山引擎开发者社区5 小时前
@开发者,提前解锁 FORCE 原动力大会五大看点,限时赢取门票福利
人工智能
火山引擎开发者社区5 小时前
这个 Skill 让 Agent 从会理解到会执行,补齐移动 APP 执行最后一公里
人工智能
火山引擎开发者社区9 小时前
Agent Plan、Coding Plan限时优惠:2.5折畅享多模型!
人工智能
冬奇Lab9 小时前
AI Workflow 定义的四次演进:从 Markdown 到 JS 脚本,再到分布式多 Agent
javascript·人工智能·agent
冬奇Lab9 小时前
每日一个开源项目(第136篇):OpenMemory - 给 AI Agent 真正的认知记忆引擎
人工智能
黄啊码10 小时前
【黄啊码】微信 AI 把聊天功能和 Vibe Coding打通了,创业者:我又白干了
人工智能
IT_陈寒11 小时前
React的useState居然还有这种坑?我差点删库跑路
前端·人工智能·后端