深度卷积神经网络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.pswp.cn/news/919614.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-HashSet

在 Java 编程的世界里,集合框架是极为重要的一部分,而 HashSet 作为 Set 接口的典型实现类,在处理不允许重复元素的场景中频繁亮相。今天,我们就一同深入探究 HashSet,梳理它的特点、常用方法,以及和其他相…

心意行药号 · 慈心方的八种用法

心意行药号 慈心方的八种用法慈心方是心意行药号589个珍贵秘方中的一个养生茶方,配伍比例科学严谨,君臣佐使堪称经典,自古就有“小小慈心方,转动大乾坤”之说。自清代光绪年间传承至今,慈心方受益者逾百万计&#xff…

Spring面试宝典:Spring IOC的执行流程解析

在准备Spring框架的面试时,“Spring IOC的工作流程是什么?” 是一个非常经典的问题。虽然网上有很多详细的教程,但它们往往过于复杂,对于没有深入研究过源码的人来说理解起来确实有些困难。今天我们就来简化这个概念,从…

学习日志39 python

1 fromkeys()函数是什么在 Python 中,fromkeys() 是字典(dict)的一个类方法,用于创建一个新字典。它的作用是:根据指定的可迭代对象(如列表、元组等)中的元素作为键(key)…

SpringBoot + MyBatis-Plus 使用 listObjs 报 ClassCastException 的原因与解决办法

在项目中我们经常会遇到这种需求: 根据一组 ID 查询数据库,并返回指定字段列表。 我在写代码的时候,遇到了一个典型的坑,分享出来给大家。一、问题背景我的代码是这样写的(查询项目表的负责人信息)&#xf…

WT2606B 驱屏语音芯片新增蓝牙功能:功能集成一体化,产品升级自动化,语音交互无线化,场景应用普适化!

小伙伴们,欢迎来到我们的 #唯创芯片小讲堂!今天我们要为大家介绍一位多才多艺的"芯片全能手"——WT2606B驱屏语音芯片。这颗芯片将在今年8月的I0TE物联网展及ELEXCON 2025深圳国际电子展上大放异彩。在智能设备满天飞的今天&#x…

ORA-16331: container is not open ORA-06512: at “SYS.DBMS_LOGMNR“

使用Flink CDC、Debezium等CDC工具对Oracle进行基于log的实时数据同步时遇到异常ORA-16331: container is not open的解决方案。 1. 异常信息 异常信息通常如下: at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1823) at oracle.jdbc…

「三维共振」:重构实体零售的破局模式

在电商冲击与消费升级的双重浪潮下,传统零售模式正面临前所未有的挑战。wo店首创的 “三维共振” 运营模式,以场景体验为根基、数据驱动为引擎、社群共生为纽带,构建起线上线下深度融合的新型零售生态,至今已实现连续 18 个月客流…

将集合拆分成若干个batch,并将batch存于新的集合

在使用saveAll()等方法时,为了防止集合元素过大,使用splitList将原集合,分割成若干个小集合 import java.util.ArrayList; import java.util.List;public class ListUtils {/*** 将集合拆分成若干个batch,并将batch存于新的集合** param list…

Java主流框架全解析:从企业级开发到云原生

Java作为一门历史悠久且应用广泛的编程语言,其强大的生态系统离不开各种优秀的框架支持。无论是传统的企业级应用开发,还是现代的微服务、云原生架构,Java都提供了丰富的框架选择。本文将全面解析当前主流的Java框架,涵盖Web开发、…

机器学习——网格搜索(GridSearchCV)超参数优化

网格搜索(Grid Search)详细教学1. 什么是网格搜索?在机器学习模型中,算法的**超参数(Hyperparameters)**对模型的表现起着决定性作用。比如:KNN 的邻居数量 n_neighborsSVM 的惩罚系数 C 和核函…

【LeetCode】18. 四数之和

文章目录18. 四数之和题目描述示例 1:示例 2:提示:解题思路算法一:排序 双指针(推荐)算法二:通用 kSum(含 2Sum 双指针)复杂度关键细节代码实现要点完整题解代码18. 四数…

Go语言入门(10)-数组

访问数组元素:数组中的每个元素都可以通过“[]”和一个从0开始的索引进行访问数组的长度可由内置函数len来确定。在声明数组时,未被赋值元素的值是对应类型的零值。下面看一个例子package mainfunc main(){var planets [8]stringplanets[0] "Mercu…

为什么经过IPSec隧道后HTTPS会访问不通?一次隧道环境下的实战分析

在运维圈子里,大家可能都遇到过这种奇怪的问题:浏览器能打开 HTTP 网站,但一换成 HTTPS,页面就死活打不开。前段时间,我们就碰到这么一个典型案例。故障现象某公司系统在 VPN 隧道里访问 HTTPS 服务,结果就…

【Linux系统】进程信号:信号的产生和保存

上篇文章我们介绍了Syetem V IPC的消息队列和信号量,那么信号量和我们下面要介绍的信号有什么关系吗?其实没有关系,就相当于我们日常生活中常说的老婆和老婆饼,二者并没有关系1. 认识信号1.1 生活角度的信号解释(快递比…

WEB服务器(静态/动态网站搭建)

简介 名词:HTML(超文本标记语言),网站(多个网页组成一台网站),主页,网页,URL(统一资源定位符) 网站架构:LAMP(linux(系统)+apache(服务器程序)+mysql(数据库管理软件)+php(中间软件)) 静态站点 Apache基础 Apache官网:www.apache.org 软件包名称:…

开发避坑指南(29):微信昵称特殊字符存储异常修复方案

异常信息 Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x8D\x8B\xE5\xBB... for column nick_name at row 1异常背景 抽奖大转盘,抽奖后需要保存用户抽奖记录,用户再次进入游戏时根据抽奖记录判断剩余抽奖机会。保存抽奖记录时需要…

leetcode-python-242有效的字母异位词

题目&#xff1a; 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的 字母异位词。 示例 1: 输入: s “anagram”, t “nagaram” 输出: true 示例 2: 输入: s “rat”, t “car” 输出: false 提示: 1 < s.length, t.length < 5 * 104 s 和 t 仅…

【ARM】Keil MDK如何指定单文件的优化等级

1、 文档目标解决在MDK中如何对于单个源文件去设置优化等级。2、 问题场景在正常的项目开发中&#xff0c;我们通常都是针对整个工程去做优化&#xff0c;相当于整个工程都是使用一个编译器优化等级去进行的工程构建。那么在一些特定的情况下&#xff0c;工程师需要保证我的部分…

零基础学Java第二十二讲---异常(2)

续接上一讲 目录 一、异常的处理&#xff08;续&#xff09; 1、异常的捕获-try-catch捕获并处理异常 1.1关于异常的处理方式 2、finally 3、异常的处理流程 二、自定义异常类 1、实现自定义异常类 一、异常的处理&#xff08;续&#xff09; 1、异常的捕获-try-catch捕…