第二講:生成學習演算法
目前為止,我們講過的學習演算法的模型都是 ,也就是給定 x 下的 y 的條件分佈,以 為引數。例如,邏輯迴歸中就是以 作為 的模型,這裡的 g 是一個 S型函式(sigmoid function)。接下來,咱們要講一下一種不同型別的學習演算法。
設想有這樣一種分類問題,我們要學習基於一個動物的某個特徵來辨別它是大象 還是小狗 。給定一個訓練集,用邏輯迴歸或者基礎版的**感知器演算法(perceptron algorithm)**這樣的一個演算法能找到一條直線,作為區分開大象和小狗的邊界。接下來,要辨別一個新的動物是大象還是小狗,程式就要檢查這個新動物的值落到了劃分出來的哪個區域中,然後根據所落到的區域來給出預測。
還有另外一種方法。首先,觀察大象,然後我們針對大象的樣子來進行建模。然後,再觀察小狗,針對小狗的樣子另外建立一個模型。最後要判斷一種新動物歸屬哪一類,我們可以把新動物分別用大象和小狗的模型來進比對,看看新動物更接近哪個訓練集中已有的模型。
例如邏輯迴歸之類的直接試圖建立 的演算法,以及感知器演算法(perceptron algorithm)等直接用投圖(mappings directly)的思路來判斷對應 X 的值落到了 中哪個區域的演算法,這些都叫判別式學習演算法(discriminative learning algorithms)。和之前的這些判別式演算法不同,下面我們要講的新演算法是對 和 來進行建模。這類演算法叫做生成學習演算法(generative learning algorithms)。例如如果 y 是用來表示一個樣例是 小狗 或者 大象 ,那麼 就是對小狗特徵的分佈的建模,而 就是對大象特徵分佈的建模。
對 (叫做 class priors,先驗概率) 和 (叫做後驗概率)進行建模之後,我們的演算法就是用貝葉斯規則(Bayes rule)來推導對應給定的 x 的 y 的後驗分佈(posterior distribution):
這裡的**分母(denominator)**為: (這個等式關係可以根據概率的標準性質來推導驗證,譯者> 注:其實就是條件概率),這樣接下來就可以把它表示成我們熟悉的 和 的形式了。實際上如果我們計算 來進行預測,那就並不需要去計算這個分母,因為有下面的等式關係:
1 高斯判別分析(Gaussian discriminant analysis)
咱們要學的第一個生成學習演算法就是高斯判別分析(Gaussian discriminant analysis ,縮寫為GDA)在這個模型裡面,我們假設 是一個多元正態分佈。所以首先咱們簡單講一下多元正態分佈的一些特點,然後再繼續講 GDA 高斯判別分析模型。
1.1 多元正態分佈(multivariate normal distribution)
n維多元正態分佈,也叫做多變數高斯分佈,引數為一個均值 維向量 ,以及一個協方差矩陣 ,其中 是一個對稱(symmetric)的半正定(positive semi-definite)矩陣。當然也可以寫成" " 的分佈形式,密度(density)函式為:
在上面的等式中," "的意思是矩陣 的行列式(determinant)。對於一個在 分佈中的隨機變數 X ,其平均值(跟正態分佈裡面差不多,所以並不意外)就是 了:
隨機變數Z是一個有值的向量(vector-valued random variable),Z 的協方差(covariance)的定義是: 。這是對實數隨機變數的方差(variance)這一概念的泛化擴充套件。這個協方差還可以定義成