从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化

神经网络在训练过程中,为应对过拟合问题,可以采用正则化方法(regularization),一种常用的正则化方法是L2正则化.

  1. 神经网络中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.
  2. 下面从有约束条件下的凸优化角度进行分析
    上面的等式可以等价为凸优化问题:\(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正则化的更多相关文章

  1. 从MAP角度理解神经网络训练过程中的正则化

    在前面的文章中,已经介绍了从有约束条件下的凸优化角度思考神经网络训练过程中的L2正则化,本次我们从最大后验概率点估计(MAP,maximum a posteriori point estimate)的 ...

  2. Deep Learning入门视频(下)之关于《感受神经网络》两节中的代码解释

    代码1如下: #深度学习入门课程之感受神经网络(上)代码解释: import numpy as np import matplotlib.pyplot as plt #matplotlib是一个库,p ...

  3. windows10下安装mysql-8.0.15-winx64以及连接服务器过程中遇到的一些问题

    一.下载安装配置mysql-8.0.15 1.官网(https://dev.mysql.com/downloads/mysql/)下载zip包 2.解包到我的D:\mysql目录下 3.为mysql配 ...

  4. 使用tensorflow下的GPU加速神经网络训练过程

    下载CUDA8.0,安装 下载cuDNN v5.1安装.放置环境变量等. 其他版本就不装了.不用找其他版本的关系. 使用tensorflow-gpu1.0版本. 使用keras2.0版本. 有提示的. ...

  5. TensorFlow从1到2(七)线性回归模型预测汽车油耗以及训练过程优化

    线性回归模型 "回归"这个词,既是Regression算法的名称,也代表了不同的计算结果.当然结果也是由算法决定的. 不同于前面讲过的多个分类算法或者逻辑回归,线性回归模型的结果是 ...

  6. paper 110:凸优化和非凸优化

    数学中最优化问题的一般表述是求取,使,其中是n维向量,是的可行域,是上的实值函数.凸优化问题是指是闭合的凸集且是上的凸函数的最优化问题,这两个条件任一不满足则该问题即为非凸的最优化问题. 其中,是 凸 ...

  7. 写在SVM之前——凸优化与对偶问题

    SVM之问题形式化 SVM之对偶问题 SVM之核函数 SVM之解决线性不可分 >>>写在SVM之前——凸优化与对偶问题 本篇是写在SVM之前的关于优化问题的一点知识,在SVM中会用到 ...

  8. zz姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖

    姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖 近日,美国艾尔弗·斯隆基金会(The Alfred P. Sloan Foundation)公布了2019年斯隆研究奖(Sloan Research ...

  9. 从损失函数优化角度:讨论“线性回归(linear regression)”与”线性分类(linear classification)“的联系与区别

    1. 主要观点 线性模型是线性回归和线性分类的基础 线性回归和线性分类模型的差异主要在于损失函数形式上,我们可以将其看做是线性模型在多维空间中“不同方向”和“不同位置”的两种表现形式 损失函数是一种优 ...

随机推荐

  1. PHP执行Mysql数据库的备份和还原

    使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先查出需要备份的表的 ...

  2. matlab学习下拉菜单

    用matlab添加listbox控件 修改string和value值,value为几就对应第几行字符串 添加button按钮,将string值改为“选择x轴参数”,字体大小为10 再添加一个按钮,将s ...

  3. localStorage、sessionStorage、cookie

    vue下的全局变量和vuex里的state都是临时变量,页面刷新就都没了.

  4. PAT_A1030#Travel Plan

    Source: PAT A1030 Travel Plan (30 分) Description: A traveler's map gives the distances between citie ...

  5. Mysql [Err] 1118 - Row size too large

    首先声明,对MySQL不懂,很多都不知道原因 设计了一个表,里面很多text字段,然后填进去的东西太多(用的是Python的MySQLdb),报错: _mysql_exceptions.Operati ...

  6. 切换原生appium里面H5页面

    #coding = utf-8from appium import webdriverimport time'''1.手机类型2.版本3.手机的唯一标识 deviceName4.app 包名appPa ...

  7. EasyUI 解决Js动态加载页面样式不显示问题

    var strHtml = "<input name='mydate' class='easyui-datebox'>"; 直接使用append把内容加载到页面中,Ea ...

  8. NOIP2017总结与反思

    手动博客搬家: 本文发表于20180213 00:01:05, 原地址https://blog.csdn.net/suncongbo/article/details/79319556 //由于12月生 ...

  9. App后台开发运维和架构实践学习总结(1)——App后台核心技术之用户验证方案

    对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西. 一.使用Token进行身份鉴权 ...

  10. HDU - 3040 - Happy Girls

    先上题目: Happy Girls Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...