目录

  • 机器学习:正则化 (Regularization)
  • 正则化的方法
  • 1.参数正则化
    • 1.0 范数
    • 1.1 L2 Regularization(Ridge Regression,权重衰减)
    • 1.2 L1 Regularization:将噪点相关权重系数设为0(也叫稀疏正则化)
    • 1.3 L1/L2对比:
  • 2. 经验正则化(早停、丢弃Dropout)
  • 博主热门文章推荐:

机器学习:正则化 (Regularization)

先一波总结:

  • 为什么要正则化:让模型不要过于依赖样本数据
  • 正则化主要思想:降低模型的复杂度
  • 正则化主要目的:防止模型过拟合
  • 正则化实现思路:最小化损失Loss+ 最小复杂度
  • 正则化终极目标:提升模型泛化Generalization的能力


图自台湾大学林轩田老师 Machine Learning Techniques (机器学习技法)

那么正则化是啥,为什么需要正则化?:因为要让AI模型不过于信赖样本数据,否则是不是就不能好好学习了,

举个栗子,比如让模型小A备考一个考试,学习过程他每天过于研究历年真题,真题固定题型完全不在话下,学到只会做真题,那么真正考试中出现新题型,悲剧 , 不会了,这里也是一样。这时候老师就说了,小A要使用正则化方法,平衡真题学习力度,做到既研究好真题,又不只限于真题。。。嗯 好像老师真这样说过。。

所以说Regularization 本质上是防止模型过拟合

正则化的方法

正则化有不同的策略,目前来讲主要有参数正则化、经验正则化

1.参数正则化

参数正则的L2/L1 Regularization 范数正则化目前用的是最多的。。。

参数正则化方法的核心主要是对损失函数Loss Function 添加惩罚项 Penalty

L2/L1正则化都是通过添加一个惩罚项,来调节模型参数(权重w),使loss最小,(例如w一开始数值大,则loss会变大,则在反向传播每次更新权重时,就会对这个w进行惩罚,既降低w,直到模型认为loss已经最优)

1.0 范数

上面所谓的L1/L2是数学中向量空间的范数

  • L1范数,其表示某个向量中所有元素绝对值的和。
  • L2范数, 表示某个向量中所有元素平方和再开根, 也就是欧氏距离

常用的最小二乘法(LS算法)就是L2的一个具体应用

在学习参数正则化前, 回顾下正则化核心思想和目标

  • 思想:降低模型复杂度,(根据奥卡姆剃刀定律
  • 目标:最小化 损失+复杂度 为目标(结构风险最小化)

即:

为避免离群值这种影响,引入Lambda(又称正则化率)来调制正则化项的整体影响
则变成:

Lambda值需要在模型简单化和训练数据拟合之间达到适当的平衡
• Lambda高,模型简单,数据欠拟合
• Lambda低,模型复杂,数据过拟合

模型学习速率和Lambda之间强相关

现在训练优化算法有2项内容组成:损失项 + 正则化项
• 损失项:用于衡量算法模型与数据的拟合度
• 正则化项:衡量算法模型的复杂度

1.1 L2 Regularization(Ridge Regression,权重衰减)

L2范数在回归里面,它的回归叫“岭回归”(Ridge Regression),也叫它“权值衰减weight decay”
L2范数向量各元素的平方和然后求平方根。我们让L2范数的规则项||W||2最小,可以使得W的每个元素都很小,都接近于0,即前面所说的惩罚项为:


L2实现上,直接在原来的损失函数基础上加上权重参数的平方和如下,这样调节权重w变小,实现最小化loss 损失+复杂度的小目标:

这个过程中,更小的权值w,即表示模型的复杂度更低,对数据的拟合就不会过于强烈

L2正则化核心是量化模型复杂度:L2 = 所有特征权重的平方和


加入L2正则化结果:测试Lost明显减少,训练损失有所上升,特征权重的绝对值降低(模型复杂度降低)
例如大多数LR(逻辑回归)模型都会使用L2正则化来降低模型复杂度,并且LR非常容易过拟合,因为LR会尝试让所有样本的Lost减少到0,但始终达不到,所以每个LR指示器特征的权重就会不断增大到正无穷或负无穷

在L2正则中,接近于0的权重对复杂度几乎没有影响,而离群值权重会产生巨大影响,所以是时候回引申出L1 Regularization了:

1.2 L1 Regularization:将噪点相关权重系数设为0(也叫稀疏正则化)

L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。所以L1正则化可以产生稀疏模型。

在原始的损失函数后面加上一个L1正则化项

为什么需要用L1:
特征组合可能会包含许多维度,模型太庞大占用大量RAM,因此,对权重降为0,既可以节省空间,也可以减少模型中的噪点

L1核心思想:将无意义的特征维度降为0

1.3 L1/L2对比:

• L2只能将权重变小,但是不能将他们降为0
• 采用不同方式降低权重w:L2会降低w的平方,L1是减w的绝对值,因此L2与L1具有不同的导数

2. 经验正则化(早停、丢弃Dropout)

还有一些通过经验实现正则化,例如早停法(但该方法实际操作起来困难)

另一种形式的正则是丢弃法Dropout,经常用于神经网络:
https://howiexue.blog.csdn.net/article/details/104271227

其原理就是:在梯度下降法的每一步中,随机丢弃一些网络单元,丢弃的越多,正则化效果越强

  • 0 = 无丢弃正则化
  • 1 = 丢弃所有内容,模型学不到任何规律

博主热门文章推荐:

一篇读懂系列:

  • 一篇读懂无线充电技术(附方案选型及原理分析)
  • 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
  • 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

LoRa Mesh系列:

  • LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释
  • LoRa学习:信道占用检测原理(CAD)
  • LoRa/FSK 无线频谱波形分析(频谱分析仪测试LoRa/FSK带宽、功率、频率误差等)

网络安全系列:

  • ATECC508A芯片开发笔记(一):初识加密芯片
  • SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果
  • 常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
  • AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例

嵌入式开发系列:

  • 嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)
  • IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等
  • Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤
  • Android底层调用C代码(JNI实现)
  • 树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等
  • Android/Linux设备有线&无线 双网共存(同时上内、外网)

AI / 机器学习系列:

  • AI: 机器学习必须懂的几个术语:Lable、Feature、Model…
  • AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)
  • AI: 什么是机器学习的数据清洗(Data Cleaning)
  • AI: 机器学习的模型是如何训练的?(在试错中学习)
  • 数据可视化:TensorboardX安装及使用(安装测试+实例演示)

AI:机器学习的正则化 (Regularization)相关推荐

  1. 吴恩达——机器学习(正则化Regularization)

    正则化 Regularization 1.过拟合 overfitting eg1:线性回归 图一:欠拟合,高偏差 图三:过拟合,高方差(一般在变量很多的时候发生,这种时候训练出的方程总能很好拟合训练数 ...

  2. Coursera公开课笔记: 斯坦福大学机器学习第七课“正则化(Regularization)”

     Coursera公开课笔记: 斯坦福大学机器学习第七课"正则化(Regularization)" +13投票 斯坦福大学机器学习第七课"正则化"学习笔记, ...

  3. 线性代数中的正则化(regularization)(zz)

    正则化(regularization)在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题.大条件数意味着舍入误差或其它误差会严重地影响问 ...

  4. 正则化(regularization)

    正则化(regularization)在线性代数理论中,不适定问题通常是由一组线性代数方程定义的,而且这组方程组通常来源于有着很大的条件数的不适定反问题.大条件数意味着舍入误差或其它误差会严重地影响问 ...

  5. 时雨月五| AI机器学习实战の电磁导航智能车中神经网络应用的问题与思考

    "不愤不启,不悱不发.举一隅不以三隅反,则不复也". – <论语·述而> 再次将论语中的这句"不愤不启,不悱不发"引用在这里,说明学生的学习的活动部 ...

  6. AI机器学习实战の电磁智能车篇

    简 介: 本文在这里向大家介绍我们在RT106x的小车上部署实施AI的方法,以及一个base line的电磁导引神经网络模型,希望能抛砖引玉,激发同学们开动脑筋,将AI在电磁智能车上的应用发扬光大. ...

  7. AI:一个20年程序猿的学习资料大全—人工智能之AI/机器学习/深度学习/计算机视觉/Matlab大赛——只有你不想要的,没有你找不到的

    AI:一个20年程序猿的学习资料大全-人工智能之AI/机器学习/深度学习/计算机视觉/Matlab大赛--只有你不想要的,没有你找不到的 目录 (有偿提供,替朋友转载,扫描下方二维码提问,或者向博主扫 ...

  8. Azure人工智能认知服务(AI·机器学习)

    最近CSDN开展了<0元试用微软 Azure人工智能认知服务,精美礼品大放送>,当前目前活动还在继续,热心的我已经第一时间报名参与,只不过今天才有时间实际的试用. 目前我在试用了 语音转文 ...

  9. pytorch实现L2和L1正则化regularization的方法

    pytorch实现L2和L1正则化的方法 目录 目录 pytorch实现L2和L1正则化的方法 1.torch.optim优化器实现L2正则化 2. 如何判断正则化作用了模型? 2.1 未加入正则化l ...

最新文章

  1. js密码强度正则表达式_知道这20个前端正则表达式,能让你做项目时少写1000行甚至一万行
  2. go get 的不再src目录中_GO语言基础进阶教程:包的使用
  3. mysql远程连接错误10038--navicat for mysql (10038)
  4. tuning-primer.sh 性能调试工具的使用
  5. 深度剖析 | 基于大数据架构的BI应用
  6. Java进阶:SpringMVC中获取Restful风格的参数(从请求路径中获取参数 )
  7. 饥荒联机版把服务器删掉了怎么找回,饥荒联机服务器角色存档删除 | 手游网游页游攻略大全...
  8. 电池SOC仿真系列-基于遗传算法的电池参数辨识
  9. 【旋转摆正验证码】知苗易约小程序旋转摆正验证码识别——识别解绝方法
  10. 计算机经典书籍大全(内含下载方式)
  11. windows自定义屏幕大小,分辨率大小,自定义电脑屏幕分辨率
  12. Android去除烦人的默认闪退
  13. 下载和安装Tcl/Tk:
  14. SQL语句基础-子查询
  15. Assertion断言入门(四)——断言覆盖率
  16. python-操作列表
  17. spring boot +mybatis plus +html 最佳实践项目
  18. windows10快捷键(windows10常用快捷键大全)
  19. Qt编写安防视频监控系统文章导航
  20. 用C#实现一个简单的图书管理系统(课程设计)

热门文章

  1. 华为服务器raid卡
  2. Android 8.0正式发布 奥利奥新功能惊人
  3. databus mysql搭建_Databus架构分析与初步实践(for mysql)
  4. Mysql8.0安装以及连接navicat部分bug解决
  5. 长尾分布 long-tail distribution
  6. 【Flink】FLINK-CDC之入门
  7. 金属氧化物半导体场效应晶体管的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. 计算机软件著作权转让协议
  9. 如何通过第三方工具维护计算机,无需第三方优化软件利用电脑自身维护功能优化系统...
  10. RuntimeError: one_hot is only applicable to index tensor