一、正则化介绍

问题:为什么要正则化?

  NFL(没有免费的午餐)定理:

    没有一种ML算法总是比别的好

    好算法和坏算法的期望值相同,甚至最优算法跟随机猜测一样

    前提:所有问题等概率出现且同等重要

    实际并非如此,具体情况具体分析,把当前问题解决好就行了

    不要指望找到放之四海而皆准的万能算法!

方差和偏差:

  

过拟合与欠拟合:

  训练集和测试集

机器学习目标:

  特定任务上表现良好的算法

  泛化能力强-->验证集上的误差小,训练集上的误差不大(不必追求完美,否则可能会导致过拟合)即可。

如何提升泛化能力:

  (1)数据

    数据和特征是上限,而模型和算法只是在逼近这个上限而已

    预处理:离散化、异常值、缺失值等

    特征选择

    特征提取:pca

    构造新的数据:平移不变性

  (2)模型

    数据中加入噪音

    正则化项:减少泛化误差(非训练误差)

    集成方法

几种训练情形:

  (1)不管真实数据的生成过程---欠拟合,偏差大

  (2)匹配真实数据的生成过程---刚刚好

  (3)不止真实数据的生成过程,还包含其他生成过程---过拟合,方差大

正则的目标:

  从(3)--->(2),偏差换方差,提升泛化能力

注:

  永远不知道训练出来的模型是否包含数据生成过程!

  深度学习应用领域极为复杂,图像、语音、文本等,生成过程难以琢磨

  事实上,最好的模型总是适当正则化的大型模型

正则化是不要的!!!

  XTX不一定可逆(奇异),导致无法求逆(PCA)

  解决:加正则,XTX--->XTX+αI(一定可逆),说明:α--阿尔法,I--大写的i,即单位阵。

  大多数正则化能保证欠定(不可逆)问题的迭代方法收敛

  注:伪逆

二、深度网络正则化

深度网络中的正则化策略有哪些?——传统ML方法的扩展

方法:

  增加硬约束(参数范数惩罚):限制参数,如L1,L2

  增加软约束(约束范数惩罚):惩罚目标函数

  集成方法

  其他

约束和惩罚的目的

  植入先验知识

  偏好简单模型

三、参数范数惩罚

从线性模型说起:

  形式:y=Wx+b

  W:两变量间的相互作用——重点关注

  b:单变量——容易欠拟合,次要

  仿射变换=线性变换+平移变换

参数范数惩罚:

  通常只惩罚权重W,不管b——b是单变量,且容易过拟合

  θ=(W;b)≈(W)

  

  α是惩罚力度,Ω是正则项。

最常见,L2参数范数惩罚:

  权重衰减(weight decay)

  岭回归,Tikhonov正则

形式:

  

效果:

  

  正则项Ω挤占原始目标J的空间,逼迫J

  权重接近于原点(或任意点)

  详细推导过程见P142-P143

L2正则能让算法“感知”到较高方差的输入x

线性缩放每个wi

L1参数范数惩罚:LASSO

形式:

效果:

  L1与L2大不一样:线性缩放wi-->增加wi同号的常数

  某些wi=0,产生稀疏解,常用于特征选择

除了L1,稀疏解的其他方法?

  Student-t先验导出的惩罚

  KL散度惩罚

注:不同于L1惩罚参数,惩罚激活单元

约束范数惩罚:

  本质:约束问题--> 无约束问题

形式:

  参数范数惩罚:

  

  约束范数惩罚:

  

  

  

  

五、数据增强

提升泛化能力的最好办法:

  数据增强:创造假数据

方法:

  (1)数据造假:平移、旋转、缩放——不能改变类别

    图像,语音

  (2)注入噪声

    输入层≈权重参数惩罚

    隐含层:去噪编码器、dropout

    权重:RNN

    输出层:标签平滑(反例)

      softmax永远无法真正预测0或1,需要做平滑,防止走极端

噪声鲁棒性:

  注入噪声远比简单收缩参数强大,特别是加入隐含层

六、早停止

问题

  随着时间推移,训练集误差逐渐减少,而验证集误差再次上升

  能不能在转折点处提前终止呢?

早停止

  当验证集误差在指定步数内没有改进,就停止

  有效,简单,高效的超参选择算法

  训练步数是唯一跑一次就能尝试很多值的超参

第二轮训练策略(验证集)

  (1)再次初始化模型,使用所有数据再次训练

    使用第一轮步数

  (2)保持第一轮参数,使用全部数据继续训练

    避免重新训练高成本,但表现没那么好,不保证终止

早停止为何有正则化效果?

  表象:验证集误差曲线呈U型

  本质:将参数空间限制在初始参数θ0的小邻域内(εt)

    εt等效于权重衰减系数的倒数

    相当于L2正则,但更具优势

    自动确定正则化的正确量

七、参数绑定和参数共享

参数范数惩罚:

  对偏离0(或固定区域)的参数进行惩罚,使用参数彼此接近

  一种方式,还有吗?

参数共享:

  强迫某些参数相等

  优势:只有参数子集需要存储,节省内存。如CNN

 八、集成方法

集成方法:

  集合几个模型降低泛化误差的技术

  模型平均:强大可靠

  kaggle比赛中前三甲基本都是集成方法

Bagging:

  有放回抽样,覆盖2/3

  多个网络的集成

  偏差换方差

Boosting:

  单个网络的集成

  方差换偏差

Dropout:

  集成大量深层网络的bagging方法

  多个弱模型组成一个强模型

  施加到隐含层的掩掩码噪声

  一般5-10个网络,太多会很难处理

示例:

  2个输入,1个输出,2个隐含层

  一共24=64种情形

  问题:大部分没有输入,输入到输出的路径

  网络越宽,这种问题概率越来越小

注:

  不同于bagging,模型独立

  dropout所有模型共享参数

  推断:对所有成员累计投票做预测

效果:

  Dropout比其他标准正则化方法更有效

    权重衰减、过滤器范数约束、稀疏激活

  可以跟其他形式正则一起使用

优点:

  计算量小

  不限制模型和训练过程

注:

  随机性对dropout方法不必要,也不充分

九、对抗训练

人类不易察觉对抗样本与原始样本的差异,但网络可以

小扰动导致数据点流行变化

再次附上:

转载于:https://www.cnblogs.com/ariel-dreamland/p/9077793.html

深度学习Bible学习笔记:第七章 深度学习中的正则化相关推荐

  1. 李弘毅机器学习笔记:第七章—深度学习的发展趋势

    李弘毅机器学习笔记:第七章-深度学习的发展趋势 回顾一下deep learning的历史: 1958: Perceptron (linear model) 1969: Perceptron has l ...

  2. Effective C++ 学习笔记 第七章:模板与泛型编程

    第一章见 Effective C++ 学习笔记 第一章:让自己习惯 C++ 第二章见 Effective C++ 学习笔记 第二章:构造.析构.赋值运算 第三章见 Effective C++ 学习笔记 ...

  3. C语言学习-翁凯(第七章笔记)

    C语言学习-翁凯(第七章笔记) 第七章 7.1.1初见函数 素数求和 int m,n;int i;int cnt=0;int sum=0;scanf("%d %d",&m, ...

  4. 《Go语言圣经》学习笔记 第七章 接口

    <Go语言圣经>学习笔记 第七章 接口 目录 接口是合约 接口类型 实现接口的条件 flag.Value接口 接口值 sort.Interface接口 http.Handle接口 erro ...

  5. 第七章 深度强化学习-深度Q网络系列1(Deep Q-Networks,DQN)

    获取更多资讯,赶快关注上面的公众号吧! 文章目录 第七章 深度强化学习-深度Q网络 7.1 学习目标 7.2 深度学习和强化学习的区别 7.3 DQN原理 7.4 DQN算法 7.4.1 预处理 7. ...

  6. Coursera吴恩达《优化深度神经网络》课程笔记(1)-- 深度学习的实用层面

    红色石头的个人网站:redstonewill.com Andrew Ng的深度学习专项课程的第一门课<Neural Networks and Deep Learning>的5份笔记我已经整 ...

  7. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  8. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第七章 构建多数据中心网络(1/3)

    7.1 多数据中心的业务诉求场景 7.1.1 多数据中心的业务场景分析 主流需求:虚拟化和资源池化,形成多活,可就近提供服务 1. 业务跨数据中心部署 2. 两地三中心 是指在同城双活的数据中心基础上 ...

  9. Tensorflow 2.x(keras)源码详解之第七章:keras中的tf.keras.layers

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  10. 计算机组成原理白中英第七章,计算机组成原理第七章课件(白中英版).ppt

    <计算机组成原理第七章课件(白中英版).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第七章课件(白中英版).ppt(32页珍藏版)>请在人人文库网上搜索. 1.计算 ...

最新文章

  1. java 类隔离_微服务架构中zuul的两种隔离机制实验
  2. ubuntu如何设置环境变量,方便log输出路径?(shell文件)
  3. 从专利数量看全球最具创新力的50家公司
  4. JS可以写操作系统?Windows 95被装进Electron App
  5. idea配置Run Dashboard的方法(亲测有效)
  6. WEB文件上传之JQuery ajaxfileupload插件使用(二)
  7. printf()函数不能直接输出string类型
  8. Pandas+Matplotlib,深入浅出Python数据分析
  9. python 进阶_GitHub - eastlakeside/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...
  10. Qt界面刷新优化的一些心得
  11. mysql删表重来_BeetlSQL自定义NameConversion去除Pojo和表前缀
  12. c语言-输出菱形图案
  13. 不是计算机专业的,可以转行学IT吗?
  14. IDEA设置多行标签页
  15. 基于DDD的现代ASP.NET开发框架--ABP系列之2、ABP入门教程
  16. 三井住友保险郑永强:一个区块链用得极溜的CIO
  17. 视觉检测售价_机器人引导的视觉定位系统一般多少价格可靠?
  18. 基于 KU115+MPSOC 的 6U VPX 高速信号处理板(XCKU115 + ZU9EG +DSP)
  19. Python 与金融科技3|数据的重采样与蜡烛图(K线图)的绘制
  20. Hadoop集群(第9期)_MapReduce初级案例

热门文章

  1. hdu 5977 Garden of Eden(点分治+状压)
  2. MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)
  3. CodeForces 689E (离散化+逆元+组合)
  4. Log4j 与 Logback的ConversionPattern对比
  5. 更改TFS项目中的SharePoint网站端口
  6. windows 2008 r2 AD密码策略
  7. 关于js的一切(updating...)
  8. LeetCode(748)——最短完整词(JavaScript)
  9. 用JS实现简单的省市联动
  10. 一个人越来越沉默,即便是对着家人也无话可说,这究竟是怎么了?