从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化
从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化
神经网络在训练过程中,为应对过拟合问题,可以采用正则化方法(regularization),一种常用的正则化方法是L2正则化.
- 神经网络中L2正则化的定义形式如下:
\[ J(W,b)=\frac{1}{m}\sum_{i=1}^{m}l(y^{(i)},\hat y^{(i)})+\frac{\lambda}{2m}\sum_{i=1}^{m}||W^{(i)}||_F^2\]
其中,J(W,b)为正则化下的cost function,等式右边第一项为未使用正则化的损失函数,第二项为正则化项,因为应用的是矩阵的F范数,所以称为L2 regularization. - 下面从有约束条件下的凸优化角度进行分析
上面的等式可以等价为凸优化问题:\(c(W,b)=\frac{1}{m}\sum_{i=1}^{m}l(y^{(i)},\hat y^{(i)})\),约束条件为\(\sum_{i=1}^{m}||W^{(i)}||_F^2\leq R\),构造如下拉格朗日函数:
\[L(W,b,\lambda)=c(W,b)+\frac{\lambda}{2m}(\sum_{i=1}^{m}||W^{(i)}||_F^2-R)\]
之所以拉格朗日因子\(\lambda\)除以2m是为了求导结果与前一项W,b的求导结果形式一致,并无影响.
根据KKT条件,最优的\(W^*,\lambda^*\)需满足:\(\nabla_WL(W^*,\lambda^*)=0,\lambda^*\geq0,\sum_{i=1}^{m}||W^{*(i)}||_F^2 = R\)
由第一个等式求解的\(W^*\)带有参数\(\lambda\),而\(\lambda\)的值是由第三个等式决定的.也就是说R与\(\lambda\)有确定的对应关系,或者\(\lambda\)的值有R决定.简单分析可以发现,R与\(\lambda\)成反比例关系,因为\(\lambda\)越大,在cost function中W的惩罚系数越大(\(||W||_F^2\)的系数越大),因此\(\lambda\)能够抑制W的大小,与R约束W的范数作用类似.
回到神经网络训练中的L2正则化上来,一般情况下,我们直接制定\(\lambda\)的大小,其实与之对应的R也就确定了(意味着上面三个条件中第三个等式已经求解出了\(\lambda\)),此时只剩下第一和第二个条件.第一个条件R是常数,对W求导为0,因此简化为\(\nabla_WJ(W,b)=0\),也就是正则化条件下的梯度下降法.
从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化的更多相关文章
- 从MAP角度理解神经网络训练过程中的正则化
在前面的文章中,已经介绍了从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化,本次我们从最大后验概率点估计(MAP,maximum a posteriori point estimate)的 ...
- Deep Learning入门视频(下)之关于《感受神经网络》两节中的代码解释
代码1如下: #深度学习入门课程之感受神经网络(上)代码解释: import numpy as np import matplotlib.pyplot as plt #matplotlib是一个库,p ...
- windows10下安装mysql-8.0.15-winx64以及连接服务器过程中遇到的一些问题
一.下载安装配置mysql-8.0.15 1.官网(https://dev.mysql.com/downloads/mysql/)下载zip包 2.解包到我的D:\mysql目录下 3.为mysql配 ...
- 使用tensorflow下的GPU加速神经网络训练过程
下载CUDA8.0,安装 下载cuDNN v5.1安装.放置环境变量等. 其他版本就不装了.不用找其他版本的关系. 使用tensorflow-gpu1.0版本. 使用keras2.0版本. 有提示的. ...
- TensorFlow从1到2(七)线性回归模型预测汽车油耗以及训练过程优化
线性回归模型 "回归"这个词,既是Regression算法的名称,也代表了不同的计算结果.当然结果也是由算法决定的. 不同于前面讲过的多个分类算法或者逻辑回归,线性回归模型的结果是 ...
- paper 110:凸优化和非凸优化
数学中最优化问题的一般表述是求取,使,其中是n维向量,是的可行域,是上的实值函数.凸优化问题是指是闭合的凸集且是上的凸函数的最优化问题,这两个条件任一不满足则该问题即为非凸的最优化问题. 其中,是 凸 ...
- 写在SVM之前——凸优化与对偶问题
SVM之问题形式化 SVM之对偶问题 SVM之核函数 SVM之解决线性不可分 >>>写在SVM之前——凸优化与对偶问题 本篇是写在SVM之前的关于优化问题的一点知识,在SVM中会用到 ...
- zz姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖
姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖 近日,美国艾尔弗·斯隆基金会(The Alfred P. Sloan Foundation)公布了2019年斯隆研究奖(Sloan Research ...
- 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别
1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...
随机推荐
- C#调用Java的WebService出现500 服务器错误
最近在用C#调用Java写的WebService时,发现老是返回500 服务器错误,到底什么原因一直找不出来, 后来google了以后,找到国外的http://stackoverflow.com站点已 ...
- dubbo之结果缓存
结果缓存,用于加速热门数据的访问速度,Dubbo提供声明式缓存,以减少用户加缓存的工作量. lru 基于最近最少使用原则删除多余缓存,保持最热的数据被缓存. threadlocal 当前线程缓存,比如 ...
- Vim入门基础知识集锦
1. 简介 Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/Mac OS X/Windows系统,利用它可以建立.修 ...
- tomcat 热加载设置
找到tomcat项目的apache-tomcat-8.0.30\conf\context.xml,打开进行编辑,把Context项中加上 reloadable="true" < ...
- mysql1064问题完美解决
1.mysql报错code代表具体意思 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致 ...
- swiper 滑动获取当前第几页下标
- Selenium三种等待的使用方式
在UI自动化测试中,必然会遇到环境不稳定,网络慢的情况,这时如果你不做任何处理的话,代码会由于没有找到元素,而报错.这时我们就要用到wait(等待),而在Selenium中,我们可以用到一共三种等待, ...
- 51nod1079 中国剩余定理【数论】
一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K.例如,K % 2 = 1, K % 3 = 2, K % 5 = 3.符合条件的最小的K = 23. Input 第1行:1个数N表 ...
- 支持移动触摸的jQuery图片Lightbox插件
简介 这是一款支持移动触摸设备的简洁jQuery图片Lightbox插件.该LightBox插件可以在移动手机和桌面设备中运行,它具有响应式,预加载图片,键盘支持等特点,非常实用.它的特点还有: 响应 ...
- 百度API的经历,怎样为多个点添加带检索功能的信息窗口
不管我们要做什么样的效果,APIKey(密钥)都是不可缺少的要件,所以我们需要先去百度申请我们的APIKey!!! 伸手党,请直接到页面底部获取完整代码! 最近做一个门店查询的内容展示,考虑到用户直观 ...