Shooting Algorithm
Shooting算法是Wenjiang提出的一种优化Lasso(L1 Regularization)和Bridge Regression的算法, 本文以Lasso为例.
对于线性回归问题$\mathbb{y}=X\mathbb{\beta}+\epsilon$, 普通最小二乘法(OLS, ordinary least-square regression)最小化$RSS=(\mathbb{y}-X\mathbb{\beta})^T(\mathbb{y}-X\mathbb{\beta})$, 得到的无偏估计为$\hat{\mathbb{\beta}_{ols}}=(X^TX)^{-1}X^T\mathbb{y}$.
Bridge regression在满足$\sum|\beta_j|^{\gamma}\leq t, \gamma\geq 0$, 当$\gamma=0$时, 得到的就是lasso(L1 Regularization).
现在考虑一下两个问题:
$\min_{\mathbb{\beta}} RSS\hspace{2 pt} subject \hspace{2 pt}to \hspace{2 pt}\sum|\beta_j|^{\gamma}\leq t, \gamma\geq 1, t\geq 0 \tag{P1}$
$\min_{\mathbb{\beta}}(RSS+\lambda\sum|\beta_j|^{\gamma}) \tag{P2}$
$P1$和$P2$是等价的, 亦即对于任意$0\leq \lambda \leq +\infty$存在一个$t\geq 0$, 使得这两个问题有相同的解. $P1$被称作constrained regression, $P2$被称作penalized regression.
令$G(\mathbb{\beta}, X, \mathbb{y}, \lambda, \gamma)=RSS+\lambda\sum|\beta_j|^{\gamma}$. $G$对于$\mathbb{\beta}$是凸的, 并且当$\|\mathbb{\beta}\|\to +\infty$时$G\to +\infty$, 所以$G$是可以被最小化的. 亦即存在$\hat{\mathbb{\beta}}$使得$\hat{\mathbb{\beta}}=arg\hspace{1 pt}\min_{\mathbb{\beta}}G(\mathbb{\beta}, X, \mathbb{y}, \lambda, \gamma)$. 对$G$基于$\beta_j$求偏导, 令$S_j(\mathbb{\beta}, X, \mathbb{y})=\partial RSS / \partial \beta_j$, $d(\beta_j, \lambda, \gamma)=\lambda \gamma|\beta_j|^{\gamma-1}sign(\beta_j)$, 令偏导为0, 得到
$\begin{cases}
S_1(\mathbb{\beta}, X, \mathbb{y}) + d(\beta_1, \lambda, \gamma) = 0 \\
\dots\\
S_p(\mathbb{\beta}, X, \mathbb{y}) + d(\beta_p, \lambda, \gamma) = 0
\end{cases}\tag{P3}$
$P2$可以通过$P3$而求解.
我们考虑$P3$的第$j$个等式:
$S_j(\mathbb{\beta}, X, \mathbb{y}) = -d(\beta_j, \lambda, \gamma) \tag{1}$
上式的左边为
$LHS=2\mathbb{x}_j^T\mathbb{x}_j\beta_j+\sum_{i\neq j}\mathbb{x}_j^T\mathbb{x}_i\beta_i - \mathbb{x}_j^T\mathbb{y}$
对于固定的$\mathbb{\beta}^{-j}$, 上式是$\beta_j$的线性函数, 其斜率为$2\mathbb{x}_j^T\mathbb{x}_j$.
$(1)$式的右边为$RHS=-\lambda \gamma|\beta_j|^{\gamma-1}sign(\beta_j)$.
$RHS$对于不同的$\gamma$有不同的形状, 如下图所示:

除了在$0<\gamma<2$的$\beta_j=0$处是不可微的, $RHS$在$\gamma>1$都是连续, 可微和单调递减的. 对于$\gamma=1$, 在$\beta_j=0$处有一个跳变. 因此, 等式$(1)$对于$\gamma>1$有唯一解, 对于$\gamma=1$有可能有唯一解, 有可能没有解(跳变处没有解).
Shooting算法(Lasso)
初始解定义为OLS的估计$\hat{\beta_0}$, 从$(\hat{\beta_0}, 0)$点开始, 沿斜率$2\mathbb{x}_j^T\mathbb{x}_j$进行移动. 当碰触到$RHS=-\lambda sign(\beta_j)$的顶部(右上图)或者底部(右下图)时, 等式$P3$有唯一解$\hat{\beta}$, 如果没有碰触到任何点(左下图), 等式$P3$没有解. 可以取值为bridge估计的理论值的极限$\lim_{\gamma\to 1+}\hat{\beta}(\lambda,\gamma)=0$, 所以, 设置$\hat{\beta}=0$

Lasso的Shooting算法为
- 以OLS估计值为初始值$\hat{\mathbb{\beta}}_0=\hat{\mathbb{\beta}}_{OLS}=(\hat{\beta}_1,...,\hat{\beta}_p)^T$
- 在第$m$步, 对于$j=1,...,p$, 令$S_0=S_j(0,\hat{\mathbb{\beta}}^{-j},X,\mathbb{y})$, 设置$\hat{\beta}_j=\begin{cases}
\frac{\lambda-S_0}{2\mathbb{x}_j^T\mathbb{x}_j} & if \hspace{2 pt}S_0>\lambda \\\frac{-\lambda-S_0}{2\mathbb{x}_j^T\mathbb{x}_j} & if\hspace{2 pt} S_0<\lambda \\0 & if \hspace{2 pt}|S_0|\leq \lambda
\end{cases}\tag{P3}$在更新了所有的$\hat{\beta_j}$后生成新的估计$\hat{\mathbb{\beta}}_m=(\hat{\beta}_1,...,\hat{\beta}_p)^T$ - 重复第二步直到$\hat{\mathbb{\beta}}_m$收敛
参考文献:
[1]. Wenjiang J .Fu. Penalized Regressions: The Bridge Versus the Lasso.
Shooting Algorithm的更多相关文章
- 图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix)
图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/ka ...
- FZU 2144 Shooting Game
Shooting Game Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- poj 1719 Shooting Contest
http://poj.org/problem?id=1719 Shooting Contest Time Limit: 1000MS Memory Limit: 10000K Total Subm ...
- Problem 2144 Shooting Game fzu
Problem 2144 Shooting Game Accept: 99 Submit: 465Time Limit: 1000 mSec Memory Limit : 32768 KB ...
- POJ 1719 Shooting Contest(二分图匹配)
POJ 1719 Shooting Contest id=1719" target="_blank" style="">题目链接 题意:给定一个 ...
- FZU 2144 Shooting Game (贪心区域划分)
Problem 2144 Shooting Game Accept: 370 Submit: 1902 Time Limit: 1000 mSec Memory Limit : 32768 KB Pr ...
- UVA 11884 A Shooting Game(记忆化搜索)
A and B are playing a shooting game on a battlefield consisting of square-shaped unit blocks. The bl ...
- ACM学习历程—FZU 2144 Shooting Game(计算几何 && 贪心 && 排序)
Description Fat brother and Maze are playing a kind of special (hentai) game in the playground. (May ...
- 4056 hdu4866 Shooting
题目描述 In the shooting game, the player can choose to stand in the position of [1, X] to shoot, you ca ...
随机推荐
- [WinAPI] API 13 [遍历指定目录 打印文件和其他属性]
Windows API中,有一组专门的函数和结构,用于遍历目录,它们是FindFirstFile函数.FindNextFile函数和WIN32_FIND_DATA结构.使用FindFirstFile和 ...
- ConcurrentHashMap--锁的分段技术
ConcurrentHashMap是Java 5中支持高并发.高吞吐量的线程安全HashMap实现. HashTable容器在竞争激烈的并发环境下表现出效率低下的原因,是因为所有访问HashTable ...
- Android SDK国内代理速度还可以
Android Android SDK 配置步骤 启动 Android SDK Manager ,打开主界面,依次选择「Tools」.「Options...」,弹出『Android SDK Manag ...
- 隐藏路由器的WIFI信号,防蹭网
进入路由器的管理界面 最后别忘了 现在信号隐藏了,现在说一下如何用手机连接隐藏的路由器
- paip.提升安全性----Des加密 java php python的实现总结
paip.提升安全性----Des加密 java php python的实现总结 /////////// uapi private static String decryptBy ...
- paip.提升用户体验--提升java的热部署热更新能力
paip.提升用户体验--提升java的热部署热更新能力 想让java做到php那么好的热部署能力 "fix online"/在线修复吗??直接在服务器上修改源码生效,无需重启应 ...
- webpack学习之入门实例
webpack:前端打包神器,目前活跃度甚至超过了gulp.grunt等,使用webpack打包,简单快速,下面记录下webpack环境搭建以及基本使用: 1.首先新建一个空白目录,用于项目根目录,比 ...
- Maven学习总结(一)——Maven入门——转载
一.Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1. ...
- Spring 之autowired
Spring中autowired主要用于装配树形值,其关键类为BeanWrapperImpl,阅读代码发现其关键方法setPropertyValue有如下一段代码. PropertyHandler p ...
- ES6类与模块
class Animal { // 构造方法,实例化的时候会被调用,如果不指定,那么会有一个不带参数的默认构造函数 constructor(name, color) { this.name = nam ...