正则化实现降噪,分别使用最小二乘、定步长梯度下降和回溯法的梯度下降求解最优解

正则化实现降噪,分别使用最小二乘、定步长梯度下降和回溯法的梯度下降求解最优解

在这里插入图片描述

原创文章!转载需注明来源:©️ Sylvan Ding’s Blog ❤️

实验目的

参考 INTRODUCTION TO NONELINEAR OPTIMIZATION. Amir Beck. 2014 的 3.4 Denoising 相关内容,分别使用 最小二乘法、定步长的梯度下降(constant)和回溯法的梯度下降(backtracking),实现对 Example 3.4 中带有噪声信号的降噪过程,对比分析采用不同方法的降噪效果。添加不同的噪声,或以不同的方式添加噪声,观察上述三种降噪方法的降噪效果,并简要分析结果。了解并掌握最小二乘法和惩罚问题(Penalized Problem),学会使用MATLAB求解并分析相关问题。

实验环境

MATLAB R2021a

实验内容

考虑一段信号 x∈R300x\in \mathbb{R}^{300}xR300 ,在该信号上添加一段高斯加性噪声(μ=0,σ=0.05\mu=0, \sigma=0.05μ=0,σ=0.05)得到 bbb,由下述MATLAB语句生成。要求使用正则化的最小二乘(RLS)、定步长的梯度下降、回溯法的梯度下降分别对加噪后对信号 bbb 进行降噪处理,并分析各方法降噪效果的优劣。

t=linspace(0,4,300)';
x=sin(t)+t.*(cos(t).^2);
randn('seed',314);
b=x+0.05*randn(300,1);

真实信号与噪声信号的对比图

subplot(1,2,1);
plot(1:300,x,'LineWidth',2);
subplot(1,2,2);
plot(1:300,b,'LineWidth',2);

在这里插入图片描述

算法描述

降噪问题的一般表述为:给定含有噪声的信号 bbb,找到一个“足够好”的估计值 x∗x^*x,使得 x∗≈bx^*\approx bxb,即 x∗=arg⁡min⁡x∥x−b∥2x^* = \arg \min \limits_{x} \Vert x-b \Vert ^2x=argxminxb2. 显然,这个优化问题的解是 x∗=bx^*=bx=b。然而,这一最优解是没有意义的,即产生了过拟合的解。

因此,为了解决过拟合的问题,我们需要向目标函数中添加正则化项。不妨假设,最初的信号是一段光滑的曲线,那么,向量 xxx 相邻两元素间的的差值也应当尽可能的小(接近于0但不等于0). 这样,正则化项就应当选用二次惩罚(Quadratic Penalty),即 R(x)=∑i=1n−1(xi−xi+1)2,n=300R(x)=\sum^{n-1}_{i=1} (x_i-x_{i+1})^2, n=300R(x)=i=1n1(xixi+1)2,n=300. 也可以用更加紧凑的向量形式表示:R(x)=∥Lx∥2,L∈R(n−1)×n,n=300R(x)=\Vert Lx \Vert ^2, L\in \mathbb{R}^{(n-1)\times n}, n=300R(x)=Lx2,LR(n1)×n,n=300,

L=[1−100⋯0001−10⋯00001−1⋯00⋮⋮⋮⋮⋮⋮0000⋯1−1]L= \begin{bmatrix} 1 & -1 & 0 & 0 & \cdots & 0 &0 \\ 0 & 1 & -1 & 0 & \cdots & 0 & 0\\ 0 & 0 & 1 & -1 & \cdots & 0 & 0\\ \vdots & \vdots & \vdots & \vdots & & \vdots & \vdots \\ 0 & 0 & 0 & 0 & \cdots & 1 & -1 \end{bmatrix}L=100011000110001000010001

所以,最终的目标函数变为 x∗=arg⁡min⁡x∥x−b∥2+λ∥Lx∥2,λ>0x^* = \arg \min \limits_{x} \Vert x-b \Vert ^2+\lambda \Vert Lx \Vert ^2, \lambda>0x=argxminxb2+λLx2,λ>0. 其中,λ\lambdaλ 为正则化参数(又称惩罚系数),λ\lambdaλ 越大,惩罚力度越强,x∗x^*x 越“平滑”,反之亦然。当 λ=0\lambda=0λ=0 时,问题转化为一般的最小二乘问题(LS),也就会产生上述无意义的最优解。

最小二乘解

x∗(λ)=arg⁡min⁡x{f(x)≡xT(I+λLTL)x−2bTx+∥b∥2}x^*(\lambda) = \arg \min \limits_{x} \left \{ f(x) \equiv x^T \left ( I+\lambda L^T L \right )x -2b^Tx + \Vert b \Vert ^2 \right \}x(λ)=argxmin{f(x)xT(I+λLTL)x2bTx+b2}

显然,目标函数 f(x)f(x)f(x) 是一个二次函数,而且必然有 ∇2f(x)=2(I+λLTL)≻0\nabla ^2f(x)= 2\left (I+\lambda L^T L\right ) \succ02f(x)=2(I+λLTL)0,因此,由定理 2.41 可知,该函数的任何驻点都是全局最小点。驻点满足 ∇f(x)=0\nabla f(x)=0f(x)=0,即 (I+λLTL)x=b\left ( I+\lambda L^T L \right )x=b(I+λLTL)x=b,所以最优解 x∗(λ)=(I+λLTL)−1bx^*(\lambda) = \left ( I+\lambda L^T L \right )^{-1}bx(λ)=(I+λLTL)1b.

梯度下降

目标函数:f(x)=xT(I+λLTL)x−2bTx+∥b∥2f(x) = x^T \left ( I+\lambda L^T L \right )x -2b^Tx + \Vert b \Vert ^2f(x)=xT(I+λLTL)x2bTx+b2

目标函数的梯度:g(x)=∇f(x)=(I+λLTL)x−bg(x)=\nabla f(x)=\left ( I+\lambda L^T L \right )x-bg(x)=f(x)=(I+λLTL)xb

梯度下降算法描述

设定 ϵ\epsilonϵ

初始化 x0=0,x0∈Rn,n=300x_0=0, x_0\in \mathbb{R}^n, n=300x0=0,x0Rn,n=300

FOR k = 0, 1, 2, …

  1. 选取下降方向 dk=g(xk)d_k=g(x_k)dk=g(xk)
  2. 选取步长 tkt_ktk,使得 f(xk+tkdk)<f(xk)f(x_k+t_kd_k)<f(x_k)f(xk+tkdk)<f(xk)
  3. 设置 xk+1=xk+tkdkx_{k+1}=x_k+t_kd_kxk+1=xk+tkdk
  4. IF ∥g(xk+1)∥≤ϵ\Vert g(x_{k+1}) \Vert \le \epsilong(xk+1)ϵ THEN STOP;

在算法循环的 2. 步长选取中,对于定步长的梯度下降来说,tkt_ktk 为一常量,即 tk=tˉt_k=\bar{t}tk=tˉ. 而对于采用回溯法的非精确线搜索来说,令步长的初值 tk=s,s>0t_k=s, s>0tk=s,s>0,更新步长 tk←βtk,β∈(0,1)t_k \gets \beta t_k, \beta \in (0,1)tkβtk,β(0,1),直到满足 f(xk)−f(xk+tkdk)≥−αtk∇f(xk)Tdk,α∈(0,1)f(x_k)-f(x_k+t_kd_k)\ge -\alpha t_k\nabla f(x_k)^Td_k, \alpha \in (0,1)f(xk)f(xk+tkdk)αtkf(xk)Tdk,α(0,1),可以证明,当 t∈[0,ϵ]t\in [0,\epsilon]t[0,ϵ],上述不等式总成立。

实验步骤

% 生成L
L=zeros(299,300);
for i=1:299L(i,i)=1;L(i,i+1)=-1;
end
function draw_pic(x,b,optimum,lambda,pic_title)
% 绘图函数
% 输入:
% x是不含噪声的源信号
% b是含有噪声的原信号
% optimum的每列是对原信号b降噪后的一个解
% lambda是选用的正则化惩罚因子
% pic_title是图片的标题
color_prism=colormap(prism);
plot(1:300,b,'LineWidth',1,'DisplayName','signal with noise',...'Color',color_prism(1,:));
hold on
plot(1:300,x,'LineWidth',0.7,'DisplayName','signal without noise',...'Color','b');
[~,sz]=size(optimum);
for j=1:szp=plot(1:300,optimum(:,j),'LineWidth',0.8,'DisplayName',...['denoised signal with \lambda=',num2str(lambda(j)),...', SSE=',num2str(norm(optimum(:,j)-x)^2)],...'Color',color_prism(2*j,:));p.Color(4)=0.5; % set transparent
end
hold off
xlim([0 300])
ylim([-0.5 3.5])
legend('Location','northwest')
title(pic_title)

最小二乘

lambda=[1 10 100 1000];
x_rls=[];
for l=lambdax_rls=[x_rls,(eye(300)+l*L'*L)\b];
end
draw_pic(x,b,x_rls,lambda,'RLS solutions')

定步长梯度下降

lambda=[0.5 5 50];
x0=zeros(300,1);
t=0.005;
eps=5;
x_constgd=[];
for l=lambdaf=@(x) x'*(eye(300)+l*L'*L)*x-2*b'*x+norm(b)^2;g=@(x) (eye(300)+l*L'*L)*x-b;[x_constgd_next,~]=...gradient_method_constant(f,g,x0,t,eps);x_constgd=[x_constgd,x_constgd_next];
end
draw_pic(x,b,x_constgd,lambda,[...'GMC solutions, t=',num2str(t),...'x_0=(0,0,\dots)',...' \epsilon=',num2str(eps)])
function [x,fun_val]=gradient_method_constant(f,g,x0,t,epsilon)
% Gradient method with constant stepsize
%
% INPUT
%=======================================
% f ......... objective function
% g ......... gradient of the objective function
% x0......... initial point
% t ......... constant stepsize
% epsilon ... tolerance parameter
% OUTPUT
%=======================================
% x ......... optimal solution (up to a tolerance)
% of min f(x)
% fun_val ... optimal function value
x=x0;
grad=g(x);
iter=0;
while (norm(grad)>epsilon)iter=iter+1;x=x-t*grad;fun_val=f(x);grad=g(x);fprintf('iter_number = %3d norm_grad = %2.6f fun_val = %2.6f \n',...iter,norm(grad),fun_val);
end

回溯法梯度下降

lambda=[0.1 5 50];
x0=zeros(300,1);
s=0.1;
alpha=0.5;
beta=0.3;
eps=0.7;
x_constgd=[];
for l=lambdaf=@(x) x'*(eye(300)+l*L'*L)*x-2*b'*x+norm(b)^2;g=@(x) (eye(300)+l*L'*L)*x-b;[x_constgd_next,~]=...gradient_method_backtracking(f,g,x0,s,alpha,beta,eps);x_constgd=[x_constgd,x_constgd_next];
end
draw_pic(x,b,x_constgd,lambda,[...'GMB solutions, s=',num2str(s),...' x_0=(0,0,...)',...' \alpha=',num2str(alpha),...' \beta=',num2str(beta),...' \epsilon=',num2str(eps)])
function [x,fun_val]=gradient_method_backtracking(f,g,x0,s,alpha,...
beta,epsilon)
% Gradient method with backtracking stepsize rule
%
% INPUT
%=======================================
% f ......... objective function
% g ......... gradient of the objective function
% x0......... initial point
% s ......... initial choice of stepsize
% alpha ..... tolerance parameter for the stepsize selection
% beta ...... the constant in which the stepsize is multiplied
% at each backtracking step (0<beta<1)
% epsilon ... tolerance parameter for stopping rule
% OUTPUT
%=======================================
% x ......... optimal solution (up to a tolerance)
% of min f(x)
% fun_val ... optimal function value
x=x0;
grad=g(x);
fun_val=f(x);
iter=0;
while (norm(grad)>epsilon)iter=iter+1;t=s;while (fun_val-f(x-t*grad)<alpha*t*norm(grad)^2)t=beta*t;endx=x-t*grad;fun_val=f(x);grad=g(x);fprintf('iter_number = %3d norm_grad = %2.6f fun_val = %2.6f \n',...iter,norm(grad),fun_val);
end

结果分析

对于降噪后结果的评估使用和方差(SSE),其计算公式为 SSE=∥x∗−x∥2SSE=\Vert x^*-x \Vert ^2SSE=xx2.

最小二乘(RLS)

在这里插入图片描述

在这里插入图片描述

结果表明,当 λ\lambdaλ 取值越大时,RLS的解变得越平滑。当 λ=1\lambda=1λ=1 时,RLS的解非常接近于有噪声的信号 bbb,不够平滑。当 λ=100\lambda=100λ=100 时,我们得到了一条更加平滑的RLS信号,但是,相较于 λ=10\lambda=10λ=10 的RLS结果来说,精确度更低,特别是在靠近边界的地方。RLS的解在 λ=1000\lambda=1000λ=1000 时变得非常平滑,但是也更加偏离真实信号。

定步长梯度下降(GMC)

x0=(0,0,…),tˉ=0.005,ϵ=5x_0=(0,0,\dots),\bar{t}=0.005,\epsilon=5x0=(0,0,),tˉ=0.005,ϵ=5

λ\lambdaλEpochs
0.5370
5370
50368

在这里插入图片描述

在这里插入图片描述

定步长梯度下降的精度整体偏低,其解严重偏离真实信号,特别是在波峰处。在实验时,发现定步长 tˉ\bar{t}tˉ 的选取不能过大,否则目标函数发散,函数值持续增长到正无穷,梯度下降偏离下降中心,相反,若 tˉ\bar{t}tˉ 选取过小,将导致收敛速度极慢。ϵ\epsilonϵ 选取过小,导致目标函数不收敛,ϵ\epsilonϵ 选取过大,将造成上述结果不精确到情况。

回溯法梯度下降(GMB)

x0=(0,0,…),s=0.1,α=0.5,β=0.3,ϵ=0.7x_0=(0,0,\dots),s=0.1, \alpha=0.5, \beta=0.3,\epsilon=0.7x0=(0,0,),s=0.1,α=0.5,β=0.3,ϵ=0.7

λ\lambdaλEpochs
0.137
541
50335

在这里插入图片描述

在这里插入图片描述

回溯法的梯度下降精确度较高。在 λ\lambdaλ 较小时,需要的迭代步数较少,随着 λ\lambdaλ 增大,迭代步数随之增加,但GMB曲线也更加平滑。

总结

本次试验对比了最小二乘、定步长梯度下降和回溯法的梯度下降法对添加高斯加性噪声的信号的降噪情况,通过添加正则项达到降噪的目的。最小二乘法的结果受惩罚系数 λ\lambdaλ 的影响较大,但当 λ\lambdaλ 选取合适时,将实现较好的降噪效果,得到比较光滑且接近原信号的RLS解;定步长梯度下降的降噪结果严重偏离真实信号,且对 tˉ\bar{t}tˉϵ\epsilonϵ 的选取要求较高,目标函数易发散。回溯法的梯度下降所得降噪的结果不仅精度高,而且可通过增大 λ\lambdaλ ,提高降噪效果,且不会使降噪后的信号严重偏离原信号。

原创文章!转载需注明来源:©️ Sylvan Ding’s Blog ❤️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双向 RNN

1.基本理论 双向 RNN 结合时间上从序列起点开始移动的 RNN 和另一个时间上从序列末尾开始移动的 RNN 2.逻辑图 其中 h (t) 代表通过时间向前移动的子 RNN 的状态&#xff0c;g (t) 代表通过时间向后移动的子 RNN 的状态 允许输出单元 o (t) 能够计算同时依赖于过去和未来且对时…

Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法

Hadoop伪分布式配置和搭建&#xff0c;hadoop单机安装&#xff0c;wordcount实例测试&#xff0c;hadoop安装java目录怎么找&#xff0c;问题及问题解决方法 环境说明 系统&#xff1a;ubuntu18.04 主机名&#xff1a;test1 用户名&#xff1a;sylvan hadoop单机安装 换源操作…

AI时代竟有智能化鸿沟,具备哪些条件才能跨过?

来源&#xff1a;CSDN移动互联网“早古”时期&#xff0c;普通人因为收入差距问题而无法做到人手一部智能手机&#xff0c;从而导致数字鸿沟。同样&#xff0c;在当前这个AI&#xff0c;也就是人工智能扮演越来越关键作用的时代&#xff0c;企业也站在了类似的抉择交接线上——…

[js] 渲染树构建、布局及绘制

渲染树构建、布局及绘制 转载于:https://www.cnblogs.com/iiiiiher/p/10065345.html

INTRODUCTION TO NONELINEAR OPTIMIZATION Excise 5.2 Freudenstein and Roth Test Function

Amir Beck’s INTRODUCTION TO NONELINEAR OPTIMIZATION Theory, Algorithms, and Applications with MATLAB Excise 5.2 INTRODUCTION TO NONELINEAR OPTIMIZATION Theory, Algorithms, and Applications with MATLAB. Amir Beck. 2014 本文主要涉及题目(ii)的MATLAB部分&…

石正丽/周鹏团队发表冠状病毒新研究,进一步证明新冠非实验室泄漏

来源&#xff1a;中国生物技术网 新冠病毒SARS-CoV-2造成了近一个世纪以来最具破坏性的大流行COVID-19&#xff0c;而其中尚未解决的科学问题之一是这种病毒的自然来源。近日&#xff0c;来自中科院武汉病毒所、中国科学院大学的研究人员在预印本网站BioRxiv上提交了一篇论文&…

L1正则化降噪,对偶函数的构造,求解含L1正则项的优化问题,梯度投影法

L1正则化降噪&#xff0c;对偶函数的构造&#xff0c;求解含L1正则项的优化问题&#xff0c;梯度投影法 本文主要实现L1正则化降噪&#xff0c;L2 正则化降噪的文章在&#xff1a; https://blog.csdn.net/IYXUAN/article/details/121565229 原创文章&#xff01;转载需注明来源…

HBase之Table.put客户端流程(续)

上篇博文中已经谈到&#xff0c;有两个流程没有讲到。一个是MetaTableAccessor.getRegionLocations&#xff0c;另外一个是ConnectionImplementation.cacheLocation。这一节&#xff0c;就让我们单独来介绍这两个流程。首先让我们来到MetaTableAccessor.getRegionLocations。1.…

普华永道:AI规模化应用,基础知识先行

来源&#xff1a;Forbes作者&#xff1a;Cindy Gordon编译&#xff1a;科技行者人工智能&#xff08;AI&#xff09;是正在改变很多行业的游戏规则。据统计&#xff0c;人工智能有望为2030年的全球经济贡献高达15.7万亿美元&#xff0c;比中国和印度目前的产出之和还要多。其中…

ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题

ADMM,ISTA,FISTA算法步骤详解&#xff0c;MATLAB代码&#xff0c;求解LASSO优化问题 原创文章&#xff01;转载需注明来源&#xff1a;©️ Sylvan Ding’s Blog ❤️ 实验目的 了解 ADMM, ISTA, FISTA 算法的基本原理、收敛性和复杂度&#xff1b;使用上述三种算法&#…

Spring详解(八)------事务管理

目录 1、事务介绍2、事务的四个特性&#xff08;ACID&#xff09;3、Spring 事务管理的核心接口4、 PlatformTransactionManager 事务管理器5、TransactionStatus 事务状态6、TransactionDefinition 基本事务属性的定义7、Spring 编程式事务和声明式事务的区别 8、不用事务…

A股光刻胶飙涨背后:仅一家可供应高端光刻胶

来源&#xff1a;芯师爷部分素材来源&#xff1a;前瞻产业研究院、华泰证券5月27日&#xff0c;半导体光刻胶概念股开盘即走强&#xff0c;截至收盘&#xff0c;A股光刻胶板块涨幅达6.48%。其中晶瑞股份、广信材料直线拉升大涨20%封涨停&#xff0c;容大感光大涨13.28%&#xf…

二〇二二注定是踔厉奋发、笃行不怠的一年

2021年&#xff0c;我在生活上、学习上、工作上都有着太多太多遗憾&#xff0c;很多想做的事、计划好的事并没有得到落实。但正如张宇老师所说&#xff0c;人生本来就是一段段幸福夹杂着不可避免的遗憾组成的&#xff0c;所取得的成绩远远大于遗憾&#xff0c;毕竟前途似海&…

为什么机器学习算法难以优化?一文详解算法优化内部机制

来源&#xff1a; 机器之心作者&#xff1a;JONAS DEGRAVE、IRA KORSHUNOVA编辑&#xff1a;小舟选自&#xff1a;engraved.blog损失线性组合是正确的选择吗&#xff1f;这篇文章或许能够给你答案。在机器学习中&#xff0c;损失的线性组合无处不在。虽然它们带有一些陷阱&…

论文作者串通抱团、威胁审稿人,ACM Fellow炮轰「同行评审」作弊

来源&#xff1a;机器之心编辑&#xff1a;陈萍、杜伟布朗大学计算机科学系教授、机器学习研究者、2018 年 ACM Fellow 迈克尔 利特曼&#xff08;Michael L. Littman&#xff09;在 ACM 通讯上发文斥责「部分学者正在威胁计算机科学研究的诚实性」。他在文章中指出了同行评审…

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程实践报告

JDG人脸识别课堂管理系统全栈开发流程报告-软件工程 ⭐️ 本报告的代码部分和程序设计参考了 计算机18-1班张宇哲&#xff08;学号181002406&#xff09;同学 在Gitee仓库发布的AI-Attendance&#xff0c;本文档基于软件工程的具体流程&#xff0c;从软件工程的角度细化的张同学…

浅谈贝叶斯统计

来源&#xff1a;京师统计团总支学生会编辑&#xff1a; ∑Gemini浅谈贝叶斯统计贝叶斯统计是英国学者托马斯贝叶斯在《论有关机遇问题的求解》中提出一种归纳推理的理论&#xff0c;后被一些统计学者发展为一种系统的统计推断方法&#xff0c;称为贝叶斯方法。本文旨在通过实际…

浅析虚拟语气 (Subjunctive mood)

浅析虚拟语气 (Subjunctive mood) 本文旨在通过一种时序逻辑上的联系&#xff0c;帮助读者更好的记忆和运用虚拟语气。文中提及的概念不一定正确&#xff0c;但一定程度上能辅助记忆&#xff0c;最终达到熟练运用的目的。&#xff08;有些语法不用刨根问底&#xff0c;都是约定…

数论重大突破:120年后,希尔伯特的第12个数学难题借助计算机获得解决

来源&#xff1a;机器之心编辑&#xff1a;nhyilin德国数学家大卫 希尔伯特&#xff08;David Hilbert&#xff09;是二十世纪最伟大的数学家之一&#xff0c;被后人称为「数学世界的亚历山大」。他对数学领域做出了广泛和重大的贡献&#xff0c;研究领域涉及代数不变式、代数…

Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列|实验、代码、分析、总结

Linux进程通信的四种方式——共享内存、信号量、无名管道、消息队列&#xff5c;实验、代码、分析、总结 每个进程各自有不同的用户地址空间&#xff0c;任何一个进程的全局变量在另一个进程中都看不到&#xff0c;所以进程之间要交换数据必须通过内核&#xff0c;在内核中开辟…