ML基本知識(七)極大似然(MLE)和極大後驗概率(MAP)

  • 極大似然估計

    首先說明的是,極大似然估計的理論是建立在數據{(x(1),y(1)),(x(2),y(2)),...,(x(N),y(N))}\{(x^{(1)}, y^{(1)}),(x^{(2)}, y^{(2)}), ..., (x^{(N)}, y^{(N)})\}是獨立同分布的基礎上的

    假如我們提取了一個數據集{(x(1),y(1)),(x(2),y(2)),...,(x(N),y(N))}\{(x^{(1)}, y^{(1)}),(x^{(2)}, y^{(2)}), ..., (x^{(N)}, y^{(N)})\}, 這些都是從聯合分佈P(X,Y)P(X,Y)中提取出來的,而現在無法把真實的聯合分佈計算出來,只能夠通過用現有的數據集儘量構造一個聯合分佈去逼近真實的聯合分佈,現在的問題就是如何去尋找這個聯合分佈的參數,而現在就有兩種觀點,一種觀點是要尋找的參數雖然是未知的,但是是確定的,而另一種觀點是這些參數也是隨機變量,不是確定的,只能大概率的去取一些值,而極大似然估計的基礎就是認爲這些參數是未知確定的,

    現在我們手中有了這些數據,這些數據的聯合分佈爲

    P([x(1),y(1);x(2),y(2);...,x(N),y(N)];θ) P([x^{(1)},y^{(1)};x^{(2)},y^{(2)};..., x^{(N)},y^{(N)} ];\theta )
    這個概率最後的;θ;\theta表示的是這個模型的參數爲θ\theta,參數是確定的,而由於數據是獨立同分布的,因而上述的聯合分佈會變爲如下式子,

    i=1NP(x(i),y(i);θ) \prod_{i=1}^{N}P(x^{(i)},y^{(i)};\theta )

    這時,雖然已經把最原始的問題變簡單了,但是還是無法得到聯合概率分佈,所以這裏有個比較流行的做法就是假設聯合分佈是一個比較普適的分佈,比如說高斯分佈或者伯努利分佈,因而基於這個假設我們就能夠得到聯合分佈了,那現在的問題就只有如何求解θ\theta了,現在假設θ\theta已知,而且我們假設的聯合分佈也已知,那麼我們就能夠得到精確的聯合分佈,而我們認爲j即便這些樣本點{x(i),y(i)}i=1N\{x^{(i)},y^{(i)}\}|^{N}_{i=1}已經從我們假設的聯合分佈中得到了,那麼這些數據的在假設的聯合分佈中的概率的乘積一定是最大的,因而通過如下公式,就可以找到取最大值時的θ\theta了,

    argmaxθi=1NP(x(i),y(i);θ) argmax_{\theta }\prod_{i=1}^{N}P(x^{(i)},y^{(i)};\theta )

    通過上述公式的計算得出的模型我們認爲最逼近真實模型,但是我個人覺得是有差距的,如果真實的數據並不服從我們假設的分佈類型,因而這樣做的結果就會有偏差,上述計算的方法就是我們所熟知的生成模型,因爲這是通過估計聯合概率分佈來逼近真實分佈的,

    而對於判別模型,是通過直接估計條件概率分佈即P(Y/X)P(Y/X)來進行計算的,即找到如下公式的最大值,同樣的,這裏的θ\theta爲一個確定的值,

    i=1NP(y(i)/x(i);θ) \prod_{i=1}^{N}P(y^{(i)}/x^{(i)};\theta )

    在這裏舉兩個例子,迴歸問題中的線性迴歸和分類問題中的邏輯斯蒂迴歸來解讀極大似然估計,

    • 線性迴歸

      線性迴歸到最後一步會尋找最小二乘誤差的最小值來找到最合適的θ\theta, 原因就是根據對數據進行了一個假設的分佈和極大似然得到的,原因如下,

      這裏假設目標值和輸入之間由如下關係,

      y(i)=θTx(i)+ϵ(i) y^{(i)}=\theta ^Tx^{(i)}+\epsilon ^{(i)}
      ϵ(i)\epsilon ^{(i)}是一個誤差項,假設這個誤差項服從$\epsilon ^{(i)} \sim N(0,\sigma ^2) $,即服從高斯分佈,因而有如下公式,

      p(ϵ(i))=12πσexp((ϵ(i))22σ2) p(\epsilon ^{(i)})=\frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(\epsilon ^{(i)})^2}{2\sigma ^2})
      這就意味着

      p(y(i)x(i);θ)=12πσexp((y(i)θTx(i))22σ2) p(y^{(i)}|x^{(i)};\theta )=\frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(y^{(i)}-\theta ^T x^{(i)})^2}{2\sigma ^2})
      而這時對於i=1NP(y(i)/x(i);θ)\prod_{i=1}^{N}P(y^{(i)}/x^{(i)};\theta ), 我們通過如下的式子來表示待求解函數,

      L(θ)=i=1NP(y(i)/x(i);θ) L(\theta)=\prod_{i=1}^{N}P(y^{(i)}/x^{(i)};\theta )
      =i=1N12πσexp((y(i)θTx(i))22σ2) = \prod_{i=1}^{N}\frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(y^{(i)}-\theta ^T x^{(i)})^2}{2\sigma ^2})
      而求解上述式子的最值又等同於求如下式子的最大值,即對數似然函數,

      l(θ)=log(L(θ)) l(\theta)=log(L(\theta))
      =logi=1N12πσexp((y(i)θTx(i))22σ2) =log\prod_{i=1}^{N}\frac{1}{\sqrt{2\pi}\sigma }exp(-\frac{(y^{(i)}-\theta ^T x^{(i)})^2}{2\sigma ^2})
      =m12πσ1σ212i=1N(y(i)θTx(i))2 =m \frac{1}{\sqrt{2\pi}\sigma }-\frac{1}{\sigma^2}\frac{1}{2}\sum_{i=1}^N(y^{(i)}-\theta ^T x^{(i)})^2

      求解上述式子的最大值等同於求解12i=1N(y(i)θTx(i))2\frac{1}{2}\sum_{i=1}^N(y^{(i)}-\theta ^T x^{(i)})^2的最小值,

      因而求解最小二乘誤差等同於求解極大似然估計,

    • 邏輯斯蒂迴歸

      邏輯斯蒂迴歸中,當求解完hθ(x(i))h_{\theta}(x^{(i)})後,即當xx確定下來後,待預測的yy的取值,我們假設其服從伯努利分佈,即有如下公式,

      p(yx;θ)=hθ(x)y(1hθ(x))1y p(y|x;\theta ) = h_{\theta }(x)^y(1-h_{\theta}(x))^{1-y}
      而之前的L(θ)L(\theta)爲如下公式,

      L(θ)=i=1NP(y(i)/x(i);θ) L(\theta)=\prod_{i=1}^{N}P(y^{(i)}/x^{(i)};\theta )
      =i=1Nhθ(x(i))y(i)(1hθ(x(i)))1y(i) = \prod_{i=1}^{N}h_{\theta }(x^{(i)})^{y{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}

      對數似然函數如下
      l(θ)=log(L(θ))=i=1Ny(i)loghθ(x(i))+(1y(i))log(1hθ(x(i))) l(\theta )=log(L(\theta ))=\sum_{i=1}^{N}y^{(i)}logh_{\theta }(x^{(i)})+(1-y^{(i)})log(1-h_{\theta }(x^{(i)}))

    可以從上述兩個例子看出,應用極大似然估計前一定要對分佈有一個假設,且樣本之間是服從獨立同分布的,

    說到底,極大似然估計到最後計算出來的是假設的那種分佈的參數θ\theta,在這個參數θ\theta的作用下所有的y(i)y^{(i)}對應的概率的乘積是最大的,那麼找到這個θ\theta之後,對應對應的x(i)x^{(i)}, 模型輸出hθ(x(i))h_{\theta}(x^{(i)})E(p(y/x(i);θ))E(p(y/x^{(i)};\theta)),比如在邏輯斯蒂迴歸中輸出的是hθ(x(i))=p(y=1/x(i);θ)=0p(y=0/x(i);θ)+1p(y=1/x(i);θ)h_{\theta}(x^{(i)})=p(y=1/x^{(i)};\theta)=0*p(y=0/x^{(i)};\theta)+1*p(y=1/x^{(i)};\theta),而在線性迴歸中輸出的是θTx(i)\theta^Tx^{(i)}(因爲yN(θTx(i),σ2)y\sim N(\theta^Tx^{(i)}, \sigma^2)),

  • 極大後驗概率估計

    之前極大似然估計中提到θ\theta是一個未知確定的參數,但是現在對於極大後驗概率估計來看,這個參數也是一個隨機變量,因而上述所有的式子都會變爲如下公式,

    L(θ)=i=1NP(y(i)/x(i),θ)p(θ) L(\theta)=\prod_{i=1}^{N}P(y^{(i)}/x^{(i)},\theta )p(\theta)
    L(θ)=i=1NP(x(i),y(i)/θ)p(θ) L(\theta)=\prod_{i=1}^{N}P(x^{(i)},y^{(i)}/\theta )p(\theta)

    但是這裏需要強調的是雖然θ\theta是一個隨機變量,當我們求解過程中,也要同樣假設其服從比較常規的分佈,比如高斯分佈或者拉普拉斯分佈,

    引入最大後驗概率的目的就是爲了防止參數的泛濫,因爲如果不對參數進行先驗分佈的假設,那麼參數的所有取值的概率都是相同的,因而很容易過擬合,而加入了最大後驗概率估計相當於添加了正則項,嶺迴歸中添加的正則項就是因爲假設參數服從高斯分佈,而lasso迴歸中的添加正則項因爲假設參數服從拉普拉斯分佈 而當我們的訓練數據越來越多,相當於自行限定了參數的搜索範圍,因爲就不用添加正則項,也就是說引入最大後驗概率已經沒有意義了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章