计算机视觉中各种归一化算法

这篇具有很好参考价值的文章主要介绍了计算机视觉中各种归一化算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

归一化算法是对激活函数的输入进行归一化

将feature map shape设为[N,C,H,W],其中N表示batch size,C表示通道数,H、W分别表示特征图的高度、宽度

Batch Normalization

在batch上,对N、H、W做归一化,保留通道C的维度。对较小的batch size效果不好,BN适用于固定深度的前向神经网络,如CNN,不适用于RNN;

计算机视觉中各种归一化算法,深度学习基础知识,计算机视觉,算法,人工智能

如果把特征图比作一摞书,这螺书总共有N本,每本有C页,每页有H行,每行有W个字符。

BN在求均值时,相当于将这些书按页码一一对应地加起来,再除以每个页码下的字符总数:,可以将BN看成求“平均书”的操作(“平均书”每页只有一个字)

为什么要进行BN呢?

激活函数会改变各层数据的分布,随着网络的加深,这种差异会越来越大,使模型训练起来特别困难,收敛速度很慢,会出现梯度消失的问题。

BN的主要思想:针对每个神经元,使数据在进入激活函数之前,沿着通道计算每个batch的均值、方差,使数据保持均值为0,方差为1的正态分布,避免发生梯度消失。

把第1个样本的第1个通道,加上第2个样本第1个通道.....加上第N个样本第1个通道,求平均,得到通道1的均值(注意是除以而不是单纯除以N,最后得到的是一个代表这个batch 第1个通道平均值的数字,而不是一个H×W的矩阵)。求通道1的方差也是同理。对所有通道都施加一遍这个操作,就得到了所有通道的均值和方差。

BN的使用位置:全连接层或卷积操作之后,激活函数之前

BN的算法过程:①沿着通道计算每个batch的方差;②沿着通道计算每个batch的方差;③做归一化;④加入缩放和平移变量(保证每一次数据经过归一化之后,还保留原来学习到的特征,完成归一操作,加速训练)

;;计算机视觉中各种归一化算法,深度学习基础知识,计算机视觉,算法,人工智能计算机视觉中各种归一化算法,深度学习基础知识,计算机视觉,算法,人工智能

BN的作用

缓解梯度消失,加速网络收敛速度。BN层可以让激活函数(非线性变化函数)的输入数据
落入比较敏感的区域,缓解了梯度消失问题。

简化调参的负担,网络更稳定。在调参时,学习率调得过大容易出现震荡与不收敛,BN层则抑制了参数微小变化随网络加深而被放大的问题,因此对于参数变化的适应能力更强,更容易调参。

防止过拟合。BN层将每一个batch的均值与方差引入到网络中,由于每个batch的这两个值都不相同,可看做为训练过程增加了随机噪音,可以起到一定的正则效果,防止过拟合

BN存在的问题

如果batch size太小,则计算的均值、方差不足以代表整个数据的分布

如果batch size太大,则会超过内存容量,需要跑更多的epoch,导致总训练时间变长,直接固定梯度下降的方向,导致很难更新

Layer Normalization

LN对深度网络中的某一层所有神经元的输入按以下公式进行正则化操作;

LN在通道方向上,对C、H、W做归一化,对RNN效果明显

LN求均值时,相当于把每一本书的所有字加起来,再除以这本书的字符总数:,即求整本书的“平均字”

LN中同层神经元的输入拥有相同的均值和方差,不同的输入样本有不同的均值和方差。

对于特征图,LN对每个样本的C、H、W维度上的数据求均值和标准差,保留N维度。

LN的优势点

不需要批训练,在单个数据内部就能完成归一化。

Instance Normalization

在图像像素上,对H、W做归一化,可以加速模型收敛,并且保持每个图像实例之间的独立

求均值时,相当于把一页书中的所有字加起来,再除以该页的总字数:

feature map的各个通道的均值和方差会影响到最终生成图像的风格,所以不能对整个batch做归一化。

IN对每个样本的H、W维度的数据求均值和标准差,保留N、C维度;只在通道内部求均值和标准差:计算机视觉中各种归一化算法,深度学习基础知识,计算机视觉,算法,人工智能,,

Group Normalization

将channel 分组,然后再做归一化;把一本C页的书平均分成G份,每份成为有C/G页的小册子

GN是为了解决BN对较小的mini-batch size效果差的问题。GN适用于占用显存比较大的任务,例如图像分割。对这类任务,可能batch size 只能是个位数,再大显存就不够用了。而当batch size是个位数时,BN的表现很差,因为没办法通过几个样本的数据量,来近似总体的均值和标准差。GN也是独立于batch 的,它是 LN和IN的折中。文章来源地址https://www.toymoban.com/news/detail-853551.html

到了这里,关于计算机视觉中各种归一化算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深度学习基础入门篇[七]:常用归一化算法、层次归一化算法、归一化和标准化区别于联系、应用案例场景分析。

    【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、

    2024年02月13日
    浏览(29)
  • 【计算机视觉面经四】基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)

    目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】目标检测算法。 什么是两阶段目标检测算法,与单阶段目标检测有什么区别? 两阶段目标检测算法因需要进行两阶段的处理:1)候选区域的获取,2)候选区域分类和回归,也称为基于

    2024年03月27日
    浏览(42)
  • 计算机视觉与深度学习 | 非线性优化理论:图优化、高斯牛顿法和列文伯格-马夸尔特算法

    ===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 计算机视觉与深度学习 | SLAM国内外研究现状 计算机视觉与深度学习 | 视觉惯性SLAM的基础理论 计算机

    2024年02月08日
    浏览(39)
  • 计算机竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

    🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉opencv的手势检测 手势识别 算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 普通机器视觉手势检测的基本流程如下: 其中轮廓的提取,多边形

    2024年02月07日
    浏览(38)
  • 【深度学习: 计算机视觉】如何改进计算机视觉数据集

    机器学习算法需要大量数据集来训练、提高性能并生成组织所需的结果。 数据集是计算机视觉应用程序和模型运行的燃料。数据越多越好。这些数据应该是高质量的,以确保人工智能项目获得最佳的结果和产出。 获取训练机器学习模型所需数据的最佳方法之一是使用开源数

    2024年02月20日
    浏览(35)
  • 深度学习与计算机视觉

    目录 1 深度学习 1.1 人工智能 1.2 机器学习 1.3 深度学习 1.3.1 深度学习发展历程 1.3.2 深度学习中的核心因素 1.3.3 深度学习模型分类 1.3.4 深度学习框架 2 计算机视觉 人工智能、机器学习、深度学习这三者的关系: 在实现人工智能的众多算法中,机器学习是发展较为快速的

    2024年02月06日
    浏览(33)
  • 【探索AI】三十一-计算机视觉(六)深度学习在计算机视觉中的应用

    深度学习在计算机视觉中的应用已经取得了显著的成果,并且正在逐步改变我们对图像和视频信息的处理和理解方式。下面将详细讲解深度学习在计算机视觉中的几个关键应用。 首先,我们来看图像分类。图像分类是计算机视觉的基本任务之一,它涉及到将输入的图像自动归

    2024年04月09日
    浏览(48)
  • 深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

    【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、

    2024年02月16日
    浏览(40)
  • 计算机视觉(五)深度学习基础

    深度学习与神经网络的区别 选择合适的目标函数 Softmax层 梯度消失的直观解释 激活函数 学习步长 SGD的问题 存在马鞍面,使我们的训练卡住,于是提出下面方法: Momentum动量 Nesterov Momentum 先利用“惯性”,“走”一步。避免一开始,就被当前梯度带偏。 Adagrad 为不同的参数

    2024年02月14日
    浏览(38)
  • 深度学习与计算机视觉的创新

    深度学习和计算机视觉是现代人工智能领域的两个重要分支。深度学习是一种通过多层神经网络来处理大规模数据的机器学习方法,而计算机视觉则是利用计算机程序来模仿人类视觉系统对图像进行分析和理解的技术。在过去的几年里,深度学习与计算机视觉的融合已经取得

    2024年04月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包