梯度下降與EM演算法

2021-08-19 20:26:38 字數 1958 閱讀 1581

機器學習兩個重要的過程:學習得到模型和利用模型進行**。

下面主要總結對比下這兩個過程中用到的一些方法。

這類問題往往出現在求解模型,即引數學習的階段。

我們已經得到了模型的表示式,不過其中包含了一些未知引數。

我們需要求解引數,使模型在某種性質(目標函式)上最大或最小。

其中目標函式是對數似然函式。為了求目標函式取最大值時的theta。

有兩個關機鍵步驟,第乙個是對目標函式進行求導,第二個是另導數等於0,求解後直接得到最優theta。兩個步驟缺一不可。

對目標函式進行求導,利用導函式提供的梯度資訊,使引數往梯度下降最快的方向移動一小步,

來更新引數。為什麼不使用最大似然估計的方法來求解呢?

上面是邏輯回歸的目標函式,可以看出j(θ)容易進行求導,如下所示:

但是如果通過使偏導數等於0,來求θ是非常困難的。

首先hθ (xi)是關於所有θ

的函式,而且

h是邏輯回歸函式,

其次,每個等式中包含

m個hθ (xi)函式。因此只能利用梯度資訊,在解空間中進行探索。

和上面一樣,也是要求優化乙個目標函式。

不同的是,它只能得到目標函式,甚至連目標函式的導函式也求不出來。

如下面的高斯混合模型(gmm)的目標函式函式:

對上面的目標函式求導是非常困難的。

在比如下面的隱馬爾科夫模型(hmm)的目標函式:

都是不可以直接求導的,所以需要引入隱變數來簡化計算。

好處是:如果我們知道隱變數的值或者概率分布,那麼原目標函式可以進行高效的求解(比如可以用最大似然估計法求解)。

通常的步驟是先有引數的先驗值和訓練資料得到隱變數,再由隱變數和訓練資料來最大化目標函式,得到引數。

(個人認為,隱變數可以隨便引入,只要能夠使原目標函式可以高效求解就行。)

由先驗經驗初始化引數。然後每次選擇其中乙個引數進行優化,其它引數固定(認為是已知變數),如此進行迭代更新。

它和em的思想差不多,通過引入隱變數(固定的引數),來使得問題變得高效可解。

而引入的隱變數是通過上一次計算的引數得到的(只不過隱變數就等於部分引數本身而已),相當於引數資訊落後了一代而已。

k-means是先由引數和資料得到資料的分類標籤,再由資料和分類標籤來計算引數。

高斯混合模型中的em是先由引數和資料得到資料分類標籤的概率分布,再由資料和分類標籤分布來計算引數。

像k-means這樣求隱變數具體值的叫做hard-em,想gmm這樣求隱變數的概率分布的叫做soft-em。

摘抄自wikipedia中的expectation–maximization algorithm文章

詳細說明:

梯度下降演算法 梯度下降演算法為何叫梯度下降?

首先,我們知道乙個演算法的名字可以很好地去解釋乙個演算法,那麼梯度下降演算法是什麼呢?很明顯的,就是用梯度這個工具來解決問題的一種演算法。解決什麼問題呢?如何在乙個函式曲面的某一點,找到乙個函式值變化最大的方向。比如 我們站在山上的某一點,我們想要以最快的速度上山,但是我們的步子大小是一定的,那麼最...

梯度下降演算法 梯度下降演算法公式推導

場景假設 梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人被困在山上,需要從山上下來 找到山的最低點 但此時山上的濃霧很大,導致可視度很低 因此,下山的路徑就無法確定,必須利用自己周圍的資訊一步一步地找到下山的路。這個時候,便可利用梯度下降演算法來幫助自己下山。怎麼做呢,首先以...

梯度下降演算法

機器學習在這幾年得到快速發展,乙個很重要的原因是 large dataset 大規模資料 這節課就來介紹用機器學習演算法處理大規模資料的問題。關於資料的重要性,有一句話是這麼說的 it s not who has the bestalgorithmthat wins.it s who has the...