前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >caffe详解之归一化层

caffe详解之归一化层

作者头像
AI异构
发布2020-07-29 11:00:11
6140
发布2020-07-29 11:00:11
举报
文章被收录于专栏:AI异构

从零开始,一步一步学习caffe的使用,期间贯穿深度学习和调参的相关知识!

LRN 参数配置

代码语言:javascript
复制
layer {
  name: "norm1"
  type: "LRN"
  bottom: "conv1"
  top: "norm1"
  lrn_param {
    local_size: 5
    alpha: 0.0001
    beta: 0.75
  }
}

LRN说明

示意图
公式
意义

LRN操作主要目的是在深度上进行平滑操作,使得数据在深度层面上有一定的联系。

应用

LRN层是在AlexNet网络中提出来的,但是因为其计算的复杂度和后期的效果并不理想,在后面的网络中基本上抛弃的LRN的归一化方法。

Batch Norm 参数配置

代码语言:javascript
复制
layer {
    bottom: "conv1"
    top: "conv1"
    name: "bn_conv1"
    type: "BatchNorm"
    batch_norm_param {
        use_global_stats: true
    }
}

layer {
    bottom: "conv1"
    top: "conv1"
    name: "scale_conv1"
    type: "Scale"
    scale_param {
        bias_term: true
    }
}
代码语言:javascript
复制
message BatchNormParameter {
  // 如果为真,则使用保存的均值和方差,否则采用滑动平均计算新的均值和方差。
  // 该参数缺省的时候,如果是测试阶段则等价为真,如果是训练阶段则等价为假。
  optional bool use_global_stats = 1;

  // 滑动平均的衰减系数,默认为0.999
  optional float moving_average_fraction = 2 [default = .999];

  // 分母附加值,防止除以方差时出现除0操作,默认为1e-5
  optional float eps = 3 [default = 1e-5];
}

Batch Norm 说明

公式
意义

在深度神经网络的训练过程中,先前层参数的调整会导致之后每一层输入值的分布发生变化,这种现象会使得模型的训练变得复杂。因为分布均匀且统一的数据往往更加容易使得算法训练出高准确率的模型Batch Norm主要借鉴的是白化的思想,目的是将数据尽量维持在方差为1,均值为0的分布上。因为数据的总量十分庞大,我们无法计算出整个数据集的均值与方差,因此采用Batch的思想,分块的进行白化处理Batch Norm的精华体现在最后一个公式上,白化之后进行拉伸与平移,也就是对数据分布进行修正。并且拉伸与平移的系数是通过训练得到的,这样,我们将batch在整个数据集的整体分布状态也学习了出来,防止以偏概全!下图可以清晰的看出,加入Batch Norm使得每一层的数据更够有效且均匀的传递到下一层中去。

应用

Batch NormResNet网络和Inception-v2Inception-v3Inception-v4中均有用到。

参考

批标准化 (Batch Normalization) https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/3-08-batch-normalization/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI异构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LRN 参数配置
  • LRN说明
    • 示意图
      • 公式
        • 意义
          • 应用
          • Batch Norm 参数配置
          • Batch Norm 说明
            • 公式
              • 意义
                • 应用
                • 参考
                相关产品与服务
                批量计算
                批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档