zoukankan      html  css  js  c++  java
  • 使用最大似然法来求解线性模型(3)-求解似然函数

    根据 使用最大似然法来求解线性模型(2)-为什么是最大化似然函数? 中提到,某个随机变量tn的 条件概率 服从均值为wT*xn,方差为σ2的正态分布。

    现在假设有N个样本点,它们的联合概率密度为:

    由于在给定了w和σ2的条件下,tn之间是相互独立的。即:在给定的 w,σ2的条件下,t1 t2 ...tn 之间是相互独立的(这就是朴素贝叶斯假设!)

    故联合概率密度可写成下式:

    为什么 tn在给定了w和σ2的条件下是相互独立的呢?如果直接从图形上看,不是相互独立的,各个tn之间大致是一个单调的线性下降关系。也即:t1<t2<...<tn

    这个单调下降的线性关系就是由 w 决定的(体现的)。

    在给定了w的条件下,每年的奥林匹克男子100m时间的年份之间就没有必然的联系了,就好像16年奥运会男子100m的时间 与 06 年奥林匹克男子100m的时间 是没有关系,相互独立的。

    但从整个历史趋势(1960-2020)来看,奥林匹克男子100m所花的时间是越来越少的。

    这里需要注意的是:t是条件独立的,即在给定的w条件下,各个t之间是相互独立的。上面的 L 就是似然函数。

    要想最大化L,相当于最大化logL,于是就有:

    其中,f(x;w)=w*x,代入上式,得到:

    让logL 对 w 求偏(将xn 、tn 和 δ 都视为常数),并令偏导数等于0,根据向量乘法:wT*xn = xnT * w。故得到:

    需要注意的是:上式Xn是一个向量XnT=[1,xn],表示的是年份,即哪一年的比赛数据,比如x10=1980。前面的1 是偏置项。

    因为:wT*xn=w0*1+w1*xn.  wT=(w0,w1)有两个参数,故需要一个bias unit(偏置项)

    为什么w有两个参数(w0,w1)呢?因为我们是用直线来拟合数据。根据直线的一般表达式方程 y=k*x+b,需要两个参数,一个是斜率k,另一个是截距b

    只要给定了斜率和截距,就能唯一确定一条直线了。而对于向量w,分量w0相当于截距,分量w1相当于斜率。

    tn是一个标量,表示的是第n个样本点代表的年份,比如t10=10.25 表示第10个样本点所表示的奥林匹克男子100m所花的时间是10.25秒。

    w是一个向量,即线性模型里面的模型参数。它们的具体形式如下(n 和 N 没有区别):

    把求和累加化简,根据矩阵乘法:(注意下面x一个是向量,一个是单个实数x。它们之间的关系:XnT=[1,xn])

    这样,我们就可以将偏导数表示成,更紧凑的矩阵乘法的形式,如下:

     

    并最终求得w,结果用wΛ 来表示:

    根据模型的概率密度函数:

    还需要求解σ2。同样地,logL对σ求偏导数,并令偏导数等于0,得到下面公式:

    (图中应该是 logL 而不是L)

    最终解得为σ2

    将求得的wΛ 代入到上式(具体推导见参考文献),得到:

    根据上面求解的w和δ2 的公式,现在只要给定若干个数据(训练样本X),就可以计算出w和δ2 ,从而求出了:

    知道了概率密度表达式中所有的参数:w和δ2 ,当然也就求得了概率密度:

    最终得出带有 ξn的能够估计 noise的“线性”模型。因为,此时我们的模型估计值tn是一个 随机变量了,随机变量的variance(各个点取值的偏差由δ2 决定)。

    参考文献:《A First Course of Machine Learning》

    原文:http://www.cnblogs.com/hapjin/p/6623795.html

  • 相关阅读:
    TestComplete 14 百度网盘下载
    appium 安装
    python 操作yaml文件
    Linux 性能检测常用的10个基本命令
    清除浮动的几种方式及优缺点总结
    css居中布局的几种方式
    css的优先级权重
    移动端1px的边框
    Nuxt.js入门学习
    vue-cli3 中console.log报错
  • 原文地址:https://www.cnblogs.com/hapjin/p/6623795.html
Copyright © 2011-2022 走看看