梯度下降与EM算法
機器學習兩個重要的過程:學習得到模型和利用模型進行預測。
下面主要總結(jié)對比下這兩個過程中用到的一些方法。
一,求解無約束的目標優(yōu)化問題
這類問題往往出現(xiàn)在求解模型,即參數(shù)學習的階段。
我們已經(jīng)得到了模型的表達式,不過其中包含了一些未知參數(shù)。
我們需要求解參數(shù),使模型在某種性質(zhì)(目標函數(shù))上最大或最小。
最大似然估計:
其中目標函數(shù)是對數(shù)似然函數(shù)。為了求目標函數(shù)取最大值時的theta。
有兩個關(guān)機鍵步驟,第一個是對目標函數(shù)進行求導,第二個是另導數(shù)等于0,求解后直接得到最優(yōu)theta。兩個步驟缺一不可。
梯度下降:
對目標函數(shù)進行求導,利用導函數(shù)提供的梯度信息,使參數(shù)往梯度下降最快的方向移動一小步,
來更新參數(shù)。為什么不使用最大似然估計的方法來求解呢?
上面是邏輯回歸的目標函數(shù),可以看出J(θ)容易進行求導,如下所示:
但是如果通過使偏導數(shù)等于0,來求θ是非常困難的。
首先hθ?(xi)是關(guān)于所有θ的函數(shù),而且h是邏輯回歸函數(shù),
其次,每個等式中包含m個hθ?(xi)函數(shù)。因此只能利用梯度信息,在解空間中進行探索。
EM算法:
和上面一樣,也是要求優(yōu)化一個目標函數(shù)。
不同的是,它只能得到目標函數(shù),甚至連目標函數(shù)的導函數(shù)也求不出來。
如下面的高斯混合模型(GMM)的目標函數(shù)函數(shù):
對上面的目標函數(shù)求導是非常困難的。
在比如下面的隱馬爾科夫模型(HMM)的目標函數(shù):
都是不可以直接求導的,所以需要引入隱變量來簡化計算。
好處是:如果我們知道隱變量的值或者概率分布,那么原目標函數(shù)可以進行高效的求解(比如可以用最大似然估計法求解)。
通常的步驟是先有參數(shù)的先驗值和訓練數(shù)據(jù)得到隱變量,再由隱變量和訓練數(shù)據(jù)來最大化目標函數(shù),得到參數(shù)。
(個人認為,隱變量可以隨便引入,只要能夠使原目標函數(shù)可以高效求解就行。)
坐標上升或下降(CoordinateAscent):
由先驗經(jīng)驗初始化參數(shù)。然后每次選擇其中一個參數(shù)進行優(yōu)化,其它參數(shù)固定(認為是已知變量),如此進行迭代更新。
它和EM的思想差不多,通過引入隱變量(固定的參數(shù)),來使得問題變得高效可解。
而引入的隱變量是通過上一次計算的參數(shù)得到的(只不過隱變量就等于部分參數(shù)本身而已),相當于參數(shù)信息落后了一代而已。
k-means和高斯混合模型(GMM)中的EM:
k-means是先由參數(shù)和數(shù)據(jù)得到數(shù)據(jù)的分類標簽,再由數(shù)據(jù)和分類標簽來計算參數(shù)。
高斯混合模型中的EM是先由參數(shù)和數(shù)據(jù)得到數(shù)據(jù)分類標簽的概率分布,再由數(shù)據(jù)和分類標簽分布來計算參數(shù)。
像k-means這樣求隱變量具體值的叫做hard-EM,想GMM這樣求隱變量的概率分布的叫做soft-EM。
EM算法收斂性證明:
摘抄自wikipedia中的Expectation–maximization algorithm文章詳細說明:
二,求解有約束的目標優(yōu)化問題
總結(jié)
- 上一篇: M式编程规范
- 下一篇: MediaCodec的使用和若干问题处理