《Subgradients》
Subderivate-wiki
Subgradient method-wiki
《Subgradient method》
Subgradient-Prof.S.Boyd,EE364b,StanfordUniversity
《Characterization of the Subdifferential of Some Matrix Norms 》

定义

我们称\(g \in \mathbb{R}^n\)是\(f:\mathbb{R}^{n} \rightarrow \mathbb{R}\)在\(x\in domf\)的次梯度,如果对于任意的\(z \in domf\),满足:
\[
f(z) \ge f(x) + g^T(z-x)
\]
如果\(f\)是可微凸函数,那么\(g\)就是\(f\)在\(x\)处的梯度。我们将\(z\)看成变量,那么仿射函数\(f(x)+g^T(z-x)\)是\(f(z)\)的一个全局下估计。这个次梯度的作用,就是在处理不可微函数的时候,提供一个替代梯度的工具,而且,根据定义,沿着次梯度方向,函数的值是非降的:
\[
f(\alpha g+x) \ge f(x) + \alpha g^Tg
\]
另外,如果极限存在,有下面的性质,这联系了方向导数和次梯度:
\[
\lim \limits_{z \rightarrow x^+} \frac{f(z)-f(x)}{\|z-x\|} \ge g^T(z-x)/\|z-x\|
\]
当然,还有从左往右的来的,这里就不讲了。

下图是一个例子,我们可以看到,在存在梯度的地方,次梯度就是梯度,在不可导的地方,次梯度是一个凸集。

次梯度总是闭凸集,即便\(f\)不是凸函数,有下面的性质:
\[
\partial f(x) = \bigcap \limits_{z \in domf} \{ g| f(z) \ge f(x) + g^T (z-x) \}
\]

下面是\(f(x) = |x|\)的例子:

上镜图解释

\(g\)是次梯度,当且仅当\((g, -1)\)是\(f\)的上镜图在\((x, f(x))\)处的一个支撑超平面。

函数\(f\)的上镜图定义为:
\[
\mathbf{epi} f = \{ (x, t) | x \in \mathbf{dom} f, f(x) \le t\}
\]

一个函数是凸函数,当且仅当其上镜图是凸集。

我们来证明一开始的结论,即\(g\)是次梯度,当且仅当\((g, -1)\)是\(f\)的上镜图在\((x, f(x))\)处的一个支撑超平面。
首先,若\((g, -1)\)是\(f\)的上镜图在\((x, f(x))\)处的一个支撑超平面,则:
\[
g^T(x-x_0)-(t-f(x_0)) \le 0 \\
\Rightarrow t \ge f(x_0)+g^T(x-x_0)
\]
对所有\((x, t) \in \mathbf{epi} f\)成立,令\(t=f(x)\),结果便得到。
反过来,如果\(g\)是次梯度,那么:
\[
f(z) \ge f(x) + g^T(z-x) \\
\Rightarrow f(z)-f(x) \ge g^T(z-x)
\]
又\(t \ge f(z), (z, t) \in \mathbf{epi} f\),所以:
\[
t - f(x)\ge f(z)-f(x) \ge g^T(z-x)
\]
所以,\((g,-1)\)在\((x, f(x))\)处定义了一个超平面。

次梯度的存在性

如果\(f\)是凸函数,且\(x \in \mathbf{int} \mathbf{dom} f\),那么\(\partial f(x)\)非空且闭。根据支撑超平面定理,我们知道,在\((x, f(x))\)处存在关于\(\mathbf{epi} f\)的一个超平面,设\(a \in \mathbb{R}^n, b \in \mathbb{R}\),则对于任意的\((z, t)\in \mathbf{epi} f\)都有:

显然,\((x, f(x)+\epsilon)\)也符合条件,这意味着\(b\le0\),以及:
\[
a^T(z-x)+b(f(z) - f(x)) \le 0
\]
对所有\(z\)成立。
如果\(b=0\),那么\(a=0\),不构成超平面,即\(b < 0\)。
于是:
\[
f(z) \ge f(x) +-a^T/b(z-x)
\]
即\(-a/b \in \partial f(x)\)

性质

极值

\(x^*\)是凸函数\(f(x)\)的最小值,当且仅当\(f\)在\(x^*\)处存在次梯度且
\[
0 \in \partial f(x^*)
\]
\(f(x) \ge f(x^*) \Rightarrow 0 \in \partial f(x^*)\)

非负数乘 \(\alpha f(x)\)

\(\partial(\alpha f) = \alpha \partial f, \alpha \ge 0\)

和,积分,期望

\(f = f_1+f_2\ldots+f_n\),\(f_i,i=1,2,\ldots,m\)均为凸函数,那么:
\[
\partial f=\partial f_1 +\partial f_2 + \ldots +\partial f_n
\]
\(F(x)= \int_Y f(x,y) dy\), 固定\(y\), \(f(x,y)\)为凸函数,那么:
\[
\partial F(x)=\int_Y \partial_x f(x,y) dy
\]
\[
f(z,y) \ge f(x,y)+g^T(y)(z-x) \\
\Rightarrow \int_Yf(z,y)dy \ge \int_Yf(x,y)dy+\int_Yg^T(y)dy(z-x)
\]
不过需要注意的一点是,这里的等号都是对于特定的次梯度,我总感觉\(f\)的次梯度的集合不止于此,或许会稍微大一点?就是对于和来讲,下面这个式子成立吗?:
\[
\partial f=\{ g_1+g_2+\ldots + g_n| g_1\in \partial f_1, \ldots, g_n\in \partial f_n\}
\]
至少凸函数没问题吧,凸函数一定是连续函数,且左右导数存在,那么\(g\)的范围都是固定的。

仿射变换

\(f(x)\)是凸函数,令\(h(x)=f(Ax+b)\)则:
\[
f(Az+b) \ge f(Ax+b)+g^T(Az+b-Ax-b) \\
\Rightarrow h(z) \ge h(x)+ (A^Tg)^T(z-x) \\
\Rightarrow \partial h(x)=A^T\partial f(Ax+b)
\]

仿梯度

我们知道梯度有下面这些性质:
\[
\nabla c = 0\\
\nabla (\varphi \pm \psi) = \nabla \varphi \pm \nabla \psi \\
\nabla(c\varphi) = c \nabla \varphi \\
\nabla (\frac{\varphi}{\psi})= \frac{\psi \nabla \varphi - \varphi \nabla \psi}{\psi^2} \\
\nabla f(\varphi) = f'(\varphi) \nabla \varphi \\
\]

我认为(注意是我认为!!!大概是是异想天开。)\(f\)为凸函数的时候,或者\(f\)为可微(这个时候是一定的)的时候,上面的性质也是存在的。当然,这只是针对某些次梯度。因为当\(f\)为凸函数的时候,\(f\)的左右导数都存在,那么:
\[
k_+:=\lim \limits_{t \rightarrow 0^+} \frac{f(x+te_k)-f(x)}{t}
\]
那么(凸函数的性质)
\[
f(x+te_k)-f(x) \ge tk_+=(k_+e_k)^T(te_k), t>0
\]
同理:
\[
k_-:=\lim \limits_{t \rightarrow 0^-} \frac{f(x+te_k)-f(x)}{t}
\]
\[
f(x+te_k)-f(x) \ge tk_-=(k_-e_k)^T(te_k), t<0
\]
而且\(k_- \le k_+\)。
事实上,因为:
\[
\frac{f(x+te_k)-f(x)}{t} \ge k_+ \ge k_- \ge \frac{f(x)-f(x-te_k)}{t},t>0
\]
所以,容易证明:
\[
f(x+te_k) \ge f(x) + (\lambda_1k_+ + (1-\lambda_1)k_-)e_k^Tte_k, 0 \le \lambda_1 \le 1
\]
容易验证\(h(t) = f(x+tv)\)时关于\(t\)的凸函数,那么:
\[
K_v^+ := \lim \limits_{t \rightarrow 0^+} \frac{h(t)-h(0)}{t\|v\|}
\]
同理
\[
K_v^- := \lim \limits_{t \rightarrow 0^-} \frac{h(t)-h(0)}{t\|v\|}
\]
一样的分析,我们可以知道:
\[
f(x+tv) \ge f(x) + \frac{(\lambda K_v^+ + (1-\lambda )K_v^-)}{\|v\|} v^Ttv, 0 \le \lambda \le 1
\]
不好意思,证到这里我证不下去了,我实在不知道结果该是什么。

混合函数

应用

Pointwise maximum

\[
f(x)=\max \limits_{i=1,2,\ldots,m} f_i(x)
\]
其中\(f_i,i=1,2,\ldots,m\)为凸函数。

\(\mathbf{Co}(\cdot)\)大概是把里面的集合凸化(我的理解):
\[
\mathbf{Co}(\mathcal{S})=\{ \lambda g_1+(1-\lambda) g_2| g_1,g_2\in \mathcal{S},\lambda \in [0,1]\}
\]

第一个例子,可微函数取最大:

我倒觉得蛮好理解的,因为\(\nabla_i f(x)\)和\(\nabla_j f(x)\)如果都是次梯度,那么根据次梯度的集合都是凸集可以知道\(\nabla_i f(x),\nabla_j f(x)\)的凸组合也是次梯度。

第二个例子,\(\ell_1\)范数:

我也觉得蛮好理解的。

上确界 supremum

\[
f(x) = \sup \limits_{\alpha \in \mathcal{A}} f_\alpha (x)
\]
\(f_\alpha (x)\)是次可微的。

例子,最大特征值问题:

Minimization over some variables

拟凸函数

subgradients的更多相关文章

  1. 一些矩阵范数的subgradients

    目录 引 正交不变范数 定理1 定理2 例子:谱范数 例子:核范数 算子范数 定理3 定理4 例子 \(\ell_2\) <Subgradients> Subderivate-wiki S ...

  2. MlLib--逻辑回归笔记

    批量梯度下降的逻辑回归可以参考这篇文章:http://blog.csdn.net/pakko/article/details/37878837 看了一些Scala语法后,打算看看MlLib的机器学习算 ...

  3. Pegasos: Primal Estimated sub-GrAdient Solver for SVM

    Abstract We describe and analyze a simple and effective iterative algorithm for solving the optimiza ...

  4. 在线最优化求解(Online Optimization)之三:FOBOS

    在线最优化求解(Online Optimization)之三:FOBOS FOBOS (Forward-Backward Splitting)是由John Duchi和Yoram Singer提出的[ ...

  5. 用java写bp神经网络(二)

    接上篇. Net和Propagation具备后,我们就可以训练了.训练师要做的事情就是,怎么把一大批样本分成小批训练,然后把小批的结果合并成完整的结果(批量/增量):什么时候调用学习师根据训练的结果进 ...

  6. MLlib之LR算法源码学习

    /** * :: DeveloperApi :: * GeneralizedLinearModel (GLM) represents a model trained using * Generaliz ...

  7. GeneralizedLinearAlgorithm in Spark MLLib

    GeneralizedLinearAlgorithm SparkMllib涉及到的算法 Classification Linear Support Vector Machines (SVMs) Log ...

  8. Spark0.9.0机器学习包MLlib-Optimization代码阅读

           基于Spark的一个生态产品--MLlib,实现了经典的机器学算法,源码分8个文件夹,classification文件夹下面包含NB.LR.SVM的实现,clustering文件夹下面包 ...

  9. [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用

    [源码解析] PyTorch 分布式(5) ------ DistributedDataParallel 总述&如何使用 目录 [源码解析] PyTorch 分布式(5) ------ Dis ...

随机推荐

  1. js原生数组去重

    // ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']; 取消重复的元素 数组去重 (for循环) // 把旧数组里面 不重复的元素选取出来放到新数组中 重复 ...

  2. 6. VIM 系列 - 全局搜索(ctrlsf.vim)

    目录 全局搜索利器 ag.vim 更强大的全局搜索利器 ctrlsf.vim 全局搜索利器 ag.vim 终端上安装ag: sudo apt install silversearcher-ag vim ...

  3. Jason Wang:记录自己所想所得(第一次作业)

    这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 我在这个课程的目标是 学会现代软件工程的思想,运用到实际中去 这个作业在哪个具体方面帮助我实现目标 ...

  4. Python + PyQt5 实现美剧爬虫可视工具

    美剧<权力的游戏>终于要开播最后一季了,作为马丁老爷子的忠实粉丝,为了能够看得懂第八季复杂庞大的剧情架构,本人想着将前几季再稳固一下,所以就上美剧天堂下载来看,可是每次都上去下载太麻烦了, ...

  5. Vuex,状态管理模式

    对于 Vue 本人目前接触不深,只得浅层分析,Vue 是单向数据流, state,驱动应用的数据源: view,以声明方式将 state 映射到视图: actions,响应在 view 上的用户输入导 ...

  6. TypeScript 中的方法重载

    方法重载(overload)在传统的静态类型语言中是很常见的.JavaScript 作为动态语言, 是没有重载这一说的.一是它的参数没有类型的区分,二是对参数个数也没有检查.虽然语言层面无法自动进行重 ...

  7. springboot~hazelcast缓存中间件

    缓存来了 在dotnet平台有自己的缓存框架,在java springboot里当然了集成了很多,而且缓存的中间件也可以进行多种选择,向redis, hazelcast都是分布式的缓存中间件,今天主要 ...

  8. dmidecode的Python解析

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ 解析dmidecode命令输出结果,返回JSON格式数据 测试服务器D ...

  9. 一个简洁的小H车调运模型

    一个简洁的小H车调运模型 不久前, 帝都B城市到处都是小H车, 理想的小H车应该是布朗运动\均匀分布,可是现实上它们就是不均匀.于是有如下问题: 观察帝都 HD区SY村区域,将其划分成10个用车点,用 ...

  10. 一个GIS开源工具集架构的总结

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 最近由团队HWG主导的GIS开源工具集基本告一段落,该项目虽然 ...