[ch03-01] 均方差损失函数

本文详细介绍了均方差损失函数在机器学习中的应用,特别是在线性回归中的作用。通过工作原理、实际案例和可视化手段,阐述了均方差损失函数如何衡量预测值与真实值的差距,并在优化过程中指导模型训练。
摘要由CSDN通过智能技术生成

系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI
点击star加星不要吝啬,星越多笔者越努力。

3.1 均方差函数

MSE - Mean Square Error。

该函数就是最直观的一个损失函数了,计算预测值和真实值之间的欧式距离。预测值和真实值越接近,两者的均方差就越小。

均方差函数常用于线性回归(linear regression),即函数拟合(function fitting)。公式如下:

\[ loss = {1 \over 2}(z-y)^2 \tag{单样本} \]

\[ J=\frac{1}{2m} \sum_{i=1}^m (z_i-y_i)^2 \tag{多样本} \]

3.1.1 工作原理

要想得到预测值a与真实值y的差距,最朴素的想法就是用\(Error=a_i-y_i\)

对于单个样本来说,这样做没问题,但是多个样本累计时,\(a_i-y_i\)有可能有正有负,误差求和时就会导致相互抵消,从而失去价值。所以有了绝对值差的想法,即\(Error=|a_i-y_i|\)。这看上去很简单,并且也很理想,那为什么还要引入均方差损失函数呢?两种损失

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
注释并解释以下代码:function [Image,Psnr]=WaveletDenoising(x,n,wname,image,a) %函数功能: % y=WaveletDenoising(x,n,wname) % 选择一副图像,加上不同程度的高斯噪声,对带噪图像进行小波分解, % 对小波系数进行阈值处理再利用处理后的结果重构原图像 %输入参数: % x----输入的噪声图像 % n----小波分解的层数 % wname----小波基函数 % a----折中系数 %输出参数: % Image----原图像去噪后重构的图像 % Sndz----峰值信噪比 [c,s]=wavedec2(x,n,wname); %进行3层小波分解 for i=1:3 %获取各层各高频分量在c向量中的坐标 if i==1 num(i,1)=s(i,1)*s(i,2)+1; num(i,2)=num(i,1)+s(i+1,1)s(i+1,2); num(i,3)=num(i,2)+s(i+1,1)s(i+1,2); step(i)=s(i+1,1)s(i+1,2); else num(i,1)=num(i-1,3)+s(i,1)s(i,2); num(i,2)=num(i,1)+s(i+1,1)s(i+1,2); num(i,3)=num(i,2)+s(i+1,1)s(i+1,2); step(i)=s(i+1,1)s(i+1,2); end end C=c; for j=1:101 b(j)=0.01(j-1); %折中系数取0到1中的两位小数进行比较 for i=1:3 [H,V,D]=detcoef2('a',c,s,i); %提取第i层各高频系数 B=[H V D]; [M,N]=size(B); for k=1:M for w=1:N sigma=median(abs(B(k,w)))/0.6745;%噪声方差 end end th=sigmasqrt(2log10(MN)); ch=c(1,num(4-i,1):num(4-i,2)+step(4-i)-1);%对各高频系数进行阈值处理 C(1,num(4-i,1):num(4-i,2)+step(4-i)-1)=ThresholdProcessing(ch,th,b(j));%阈值处理函数 cv=c(1,num(4-i,2):num(4-i,2)+step(4-i)-1); C(1,num(4-i,2):num(4-i,2)+step(4-i)-1)=ThresholdProcessing(cv,th,b(j)); cd=c(1,num(4-i,3):num(4-i,2)+step(4-i)-1); C(1,num(4-i,3):num(4-i,2)+step(4-i)-1)=ThresholdProcessing(cd,th,b(j)); end ReImage(:,:,j)=waverec2(C,s,wname);%重构图像 [a1,b1]=size(image);%计算峰值信噪比 sqr=double(image) - double(ReImage(:,:,j)); mse= sum(sum( sqr.^2 ))/(a1b1); PSNR(j)= 10log10( 255255 / mse ); end %返回输出值 a=a+1; [Ma,Mn]=max(PSNR); if a==0 Psnr=Ma; Image=ReImage(:,:,b(Mn)*100); else Image=ReImage(:,:,a); Psnr=PSNR(a); end end
06-06
这段代码实现了对一幅图像进行小波去噪的功能,具体实现方式如下: 1. 对输入图像进行n层小波分解,获取各层各高频分量在c向量中的坐标。 2. 对每个高频系数进行阈值处理,得到处理后的系数。 3. 对处理后的系数进行小波重构,得到去噪后的图像。 4. 计算去噪后的图像与原图像之间的峰值信噪比,并返回去噪后的图像和峰值信噪比。 函数的输入参数包括:输入的噪声图像x,小波分解的层数n,小波基函数wname,折中系数a。其中,折中系数a用于控制阈值处理的程度。 函数的输出参数包括:原图像去噪后重构的图像Image,峰值信噪比Psnr。 函数中主要的实现步骤包括: 1. 对输入的噪声图像进行3层小波分解,获取各层各高频分量在c向量中的坐标。 2. 在不同的折中系数下,对每个高频系数进行阈值处理,得到处理后的系数。 3. 对处理后的系数进行小波重构,得到去噪后的图像。 4. 计算去噪后的图像与原图像之间的峰值信噪比,并记录最佳的峰值信噪比和对应的去噪后的图像。 5. 返回最佳的峰值信噪比和对应的去噪后的图像。 需要注意的是,函数中使用了一些小波变换相关的函数,如wavedec2、detcoef2、waverec2等,还使用了阈值处理函数ThresholdProcessing。此外,函数中还对峰值信噪比进行了计算,这是对图像去噪效果的一种评价方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值