1. 程式人生 > >深度學習筆記——理論與推導之Structured Learning【Learning with Hidden Information】(九)

深度學習筆記——理論與推導之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用在哪?)

  1. Sentiment Analysis(情感分析):
    自動識別一個電影觀點是積極的還是消極的。
    這裡寫圖片描述

    它的Hidden Information是那些和電影觀點有關的document。
  2. Summarization(演講總結):
    在一個總結中,我們想通過摘取幾個重要的段落進行總結,然而在一個演講中,我們通常分不清段落的界限,因此段落的界限就成了hidden information
    這裡寫圖片描述
  3. Speech Recognition(語音識別):
    在語音識別的時候,音素/狀態和聲學特徵之間的排列是隱藏的。
    這裡寫圖片描述
  4. Machine Translation(機器翻譯):
    在機器翻譯的時候,句子對的詞對齊是隱藏的。
    這裡寫圖片描述

General Framework

Two Steps

Step1、Training:

  1. 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

  1. Problem 1:Evaluation:
    • F(x,y,h)長什麼樣呢?
    • Eg. F(x,y,h) = w · ψ(x,y,h)
  2. Problem 2:Inference:
    • 這裡寫圖片描述
    • 這裡寫圖片描述
  3. Problem 3:Training:
    • Given 這裡寫圖片描述
    • EM-like algorithm

Three Problems - Training

  1. 我們假定我們知道(x,h,y),這個Training對於我們來說不是一個問題,因為我們可以把h想成x的一部分或y的一部分,這時我們只要定義一個feature,那麼我們就可以用structure svm的方法來解這個問題。
  2. 假設我們知道F(x,y,h),也知道了x和y,那麼我們把h都帶進去,能夠使F(x,y,h)最大的值就是我們要的h。
  3. 上面的解法,我們發現第一個是從h –> F,第二個是從F –> h,那麼我們應該要initialize random F(x,y,h)。
    這裡寫圖片描述

Structured SVM with Hidden Information

Motivation(動機)

這裡寫圖片描述
下面兩個都是Haruhi,但一個是短髮,一個是長髮:
這裡寫圖片描述

Two Cases

兩個Case的介紹:

  1. 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
  1. 我們可以把w1和w2放在一起訓練,隱藏資訊是Haruhi是短髮還是長髮,ψ(x,y,h)表示的是x,y和h的feature vector,它的長度是Φ(x,y)的兩倍,w是w1和w2的兩倍:
    這裡寫圖片描述
  2. 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
解決方法:

  1. 如果我們今天已經知道了F,那麼我們直接把h帶入方程,看看誰的分數最高,就知道了什麼樣的h和(x,y)最匹配。
  2. 然而我們不知道w,這裡,我們可以random initialize一個w。
    這裡寫圖片描述
  3. 那麼我們這裡就帶入w0對4組training data做運算,找到type1和type2能讓以下式子最大。那麼這樣我們能得到好的值嗎?答案是不會的,因為w0是random的:
    這裡寫圖片描述
  4. 現在我們相當於給定了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
    這裡寫圖片描述
  5. 那我們接下來看看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)。

Structured SVM with Hidden Information

這裡寫圖片描述

To Learn More

這裡寫圖片描述