假设我们要求解以下的最小化问题: $min_xf(x)$

如果$f(x)$可导,那么一个简单的方法是使用Gradient Descent (GD)方法,也即使用以下的式子进行迭代求解:

$x_{k+1} = x_k - a\Delta f(x_k)$

如果$\Delta f(x)$满足L-Lipschitz,即:

那么我们可以在点$x_k$附近把$f(x)$近似为:

把上面式子中各项重新排列下,可以得到:

这里$\varphi (x_k)$不依赖于x,因此可以忽略。

显然,$\hat f(x, x_k)$的最小值在

获得。所以,从这个角度看的话,GD的每次迭代是在最小化原目标函数的一个二次近似函数.(梯度下降的由来的推导,这里说的不好,参考这里: http://www.cnblogs.com/ljygoodgoodstudydaydayup/p/7274943.html)

在很多最小化问题中,我们往往会加入非光滑的惩罚项$g(x)$, 比如常见的L1惩罚: $g(x) = ||x||_1$ .这个时候,GD就不好直接推广了。但上面的二次近似思想却可以推广到这种情况:

这就是所谓的Proximal Gradient Descent (PGD)算法,即目标函数由损失项和正则项组成。对于上式,可先计算$z = x_k - \frac{1}{L}\Delta f(x_k)$, 然后求解


软阈值(SoftThresholding)可以求解如下优化问题:

其中:

根据范数的定义,可以将上面优化问题的目标函数拆开:

也就是说,我们可以通过求解N个独立的形如函数

的优化问题,来求解这个问题。由中学时代学过的求极值方法知道,可以求函数f(x)导数:

令函数f(x)导数等于0,得:

这个结果等号两端都有变量x,需要再化简一下。下面分三种情况讨论:

(1)当b>λ/2时

假设x<0,则sgn(x)=-1,所以x=b+λ/2>0,与假设x<0矛盾;(λ > 0)

假设x>0,则sgn(x)=1,所以x=b-λ/2>0,成立;

所以此时在x=b-λ/2>0处取得极小值:

即此时极小值小于f(0),而当x<0时

即当x<0时函数f(x)为单调降函数(对任意△x<0,f(0)<f(△x))。因此,函数在x=b-λ/2>0处取得最小值。

(2)当b<-λ/2时

假设x<0,则sgn(x)=-1,所以x=b+λ/2<0,成立;

假设x>0,则sgn(x)=1,所以x=b-λ/2<0,与假设x>0矛盾;

所以此时在x=b+λ/2<0处取得极小值:

即此时极小值小于f(0),而当x>0时

即当x>0时函数f(x)为单调升函数(对任意△x>0,f(△x)>f(0))。因此,函数在x=b+λ/2<0处取得最小值。

(3)当-λ/2<b<λ/2时(即|b|<λ/2时)

假设x<0,则sgn(x)=-1,所以x=b+λ/2>0,与假设x<0矛盾;

假设x>0,则sgn(x)=1,所以x=b-λ/2<0,与假设x<0矛盾;

即无论x为大于0还是小于0均没有极值点,那么x=0是否为函数f(x)的极值点呢?

对于△x≠0,

当△x >0时,利用条件b<λ/2可得

当△x <0时,利用条件b<λ/2可得(注:此时|△x |=-△x)

因此,函数在x=0处取得极小值,也是最小值。

综合以上三种情况,f(x)的最小值在以下位置取得:

至此,我们可以得到优化问题

的解为

http://blog.csdn.net/bingecuilab/article/details/50628634

http://blog.csdn.net/jbb0523/article/details/52103257

Proximal Gradient Descent for L1 Regularization(近端梯度下降求解L1正则化问题)的更多相关文章

  1. 机器学习算法整理(二)梯度下降求解逻辑回归 python实现

    逻辑回归(Logistic regression) 以下均为自己看视频做的笔记,自用,侵删! 还参考了:http://www.ai-start.com/ml2014/ 用梯度下降求解逻辑回归 Logi ...

  2. Proximal Gradient Descent for L1 Regularization

    [本文链接:http://www.cnblogs.com/breezedeus/p/3426757.html,转载请注明出处] 假设我们要求解以下的最小化问题:                     ...

  3. 近端梯度算法(Proximal Gradient Descent)

    L1正则化是一种常用的获取稀疏解的手段,同时L1范数也是L0范数的松弛范数.求解L1正则化问题最常用的手段就是通过加速近端梯度算法来实现的. 考虑一个这样的问题: minx  f(x)+λg(x) x ...

  4. 采用梯度下降优化器(Gradient Descent optimizer)结合禁忌搜索(Tabu Search)求解矩阵的全部特征值和特征向量

    [前言] 对于矩阵(Matrix)的特征值(Eigens)求解,采用数值分析(Number Analysis)的方法有一些,我熟知的是针对实对称矩阵(Real Symmetric Matrix)的特征 ...

  5. [Python]数据挖掘(1)、梯度下降求解逻辑回归——考核成绩分类

    ps:本博客内容根据唐宇迪的的机器学习经典算法  学习视频复制总结而来 http://www.abcplus.com.cn/course/83/tasks 逻辑回归 问题描述:我们将建立一个逻辑回归模 ...

  6. 关于subGradent descent和Proximal gradient descent的迭代速度

    clc;clear; D=1000;N=10000;thre=10e-8;zeroRatio=0.6; X = randn(N,D); r=rand(1,D); r=sign(1-2*r).*(2+2 ...

  7. 线性回归、梯度下降(Linear Regression、Gradient Descent)

    转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积.卧室数量和房屋的交易价格,如下表: ...

  8. 机器学习_线性回归和逻辑回归_案例实战:Python实现逻辑回归与梯度下降策略_项目实战:使用逻辑回归判断信用卡欺诈检测

    线性回归: 注:为偏置项,这一项的x的值假设为[1,1,1,1,1....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足 ...

  9. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

      梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent).随机梯度下降(Stochastic Gradient Descent ...

随机推荐

  1. The Fourth Day

    迭代器 迭代器:迭代的工具 .什么是迭代:指的是一个重复的过程,每次重复称为一次迭代,并且每次重复的结果是下一次重复的初始值 例: while True: print('====>'') l=[ ...

  2. python--线程的其他方法

    一 . current_thread的用法 import threading import time from threading import Thread, current_thread def ...

  3. 对freescale的mfgtool的ucl2.xml的理解

    转载于此:http://blog.csdn.net/bugouyonggan/article/details/8664898 对于Freescale MFG编程工具控制文件ucl2.xml的分析 为了 ...

  4. 学习javascript中的事件——事件流

    事件概念: HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件onclick.页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件.想要知道 ...

  5. java 罕见的依赖报错 jstat: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory

    java 都用了N长时间了,突然,意外地发现有一个依赖的so文件从来没找见过 # ldd /usr/bin/java linux-vdso.so.1 =>  (0x00007fffba76900 ...

  6. loj2253 「SNOI2017」礼物

    对于一个在位置 \(i\) 的数,他等于 \(i^k+sum_{1,k-1}\). 二项式定理推 \(i^k\),矩阵快速幂即可. #include <iostream> #include ...

  7. z作业二总结

    这是我的第二次作业,之前在课上所学的我发现已经忘得差不多了,这次的作业让我做的非常累,感觉整个人生都不太好了. 作业中的知识点:int(整型) float(单精度) double(双精度) char( ...

  8. 【Luogu】P1144最短路计数(BFS)

    题目链接 此题使用BFS记录最短路的条数.思路如下:因为是无权无向图,所以只要被BFS到就是最短路径.因此可以记录该点的最短路和最短路的条数:如果点y还没被访问过,则记录dis[y],同时令ans[y ...

  9. 数据结构1 「在线段树中查询一个区间的复杂度为 $O(\log N)$」的证明

    线段树属于二叉树, 其核心特征就是支持区间加法,这样就可以把任意待查询的区间$[L, R]$分解到线段树的节点上去,再把这些节点的信息合并起来从而得到区间$[L,R]$的信息. 下面证明在线段树上查询 ...

  10. BZOJ [HNOI2015]亚瑟王 ——期望DP

    发现每张卡牌最后起到作用只和是否打出去了有关. 而且每张牌打出去的概率和之前的牌打出去的情况有关. 所以我们按照牌的顺序进行DP. 然后记录$i$张牌中打出$j$张的概率,然后顺便统计答案. 直接对系 ...