您当前的位置:首页 > 电脑百科 > 人工智能

深度学习中的归一化技术全面总结

时间:2022-07-08 09:43:38  来源:  作者:deephub

训练深度神经网络是一项具有挑战性的任务。 多年来,研究人员提出了不同的方法来加速和稳定学习过程。 归一化是一种被证明在这方面非常有效的技术。

深度学习中的归一化技术全面总结

 

在这篇文章中,我将使用类比和可视化的方式来回顾这些方法中,这将帮助您了解它们的产生的原因和思维过程。

为什么要归一化?

例如,我们现在用两个特征构建一个简单的神经网络模型。 这两个特征一个是年龄:范围在 0 到 65 之间,另一个是工资:范围从 0 到 10 000。我们将这些特征提供给模型并计算梯度。

深度学习中的归一化技术全面总结

 

不同规模的输入导致不同的权重更新和优化器的步骤向最小值的方向不均衡。这也使损失函数的形状不成比例。在这种情况下,就需要使用较低的学习速率来避免过冲,这就意味着较慢的学习过程。

所以我们的解决方案是输入进行归一化,通过减去平均值(定心)并除以标准偏差来缩小特征。

深度学习中的归一化技术全面总结

 


深度学习中的归一化技术全面总结

 

此过程也称为“漂白”,处理后所有的值具有 0 均值和单位方差,这样可以提供更快的收敛和更稳定的训练。

这是一个很好的解决方案,那么为什么我们不规范化网络中每一层的激活呢?

下面我们先看一下针对于激活的归一化方法

Batch Normalization

深度学习中的归一化技术全面总结

 

2015 年,Sergey Ioffe 和 Christian Szegedy[3] 采用了这个想法来解决内部协变量偏移问题。 以前输入层分布由于权值的更新而不断变化。所以下面的层总是需要适应新的分布,它会导致收敛速度变慢和训练不稳定。

批量标准化提供了一种控制和优化每一层之后的分布的方法。 该过程与输入归一化相同,但我们添加了两个可学习的参数,γ 和 β。

通过代码来说明要比枯燥的公式好的多,所以BN的代码如下:

def BatchNorm(x, gamma, beta, eps=1e-5):
# x: input shape [N, C, H, W]
N, C, H, W = x.shape
mean = torch.mean(input=x, dim=[0,2,3], keepdim=True)
var = torch.var(input=x, dim=[0,2,3], keepdim=True)
# mean, var shape : [1, C, 1, 1]
x = (x - mean) / torch.sqrt(var + eps)

return x * gamma + beta

这两个参数是通过反向传播沿着网络学习的。他们通过缩放(γ)和移动(β)激活优化分布。

深度学习中的归一化技术全面总结

 

由于有固定的分布,所以可以提高学习率并加快收敛速度。 除了计算提升之外,BN 还可以作为一种正则化技术。 数据集统计数据的近似产生的噪声消除了对 Dropout 的需要。

但这是一把双刃剑。 这种估计仅适用于较大的批次。 当批次数量较少时,性能会急剧下降。

深度学习中的归一化技术全面总结

 

BN 的另一个缺点是对于批处理的依赖。 如果我们传递了单个样本而不是批量的样本,网络必须使用预先计算的训练均值和方差,这可能会导致不同的结果。

这个问题的重要性促使人们创建替代方法以避免对批处理的依赖。

Layer Normalization

深度学习中的归一化技术全面总结

 

这是Geoffrey E. Hinton等人在2016年[4]中首次尝试减少对批大小的约束。提出这个方法的主要原因是无法找到将BN应用于递归神经网络,需要找到一个替代的方法。

深度学习中的归一化技术全面总结

 

在深度神经网络中,由于层数是固定的,因此很容易存储每个 BN 层的统计信息。 然而在 RNN 中,输入和输出形状的长度不同。 因此,在这种情况下,最好使用单个时间步长(样本)而不是整个批次的统计信息进行标准化。

def LayerNorm(x, gamma, beta, eps=1e-5):
# x: input shape [N, C, H, W]

N, C, H, W = x.shape
mean = torch.mean(input=x, dim=[1,2,3], keepdim=True)
var = torch.var(input=x, dim=[1,2,3], keepdim=True)
# mean, var shape: [N, 1, 1, 1]
x = (x - mean) / torch.sqrt(var + eps)

return x * gamma + beta

在这种方法中,batch(N) 中的每个示例都在 [C, H, W] 维度上进行了归一化。 与 BN 一样,它可以加速和稳定训练,并且不受批次的限制。 此方法可用于批量为 1 的在线学习任务。

Instance Normalization

深度学习中的归一化技术全面总结

 

Dmitry Ulyanov 等人在 2016 年的论文 [5] 中介绍了Instance Normalization。 这是另一种尝试减少对批处理的依赖以改善样式传输网络的结果。

def InstanceNorm(x, gamma, beta, eps=1e-5):
# x: input shape [N, C, H, W]
N, C, H, W = x.shape
mean = torch.mean(input=x, dim=[2,3], keepdim=True)
var = torch.var(input=x, dim=[2,3], keepdim=True)
# mean, var shape: [N, C, 1, 1]
x = (x - mean) / torch.sqrt(var + eps)

return x * gamma + beta

跨批次和通道的标准化允许从图像中删除特定的对比度信息,这有助于泛化。

这种方法在 Pix2Pix 或 CycleGAN 等生成模型中广受欢迎,并成为著名的 StyleGAN2 中使用的自适应实例归一化的先驱。

Group Normalization

深度学习中的归一化技术全面总结

 

Group Normalization 在 2018[1] 论文中被引入,它直接解决了 CNN 的 BN 限制。 主要针对的是分布式学习,其中批次被分成许多机器。 这些是在少数例子上训练的,比如 6-8,在某些情况下,甚至是 1-2。

深度学习中的归一化技术全面总结

 

GN 可以理解为Layer 和Instance的混合。 GN 将通道分成组并在它们之间进行标准化。 该方案使计算独立于批量大小。

def GroupNorm(x, gamma, beta, G, eps=1e-5):
# x: input features with shape [N, C, H, W]
# G : number of groups
N, C, H, W = x.shape
x = torch.reshape(input=x, shape=[N, G, C // G, H, W])
mean = torch.mean(input=x, dim=[2,3,4], keepdim=True)
var = torch.var(input=x, dim=[2,3,4], keepdim=True)
# mean, var shape : [N, G, 1, 1, 1]
x = (x - mean) / torch.sqrt(var + eps)
x = torch.reshape(input=x, shape=[N, C, H, W])
return x * gamma + beta

GN 优于在小批量上训练的 BN,但无法击败大批量的结果,但是这是一个很好的起点。

上面的针对于激活的归一化方法我们基本上都听说过也经常会用到,下面我们来介绍针对权重的归一化方法。

Weight Standardization

深度学习中的归一化技术全面总结

 

我们已经对输入和层输出进行了标准化,唯一剩下的就是权重。因为它们可以在没有任何控制的情况下变大,尤其是当我们无论如何都要标准化输出时。 通过标准化权重,我们实现了更平滑的损失和更稳定的训练。

def WeightStand(w, eps=1e-5):
# w: input features shape [Cin, Cout, kernel_size, kernel_size]
mean = torch.mean(input=w, dim=[0,2,3], keepdim=True)
var = torch.var(input=w, dim=[0,2,3], keepdim=True)
# mean, var shape : [1, Cout, 1, 1]

w = (w - mean) / torch.sqrt(var + eps)

return w

权重的标准化是Group Normalization的一个很好的辅助。 在仅使用一个样本的 BN(大批量)情况下,将这些方法结合起来会产生更好的结果。

深度学习中的归一化技术全面总结

 

除此以外,有人还提出了BCN方法,称为批处理通道规范化。简而言之,每一层同时使用BN和GN。

总结

归一化是深度学习中的一个基本概念。 它加快了计算速度并稳定了训练。 多年来发展了许多不同的技术。本篇文章整理了目前与它相关的方法,希望对你有所帮助

引用

[1] Group Normalization

[2] Micro-Batch TrAIning with Batch-Channel Normalization and Weight Standardization

[3] Batch Normalization: Accelerating Deep.NETwork Training b y Reducing Internal Covariate Shift

[4] Layer Normalization

[5] Instance Normalization: The Missing Ingredient for Fast Stylization

[6] Deep Residual Learning for Image Recognition

作者:maciej Balawejder



Tags:深度学习   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
深度学习中的梯度裁剪策略比较
在深度学习的训练过程中,梯度裁剪是一种常用的技术,用于防止梯度爆炸问题,即梯度的值变得非常大,导致模型训练不稳定。梯度裁剪通过限制梯度的最大值或最小值,帮助模型更稳定地收...【详细内容】
2024-03-05  Search: 深度学习  点击:(36)  评论:(0)  加入收藏
深度学习的未来:趋势和新兴技术
深度学习是人工智能(AI)的一个子集,持续推动技术进步,塑造机器感知、分析和响应数据的方式。本文将探索将在未来几年重新定义人工智能格局的最新趋势和新兴技术。模型规模指数...【详细内容】
2024-02-19  Search: 深度学习  点击:(57)  评论:(0)  加入收藏
基于深度学习的虚拟现实图像生成技术研究与应用
随着虚拟现实(VirtualReality,简称VR)技术的快速发展,人们对于逼真、沉浸式的虚拟体验需求不断增加。而虚拟现实图像生成是VR技术中的重要环节之一,它通过模拟和生成逼真的虚拟场...【详细内容】
2024-01-04  Search: 深度学习  点击:(151)  评论:(0)  加入收藏
深度学习框架解读—Yolov5/Yolov7/Halcon对比分析
作为一名机器视觉深度学习算法工程师,我从技术实现、性能、适用场景和易用性等方面来评价YOLOv5、YOLOv7和Halcon中的深度学习框架。以YOLOv5和YOLOv7进行比较,并结合Halcon的...【详细内容】
2024-01-03  Search: 深度学习  点击:(49)  评论:(0)  加入收藏
基于深度学习的人体姿态估计技术探索
人体姿态估计是计算机视觉领域的重要研究方向之一,旨在通过对图像或视频中人体姿势的分析和理解,推测出人体的关节点位置和姿态信息。近年来,随着深度学习技术的进步和应用,基于...【详细内容】
2024-01-02  Search: 深度学习  点击:(82)  评论:(0)  加入收藏
深度学习中的图像生成对抗攻击与防御方法综述
随着深度学习技术的快速发展,图像生成对抗攻击成为了一个备受关注的研究领域。图像生成对抗攻击是指通过对抗样本的生成,欺骗深度学习模型,使其产生错误的分类结果。为了应对这...【详细内容】
2023-11-28  Search: 深度学习  点击:(258)  评论:(0)  加入收藏
面向时间序列数据的深度学习应用综述
时间序列数据是指按照时间顺序排列的数据集合,如股票价格、气象数据、交通流量等。深度学习作为一种强大的机器学习技术,已经在时间序列数据分析中取得了显著的成果。本文将对...【详细内容】
2023-11-27  Search: 深度学习  点击:(115)  评论:(0)  加入收藏
深度学习之模型压缩、加速模型推理
简介当将一个机器学习模型部署到生产环境中时,通常需要满足一些在模型原型阶段没有考虑到的要求。例如,在生产中使用的模型将不得不处理来自不同用户的大量请求。因此,您将希望...【详细内容】
2023-11-20  Search: 深度学习  点击:(208)  评论:(0)  加入收藏
深度学习模型与人类认知的对比与解释
深度学习模型是近年来人工智能领域的热门研究方向,其在图像识别、自然语言处理等任务上取得了令人瞩目的成果。然而,与人类认知相比,深度学习模型仍存在一些差距。本文将探讨深...【详细内容】
2023-11-17  Search: 深度学习  点击:(164)  评论:(0)  加入收藏
超大规模数据下的分布式深度学习模型训练技术
随着互联网和物联网的快速发展,数据规模呈现爆炸式增长。在这样的背景下,如何高效地训练深度学习模型成为了一个亟待解决的问题。传统的深度学习模型训练方式往往需要大量的计...【详细内容】
2023-11-08  Search: 深度学习  点击:(260)  评论:(0)  加入收藏
▌简易百科推荐
Meta AI 全球市场扩张,并上线网页版 meta.ai
IT之家 4 月 19 日消息,Meta 公司近日宣布 Llama 3 大语言模型之外,扩展 Meta AI 服务到美国之外的 13 个国家和地区,还宣布上线专门的聊天网站:meta.ai。Meta 公司在新闻稿中表...【详细内容】
2024-04-19    IT之家  Tags:Meta AI   点击:(2)  评论:(0)  加入收藏
重磅!Meta推出开源大模型Llama 3,性能直逼GPT-4
每经编辑:杜宇当地时间4月18日,AI 领域迎来重磅消息,Meta正式发布了人们等待已久的开源大模型Llama 3。与此同时,Meta首席执行官扎克伯格宣布:基于最新的Llama 3模型,Meta的AI助手...【详细内容】
2024-04-19    每日经济新闻  Tags:Llama 3   点击:(4)  评论:(0)  加入收藏
大模型下众生相:焦虑者、使用者和弃用者
大模型实际运用如何?文 | 周享玥编辑 | 赵艳秋 来源丨数智前线2024年,公认的大模型应用元年,不管是B端还是C端,都呈现出加速快跑的姿势。最近,我们和六位来自不同行业的大模型...【详细内容】
2024-04-18    投中网  Tags:大模型   点击:(10)  评论:(0)  加入收藏
AI圈公开的秘密:天下模型一大抄
抄袭已经成为AI世界公开的秘密。据The Information周一的文章,许多初创公司的AI聊天机器人很可能是采用了OpenAI和其他公司的数据开发的。这些机器人在某些任务上可以媲美GPT...【详细内容】
2024-04-17    华尔街见闻  Tags:AI圈   点击:(5)  评论:(0)  加入收藏
“AI+”进入中学课堂,家长何以很矛盾?
据4月15日《中国青年报》报道,近年来,随着ChatGPT等模型的快速迭代,生成式人工智能(AIGC)技术逐渐成为大众广泛关注的焦点。新技术的发展给各行各业带来新的可能和挑战,对教育领...【详细内容】
2024-04-17    工人日报  Tags:AI   点击:(6)  评论:(0)  加入收藏
Sora加入Adobe全家桶,视频改图加戏样样行
基于 Adobe 自己的大模型 Firefly 的能力,可以在视频素材上直接添加或减少内容,转场时感觉少点烘托背景的镜头,用 OpenAI 的 Sora 可以自动生成一段。Adobe 全家桶马上就要拥有...【详细内容】
2024-04-16    机器之心  Tags:Sora   点击:(3)  评论:(0)  加入收藏
光明日报:孩子用AI写作业,该担忧吗?
随着科技的发展,人工智能技术不断得到拓展与完善。而今,文字输出、信息检索、方案优化,乃至居家生活,越来越多的人已经离不开AI的帮助。与此同时,根据媒体报道,近期,一些“独具慧眼...【详细内容】
2024-04-16    光明日报  Tags:AI写作业   点击:(6)  评论:(0)  加入收藏
“弱智吧”成最佳中文AI语料库,究竟什么算优质数据?
出品|搜狐科技作者|郑松毅谁能想到,被誉为“最大原创段子手孵化地”的弱智吧,最近竟摇身一变成了——最佳中文AI训练语料库?由此受到启发,是否并不是训练AI的优质数据不...【详细内容】
2024-04-16  搜狐科技    Tags:优质数据   点击:(7)  评论:(0)  加入收藏
ChatGPT 应用商店?可能是一个万能应用程序!
OpenAI 在去年 11 月召开了一次开发者大会,首席执行官 Sam Altman 希望软件制造商在 ChatGPT 之上进行进一步的构建。OpenAI 表示,它将很快推出一个市场,开发人员和非技术人员...【详细内容】
2024-04-12  视角先锋队    Tags:ChatGPT   点击:(9)  评论:(0)  加入收藏
Kyligence发布企业级AI解决方案!AI数智助理降低数据使用门槛
智东西作者 | 长颈鹿编辑 | 李水青智东西4月12日报道,昨日大数据分析和指标平台供应商Kyligence(硅智信息)召开了数智论坛暨春季发布会,并分享和探讨Data+AI产品及解决方案在金...【详细内容】
2024-04-12    智东西  Tags:Kyligence   点击:(10)  评论:(0)  加入收藏
站内最新
站内热门
站内头条