7.1 全局变量一致性优化(Global Variable Consensus Optimization)
首先,考虑一个全局变量的情况,把目标函数和约束分为N个部分(这里的划分并不是对参数空间进行划分,而是类似于并行思想的那种把参数分成若干份,因此参数维度不变):
x ∈ R x \in R x∈R。 f i : R n → + ∞ f_i:R^n \rightarrow {+ \infty } fi:Rn→+∞是凸的,是第i个子目标函数。当违反约束时(这里我认为就是在解题过程中不断试错的情况),每一个子函数都可以自己处理元素(如线程和处理器)。这个问题在很多情况下都会出现(个人理解就是局部内进行解算,通过协作去关联到整体)。这样可以重写成:
(个人理解:这里是说,我把目标问题分成了这么多份,但是我最终目标是原问题的解,那么问题来了,子问题的解和原问题的解有什么关系?肯定是一致性了,在数字上表示是不是就是相等了呢?而且这只是一个约束条件,约束条件在计算过程中就是尽力去满足这个约束,找到可以接受的解。应该就是这样理解了。)
问题(7.1)的ADMM可以直接从增广的拉格朗日方程导出:
或者简单地作为变量 ( x 1 , . . . . , x − n ) ∈ R n N (x_1, ....,x-n) \in R^{nN} (x1,....,x−n)∈RnN和约束集约束优化问题(5.1)的特例
生成ADMM算法如下:
(此处疑问,z的迭代是怎么的出来的。目前理解是,z和x在式子上是相等的,因此会是x加上一个类似于导数或者步长的东西)
算法进一步简化,可以用平均数来表示:
把上面z-迭代代入y-迭代,发现对偶变量$\bar{y}^{k+1} = 0 $,对偶变量在第一次迭代后平均值为0.我们使用 z k = x ˉ k z^k = \bar{x} ^ k zk=xˉk ,ADMM算法可以写成(在平均数的情况下才这样写):
对偶变量分别更新,并趋于一致(有x的平均数,这点是肯定的)。而二次正则化有助于将变量拉向其平均值(就是防止过拟合的那种嘛),同时仍试图最小化每个局部 f i f_i fi(记得似乎二次项有防止图像趋近于平行x轴功效,待考证)
我们可以将一致ADMM解释为一种解决目标和约束分布在多个处理器上的问题的方法。每个处理器只需处理自己的目标和约束项,外加一个二次项,该二次项在每次迭代中都会更新。二次项(或者更准确地说,二次项的线性部分)的更新方式使得变量收敛到一个公共值,这是整个问题的解。 (我觉得就是解决:如何把问题分解,分解了才能并行,还得想办法让子问题的解一致(我觉得功劳还是x的平均数,因为每次参数迭代都和平均值有关,而平均值是整个系统的或者说全局的变量,这样算出来不一致才怪。不过在并行实行的时候,如何计算平均值、分发平均值可能是极其麻烦的)。而且上一次笔记提到了,ADMM扩展性极好,即使不精确的执行也能收敛到一个满意的结果,所以,分解搞很有道理啊)。这里突然想到了小批量随机梯度,不过好像没有随机梯度更方便。
对于一直ADMM,原始残差和对偶残差为 :
他们的平方范数:
前项是N倍残差,文章说这是一致性的度量
当一致性原始问题是拟合问题时,x更新步骤具有直观的统计解释.这里其实需要说一下 x ˉ \bar x xˉ的合理性,其实在概率论与数理统计中有这种说法的,就是用前面出现的平均概率代替估计。这里 r k r^k rk残差也用到了。像第三章我们 p ∗ p^* p∗代表最优,然后得到残差。这里就是用 x ˉ \bar x xˉ估计最优,有道理的。 y i k {y_i}^{k} yik没有一致性(这里难以理解,以后再说)。还要注意,如第3.4节所述,在增广项中使用不同形式的惩罚将导致该先验分布的相应变化;例如,使用矩阵惩罚p而不是标量惩罚 ρ \rho ρ将意味着高斯先验分布具有协方差p而不是 ρ I \rho I ρI(这说的啥,I是什么东西)
7.1.1 带正则化的全局变量一致性
在全局变量一致性问题的简单变化中,简单约束或正则化的目标项g由中心处理器处理:
ADMM算法为:
(这里(7.4)的迭代按理来说少了一个 y i k T x i {y_i}^{kT}x_i yikTxi,从某种说法讲,因为缺少项与z迭代是线性想加,求最优解的时候不考虑也不影响,但是话说回来,(7.3)为什么有z的迭代项,匪夷所思。倘若我大胆推测一下,这里作者漏写了,没毛病,下文有证据)
用上 x ˉ \bar x xˉ。于是:
(这里出现了问题,与(7.4)式比较这里很明显会出现 y ˉ k + 1 y ˉ k + 1 \bar y^{k+1 }\bar y^{k+1 } yˉk+1yˉk+1,而(7.4)很明显没有这项,凑也凑不出来。补充:情况应该是这样,作者漏写了一个 y i k T , 这 样 除 了 缺 少 一 项 {y_i}^{kT},这样除了缺少一项 yikT,这样除了缺少一项 y ˉ k + 1 y ˉ k + 1 \bar y^{k+1 }\bar y^{k+1 } yˉk+1yˉk+1,其他都没问题了,在随堂笔记(2)中,缩放形式(3.5)式前一个式子那里,所抛弃的项是一样的,理由我觉得也一样,所以化形成立)
这里解释了一下,说在g非零的情况下, y ˉ k \bar y^k yˉk通常不会等于0.因此无法不能在z-迭代中把 y i y_i yi去掉。(为什么呢? 给跪了)。举个例子,对于 g ( z ) = λ ∣ z ∣ 1 g(z) = \lambda |z|_1 g(z)=λ∣z∣1,当 λ > 0 \lambda>0 λ>0的时候z-迭代是是一个软阀值(软阀值介绍:https://blog.csdn.net/sq1378392676/article/details/78731035):
(不懂,这里太科幻了)
又举了一个例子(这个与上面同理):
针对这个问题的ADMM的缩放形式也有一个吸引人的形式,为了方便我们在这里记录:
这里推了一下,没有问题,就是有一个线性项丢弃了,也是缩放的意义所在。
很多情况下,缩放形式比未缩放形式用起来更简单、也更容易。
7.2 一致优化的通用形式
我们现在考虑一个更一般形式的一致极小化问题,在这个问题中,我们有局部变量 x ∈ R n i , i = 1.2.... , N x \in R^{n_i}, i = 1.2.... ,N x∈Rn