深度學習筆記——理論與推導之Structured Learning【Learning with Hidden Information】(九)
引言:
Different Kinds of Learning:
1. Supervised Learning:
Data:
2. Semi-supervised Learning
Data:
3. Unsupervised Learning
Data:
4. Hidden variable Learning
Data:
Example Applications for Hidden Variable Learning(Hidden Variable Learning用在哪?)
- Sentiment Analysis(情感分析):
自動識別一個電影觀點是積極的還是消極的。
它的Hidden Information是那些和電影觀點有關的document。 - Summarization(演講總結):
在一個總結中,我們想通過摘取幾個重要的段落進行總結,然而在一個演講中,我們通常分不清段落的界限,因此段落的界限就成了hidden information
- Speech Recognition(語音識別):
在語音識別的時候,音素/狀態和聲學特徵之間的排列是隱藏的。
- Machine Translation(機器翻譯):
在機器翻譯的時候,句子對的詞對齊是隱藏的。
General Framework
Two Steps
Step1、Training:
- Find function F:
- F:X × Y × H –> R
- F(x,y,h) 用來評估x,y和h的匹配度。
Step2、Inference(Testing): - Given object x
- 拿出一個能讓F(x,y,h)最大的h
- 拿出所有的h
Three Problems
- Problem 1:Evaluation:
- F(x,y,h)長什麼樣呢?
- Eg. F(x,y,h) = w · ψ(x,y,h)
- Problem 2:Inference:
- Problem 3:Training:
- Given
- EM-like algorithm
Three Problems - Training
- 我們假定我們知道(x,h,y),這個Training對於我們來說不是一個問題,因為我們可以把h想成x的一部分或y的一部分,這時我們只要定義一個feature,那麼我們就可以用structure svm的方法來解這個問題。
- 假設我們知道F(x,y,h),也知道了x和y,那麼我們把h都帶進去,能夠使F(x,y,h)最大的值就是我們要的h。
- 上面的解法,我們發現第一個是從h –> F,第二個是從F –> h,那麼我們應該要initialize random F(x,y,h)。
Structured SVM with Hidden Information
Motivation(動機)
下面兩個都是Haruhi,但一個是短髮,一個是長髮:
Two Cases
兩個Case的介紹:
- Case 1 :
- 有用的資訊在training data中是可見的,而在testing data中是被hidden的(知h求F)。
- 即假設我們的training data上是有label的,加入type之後,structured svm就可以處理了。
Case 2: - 有用資訊在training data和testing data中都是hidden的。(知F求h)
Case 1
Case1:Two kinds of Objects?
每一張圖片,我們不僅知道框框在哪(y),也知道了Haruhi是短髮還是長髮(label),所以我們可以將這個問題看成我們就是要detect兩種不同type(短髮,長髮)的Haruhi。
如果圖片是Haruhi_1時,我們就要用w1來處理,用w1和圖片的feature來做乘法,得到的F1(x,y)來做所有的事情。
那麼在Training的時候,我們就要讓正確y形成的F1(x,y)大於其他的y形成的F1(x,y),對於Haruhi_2也是一樣的,這裡用的是w2。
Case1:Problematic Inference
問題:
這裡有一個潛在問題:對於Haruhi_1我們有w1,對於Haruhi_2,我們有w2,只需要把每一個y帶進去,得到最大的F(x,y,h)的值就是最有可能的y值。然而在圖片輸入之初,我們不知道Haruhi是短髮還是長髮
解決方法:
那麼,我們假設圖片有可能是type1也有可能是type2,這裡將圖片帶入到w1和w2中:
但是,由於w1和w2可能是分開學習的,所以值可能差異很大,所以w1和w2應該聯合學習:
Case 1:Evaluation
- 我們可以把w1和w2放在一起訓練,隱藏資訊是Haruhi是短髮還是長髮,ψ(x,y,h)表示的是x,y和h的feature vector,它的長度是Φ(x,y)的兩倍,w是w1和w2的兩倍:
- F(x,y,h) = w · ψ(x,y,h)是以下模式,type1和type2(也就是0,決定Φ(x,y)是放在vector的上半部還是下半部)
Case 1:Inference
所以今天我們不僅要遍歷y,還要遍歷h:
Case 1:Training
一般的Structured SVM中,我們的Cost function是這麼做的:
同時我們也可以把margin(Δ)加進去
現在,當我們改變我們的evaluate function,我們便可以做以下變換:
舉個例子:
15. 我們計算Structured SVM的cost function是可以畫成這樣的:
16. 我們計算Structured SVM with Hidden Information,我們要遍歷所有的y和所有的h:
那麼,我們應該如何Training這個Cost Function呢?
17. 我們可以將綠框框裡的公式,轉成QP問題,也就是對任意一個y和任意一個h,我們都存在constraint,因此我們就可以用Cutting Plane Method方法。
Case 2
Case 2:Training with Hidden Information:
問題:
The useful information are usually hidden
解決方法:
- 如果我們今天已經知道了F,那麼我們直接把h帶入方程,看看誰的分數最高,就知道了什麼樣的h和(x,y)最匹配。
- 然而我們不知道w,這裡,我們可以random initialize一個w。
- 那麼我們這裡就帶入w0對4組training data做運算,找到type1和type2能讓以下式子最大。那麼這樣我們能得到好的值嗎?答案是不會的,因為w0是random的:
- 現在我們相當於給定了h,這樣就相當於解一個QP問題:
當你求解QP後,你就會得到一個w1,當然w1不一定是一個很準確的值,接下來,我們用w1重新計算h = argmax這個公式,然後得到一個新的h,接著我們就可以繼續我們的Training,新的w一定會比舊的w更好。
Summary
隨機初始w後,根據w和training data給我們的x和y head,我們可以找出最有可能的h值,根據h值我們可以解一個QP問題,這樣我們就可以獲取一個新的w,這樣我們就可以一直迴圈下去。
為什麼新的w會比舊的w更好呢:
複習一下Structured SVM:
我們之前說過,我們最小化的cost function會是margin的upper bound,如果你的error是用margin衡量的話,那麼就是minimize cost function的upper bound
- 那我們接下來看看C^n長什麼樣:
我們先看看max部分長什麼樣,我們先把max拿掉,我們發現這是一條斜線,因為Δ項是一個常數項。
那麼今天我們要求的max就是這樣的,我們發現不管我們的w怎麼變,我們得到的都是一個convex的形狀:
cost function的第一項是一個convex,第二項對於w而言就是一條斜線,所以兩項相減後又是一個convex:
所以cost function整體來說就是一個convex function
我們真正要minimize的是一個
我們知道每一個c^n都是convex,而w也是一個convex,那麼好多個convex加起來,就可以得到一個convex function,所以今天我們在做structure SVM時,我們就是在找一個convex function的最小值,這個對Structured SVM是比較容易的,和之前的DNN不一樣,在做DNN的時候,我們不知道function長什麼樣,但在做Structured SVM時,我們是找到function長什麼樣的,所以就算我們用的Gradient Descent的方法,我們還是可以找到global的minima,而不是local minima。Structured SVM很不同的一點就是他找到的minima就是global minima
現在我們要說的Structured SVM with Hidden Information:
每一次迭代中,我們也會讓cost function變小,這個cost function長這樣:
我們每走一步都會讓這個cost function變小,所以我們說新的w比舊的w更小。
這個cost function和我們之前在做SVM時有同樣好的性質,即如果今天inference是用窮舉所有的h和窮舉所有的y,那麼這個cost function依舊是error function的upper bound。
那麼這個cost function長什麼樣呢?
紅線部分:窮舉所有的h,(x^n,y^n head)給定的,我們找出紅線公式上配對出的結果最大。
黑色部分:窮舉所有的y和h的pair帶入公式。
綠色部分:窮舉所有的y帶入公式
那麼我們接下來可以得到:
(後面那項因為加上了減號,所以是一個concave)
所以我們今天,如果在svm中加入了hidden information,那麼像之前DNN那樣,可能找到local minima。
那我們如何找到minima呢?
Method 1. Gradient Descent
Method 2. Auxiliary Function:
- 給定一個weight w0,在w0這點找一個輔助函式(Auxiliary function)
- 這個A(w)要有以下特性:
- A(w0) = C^n(w0)
- Upper bound of C^n(w)
- Easy to be minimized
- 找到A(w)的最小值:w1
- 即:A(w1) < A(w0)
- 根據第二條A(w)特性,所以C^n(w1) < A(w1)
- 最後我們得到C^n(w1) < C^n(w0)
- 接下來,從w1開始,再找一個A(w),這樣,我們的w就可以讓C^n越來越小:
- 和Gradient Descent不同的就是,它不用調整learning rate,步伐多大,是由A(w)自動決定,最麻煩的是找A(w)。
在Structured SVM with Hidden Information中,如何找到A(w)呢?
我們可以找到concave function的upper bound,即在w0的切線,再將切線和convex相加,這條線就會使我們的A(w)。
為什麼呢?這條Function可以滿足A(w)的三個特徵
那麼這些和我們的迭代過程有什麼關係呢?
右邊其實就是左邊的一個過程:
所以在每次迭代後,我們得到的w值都能使cost function減小,只是有可能卡在local minima中
我們來舉個例子:
我們現在有兩個hidden information(h只有兩個可能),所以我們對這兩條線求切線,如果h = 1時得到最大值,那麼切線其實就是h=1的時候,h=2時同理。
- 所以我們在求argmax時,就是再求切線,我們的A(w)就是如下形式,接下來就是要minimizing A(w):
- 求A(w)可以用Gradient Descent,也可以用QP
所以我們今天在做QP時,就是在minimize這個A(w)。