Proximal Gradient Descent-近端梯度下降

Proximity Gradient Descent 用来解决 $L_1$ 正则中 0 点不可导的问题,先引入一个 proximity operator :

\[\mbox {prox} _{h}(x) = \arg \min_u (h(u)  + \frac{1}{2}||u - x||_2^2)\]

\[\mbox {prox} _{\lambda h}(x) = \arg \min_u (h(u)  + \frac{1}{2 \lambda}||u - x||_2^2)\]

对于一个最优化问题,形式如:

\[\min_x h(x) + g(x)\]

可以用如下方法来迭代求解:

\[x^{k+1} = \mbox{prox}_{\gamma h}(x^k-\gamma \nabla g(x^k)) \]

因为 如此迭代下去,是会朝着极小方向前进的:

\begin{aligned}x^{k+1} &= \mbox{prox}_{\gamma h}(x^k-\gamma \nabla g(x^k)) \\
&= \mbox{arg}\min_x \left(h(x)+\frac{1}{2\gamma}\mid\mid x-x^k+ \gamma \nabla g(x^k) \mid\mid_2^2\right) \\
&= \mbox{arg}\min_x \left(h(x)+ \frac{\gamma}{2}\mid\mid \nabla g(x)\mid\mid_2^2 + \gamma \nabla g(x^k)^T(x-x^k)+ \frac{1}{2\gamma}\mid\mid x-x^k \mid\mid_2^2\right) \\
&= \mbox{arg}\min_x \left(h(x)+ g(x^k) + \gamma \nabla g(x^k)^T(x-x^k) +\frac{1}{2\gamma}\mid\mid x-x^k \mid\mid_2^2\right) \\
& \approx \mbox{arm}\min_x \ h(x)+g(x)
\end{aligned}

后两式的变化是因为,变化的两项都与 x 无关,然后通过二阶泰勒展开近似得到目标函数。

当 $g(x)$ 为 $L_1$ 正则时:

\[ x^{k+1}  = \mbox{prox} _{\lambda^k y} (x^k  - \lambda^k  \nabla f(x^k))\]

参考:

http://webcache.googleusercontent.com/search?q=cache:6KVgr87ZVZ8J:roachsinai.github.io/2016/08/03/1L1_L2_norm/+&cd=3&hl=zh-CN&ct=clnk&gl=id

http://breezedeus.github.io/2013/11/16/breezedeus-proximal-gd.html

http://blog.csdn.net/lanyanchenxi/article/details/50448640

https://www.zhihu.com/question/38426074

时间: 2024-11-05 18:57:07

Proximal Gradient Descent-近端梯度下降的相关文章

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

clc;clear; D=500;N=10000;thre=10e-8;zeroRatio=0.6; X = randn(N,D); r=rand(1,D); r=sign(1-2*r).*(2+2*r); perm=randperm(D);r(perm(1:floor(D*zeroRatio)))=0; Y = X*r' + randn(N,1)*.1; % small added noise lamda=1;stepsize=10e-5; %%% y=x*beta' %%% Loss=0.5

机器学习入门:线性回归及梯度下降

机器学习入门:线性回归及梯度下降 本文会讲到: (1)线性回归的定义 (2)单变量线性回归 (3)cost function:评价线性回归是否拟合训练集的方法 (4)梯度下降:解决线性回归的方法之一 (5)feature scaling:加快梯度下降执行速度的方法 (6)多变量线性回归   Linear Regression 注意一句话:多变量线性回归之前必须要Feature Scaling! 方法:线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个

Stanford大学机器学习公开课(二):监督学习应用与梯度下降

本课内容: 1.线性回归 2.梯度下降 3.正规方程组 监督学习:告诉算法每个样本的正确答案,学习后的算法对新的输入也能输入正确的答案 1.线性回归 问题引入:假设有一房屋销售的数据如下: 引入通用符号: m =训练样本数 x =输入变量(特征) y =输出变量(目标变量) (x,y)—一个样本 ith—第i个训练样本=(x(i),y(i)) 本例中:m:数据个数,x:房屋大小,y:价格 监督学习过程: 1) 将训练样本提供给学习算法 2) 算法生成一个输出函数(一般用h表示,成为假设) 3)

机器学习最常用优化之一——梯度下降优化算法综述

转自:http://www.dataguru.cn/article-10174-1.html 梯度下降算法是机器学习中使用非常广泛的优化算法,也是众多机器学习算法中最常用的优化方法.几乎当前每一个先进的(state-of-the-art)机器学习库或者深度学习库都会包括梯度下降算法的不同变种实现.但是,它们就像一个黑盒优化器,很难得到它们优缺点的实际解释.这篇文章旨在提供梯度下降算法中的不同变种的介绍,帮助使用者根据具体需要进行使用. 这篇文章首先介绍梯度下降算法的三种框架,然后介绍它们所存在的

神经网络梯度下降的三种学习方式

# Batch gradient descent(批量梯度下降) for i in range(nb_epochs): params_grad = evaluate_gradient(loss_function, data, params) params = params - learning_rate * params_grad # Stochastic gradient descent(随机梯度下降) for i in range(nb_epochs): np.random.shuffle(

梯度下降法的变形 - 随机梯度下降 -minibatch -并行随机梯度下降

问题的引入: 考虑一个典型的有监督机器学习问题,给定m个训练样本S={x(i),y(i)},通过经验风险最小化来得到一组权值w,则现在对于整个训练集待优化目标函数为: 其中为单个训练样本(x(i),y(i))的损失函数,单个样本的损失表示如下: 引入L2正则,即在损失函数中引入,那么最终的损失为: 注意单个样本引入损失为(并不用除以m): 正则化的解释 这里的正则化项可以防止过拟合,注意是在整体的损失函数中引入正则项,一般的引入正则化的形式如下: 其中L(w)为整体损失,这里其实有: 这里的 C

随机梯度下降法(Stochastic gradient descent, SGD)

BGD(Batch gradient descent)批量梯度下降法:每次迭代使用所有的样本(样本量小)    Mold 一直在更新 SGD(Stochastic gradientdescent)随机梯度下降法:每次迭代使用一组样本(样本量大)Mold 把一批数据过完才更新一次 针对BGD算法训练速度过慢的缺点,提出了SGD算法,普通的BGD算法是每次迭代把所有样本都过一遍,每训练一组样本就把梯度更新一次.而SGD算法是从样本中随机抽出一组,训练后按梯度更新一次,然后再抽取一组,再更新一次,在样

Stochastic Gradient Descent

Stochastic Gradient Descent 一.从Multinomial Logistic模型说起 1.Multinomial Logistic 令为维输入向量; 为输出label;(一共k类); 为模型参数向量: Multinomial Logistic模型是指下面这种形式: 其中: 例如:时,输出label为0和1,有: 2.Maximum Likelihood Estimate and Maximum a Posteriori Estimate (1).Maximum Like

机器学习笔记 1 LMS和梯度下降(批梯度下降) 20170617

# 概念 LMS(least mean square):(最小均方法)通过最小化均方误差来求最佳参数的方法. GD(gradient descent) : (梯度下降法)一种参数更新法则.可以作为LMS的参数更新方法之一. The normal equations : (正则方程式,将在下一篇随笔中介绍)一种参数更新法则.也可以作为LMS的参数更新方法之一. 三者的联系和区别:LMS是一种机器学习算法.但是最小化均方误差的方法不唯一,采用GD或者正则方程式都是方法之一. # 准备样本  必须要先