Regularization
来源:互联网 发布:韩顺平php 目录 编辑:程序博客网 时间:2024/05/21 10:37
正则化方法:防止过拟合,提高泛化能力
在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程,网络在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work
我们常常将原始数据集分为三部分:training data、validation data,testing data。这个validation data是什么?它其实就是用来避免过拟合的,在训练过程中,我们通常用它来确定一些超参数(比如根据validation data上的accuracy来确定early stopping的epoch大小。
避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。
L2正则化
L2正则化就是在代价函数后面再加上一个正则化项:
C0代表原始的代价函数,后面那一项就是L2正则化项,样本大小n。λ就是正则项系数。
先求导:
可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:
因为η、λ、n都是正的,L2正则化它的效果是减小w,这也就是权重衰减(weight decay)的由来。
对于基于mini-batch的随机梯度下降,w和b更新的公式跟上面给出的有点不同
对比上面w的更新公式,可以发现后面那一项变了,变成所有导数加和,乘以η再除以m,m是一个mini-batch中样本的个数。
奥卡姆剃刀法则:更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好。而在实际应用中,也验证了这一点,L2正则化的效果往往好于未经正则化的效果
L1正则化
在原始的代价函数后面加上一个L1正则化项,即所有权重w的绝对值的和,乘以λ/n
计算导数:
sgn(w)表示w的符号。那么权重w的更新规则为:
当w为正时,更新后的w变小。当w为负时,更新后的w变大——因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合
- Regularization
- Regularization
- Regularization
- Regularization
- 5-Regularization
- Regularization Exercise
- ML_note:Regularization
- Task3 regularization
- Regularization (mathematics)
- deeplearning-Regularization
- 正则化(regularization)
- ML:logistic Regression & Regularization
- Exercise 5: Regularization
- 正则化(regularization)
- 正则化(regularization)
- Regularization and Ridge Regression
- 【machine learning】regularization
- Regularization线性回归练习
- CentOS下Nginx的安装配置
- 10.6
- 【递推】凯撒大帝 题解
- Java入门IO流--FileInputStream
- 一月总结
- Regularization
- 贪心例题集
- [C++] 异常处理
- 031 隐函数求导
- Cassandra CQL Data Types
- CMake 扫盲
- Promise 异步流程控制
- SpringBoot导入XML
- 19_二叉树的镜像