Batch Normalization的理解
原文链接:
Batch Normalization原理与实战 - 知乎 (zhihu.com)
总结:
背景:权重矩阵W的梯度与其左边那一层的激活值有关(参考:理解方向传播(BP算法) - Hisi - 博客园 (cnblogs.com)),而且如果用ReLU激活函数会导致梯度爆炸会消失,或者是sigmoid函数以及tanh函数会导致梯度消失,所以权重矩阵W可能会立马更新到+-inf,或者是更新的很慢很慢,为了解决W与激活值的关系,提出了PCA白化(过渡品),但是PCA白化太复杂,开销大,于是在此基础之上提出了Btach Normalization。
思路:对第L层的激活值的每个特征做标准化,也就是对L层的输出矩阵的非线性激活矩阵的每一行单独做标准化,到这步,由于标准化会损失底层神经网络的学习成果,所以再用线性变换弥补学习效果。
tip:原文中的“对每个特征进行normalization”(如下图)中的特征指的就是网络中某一层的第k个神经元,第一个特征指的就是第一个神经元,第二个特征指的就是第二个神经元。
另外这篇的自定义代码把batchnorm计算过程讲清了。
(196条消息) PyTorch——Batch Normalization(批量归一化)_cqu_shuai的博客-CSDN博客_batch normalization pytorch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话