Loading web-font TeX/Math/Italic

L2正则

C=C_0+\frac{\lambda}{n}\sum_{i=1}^n{w_i^2}

\frac{\partial C}{\partial w}=\frac{\partial C_0}{\partial w}+\frac{\lambda}{2n}w

\begin{equation}w\to w'=w-\eta\frac{\partial C}{\partial w}=\left(1-\frac{\eta\lambda}{n}\right)w-\eta\frac{\partial C_0}{\partial w}\label{g1}\end{equation}

η是学习率,λ是正则系数,n是参数的个数。
L2 正则项的作用是使 w 在每次迭代时都 变小了 ηλ/n 倍。如果要使这个倍率不变,那么当参数个数增多(即 n 变大) 时,正则项系数 λ 也应该相应调大。

L1正则

 C=C_0+\frac{\lambda}{n}\sum_{i=1}^n{|w_i|}

\frac{\partial C}{\partial w}=\frac{\partial C_0}{\partial w}+\frac{\lambda}{n}\textrm{sgn}(w)

\textrm{sgn}(w)=\left\{\begin{matrix}1 & \textrm{if}\;w\geqslant 0\\0 & \textrm{if}\;w<0\end{matrix}\right.

w \to w-\frac{\eta\lambda}{n}\textrm{sgn}(w)-\eta\frac{\partial C_0}{\partial w}=w\pm\frac{\eta\lambda}{n}-\eta\frac{\partial C_0}{\partial w}

当w是小于1的正数时,L1正则的效果是使w减小ηλ/n ,即相比于L2正则w减小得更多,L1正则使(0,1)上的w快速向0逼近。当w位于(-1,0)时,L1正则的效果是使w增大ηλ/n,也是快速向0逼近。总的来说L1 正则的效果是使不重要的 w (绝对值小的w)几乎衰减为 0。
跟L2一样,参数变多时,正则系数λ也要跟着变大才能使w的更新速率保持不变。

posted on   高性能golang  阅读(658)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示