\[
\begin{align*}
&J_{LS}{(\theta)} = \frac { 1 }{ 2 } { \left\| \Phi \theta - y \right\| }^{ 2 }\quad \\
&\min(J_{LS}{(\theta)}) \quad \text{约束条件 }\| \theta \|^2 < R\\
\end{align*}
\]

拉格朗日对偶问题

假设 \(f(x)\), \(c_i(x)\), \(h_j(x)\) 是定义在 \(R^n\) 上的连续可微函数, 考虑约束最优化问题

\[
\begin{align}
\min_{x\in R^n} f(x) \quad \quad \quad\quad\quad\quad\quad\quad\quad\quad\\
s.t. \space c_i(x) \le 0, \quad i=1,2,3, \cdots,k\quad\quad \\
\quad \quad h_j(x) = 0, \quad \quad \quad i=1,2,3, \cdots,l
\end{align}
\]

称此最优化问题为原始最优化问题或原始问题

首先引入广义拉格朗日函数
\[
\begin{align}
L(x, \alpha, \beta) = f(x) + \sum_i^k\alpha_i c_i(x) + \sum_j^l\beta_j h_j(x) \quad \alpha_i \ge 0
\end{align}
\]

由于, 若 \(c_i(x) \le 0, \quad h_j(x) = 0\), 则
\[\theta_p(x) = \max_{\alpha_i, \beta_j, \alpha_i \ge 0}L(x, \alpha, \beta) =f(x)\]

\(\color{red}{则原始最优化问题等价于}\)

\[
\begin{align}
\min_x \max_{\alpha_i, \beta_j, \alpha_i \ge 0} L(x, \alpha, \beta) \quad\quad\quad\quad\quad\\
s.t. \space c_i(x) \le 0, \quad \quad\quad i=1,2,3, \cdots,k \\
\quad \quad h_j(x) = 0, \quad \quad \quad i=1,2,3, \cdots,l
\end{align}
\]

上述问题称为广义拉格朗日函数的极小极大问题. 该问题和原始最优化问题 \(\it 式(1), (2), (3)\) 等价

\[
\begin{align}
\max_{\alpha_i, \beta_j, \alpha_i \ge 0} \min_x L(x, \alpha, \beta)
\end{align}
\]

上述问题称为广义拉格朗日函数的极大极小问题, 是广义拉格朗日函数的极小极大问题的对偶问题

如果\(\alpha_i\), \(\beta_j\), \(x\) 满足 \(Karush-Kuhn_Tucker(KKT)\) 条件, 则

\[对偶问题的解 \Longleftrightarrow lagrange极小极大问题解 \Longleftrightarrow 原始问题解\]

L2 约束

\[
\begin{align*}
&J_{LS}{(\theta)} = \frac { 1 }{ 2 } { \left\| \Phi \theta - y \right\| }^{ 2 }\quad \\
&\min(J_{LS}{(\theta)}) \quad \text{约束条件 }\| \theta \|^2 < R\\
\end{align*}
\]

该原始问题可以转化对偶问题

\[
\begin{align}
\max_{\lambda} \min_\theta \left[J_{LS}{(\theta)} + \frac\lambda2 \left(\| \theta \|^2 - R\right)\right] \quad 约束条件 \lambda \ge 0
\end{align}
\]

lagrange 对偶问题的 拉格朗日乘子 \(\lambda\) 的解由 \(R\) 决定. 如果不根据 \(R\) 来决定 \(R\), 而是直接指定的话, \(\space l_2\) 约束的最小二乘学习法的解 \(\hat{\theta}\) 可以通过下式求得

\[
\begin{align}
\hat{\theta} = \arg\min_{\theta} \left[ J_{LS}{\theta)} + \frac\lambda2 \| \theta \|^2 \right]
\end{align}
\]

\(J_{LS}{\theta)}\) 表示的是训练样本的拟合程度, 与 \(\frac\lambda2 \| \theta \|^2\)结合求最小值, 来防止训练样本的过拟合. \(l_2\)正则化的最小二乘学习法也称为岭回归.

\[
\begin{align}
\frac{\partial( {J_{LS}{\theta)} + \frac\lambda2 \| \theta \|^2})}{ \partial \theta} = \Phi^T(\Phi \theta - y) + \theta = 0 \\
\hat{\theta} = (\Phi^T\Phi + \lambda I)^{-1}\Phi^Ty
\end{align}
\]

奇异值分解

考虑矩阵 \(\Phi\) 的奇异值分解

\[
\Phi = U\Sigma V^T = \sum_{k=1}^{\min(n,b)} u_k\sigma_kv_k^T,\\
\Phi^T\Phi = V \Sigma^2V^T = \sum_{k=1}^{\min(n,b)} v_k\sigma_k^2v_k^T \\
\Phi ^T = V\Sigma U^T = \sum_{k=1}^{\min(n,b)} v_k\sigma_ku_k^T\\
\]

其中\(\quad \Sigma\) 为对角矩阵

\(\space l_2\) 约束的最小二乘学习法的解 \(\hat{\theta}\)如下式表示

\[
\hat{\theta} = \sum_{k=1}^{\min(n,b)} \frac{\sigma_k}{\sigma_k^2 + \lambda}u_k^Tyv_k
\]

通过在分母中加入正常数 \(\lambda\) 使得 \(\frac{\sigma_k}{\sigma_k^2 + \lambda}\) 避免变得过大, 进而达到防治过拟合的目的.

Q: 不清楚为什么 \(\hat{\theta}\) 变小了就能防治过拟合 ?

我是这样理解的, 就拿房价的曲线拟合来说吧. 如果基函数 \(\Phi(x)\) , 比如
\[(1, \sin{x/2}, \cos{x/2}, \cdots, sin15x/2, cos15x/2)\]
是给定的. 那么, 减小系数向量 \(\hat{\theta}\) 可以减小函数变化的幅度, 不会让模型因为和训练样本过于相似, 而失去了泛化能力.

L2 约束的最小二乘学习法的更多相关文章

  1. 基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法

    基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法 Siamese CNN Temporally Constrained Metrics T ...

  2. 别出心裁的Linux命令学习法

    别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...

  3. JS面向对象逆向学习法,让难理解的统统一边去(1)~

    对于面向对象我只能说呵呵了,为什么呢,因为没对象--- 既然你看到了这里,说明你有一定的基础,虽然本系列文章并不会过多的讲述基础部分,请做好心理准备. 本篇比较简单,这篇文章的意义是让你明白学习面向对 ...

  4. 别出心裁的Linux系统调用学习法

    别出心裁的Linux系统调用学习法 操作系统与系统调用 操作系统(Operating System,简称OS)是计算机中最重要的系统软件,是这样的一组系统程序的集成:这些系统程序在用户对计算机的使用中 ...

  5. 软技能:十步学习法 (zhuan)

    http://www.gyzhao.me/2016/11/07/Ten-Step-Learning-Method/ ****************************************** ...

  6. 12月21日 简单理解Active Recore Callback, destroy_all和delete_all的区别。豆知识(alias),语言学习法(4核心)

    destroy_all and delete_all Destroy the records by instantiating each record and calling its #destroy ...

  7. 统计学习:《贝叶斯思维统计建模的Python学习法》中文PDF+英文PDF+代码

    用数学工具解决实际问题仅有的要求可能就是懂一点概率知识和程序设计.而贝叶斯方法是一种常见的利用概率学知识去解决不确定性问题的数学方法,对于一个计算机专业的人士,应当熟悉其应用在诸如机器翻译,语音识别, ...

  8. Xdite:永葆热情的上瘾式学习法(套路王:每天总结自己,反省自己的作息规律,找到自己的幸运时间、幸运方法,倒霉时间、倒霉方法。幸运是与注意力挂钩的。重复才能让自己登峰造极,主动去掉运气部分来训练自己。游戏吸引自己的几个原因非常适合训练自己)good

    版权声明 本文首发自微信公共帐号: 学习学习再学习(xiaolai-xuexi) 无需授权即可转载, 甚至无需保留以上版权声明: 转载时请务必注明作者. 以下是<共同成长社区>第 58 次 ...

  9. JAVA学习方法之——费曼学习法

    理查德·费曼 费曼简介 理查德·菲利普斯·费曼(Richard Phillips Feynman),出生于1918年5月11日,是美籍犹太裔物理学家,曾在1965年获得诺贝尔物理学奖,也被认为是继爱因 ...

随机推荐

  1. HDU 1392 Surround the Trees(凸包)

    题面 懒得粘贴了... 大致题意:坐标系内有若干个点,问把这些点都圈起来的最小凸包周长. 题解 直接求出凸包,统计一遍答案即可 #include<iostream> #include< ...

  2. WC2006水管局长(加强)

    倒过来就变成了加边 然后就直接LCT # include <stdio.h> # include <stdlib.h> # include <iostream> # ...

  3. scrapy 爬虫基础

    Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 安装Scrapy的 ...

  4. linux下 mysql5.7.20安装(精华)

    在linux 系统中mysql配置文件的读取顺序为: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 第一步 创 ...

  5. c#多线程同步之lock

    一提起lock,想必大家都很熟悉,因为它易用,顾名思义,就是一把锁,常用于多线程的同步,一次只允许一个线程进入.最近遇到一个很诡异的bug. private static readonly objec ...

  6. CSS之盒子模型(深入理解)

    CSS--盒子模型(Box Model) 简介: CSS盒子模型本质上是一个盒子,对网页中绝大部分的HTML元素进行包装定位(外边距,边框,内边距以及实际内容). 但是并不是所有的HTML元素都可以看 ...

  7. python 检测nginx状态,若无法访问发邮件通知

    应用场景:用来检测网站可用性,访问失败,则发邮件通知 #!/usr/bin/env python import urllib2,time,smtplib,string,logging from con ...

  8. Ubuntu开启远程连接

    Ubuntu开启远程连接 author:headsen chen   2017-10-13   09:47:38 个人原创,严禁转载,违者追究法律责任: apt-get update apt-get ...

  9. 自定义TabBar之理解hittest

    需求的TabBar是这样的:5个 tabItem, 中间的那个 item 部分超出系统默认TabBar的上边界. 那么实现的关键点就是如何在点击它突出的部分的时候,也可以正常获得响应.我来把问题简化, ...

  10. Django+xadmin打造在线教育平台(三)

    五.完成注册.找回密码和激活验证码功能 5.1.用户注册 register.html拷贝到templates目录 (1)users/views.py class RegisterView(View): ...