当前位置: 首页 > news >正文

颍上做网站免费自助网站建设

颍上做网站,免费自助网站建设,苏州工业园区房价,做网站卖酒1. 简介 Batch Normalization是深度学习中常用的技巧#xff0c;Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (Ioffe and Szegedy, 2015) 第一次介绍了这个方法。 这个方法的命名#xff0c;明明是Standardization, 非…1. 简介 Batch Normalization是深度学习中常用的技巧Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (Ioffe and Szegedy, 2015) 第一次介绍了这个方法。 这个方法的命名明明是Standardization, 非要叫Normalization, 把本来就混用、意义不明的两个词更加搅得一团糟。那standardization 和 Normalization有什么区别呢 一般是下面这样X是输入数据集 normalization也叫 min-max scaling一般译做 “归一化” standardization一般译做 “标准化” Batch-Norm 是一个网络层对中间结果作上面说的 standardization 操作。实际上 standardization 也可以叫做 Z-score normalization。所以可以这样理解standardization 是一种特殊的 normalization。normalization 作为一个 scaling 的大类包括 min-max scalingstandardization 等。 2. BatchNorm 对输入进行标准化的时候计算每个特征在样本集合中的均值、方差然后将每个样本的每个特征减去该特征的均值并除以它的方差。用数学公式表示即 而所谓的BatchNorm 就是神经网络中间在一小撮batch样本中进行标准化。具体如下B: batch size 注意BatchNorm作为神经网络的一层是有两个参数要训练的分别称为拉伸和偏移参数。可能你会有疑问既然已经对  作了标准化得到了  为什么还要用 将它“还原”呢 实际上设置这两个参数是为了给神经网络足够的自由度。如果经过训练, 说明神经网络认为不需要进行批标准化即可使loss function最小化我们也充分“尊重”它的选择。 3. BN 的特点 使用 BatchNorm我们可以尝试更大的学习率从而加速收敛但一般不会改变模型的精度BatchNorm 的效果依赖于 Batch size一般需要较大的 Batch size16才能有好的效果和 Dropout 一样BatchNorm 在训练和推理时有不同的行为训练时它基于每个 batch 计算均值和方差因此 batch size 必须足够大才能较好反映统计性质推理时BatchNorm 则直接用训练集整体的均值和方差进行标准化。 训练集整体的均值和方差如何得到——在每个batch的均值和方差计算中通过移动平均估算得到。 4. BN 的位置 BatchNorm 究竟应该放在哪现在还存在争议。很多人说应该放在激活函数之前但也有声音说应该放在激活函数之后。思考一下两种说法都有道理。举个简单的例子。 前一种说法是要对 作BatchNorm这样可以保证  在0附近  不至于太小后一种说法 BatchNorm 的作用对象则直接是 这样可以控制梯度  在合理的范围内不会因为  的极端取值而波动过大。 但现在看来前一种声音是占上风的将 BatchNorm 作用在全连接层和卷积层的输出上激活函数之前。在全连接网络中顺序是线性组合BatchNormActivation 对于全连接层BatchNorm 作用在特征维上。假设输入矩阵大小是 m×n —— m 等于 batch size即这个小批量中的样本数 n 表示特征数。我们要在每个特征上计算 m 个样本的均值和方差也就是对每一列做计算。 在卷积神经网络中顺序是卷积层BatchNormActivation池化全连接。要注意一点是如果卷积层有K个卷积核即K个通道要对每个通道的输出分别做批标准化且每个通道都拥有独立的拉伸和偏移参数。 对于卷积层BatchNorm 作用在通道维上。我们先考虑一个 1×1 的卷积层通道数为 k 。它其实就等价于神经元个数为 k 的全连接层。图片中每个像素点都由一个 k 维的向量表示可以看作是像素点的 k 个特征。同一批量各个图片的各个像素点就是不同的样本共有 m×p×q 个样本 m,p,q 分别为 batch size、高、宽。 类比全连接层 BatchNorm 作用在特征维上要在每个通道即每个特征上计算 m×p×q 个样本的均值和方差。 设小批量中有m个样本。在单个通道上假设卷积计算输出的高和宽分别为p和q。我们需要对该通道中m×p×q个元素同时标准化对这些元素做标准化计算时我们使用相同的均值和方差即该通道中m×p×q个元素的均值和方差。——卷积神经网络之Batch Normalization一 5. BN的理解与延伸 BN 效果好是因为 BN 的存在会引入 mini-batch 内其他样本的信息就会导致预测一个独立样本时其他样本信息相当于正则项使得 loss 曲面变得更加平滑更容易找到最优解。相当于一次独立样本预测可以看多个样本学到的特征泛化性更强更加 general。 ConvBNRelu 是卷积网络的一个常见组合。在模型推理时BN 层的参数已经固定下来本质就是一个线性变换。我们可以把 ConvBNRelu 进行算子融合以加速模型推理。 除了BN层还有GN(Group Normalization)、LN(Layer Normalization、IN(Instance Normalization)这些个标准化方法每个标注化方法都适用于不同的任务。 这个图很好地说明了BatchNorm、LayerNorm、InstanceNorm、GroupNorm的区别。N代表batch sizeC代表卷积核个数通道个数HW代表卷积结果的高和宽。 BatchNorm 计算均值和方差时考虑N * H * W 个元素对每个通道分别做标准化 LayerNorm计算均值和方差时考虑C * H * W 个元素对batch中的每个instance分别做标准化 InstanceNorm计算均值和方差时考虑H * W 个元素对每个通道、batch中的每个instance分别做标准化 GroupNorm介于LayerNorm和InstanceNorm二者之间将C个通道分组然后进行标准化。 直觉上来讲GroupNorm把提取到类似特征的不同卷积核分到同一个group中。对这些卷积核进行标准化确实make sense. 而且GroupNorm摆脱了对batch size的依赖。 GN在训练集上表现最好在测试集上稍逊于BN引自 Group Normalization (Yuxin Kaiming, 2018) 6. BN vs LN Transformer模型中用到了LayerNorm着重对比一下LayerNorm和BatchNorm。 对于一个输入序列 (x1,x2,...,xn) 每一个 xi 都是 d 维的向量。譬如输入序列是一个句子每个单词 xi 都用一个 d 维的向量表示。 X轴是序列长度nY轴是特征个数dZ轴是Batch size 此时BatchNorm是对图中蓝色框作标准化处理就像我们上面说的——对每个特征分别做标准化而LayerNorm针对每一个输入序列对图中黄色框作标准化处理。总结来说BatchNorm盯住每一个特征而LayerNorm盯住的是每一个样本。 那么为什么Transformer模型要用LayerNorm而不是BatchNorm呢 实际上序列模型的背景下BatchNorm有一个天然的硬伤这使得它在所有序列模型中都不吃香输入序列的长度(n)可能不一致。一般来说我们会规定一个最长的序列长度长度不够的序列用0填充。譬如下图这样Batch中的序列长短不一。 如果用BatchNorm以一个feature为例它的标准化有效范围是蓝色的图其余用0填充如果是LayerNorm对于4个序列它们的标准化有效范围是黄色的图。 直觉上来说对于BatchNorm的计算方法当Batch中序列长度差距过大时均值和方差的波动也会很大。 但这个问题对于LayerNorm来说并不存在因为它是在每一个序列内部计算均值和方差的。 这样我们可以直观地理解为什么BatchNorm对于序列模型并不好用为什么Transformer要采用LayerNorm 7. BN代码实现 我们翻一翻常见的backbone的结构。可以看到在官方Pytorch的resnet.py的class BasicBlock中forward时的基本结构是ConvBNRelu: # 省略了一些地方 class BasicBlock(nn.Module):def __init__(self,...) - None:...self.conv1 conv3x3(inplanes, planes, stride)self.bn1 norm_layer(planes)self.relu nn.ReLU(inplaceTrue)self.conv2 conv3x3(planes, planes)self.bn2 norm_layer(planes)self.downsample downsampleself.stride stridedef forward(self, x: Tensor) - Tensor:identity x# 常见的ConvBNReluout self.conv1(x)out self.bn1(out)out self.relu(out)# 又是ConvBNreluout self.conv2(out)out self.bn2(out)if self.downsample is not None:identity self.downsample(x)out identityout self.relu(out)return out resnet作为我们常见的万年青backbone不是没有理由的效果好速度快方便部署。当然还有很多其他优秀的backbone这些backbone的内部结构也多为ConvBNRelu或者ConvBN的结构。 参考资料BatchNorm and its variants - 知乎normalization 和 standardization 到底什么区别_为什么batch normalization使用standardization而不是normaliz-CSDN博客不论是训练还是部署都会让你踩坑的Batch Normalization - 知乎
http://www.hkea.cn/news/14357592/

相关文章:

  • 做动图的网站知乎网页设计怎么样
  • 忻州市建设厅网站首页海外打开网站慢
  • 网站建设方案书范文wordpress连接mysql8
  • 佛山专业建站公司装企网站建设
  • 有什么做照片书的网站怎么样建设一个网站
  • 建设网站后期需要哪些校园二手市场网站开发的意义
  • 许昌那有做网站广东省城乡建设厅网站首页
  • 北京网站制作合肥如何看网站空间问题
  • 上海网站建设 美橙网络宣传渠道有哪些
  • 网站查询备案服务商学it一年的学费大概是多少
  • 南宁做网站哪家公司好wordpress相册短代码
  • 为什么建设营销型网站学习html5的网站
  • 甘肃省建设厅官网站深圳建网建网站
  • 凡客网站设计网站二次备案
  • 设计友好的网站服务一流的做网站
  • 传媒网站模板seo网站推广目的
  • 网站建设优化推广排名免费域名创建入口在哪
  • uiapp博客 个人网站天津 网站设计制作公司
  • 天猫入驻网站建设深圳创业补贴政策2021申请流程
  • 徐州html5响应式网站建设哔哩哔哩免费网站观看
  • 最专业的网站建设seo优化服务公司创建wordpress博客
  • 网站标题正确书写标准天猫网站建设可行性分析
  • 河北建设厅查询网站郴州58网站
  • php网站源码安装教程做旅游门票网站需要什么材料
  • 手机网站用什么域名深圳开发app的公司有哪些
  • 智能建站系统哪个好建设银行嘉兴分行网站首页
  • 网页自助建站wordpress 建站 域名
  • 网站的首页面设计网址安全检测
  • 电商网站开发公司杭州企业如何建设网站
  • 可以找酒店案例的网站网站收录了怎么做排名