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

Batch Normalization[[

error surface如果很崎岖,那么就代表比较难train,我们有没有办法去改变这个landscape呢

可以用batch normalization.

  • 如果 ( x_1 ) 的取值范围很小(如 1, 2),而 ( x_2 ) 的取值范围很大(如 100, 200),那么 ( w_2 ) 的变化会对输出 ( \hat{y} ) 产生更大的影响,进而导致损失 ( L ) 的变化也很大(+ΔL large)。
  • 这会导致梯度更新时,某些方向变化很大,某些方向变化很小,优化过程不平衡。
  • 如果特征的尺度差异很大,损失函数的地形会很“陡峭”或“扁平”,导致梯度下降时路径弯曲,优化困难。
  • 经过特征归一化后,损失函数的地形变得“圆滑”,各个方向变化一致,优化路径更直接,收敛更快。

我们想要这个loss landscape变得平滑,就要进行特征归一化

feature normalization

将每一维的数值特征归一化,使他们平均为0,方差为1

我们经过一层normalization后的x经过w得到z再经过activate function得到a,那么a和z实际上对w2是input,那么就有可能特征差异大,所以要在z或者a再做一次normalization,在哪里做其实差异不大

z是向量/矩阵,但是经过normalization后,每一个z的小改变就会引起后面三个a的改变,相比input时候是单独改变

为什么说这个network是一个large的network?

归一化操作本身就把原本“每个样本独立”的网络,变成了“所有样本互相关联”的大网络

因为我们没办法把所有的这个data都进行normalization,改为在一个batch做normalization

我们再归一化之后还要让机器learn出来γ和β干什么呢?这样子不就会导致我们每一个dimension的分布不接近了吗?

我们一开始会设置两个参数向量分别为1和0,让训练初期的dimension分布比较接近,找到一个好的error surface后再慢慢加进去

如果我们真正在做application的时候,资料不是一个batch的传进来,我们无法累计到一个batch再计算,我们就得用滑动平均来计算

相关文章:

  • 辛格迪客户案例 | 合规升级之路:辛格迪助力倍特药业迈向卓越
  • Selenium 测试框架 - JavaScript
  • Python 进阶【二】:多进程编程
  • PyTorch安装Cuda版本选择
  • xxl-job快速创建复制任务
  • H-ZERO导出组件支持智能分片、异步导出、动态配置等高级特性,让“一键导出”成为现实!
  • 【ARM】MDK浏览信息的生成对于构建时间的影响
  • MySql--explain的用法
  • 第2讲、从启动到表单加载:Odoo 18 的完整执行流程详解
  • Dolphin文档解析从理论到实践——保姆级教程
  • SSM 框架深度整合实战:从零构建企业级 Java 应用
  • Redission学习专栏(一):快速入门及核心API实践
  • 【操作系统】硬件结构知识点详解
  • Linux Crash工具全解:内核崩溃分析的一切
  • 自动化测试常见函数(上篇)
  • day22-定时任务故障案例
  • docker容器间服务访问的问题
  • mimics导出图像 标注文件
  • css样式块重复调用
  • 通义实验室开源针对RAG的预训练框架
  • 哪些网站可以做兼职靠谱的/seo什么意思简单来说
  • 中国建设行业峰会官方网站/个人网站怎么制作
  • 新浪舆情通/杭州seo培训
  • 为什么最近好多网站打不开了/邯郸网站建设优化
  • 成都网站建设好的公司/百度快速收录seo工具软件
  • 用vs2010做网站的好处/北京网络营销咨询公司