卷积神经网络全解:(AlexNet/VGG/ GoogLeNet/LeNet/ResNet/卷积/激活/池化/全连接)、现代卷积神经网络、经典卷积神经网络

CNN,卷积神经网络,Convolution Neural Network

卷积计算公式:N = (W-F+2p)/s+1

这个公式每次都得看看,不能忘

1 经典网络

按照时间顺序

1.1 LeNet

LeNet是 Yann LeCun在1998年提出,用于解决手写数字识别的视觉任务。自那时起,CNN的最基本的架构就定下来了:卷积层、池化层、全连接层。

深度学习开山之作LeNet实战:(现代卷积神经网络/网络结构/原理解析/源码解读)、《Gradient-Based Learning Appliedto Document Recognition》_会害羞的杨卓越的博客-CSDN博客

1.2 AlexNet

深度学习奠基作AlexNet《ImageNet Classification with Deep Convolutional Neural Networks》之论文解读上篇_会害羞的杨卓越的博客-CSDN博客

AlexNet网络结构详解_会害羞的杨卓越的博客-CSDN博客

AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的,把CNN的基本原理应用到了很深很宽的网络中。

主要参数:AlexNet网络包含8层,其中前5层为卷积-池化层,后3层为全连接层;输入224×224×3的图像,第一卷积层用96个11×11×3的卷积核对进行滤波,步幅4像素;全连接的每层有4096个神经元,最后一个完全连接的层的输出被馈送到1000路SoftMax,它产生超过1000个类别标签的分布;整个网络共650000个神经元。

特点:

  • 使用ReLU作为激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题
  • 使用Dropout(丢弃学习)随机忽略一部分神经元防止过拟合
  • 在CNN中使用重叠的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果
  • 提出了LRN(Local Response Normalization,局部正规化)层,对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力
  • 使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算

1.3 VGG

  • 网络深度:16-19层
  • 5组卷积-池化,3个全连接
  • 三个全连接层,前两层都有4096通道,第三层共1000路及代表1000个标签类别;最后一层为softmax层
  • 所有卷积层有相同的配置,即卷积核大小为3x3,步长为1,填充为1

深度学习奠基作VGG《Very Deep Convolutional Networks for Large-Scale Image Recognition》(现代卷积神经网络/网络结构)_会害羞的杨卓越的博客-CSDN博客

1.4 GoogleNet

深度学习奠基作GoogleNet《Very Deep Convolutional Networks for Large-Scale Image Recognition》(现代卷积神经网络/网络结构)_会害羞的杨卓越的博客-CSDN博客

1.5 ResNet

深度学习最强奠基作ResNet《Deep Residual Learning for Image Recognition》论文解读(上篇)_会害羞的杨卓越的博客-CSDN博客

2 网络结构

2.1 卷积层

通过卷积操作,进行特征提取和降维。

2.2 激活层

将前一层的输出,通过非线性的激活函数进行处理,用以模拟任意维度的函数,增强网络的表征能力。

常用的激活函数:

  1. 阶跃函数(用的较少)
  2. sigmoid函数:
    • 优点:平滑,易求导
    • 缺点:激活函数计算量大,反向传播求误差梯度时,求导涉及除法;反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练
    • 改善方案:归一化,用sk-learn函数处理
  3. tanh函数 常用于NLP,其他类似sigmiod函数
  4. Relu函数(常用),优点:
    • 更加有效率的梯度下降以及反向传播,避免了梯度爆炸和梯度消失问题
    • 计算过程简单
  5. softmax函数,特点:多分类模型适用

2.3 池化

也称子采样层或下采样层(Subsampling Layer),目的是缩小高、长方向上的空间的运算,以降低计算量,提高泛化能力。

计算方式:

  • Max池化:对于每个输入矩阵,我们将其切割成若干大小相等的正方形小块,对各个参与池化计算的区域取最大值,形成的新矩阵。在图像识别领域,主要使用Max池化
  • Average池化:对于每个输入矩阵,我们将其切割成若干大小相等的正方形小块,对各个参与池化计算的区域计算平均值

池化层特征:

  1. 没有要学习的参数。池化层和卷积层不同,没有要学习的参数。池化只是从目标区域中取最大值(或者平均值),所以不存在要学习的参数
  2. 通道数不发生变化。经过池化运算,输入数据和输出数据的通道数不会发生变化
  3.  对微小的位置变化具有鲁棒性(健壮)。输入数据发生微小偏差时,池化仍会返回相同的结果

 

2.4 全连接层

这个网络层相当于多层感知机(Multi-Layer Perceptron,简称MLP),其在整个卷积神经网络中起到分类器的作用。

通过前面多个“卷积-激活-池化”层的反复处理,待处理的数据特性已有了显著提高:一方面,输入数据的维度已下降到可用传统的前馈全连接网络来处理了;另一方面,此时的全连接层输入的数据已不是“泥沙俱下、鱼龙混杂”,而是经过反复提纯过的结果,因此输出的分类品质要高得多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46036.shtml

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

相关文章

Lua 数据结构

一、Lua 中的数据结构 Lua 中并没有像 java、kotlin 语言有专门的数组、列表、集合等数据结构的类,而只提供 table 类型,但他很强大而且也很灵活,而且也在很多场景中天然的就解决了如何对接和使用的问题(例如模块的引入&#xff…

MYSQL完全卸载、安装与账号创建、权限控制

一、卸载mysql CentOS 卸载 MySQL 1. 查看安装情况 使用以下命令查看当前安装mysql情况,查找以前是否装有mysql rpm -qa|grep -i mysql这里显示我安装的 MySQL 服务有有: 2. 停止 mysql 服务、删除之前安装的 mysql 删除命令:rpm -e –n…

C++笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用

C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用 参考博客:C笔记之各种sleep方法总结 code review! 文章目录 C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用1.条件变量&…

v8引擎编译全过程

环境vs2019 cmd 命令行需要设置成为代理模式 set http_proxyhttp://127.0.0.1:10809 set https_proxyhttp://127.0.0.1:10809 这个必须带上,不然报错,告诉编译器win系统的模式 set DEPOT_TOOLS_WIN_TOOLCHAIN0 源码 GitHub: GitHub - v8/v8: The…

Eclipse如何设置快捷键

在eclopse设置注释行和取消注释行 // 打开eclipse,依次打开:Window -> Preferences -> General -> Key,

solidwords(6)

从右视图开始,分上下两部分 标题 这里的薄壁要留意一下怎么算的(单向:默认向内;如果想向外记得选反向)

【Spring专题】Spring之Bean的生命周期源码解析——阶段二(二)(IOC之属性填充/依赖注入)

目录 前言阅读准备阅读指引阅读建议 课程内容一、依赖注入方式(前置知识)1.1 手动注入1.2 自动注入1.2.1 XML的autowire自动注入1.2.1.1 byType:按照类型进行注入1.2.1.2 byName:按照名称进行注入1.2.1.3 constructor:…

idea 新建servlet 访问提示404 WebServlet注解找不到包 报错

检查访问路径是否设置正确 如果设置为name “/testServlet”,则会404 WebServlet注解报错找不到包 检查是否引入了tomcat依赖包

线性代数的学习和整理8: 方阵和行列式相关(草稿-----未完成)

1.4.1 方阵 矩阵里,行数列数的矩阵叫做方阵方阵有很多很好的特殊属性 1.4.2 行列式 行列式是方阵的一种特殊运算如果矩阵行数列数相等,那么这个矩阵是方阵。行列数的计算方式和矩阵的不同只有方阵才有行列式行列式其实是,矩阵变化的一个面…

超越函数界限:探索JavaScript函数的无限可能

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 📚 前言 📘 1. 函数的基本概念 📟 1.1 函数的定义和调用 📟 1.2 …

动态内存管理

目录 为什么要用动态内存开辟 动态内存有关函数 void* malloc (size_t size); void free (void* ptr); void* calloc (size_t num, size_t size); void* realloc (void* ptr, size_t size); C/C程序的内存开辟 柔性数组 特点: 柔性数组的使用: 为什么要用…

【nodejs】用Node.js实现简单的壁纸网站爬虫

1. 简介 在这个博客中,我们将学习如何使用Node.js编写一个简单的爬虫来从壁纸网站获取图片并将其下载到本地。我们将使用Axios和Cheerio库来处理HTTP请求和HTML解析。 2. 设置项目 首先,确保你已经安装了Node.js环境。然后,我们将创建一个…

学习笔记|基于Delay实现的LED闪烁|u16是什么|a--和--a的区别|STC32G单片机视频开发教程(冲哥)|第六集(上):实现LED闪烁

文章目录 摘要软件更新什么是闪烁Tips:u16是什么? 语法分析:验证代码Tips:a--和--a的区别(--ms 的用法)测试代码: 摘要 1.基于Delay实现的LED闪烁 2.函数的使用 3,新建文件,使用模块化编程 软件更新 打…

macOS(m1/m2)破解Sublime Text和Navicat16

破解Sublime Text 说明:全程使用的是终端操作 1. 下载Sublime Text,建议使用brew下载 2. 进入到下载的app的文件夹 cd "/Applications/Sublime Text.app/Contents/MacOS/"3. 执行以下操作以确认版本是否匹配 md5 -q sublime_text | grep -i…

消息中间件的选择:RabbitMQ是一个明智的选择

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! MQ(Message Queue) MQ(消息队列)是一种用于在应用程序之间进行异步通信的技术;允许应用程序通过发送和接收…

css学习3(三种样式表与样式控制优先级)

1、外部样式表&#xff1a;当样式需要应用于很多页面时&#xff0c;外部样式表将是理想的选择。在使用外部样式表的情况下&#xff0c;你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <link> 标签链接到样式表&#xff0c;也要放到<head>中。 2、外部…

上网课用什么耳机和麦克风,分享几款骨传导耳机上网课用

各位耳机狂热者&#xff0c;咱们都了解传统的蓝牙耳机相对于老式有线耳机来说确实方便得多。但是&#xff0c;也别忘了蓝牙耳机会导致耳道不断堵塞&#xff0c;引发细菌滋生等问题。好在近年来&#xff0c;骨传导耳机如火如荼地走红&#xff0c;解决了这些难题&#xff0c;简直…

飞天使-jenkins进行远程linux机器修改某个文件的思路

文章目录 jenkins配置的方式jenkins中执行shell的思路 jenkins配置的方式 jenkins中执行shell的思路 下面的脚本别照抄&#xff0c;只是一个思路 ipall"$ips"# 将文本参数按行输出为变量 while IFS read -r line; doecho "$line" if [[ ! -z $line ]] &…

ubuntu 22.04 LTS 在 llvm release/17.x 分支上编译 cookbook llvm example Chapter 02

不错的资料&#xff1a; LLVMClang编译器链接器--保值【进阶之路二】 - 掘金 —————————————————————————————————————— 下载 llvm-cookbook example: $ git clone https://github.com/elongbug/llvm-cookbook.git 也可以参照llvm-pr…

Vue实现动态遍历生成el-input

实现效果: el-input的label是measureName, el-input绑定的值是formDatat.measureCode 接口返回的数据格式如下 处理过的formData的格式如下