从有约束条件下的凸优化角度思考神经网络训练过程中的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. 关于python学习路线

    *Python进阶(目录/书籍/学习路线) 忘了从哪里转的了,没办法标记哦,实在不好意思... 目录:) 1. 简介&helloworld&开发环境配置 2.基本语法:标识符& ...

  2. Centos6.6 安装Redis

    一.介绍 redis在做数据库缓存,session存储,消息队列上用的比较多 二.安装 $ yum install -y wget gcc make tcl $ wget http://downloa ...

  3. 团体程序设计天梯赛-练习集-L1-038. 新世界

    L1-038. 新世界 这道超级简单的题目没有任何输入. 你只需要在第一行中输出程序员钦定名言“Hello World”,并且在第二行中输出更新版的“Hello New World”就可以了. #in ...

  4. JavaScript for循环元素取下标问题

    <ul> <li>fg</li> <li>gd</li> <li>gds</li> <li>ghe< ...

  5. eas之树

    如何设置树的深度(即树总共有几级) // 设置树的深度为3,即树包括0.1.2三级结点 table.getTreeColumn().setDepth(3); 如何设置树的方向 树的方向包括两种:自上向 ...

  6. NOIp2016-NOIp2011解题报告(骗分)

    zxl钦点.让我练暴力骗分. 那就把2016-2011年的题目搞一搞. NOIp2016 Day1 T1 AC 100pts. (妈呀,这么水的一道题竟然还要调试,一遍过不了样例,果然是要退役的节奏啊 ...

  7. Docker 搭建 ELK 读取微服务项目的日志文件

    思路: 在docker搭建elasticsearch与kibana来展示日志,在微服务部署的机子上部署logstash来收集日志传到elasticsearch中,通过kibana来展示,logstas ...

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

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

  9. Redis容量及利用计划

    在利用Redis过程当中,咱们发明了很多Redis分歧于Memcached,也差别于MySQL的特点.(本文首要会商Redis未启用VM撑持环境) 1. Schema MySQL: 需事先设计Memc ...

  10. 使用 Redis及其产品定位

    实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: ...