zoukankan      html  css  js  c++  java
  • 信号处理——曲线拟合与分布拟合

    作者:桂。

    时间:2017-03-11  06:45:46

    链接:http://www.cnblogs.com/xingshansi/p/6533840.html 

    声明:欢迎转载,不过记得注明出处哦~


    前言

    数据拟合中,最常用的两个就是曲线拟合(curve fitting)与分布拟合(distribution fitting),不求面面俱到,只希望串出一个思路,篇目如下:

      1)曲线拟合、分布拟合,区别与联系

      2)生成给定分布随机数

      3)曲线拟合:

        单个曲线拟合:高斯曲线拉普拉斯/瑞利/对数正态 曲线 

        混合曲线:多直线的EM拟合

      4)分布拟合;

        单分布拟合:正态/拉普拉斯/对数高斯/瑞利 分布

        混合分布拟合:GMM(混合高斯)LMM(混合拉普拉斯)

    内容为自己的学习整理,其中借鉴他人的地方,最后一并给出链接。

    一、常用分布

    本文仅介绍几种自己日常使用的分布,并以Normal distribution为例交代推导过程及代码实现,其他可类推。

    关于以下几种分布随机数的产生方法,戳这里会略有一二,并附有对应的代码实现。

    以下四种分布的拟合推导、代码实现,参考这里

      A-瑞利分布(Rayleigh distribution)

    表达式:

    $f(x) = frac{x}{{{sigma ^2}}}{e^{ - frac{{{x^2}}}{{2{sigma ^2}}}}}$

    其中$sigma > 0$,

      B-正态分布(Normal distribution)

    表达式:

    $f(x) = frac{1}{{sqrt {2pi } sigma }}{e^{ - frac{{{{(x - mu )}^2}}}{{2{sigma ^2}}}}}$

      C-对数正态分布(Log-Normal distribution)

    表达式:

    $f(x) = frac{1}{{xsqrt {2pi } sigma }}{e^{ - frac{{{{(ln x - mu )}^2}}}{{2{sigma ^2}}}}}$

      D-拉普拉斯分布(Laplace distribution)

    $f(x) = frac{1}{{2b}}{e^{ - frac{{left| {x - mu } ight|}}{b}}}$

    具体细节,可点击如下链接:

    二、曲线拟合

      A-问题描述

    根据随机过程一文的分析可知,曲线拟合解决的问题是:确定函数+随机噪声,拟合出确定函数的表达式。

    给出示意图:

     曲线分布即针对信号A进行拟合。

      B-原理推导

    1-闲话小叙

    此处用到最小二乘拟合的方法,关于该方法此处简单提一下。

    假设有测量点{$x_1,y_1$}和{$x_2,y_2$},且x、y之间有线性关系,尽管测量存在误差,我们仍然可以近似得出:

    $left{ egin{array}{l}
    {x_1} + b{y_1} + c = 0\
    {x_2} + b{y_2} + c = 0
    end{array} ight.$

    这是二元二次方程,容易求解。现在问题是,测量点远大于2个,此处以5个为例:

     

    如果理想情况,我们任取两个方程,即可求解。现实情况是:测量不可避免地带来误差。每组的解都不同,如何解决求值问题?天文学家梅耶给的办法是:将方程分两组,分别叠加,这样就转化成了两个方程,进而求解,拉普拉斯也给出了类似的方法。

    但都没有跳出直接解方程的思路,是勒让德重新认识了该问题:从全局误差的角度,将线性方程组变成了正则方差组。剑锋一转,确定性问题立刻变为随机过程的统计问题。

    表达式重新定义:(其中${{varepsilon _i}}$为对应的误差)

    于是上面的问题便有了新的准则函数:

    针对J求解即可,常用的有矩阵求逆、准则函数求偏导的方式。

    更多的细节,可以参考:《数理统计学简史》第四章,陈希孺

    2-回归正题

    以高斯曲线拟合为例,利用最小二乘准则:

    分别对准则函数求偏导,得出参数估计。

    对应拟合结果图:

    本文主要分析拟合原理,对应的推导与代码,限于篇幅,拟在另一篇文章中给出。

    实际上,如果仅仅是应用,对于高斯分布、拉普拉斯分布等对称分布,可以利用:

      • 统计均值 = 分布的均值;
      • 统计数值的峰值 = 分布的峰值;

    这样一来,分布的拟合基本就剩一个参数,直接求解更加方便。

    三、分布拟合

      A-问题描述

    分布拟合解决的问题是:随机过程,拟合处随机过程的统计特性。

    分布拟合,即针对信号B进行拟合。注意:是信号B,而不是信号B的直方图(不过二者可以转化,另一篇文章将会给出二者的转化关系)。

      B-原理推导

    统计分布的拟合,此处给出的例子主要借助最大似然估计的方法。

    1-闲话小叙

    我们假设某随机过程具有遍历性(什么是遍历性?就像一周有7天,我们每天都经历,具体可参考另一篇博文),以下分析基于遍历性假设。

    先来看一张图,对随机信号进行统计拟合:

    最大似然估计(Maximum Likelihood Estimation,MLE),(对于概率密度估计,MLE只是方法之一,其他有基于histogram估计,kernel density estimation等等,具体可以google,关键词:histogram/probability density estimation/KDE等)

    补充:有朋友问到直方图如何与概率分布绘制在同一张图里,这涉及到:直方图归一化

    2-回归正题

    以正态分布为例,假设各观察变量服从独立同分布的假设,概率密度函数记为$f(x)$,对观测数据{$x_1, x_2, x_3,... x_N$},得到联合概率密度:

    $L = f({x_1})f({x_2})...f({x_N})$

    正态分布中,需要估计的参数有{$mu ,delta $};推而广之,假设概率密度函数$f(x)$的参数集合记为$ heta $,概率密度函数$f(x)$标准写法应为$f(x; heta)$,联合概率密度函数:

    $Lleft( heta   ight) = f({x_1}; heta )f({x_2}; heta )...f({x_N}; heta )$

    由于高斯分布中含有指数,通常对$Lleft( heta   ight)$进行取对数:

    $Jleft( heta   ight) = ln Lleft( heta   ight) = ln f({x_1}; heta ) + ln f({x_2}; heta ) + ... + ln f({x_N}; heta )$

    具体原理推导及代码实现,参考另一篇文章

     

    四、最大似然与最小二乘

     最大似然与最小二乘存在着内在的联系,此处论述纯粹是一家之言,严谨与否不予保证。(更多信息,可以参考:最小二乘、Ridge回归、Lasso回归与概率分布的关系

    给出数学模型(以多项式拟合为例,N次拟合,共M组样本点):

    最小二乘准则函数:

    最大似然准则:

    假设误差均服从(0,$delta^2$)的正态分布,则有似然函数:

    求对数之后,最大似然准则函数等价于:

    二者等价。

    五、曲线拟合与分布拟合

      A-工具箱使用

    MATLAB有cftool、dfittool两个指令,分别对应曲线拟合与分布拟合,可调用。

      B-二者转化关系

    曲线—>分布:可以借助给定曲线,生成满足指定分布的随机数,从而曲线拟合转化为分布拟合问题;

    分布—>曲线:参数估计法:单个模型拟合、混合模型拟合都属于此类,利用分布得到概率特性;  非参法:经典的有Parzen、Kn近邻等估计方式,本质上都是利用统计信息,或者说借助直方图,不再展开叙述。

  • 相关阅读:
    i++后的哈希码会变的原因
    Synchronized 锁的错误使用方式及如何解决
    线程的状态及状态之间的转换
    水满自溢「限流算法第四把法器:漏桶算法」- 第303篇
    Thread的Interrupt、isInterrupted、interrupted
    证明java本身是一个多线程
    强引用、软引用、弱引用、虚引用
    经典脏读,幻想读 不可重复读
    没有预热,不叫高并发「限流算法第三把法器:令牌桶算法」- 第302篇
    redisAPI
  • 原文地址:https://www.cnblogs.com/xingshansi/p/6533840.html
Copyright © 2011-2022 走看看