当前位置: 首页 > news >正文

深度卷积神经网络AlexNet

在提出LeNet后卷积神经网络在计算机视觉和机器学习领域中报有名气,但是卷积神经网络并没有主导这些领域,因为LeNet在小数据集上取得了很好的效果,在更大,更真实的数据集上训练卷积神经网络的性能 和可行性有待研究,20世纪90年代初到2012年间的大部分时间里,神经网络往往被其他机器学习方法超越,支持向量机。

在计算机视觉中,直接将神经网络与其他机器学习方法进行表也不公平,卷积神经网络的输入事原始像素值经过简单预处理的像素值组成,但是在使用传统机器学习方法时,在传统机器学习方法中,计算机视觉流水线时经过手工精心设计的特征流水线组成的,这些传统方法,大部分的进展都来自对特征有了更聪明的想法,并且学习到的算法往往归于事后的解释。

因此,与训练端到端系统不同,经典机器学习的流水线看起来更像下面这样。

(1)获取一个有趣的数据集,收集这些数据集需要传感器,

(2)根据光学,几何学,其他知识以及偶然的发现,手动对待特征数据集进行预处理。

(3) 通过标准的特征提取算法,如SIFT或者其他手动调整的流水线来输入数据。

(4)将提取的特征送入最喜欢的分类器中,以训练分类器。

当人们和机器学习研究人员交谈时,会发现机器学习研究人员相信机器学习即重要又美丽:

7.1.1 学习表征

一种预测这个领域发展的方法时观察图像特征的提取方法,图像特征都是机械的计算出来的,设计一套新的特征函数。改进结果并撰写论文。SIFT,SURF,HOG 定向梯度直方图,都占据了主导地位。

在合理的复杂性前提下,特征应该由多个共同学习的神经网络层组成,每个层都有课学习的参数,机器视觉中,底层可能检查边缘,颜色和纹理,实际上,

7.1.2 AlexNet

2012年AlexNet横空出世,证明了学习到的特征可以超越手动设计的特征,AlexNet使用8层卷积神经网络,以很大的优势赢得了2012年ImageNet图像识别挑战赛。

AlexNet和LeNet非常类似。

LeNet

全连接层 10 ->全连接层 84 ->全连接层 120->

2x2欧拿冠军汇聚层

5x5卷积层 16

2x2 平均汇聚层

5x5卷积层

图片28x28

AlexNet

全连接 1000

全连接层 4096

全连接层 4096

3x3最大汇聚层

3x3卷积层

3x3卷积层

3x3最大汇聚层

5x5卷积层

3x3最大汇聚层

11x11 卷积层

图片 3x244x244

AlexNet LeNet5深得多AlexNet8组成5卷积2全选隐藏1全连接输出

2 AlexNet使用ReLU而不是sigmoid 作为激活函数

1 模型设计

AlexNet第一层卷积窗口形状11x11由于imageNet中大多数图像高和MNIST图像10因此需要一个更大卷积窗口捕获目标第二层卷积窗口形状缩减5x5然后3x3此外第一层第二层第五层卷积层之后加入窗口形状3x3步骤2最大汇聚层而且AlexNet卷积通道LeNet10

在最后一个卷积层两个全连接分别有4096输出这两个巨大全连接层1GB模型参数早期GPU显存有限原始AlexNet才用了数据流设计使得每个GPU负责存储计算模型一半参数幸运现在GPU现存相对充裕所以很少需要GPU分解模型

2 激活函数

AlexNetsigmoid激活函数改为简单ReLU激活函数一方面ReLU激活函数的计算更简单不需要sigmoig激活函数复杂求幂运算另一方面使用补参数初始化方法ReLU激活函数使训练模型更加容易sigmoid激活函数输出非常接近于0或者1这些区域梯度几乎0因此反向传播无法继续更新一些模型参数ReLU激活函数区间梯度1因此如果模型参数没有正确初始化sigmoid函数可以能区间得到几乎0梯度从而使模型无法得到有效训练

3 容量控制预处理

AlexNet通过暂退 控制全连接模型复杂度LeNet使用了权重衰减为了进一步扩增数据AlexNet在训练时增加了大量图像增强数据翻转载切变色这使得模型健壮更大样本量有效减少过拟合

import torch

from torch import nn

from d2l import torch as d2l

net = nn.Sequential (

#这里使用一个11x11更大窗口来捕获对象

#同时步幅4减少输出高度宽度

#另外输出通道远大于LeNet

nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),

nn.MaxPool2d(kernel_size=3, stride=2)

#减小卷积窗口使用填充2来使得输入与输出宽一致并且增大输出通道数

nn.Conv2d(96, 256, kernel_size=5,padding=2), nn.ReLU(),

nn.MaxPool2d(kernel_szie=3, stride=2)

#使用3链接卷积层较小卷积窗口

#除了最后卷积层输出通道数进一步增加

#在前两个卷积层之后汇聚层不用于减少输入高度宽度

nn.Conv2d(256, 384, kernel_size=3, padding=1), nn.ReLU(),

nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),

nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),

nn.MaxPool2d(kernel_szie=3, stride=2),

nn.Flatten(),

#这里全连接层输出数量LeNet好几倍使用退缓解过拟合

nn.Linear(6400, 4096), nn.ReLU(),

nn.Dropout(p=0.5),

nn.Linear(4096, 4096), nn.ReLU(),

nn.Dropout(p=0.5),

#最后是输出层因为这里使用Fashion - MNIST所以类别10

nn.Linear(4096, 10)

我们构造高度宽度都为224单通道数据来观察每一层输出形状7-2AlexNet架构相匹配

x = torch.randn(1,1,,224,224)

for layer in net:

x=layer(x)

)

http://www.xdnf.cn/news/1338967.html

相关文章:

  • openEuler系统中r如何将docker安装在指定目录
  • 神经网络中 标量求导和向量求导
  • 如何通过传感器选型优化,为设备寿命 “续航”?
  • 机器学习6
  • RootDB:一款开源免费的Web报表工具
  • 0821 sqlite3_get_table函数(数据库函数的补充)
  • Vue.js 中使用 Highcharts 构建响应式图表 - 综合指南
  • 遥感机器学习入门实战教程|Sklearn案例⑤:集成学习方法全览
  • Python学习-- 数据库和MySQL入门
  • CentOS 7常用国内源配置:阿里云、腾讯云、华为云、清华源
  • pycharm编译器如何快速掌握一个新模块的使用方法
  • JeeSite 快速开发平台:全能企业级快速开发解决方案
  • 【图像算法 - 20】慧眼识病:基于深度学习与OpenCV的植物叶子疾病智能识别系统
  • Python-Pandas GroupBy 进阶与透视表学习
  • 中国之路 向善而行 第三届全国自驾露营旅游发展大会在阿拉善启幕
  • Android14内核调试 - boot vendor_boot
  • 06高级语言逻辑结构到汇编语言之逻辑结构转换 for (...; ...; ...)
  • uni-app:实现文本框的自动换行
  • Android - 资源类型 MINE Type
  • 教育场景下禁用html5播放器拖动进度条的例子
  • 医疗信息化实战:引领医疗行业数字化转型实践
  • 华为AUTOSAR质量目标与开发实践
  • FCN网络结构讲解与Pytorch逐行讲解实现
  • Go语言中的迭代器模式与安全访问实践
  • open3d-点云函数:变换:旋转,缩放、平移,齐次变换(R,T)等
  • 开源,LangExtract-Python库用LLM从非结构化文本提取结构化信息
  • 移动应用抓包与调试实战 Charles工具在iOS和Android中的应用
  • 自然语言处理——04 注意力机制
  • 基于Spring Cloud Gateway动态路由与灰度发布方案对比与实践指导
  • 记一次 .NET 某光谱检测软件 内存暴涨分析