从有约束条件下的凸优化角度思考神经网络训练过程中的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. Java常用设计模式《转》

    设计模式:一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把 ...

  2. 【Oracle】表连接三种方式

    表连接的方式有三种分别是:排序合并连接(Sort Merge Join).嵌套循环连接(Nested Loops Join).哈希连接(Hash Join). 1. 排序合并连接(Sort Merge ...

  3. 存档:Telerik Test Studio的摸索笔记

    http://www.51testing.com/?uid-170604-action-spacelist-starttime-1328025600-endtime-1330531200 http:/ ...

  4. OpenCV:OpenCV目标检测Adaboost+haar源代码分析

    使用OpenCV作图像检测, Adaboost+haar决策过程,其中一部分源代码如下: 函数调用堆栈的底层为: 1.使用有序决策桩进行预测 template<class FEval> i ...

  5. js 习题

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  6. python 生成HTmL报告页面 V1.2

    上代码 # -*- coding=utf-8 -*- import time,os #数据部分 func_dict={"funcname":"模块1",} fu ...

  7. Sql Server 查询性能查看

    dbcc dropcleanbuffers --清除buffer pool里的数据页面 dbcc freeproccache --清除memtoleave和buffer pool里的执行计划内存 se ...

  8. java8方式日期比较

    static ZoneId ZONEID_BJ = ZoneId.of("GMT+08:00"); private boolean sameDate(Date d1, Date d ...

  9. [bzoj1050 HAOI2006] 旅行comf (kruskal)

    传送门 Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得 ...

  10. Linux—Ubuntu14.0.5设置MySQL的字符集

    1.mysql配置文件地址 cd /etc/mysql/my.cnf 2.在[mysqld]在下方添加以下代码 [mysqld] init_connect='SET collation_connect ...