1. 程式人生 > >【習題集四】無監督學習和強化學習

【習題集四】無監督學習和強化學習

1. 監督學習的EM演算法 EM for Supervised Learning

我們曾推導過針對無監督學習的EM演算法,,其中,我們將p(x)表示為,其中z是隱含引數

下面我們將嘗試將EM演算法應用於監督學習模型,並討論“混合線性迴歸Mixture of Linear Regressors”模型,這是一種專業模型層次化混合Hierarchial Mixture of Expert Model的一個例項,其公式為.

為了簡化模型,我們將z設為一個二元變數,並認為p(y|x, z)服從高斯分佈,且p(y|x)可由logistic迴歸模型描述,因此我們有如下公式


其中σ是已知引數,我們希望求得n維向量φ、θ0、θ1,且θ的下標僅表示不同的引數向量,不表示不同的輸入。

直觀而言,這一過程可被理解為如下過程:給定一個數據點x,我們先根據logistic模型確定其隱含引數的分類,如z=0或z=1;在此基礎上認為y是x的線性函式並加上一些高斯誤差(不同的z對應不同的線性方程)。如下圖所示


(1)假設x、y、z都可被觀測到,即我們有訓練集{(x1, y1, z1), (x2, y2, z2), (xm, ym, zm)}。給出引數的最大對數似然方程,並給出φ、θ0、θ1的最大似然估計。注意到由於p(z|x)為logistic模型,故φ沒有一個閉式的精確解,因此我們可以通過給出其Hessian矩陣和對φ求導的結果。

解:對數似然函式為


將其對θ0求導,並令結果為0,我們有


但這只是資料集的子集中的最小平方誤差問題,事實上,如果我們令所有的z均為0,通過同樣的方法,我們可得到關於θ0的最大似然估計為


同理我們也可以獲得對θ1進行最大似然估計的結果。

將對數似然函式對φ求導,並忽略與φ無關的項,可得如下方程


這是一個典型的logistic迴歸方程,我們已知其導數和Hessian矩陣為


(2)現在假設z是一個隱含(不可見)的隨機變數,給出引數的對數似然函式,並推導求得對數似然函式最大值的EM演算法,主要應當明顯區分E步和M步(再次提醒,M步要求數值解,給出導數和Hessian矩陣即可)

解:對數似然函式為


在EM演算法中的E步我們將計算下式


在M步中,我們首先定義

對j=0或1均成立(但實際中我們只需計算一個即可,如計算w0,此時w1=1-w0)。將我們的對數似然函式的下界對θ0求導,移去無關項,並將表示式的結果設為0,可得下式為


這是一個典型的加權最小平方問題,其解為


對θ1的求導過程也是相似的。

為了給出對φ的導數和Hessian矩陣,我們注意到


此時導數和Hessian矩陣可表示為


2. 因子分析和主成分分析 Factor Analysis and PCA

設z為一個k維向量,其為一個隱含引數,且分佈(x, z)滿足


其中U是一個n*k的模型引數矩陣,σ是一個已知的常量。這一模型常被稱為概率主成分分析模型Probabilitic PCA。注意到這跟因子分析模型很像,只是我們假設x|z的方差是一個已知的矩陣,而不是簡單的對角引數矩陣Φ,並且我們沒有對均值項增加噪聲μ(儘管這只是為了簡化表示)。在這一模型中,如果我們令σ為0,則其就是我們討論的PCA模型。

為了簡化問題,我們認為在之後的討論中k=1,即U是一個n維的列向量。

(1)使用控制高斯分佈Manipulating Gaussian Distribution確定(x, z)的聯合分佈和條件分佈z|x。【提示:對於條件分佈,使用習題集一中給出的(λI+BA)^-1*B=B*(λI+AB)^-1可以簡化運算】

解:為了計算聯合分佈,我們計算x和z的均值和方差,我們已知E[z]=0,並有


由於x和z的均值都為0,因此我們有


因此,x和z的聯合分佈為


使用條件概率分佈的相關定理,z|x的均值和方差為


(2)推導針對上述模型的EM演算法,並明確給出E步和M步。

解:注意:儘管z(i)是一個標量,為了保持和因子分析演算法的一致,我們依然使用它的轉置符號。

在E步中,我們首先計算

在M步中,我們需要將下式最大化


將上式對U求導,移除無關項,為


令上式結果為0,則有


(3)當σ趨近於0時,證明如果EM演算法趨向於引數向量U*,則U*必為矩陣的特徵向量,即滿足【提示:當σ趨向於0時,Σz|x也趨向於0,所以E步只需計算μz|x即可,令m維向量w包含所有均值,即wi=μz(i)|x(i),並證明E步和M步可表示為.最後證明如果U在更新後值沒有發生變化,則其一定為特徵向量】

解:在E步中,當σ趨向於0時,,因此我們可將w定義為

並由提示可知,當σ趨向於0時,我們有


當U不再改變時,我們有


3. 對於自然影象的PCA和ICA PCA and ICA for Natural Images

在這一問題中我們將使用PCA和ICA處理關於自然的影象(如花草樹木等)。這是ICA演算法的一個經典應用,並可帶來很多的啟發。我們需要編寫兩個函式ica.m和pca.m分別實現兩種演算法,實現pca可直接將演算法表現出來即可,而實現ica則需要一些小技巧,如下:

①選擇好的學習步長很重要,我們建議的學習步長為α=0.0005

②對ICA演算法來說批處理梯度下降法Batch Gradient Descent演算法表現並不好,因為不能證明ICA的函式是凸函式,而且純正的隨機梯度下降法處理速度很慢。因此,我們混合的使用這兩種演算法可以達到較好的效果,我們可一次處理a個數據(a=100對我們來說就足夠了),然後更新W

③在進行隨機梯度下降之前可以隨機的改變資料的順序

④將Matlab程式碼儘量用向量表示

解:程式碼如下


4. 政策迭代演算法的收斂 Convergence of Policy Iteration

首先我們定義Bπ表示對政策π的貝爾曼運算元Bellman Operator,具體的定義如下

如果V` = B(V),則

(1)證明如果對於資料集S中的所有s,V1(s)<V2(s)成立,則B(V1)(s)<B(V2)(s)成立

解:當Psπ(s)(s`)≥0時,可證


(2)證明對於任意V有,其中直觀而言,這意味著對任意V應用Bellman運算元Bπ,會使值函式V更接近於政策π下的Vπ,這也意味著有限重複的使用Bπ(如Bπ(Bπ(V)...))將獲得Vπ

【提示:注意到對於任意α,有

解:使用提示中的不等式,我們有


(3)假設我們有一些政策π,通過得到新的政策π`,證明新的政策不會比之前的政策表現的更糟。【提示:首先我們證明Vπ(s)≤Bπ`(Vπ)(s),然後證明Bπ`(Vπ)(s)≤Vπ`(s)】

解:

使用第一小問中的結論

並重復使用小問(2)中的結論,我們有

(4)由於政策迭代演算法中的政策必然收斂,我們希望證明其必定收斂於最優政策π*。我們可以使用下式:

當V=V*時,有

解:在(3)問中,我們證明了政策函式是單調遞增的,當我們的迭代不再更新時,即π`=π時,便有


5. 強化學習:山中的車 Reinforcement Learning: The Mountain Car

在這一問中我們將使用Q學習(Q-Learning)強化學習演算法解決山中的車問題。這一問題模擬了一輛車希望翻過一個山坡的過程,如下圖所示


除了山頂所有點的回報函式R(s)=-1,山頂的回報函式R(s)=0,因此一個較好的演算法希望儘快到達山頂,但是當車啟動時,其並沒有足夠的能量一下子到達山頂,所以它會先向反方向開積攢一些勢能,然後才能開到山頂。

Q學習演算法維護一個Q值表,對每一個狀態和動作有一個值Q(s, a),我們只需選擇最大的Q值即可做出決策,即選擇動作a滿足

Q學習演算法通過下式計算Q值

在每一次,我們使用貪心演算法求得π(s)=argmax Q(s, a)

我們希望你能給出一個Matlab實現的程式碼[q, step_per_episode] = qlearning(episode)

解:程式編寫如下



// 這裡是分割線~

// 順便給自己的公眾號打個廣告,希望大家多多關注哦~

// 關注我的公眾號可以看到很多有意思的東西哦~