浅谈凸优化问题中的Bregman迭代算法

【图像重建】Split Bregman稀疏图像重建【含Matlab源码 3413期】 Split Bregman稀疏图像重建 完整的代码,方可运行;可提供运行操作视频!适合小白! 阅读详情

 申明,本文非笔者原创,原文转载自:http://blog.youkuaiyun.com/celerychen2009/article/details/9058315


对于搞图像处理的人而言,不懂变分法,基本上,就没法读懂图像处理的一些经典文献。当然,这已经是10年之前的事情了。

         现在,如果不懂得Bregman迭代算法,也就没法读懂最近几年以来发表的图像处理的前沿论文了。国内的参考文献,基本上都是直接引用Bregman迭代算法本身,而对于其原理基本上找不到较为详细的论述。本文简要叙述当前流行的Bregman迭代算法的一些原理。


    

1. 简介

         近年来,由于压缩感知的引入,L1正则化优化问题引起人们广泛的关注。压缩感知,允许通过少量的数据就可以重建图像信号。L1正则化问题是凸优化中的经典课题,用传统的方法难以求解。我们先从经典的图像复原问题引入:

        在图像复原中,一种通用的模型可以描述如下:    

   

         我们目标是从观测到的图像f,寻找未知的真实图像u,u是n维向量空间中的元素,f是m维向量空间中的元素。f 在压缩感知的术语叫做测量信号。 是高斯白噪声其方差为sigma^2。A是线性算子,例如反卷积问题中的卷积算子,压缩感知中则是子采样测量算子。

        

          上述方程中,我们仅仅知道f,其它变量都不知道的。而且这种问题通常情况都是病态的,通过引入正则项可以使之成为良态的。正则化方法假定对未知的参数u引入一个先验的假设,例如稀疏性,平滑性。正则化问题的常见方法Tikhonov方法,它通过求解下面的优化问题:

                                                                                                    

        其中mu是一个大于零的标量,事先设定的常数,用于权衡观测图像f和正则项之间的平衡。双绝对值符号是L2范数。

    

        下面,为了引入Bregman迭代算法,需要对两个重要的概念进行描述。

2.  Bregman距离

            


            注意这个定义,它是对泛函J在u点的subgradient的定义,p点是其对偶空间的中的某一点。subgradient可以翻译为次梯度,子梯度,弱梯度等。等式左边最右边一项是内积运算。如果泛函J是简单的一元函数,则就是两个实数相乘。次梯度有什么好处呢?对于一般的导数定义,例如y=|x|在0点是不可导的,但是对于次梯度,它是存在的。

             

                上面的这个定义就是Bregman距离的定义。对于凸函数两个点u,v之间的Bregman距离,等于其函数值之差,再减去其次梯度点p与自变量之差的内积。要注意的是这个距离不满足对称性,这和一般的泛函分析中距离定义是不一样的。

   

3.  Bregman迭代算法 

        Bregman迭代算法可以高效的求解下面的泛函的最小 

                                   

       


       上式中的第一项J,定义为从X到R的泛函,其定义域X是凸集也是闭集。第二项H,定义为从X到R的非负可微泛函,f是已知量,并且通常是一个观测图像的数据,所以f是矩阵或者向量。上述泛函会根据具体问题的不同具有不同的具体表达式。例如,对于简介中的图像复原啊问题,J(u)就是平滑先验约束,是正则化项;而H则是数据项。



 

     Bregman迭代算法首先是初始化相关的参数为零,再迭代公式u,其左边一项是泛函J的Bregman距离。再来看p点的迭代公式,其最右边一项是泛函H的梯度。

     其迭代一次产生的输出是公式3.2,经过多次的迭代,就能够收敛到真实的最优解。这个证明过程可以参考后面的文献。

     对于具体的问题,泛函3.1定义的具体形式是不同的。例如对于压缩感知使用的基追踪算法,J是L1范数。而对于图像去噪问题,可能就是u的梯度L1范数,同时A也变成了恒等算子了。


4. 线性Bregman迭代算法

    

          Bregman 迭代算法的每一步迭代都要求解泛函4.1的最小值,这一步的计算代价是很高的。线性Bregman迭代的思路是对泛函4.1的第二项进行线性展开,根据矩阵函数的泰勒公式,泛函4.1的第二项可以展开为上面4.2的形式。




         注意,上述公式4.2省略了泰勒公式中二次项。把二次项加上,带入前面基本的Bregman迭代算法公式的第一步,我们得到公式4.3。如果我们计算4.3和4.4中间那个表达式,比较其相同项,很容易得到公式4.4.




         如果我们考虑基追踪算法,则H等于 ||Au - f||^2 /2, 将H的导数带入公式4.4,我们得到公式4.5, 公式4.6是基本Bregman迭代算法的第二步,注意上述4.6公式中u的上标是错的,应该改为 k+1 ,这样才可能得到公式4.7,公式4.8,4.9, 4.10, 4.11都是显而易见的。


          下面我们把4.11和前面定义的Bregman距离带入到4.5里面去,具体如下:



      在上面的推导中,u_k是常量,C是与u_k有关的一个常量,将上式对u求导,由于有绝对值项,所以要分开讨论,得到上面这个分段表达式。进一步整理得到:



             这里,我们定义了一个shrink操作,这个收缩算子很重要,在后面所有的Bregman算法中都有这个操作。根据这个操作,我们导出下面的表达式,并最终把线性Bregman迭代算法总结如下:



5.  Split Bregman 算法

         Split Bregman 算法是另一种高效的算法。我们已经知道,Bregman迭代算法用于求解下面的凸优化问题:

                      


     我们可以把上面的表达式变换为下面的等价形式:




     这一步,看似是多此一举,但是Bregman经过推导,得出了一种高效的迭代算法,分裂Bregman迭代。

     上面的5.2是一个等式约束优化问题,把它转化为无约束优化问题如下:



        上面这个公式中,优化变量多了一个d。做如下的变量替换:


 如果我们对5.5,应用最前面提到Bregman 迭代算法,很容易写出下面的迭代序列:


    式5.9是根据5-6按照Bregman距离展开的结果。式5.7,5.7后面一项是对5-5分别对u,d求其偏导数得到。如果我们对5.7迭代展开,于是得到:


 同理,对于5.8,有

                   

 

注意到式5.11和5.12有一个公共的SIGMA求和项,把它重新定义如下:



    把5.14,5.15带入5.9,具体如下:


          在对5.16的化简中,要注意的是u,d为变量,其它看做常量。

          到此,我们可以给出Split Bregman迭代算法的通用优化步骤:




          对u的迭代,把u看做自变量,其它所有变量看做常数,对d的迭代则是d为自变量,其它变量都是常数。 之所以说是通用迭代优化过程,是因为对于具体的问题,其迭代的具体表达式不同。例如,对于基于各向异性TV的去噪模型,各向同性TV去噪模型,其迭代的具体表达式是不同的。


最后列出本文的参考文献如下:


http://download.youkuaiyun.com/detail/celerychen2009/5552551


深入理解Bregman迭代分割算法及图像处理应用 Bregman迭代分割算法是一种广泛应用于图像处理领域的高效算法,特别是在图像分割、去噪和恢复等方面。作为一种基于Bregman距离的优化技术,Bregman迭代算法利用了Bregman距离的性质,能够有效地处理包含非光滑项和非凸约束的优化问题。在深入探讨其工作原理之前,我们先来简单理解算法的基本概念。Bregman距离是一类广泛应用于优化问题中的广义距离度量,特别适用于非欧几里得空间。它最早由俄国数学家Lev M. Bregman于1967年提出。 阅读详情

相关推荐

SplitBregman去噪(TV模型)

图像去噪问题是图像处理的一个基本问题,是目前图像处理领域的一个热点研究课题。本代码主要实现基于全变分模型的图像去噪算法。

基于水平集LBF模型的图像边缘轮廓分割凸优化 - Split Bregman分裂布雷格曼算法的最优解

边缘轮廓分割凸优化 - Split Bregman分裂布雷格曼算法的复现过程

qq_37668179的博客 1万+

L1正则化问题的分裂Bregman方法.pdf

如果不懂得Bregman迭代算法,对于图像处理的前沿论文总会难懂,这是一篇讲述布雷格曼算法在图像去噪和压缩感知邻域的应用,详细介绍了Bregman迭代算法。

【图像重建】 Split Bregman稀疏图像重建【含Matlab源码 3413期】

Split Bregman稀疏图像重建 完整的代码,方可运行;可提供运行操作视频!适合小白!

Matlab912100926的博客 1035

鸿蒙实战开发教程-注册登录页面

在密码输入框中,只要设置TextInput的类型就可以实现带眼睛logo的密码输入框效果:

2401_82546228的博客 3559

基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验

本文详细介绍了基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验。通过分析纯滞后系统的控制难题,探讨大林算法在工业控制中的应用优势,并提供Matlab-Simulink环境搭建、控制器D(z)设计、振铃消除及仿真实验的完整流程。文章还对比了大林算法与PID控制的性能差异,为工程实践提供参考。

dropout6artist的博客 794

全变分图像理解(使用split bregmen方法求解)

https://zhuanlan.zhihu.com/p/93350544微分方程数值求解——有限差分法 - 知乎 (zhihu.com)

zpnkwxp2011的博客 1047

Polyworks脚本开发实战指南:高效生成数据彩图与报告的关键指令解析

本文深入解析了Polyworks脚本开发中生成数据彩图与自动化报告的核心指令。通过实战案例,详细介绍了REFERENCE_SURFACE、THICKNESS和CLEARANCE等关键彩图生成指令的正确用法与常见避坑点,并阐述了如何利用REPORT_ITEM命令实现从截图、表格生成到智能排版的全流程自动化,旨在帮助三维检测与质量控制工程师大幅提升工作效率与报告标准化水平。

weixin_29209825的博客 555

一句话理解Bregman距离的含义

题目:一句话记住Bregman距离 Bregman距离,又称Bregman散度(Bregman Divergence),两个点与之间的Bregman距离定义如下: 其中为某凸函数,表示求导,表示求内积;可以看出Bregman不满足对称性。 回忆一下Taylor公式,可以看出实际上是函数的一阶Taylor近似,因此用一句话概括就是:【与之间的Bregman距离实际上可以理解为函数与其一阶Taylor近似之差】。 ...

彬彬有礼的专栏 6345

200_matlab处理NCEP数据并画全球彩色的风场图

200_matlab处理NCEP数据并画全球彩色的风场图。

miaobo0的博客 1237

光模块基础知识【快速入门】02

光模块是用于交换机与设备之间传输的载体,是光纤通信系统中的核心器件。主要作用是发射端将设备的电信号转换成光信号。 光纤通道光模块和以太网光模块 光纤通道光模块 光纤通道(FC, Fiber Channel)是一种高速网络数据传输协议。光纤通道协议可以有序无损地传输原始数据,它主要用于在数据中心、电脑服务器、交换机与存储网络中进行数据传输。 FC光模块遵循FC协议,充当着光纤通道系统之间的接口,也是光纤存储网络设备间的接口。它们主要用于数据中心的光纤通道存储网络链接中。 FC光模块具有小型化和低.

Jin Hanquan的博客 3万+

Split Bregman迭代介绍及MATLAB实现

图像退化 Bregman距离 定义一个凸函数EEE在点vvv的Bregman距离为 DEp(u,v)=E(u)−E(v)−<p,u−v>D_{E}^{p}\left( u,v \right)=E\left( u \right)-E\left( v \right)-<p,u-v>DEp​(u,v)=E(u)−E(v)−<p,u−v> 其中,ppp为EEE在点vvv的次梯度。显然,可以得到类似于距离的性质 非负性:DEp(u,v)≥0D_{E}^{p}\left( u,v \

YHCANDOU的博客 3755

Linux运维人,该醒醒了,2019年要变天了

外界都说运维只是处于被动低效率手工救火的状态,企业对其重视程度不高,提起运维很多人能联想到的字眼就有“苦逼”、“辛苦”、“加班”、“背锅”。在大数据、人工智能、容器技术的强力加持下,运维这个传统的技术工种已经从“机械劳动”这样的刻板印象中蜕变出来,成为了任何一家技术公司所必须依赖和大力投入的核心技术能力。 现在,运维人员的发展前景也开始让很多程序员眼羡,作为Linux运维人员的你:这一年,你的L...

qq_43083284的博客 1万+

分裂布雷格曼方法--(Split Bregman Method)

因为毕设做TV去噪去卷积相关的内容,需要用到分裂布雷格曼算法,算是认真读了经典论文《The Split Bregman Method for L1-Regularized Problems》,翻译总结了这个算法一些主要步骤。因为数学基础不太够,所以对这个算法还没有什么太深刻的认识,先挖个坑,把毕设做完了之后再来多写一点东西。 布雷格曼迭代 考虑一个受限优化问题,一个凸能量函数,E,和一个线性函...

鲜花会生锈 1万+

《电磁兼容设计》专栏说明

本专栏自2024年1月起开始更新,仅设此一个电磁兼容相关知识专栏,并将一直持续更新下去,无期限

linkking27的博客 791

WorkBuddy CAD 审图救命课:约束、单位、尺寸链一次查清,打样前拦住返工

最危险的 CAD 文件不是打不开,而是看起来完整却混用了毫米与英寸、草图欠约束、关键尺寸没有来源。审图任务必须先列规则,再输出问题位置。 本课不会用“AI 一键完成”制造错觉,而是把 WorkBuddy、FreeCAD 0.21.2、OpenCascade 7.7 与人工审阅组成一条可复现链路。你会从“一份模拟 STEP 文件、参数表、装配基准与审图标准”出发,得到“单位报告、约束清单、尺寸链风险表与人工复核标记”,并学会用真实命令、错误信号和停止条件判断成果能不能进入下一阶段。

yueyeguzhuo的专栏 262

【机器学习】Bregman迭代算法以及证明

Bregman系列算法是近几年在图像处理和压缩感知领域异军突起的算法,能够更好地从现有数据中还原真实目标结果。

artzers的专栏 8094

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Bregman距离

Bregman距离 两个点x{\bf x}x与x0{\bf x}_0x0​之间的Bregman距离定义如下: df(x,x0)=f(x)−(f(x0)+⟨∇f(x0),x−x0⟩) d_f({\bf x,x}_0)=f({\bf x})-(f({\bf x}_0)+\langle\nabla f({\bf x}_0),{\bf x}-{\bf x}_0\rangle) df​(x,x0​)=f(x)−(f(x0​)+⟨∇f(x0​),x−x0​⟩) 其中f(⋅)f(\cdot)f(⋅)为某凸函数,∇f(⋅)

qq_44955314的博客 1588

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Split-Bregman迭代方式

​​​​​​​ 版权声明:转载请注明 https://blog.youkuaiyun.com/weixin_41923961/article/details/80329393 本文简要叙述当前流行的Bregman迭代算法的一些原理。 1、简介 近年来,由于压缩感知的引入,L1正则化优化问题引起人们广泛的关注。压缩感知,允许通过少量的数据就可以重建图像信号。L1正则化问题是凸优化中的经典课题,用传统的方...

qq_39661689的博客 2596

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【图像去噪】基于matlab即插即用法图像去噪(含PSNR)【含Matlab源码 152期】

即插即用法图像去噪(含PSNR) 完整代码,直接运行,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1639

凸优化中的Bregman迭代算法

对于搞图像处理的人而言,不懂变分法,基本上,就没法读懂图像处理的一些经典文献。当然,这已经是10年之前的事情了。现在,如果不懂得Bregman迭代算法,也就没法读懂最近几年以来发表的图像处理的前沿论文了。国内的参考文献,基本上都是直接引用Bregman迭代算法本身,而对于其原理基本上找不到较为详细的论述。本文简要叙述当前流行的Bregman迭代算法的一些原理。1、简介近年来,由于压缩感知的引入,L1

山上有只羊M 1万+
上一篇: 视频浓缩中的轨迹组合技术
下一篇: 国内从事红外热成像的公司
ChenLee_1
博客等级 码龄17年 6199粉丝 179原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值