深度学习神经网络笔记--卷积神经网络

news/2024/10/15 19:38:30/
  • 为什么要用卷积
    • 捕捉特征,如文末的图)
    • 不受位置影响(左右,前后,上下)
    • 可以参考下图:
  • 卷积操作
    • 可移动的小窗口与图像数据逐元素相乘后相加
    • 小窗口是滤波器,卷积核,(权重矩阵)
    • 需要注意的问题:
      • stride:步长
      • 卷积核的个数:决定输出的depth,卷积核个数
      • 填充值zerp-padding:外圈补0
        • 为什么要补零:确保卷积核能够覆盖输入图像的边缘区域,同时保持输出特征图的大小
  • 卷积神经网络构造:
    • input Layer:原始图像数据:三个颜色通道组成二维矩阵,表示像素强度值,进行预处理
      • 去均值:把图像位置拉回坐标系原点
      • 归一化:类似正态标准化,线性代数便准化,数据分为变成0-1
      • PCA主成分分析数据降维,白化:降低输入数据的冗余性。
    • Conv Layer:图像与卷积核卷积操作:
      • 输出尺寸=(样本尺寸-过滤器尺寸+2*填充)/步幅+1
      • 保持画幅不变的步幅为1的零填充值:(K-1)/2
    • Relu Layer:应用激活函数(ReLU)引入非线性(为了使网络学习复杂特征)实际上其实就是Relu(x) = max(0,x),当然会有一些其他变体。
    • (要多层堆叠:提取更高级被的特征,深层次特征有更复杂的模式)
    • Pooling Layer:减小特征图的大小来减少计算复杂性,有助于提取重要特征。(图像处理大致是压缩图像)
      • 特征不变
      • 特征降维
      • 防止过拟合
      • 选择池化窗口内的最大值(maxPooling或平均值averagePooling来实现
    • FC全连接与输出:处理分类标签,回归值,其他任务结果。

常见的 CNN 模型(一些链接是其他读起来有帮助的博主写的,一些是原论文)

  1. LeNet
    • 特点:最早的卷积神经网络之一,结构相对简单,包含卷积层、池化层和平坦层。
    • 用途:主要用于手写数字识别,如 MNIST 数据集。
  2. AlexNet
    • 特点:在 2012 年的 ImageNet 大赛中获得冠军,引入了 ReLU 激活函数和 Dropout 正则化技术,提高了模型的深度和精度。
    • 用途:图像分类、目标检测等任务。
  3. VGGNet
    • 特点:通过堆叠多个小尺寸的卷积核(如 3×3)来代替较大的卷积核,使得网络更深且参数更少。
    • 用途:图像分类、图像风格转移、特征提取等。
  4. GoogLeNet(Inception 网络)
    • 特点:采用了 Inception 模块,该模块允许网络在同一层中学习不同尺度的特征,并通过 1×1 卷积减少通道数来降低计算成本。
    • 用途:图像分类、目标检测等。
  5. ResNet(残差网络)
    • 特点:引入了残差块(Residual Block),通过跳线连接(Skip Connection)解决了深层网络中的梯度消失问题。
    • 用途:图像分类、目标检测、人脸识别等。
  6. DenseNet
    • 特点:每一层都与前面的所有层相连,通过密集连接的方式最大化特征重用,减少参数数量,同时增强特征传播。
    • 用途:图像分类、目标检测等。
  7. MobileNet
    • 特点:为移动设备设计,通过深度可分离卷积(Depthwise Separable Convolution)来减少计算量。
    • 用途:在嵌入式设备上实时处理图像和视频数据。
  8. SegNet
    • 特点:专为图像分割设计,使用编码器-解码器结构,编码器通常是一个预训练的 CNN,如 VGG-16,解码器负责从编码器的输出中重建像素级别的标签。
    • 用途:语义分割。

(有特定的需求可以通过链接调转或者自行获取论文代码看博客等方式再仔细研究)

上述内容是结合博客,论文等内容总结归纳的自己的学习笔记

无商业用途

如果侵犯到您的权利请联系我删除,谢谢!


http://www.ppmy.cn/news/1539582.html

相关文章

Study:day11-数据可视化之Matplotlib模块

文章目录 Study:day11-数据可视化之Matplotlib模块1.1 Matplotlib概述1.1.1 绘图初始 1.2 绘图主题的使用主题的使用 Study:day11-数据可视化之Matplotlib模块 学术图表:学术图表绘制 Matplotlib模块(核心)Seaborn模块…

leetcode15:三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&a…

文献阅读:通过深度神经网络联合建模多个切片构建3D整体生物体空间图谱

文献介绍 文献题目: 通过深度神经网络联合建模多个切片构建3D整体生物体空间图谱 研究团队: 杨灿(香港科技大学)、吴若昊(香港科技大学) 发表时间: 2023-10-19 发表期刊: Nature M…

JAVA开发环境配置(window系统安装java)

要运行java代码,需要配置JAVA的运行环境,主要以window系统安装java为主。 window系统安装java 下载JDK 首先我们需要下载 java 开发工具包 JDK,下载地址:Java Downloads | Oracle,在下载页面中根据自己的系统选择对应…

测量误差相关知识(一)

1 测量误差的定义 误差测得值-真值 2 真值的理解 真值的特性: 近似可知性:只有少数特殊情况下,真值是可知的,如三角形内角和180度。可变性:真值随时间和空间而变化 真值类型: 理论真值约定真值&#…

24软考信息系统监理师考前冲刺20问!你能答上来多少?

距离下半年软考考试还剩不到一个月!在此提醒各位考生不要只知道盲目啃书!由于今年的软考知识点繁杂,很难抓住重心! 这里给大家准备了信息系统监理师考前冲刺20问,帮助各位更好的理解重要考点~供考生备考使用&#xff0…

Vue3中提到的Tree-shaking

我们知道,Vue3中提到一个叫Tree-shaking的东西,其实也并不是一个新的东西,有人称之为"摇树优化",什么意思? 按照作者的原话解释,Tree-shaking其实就是:把无用的模块进行“剪枝”&…

7.并发编程之并发安全问题

1 线程安全性 什么是线程安全性?可以这么理解, 我们所写的代码在并发情况下使用 时,总是能表现出正确的行为;反之,未实现线程安全的代码,表现的行为是不可预知的,有可能正确,而绝大多…