『RNN 監督序列標註』筆記-第一/二章 監督序列標註

『RNN 監督序列標註』筆記-第一/二章 監督序列標註

監督序列標註(Supervised Sequence Labeling)與傳統的監督模式分類(supervised pattern classification)的不同之處在與樣本點不能被當作是獨立的。

序列標註的特點

  • 輸入和標籤都具有強相關性。
  • 輸入與標籤的對應關係是未知的。

RNNs的優點與缺陷

優點

  • 上下文信息非常靈活(因爲它們能夠學習處哪些需要存儲以及哪些需要遺忘)。
  • 能夠支持各種形式的數據表達。
  • 即使序列存在扭曲失真也能進行識別。

標準 RNN的缺點

  • 使其存儲長期信息非常困難。
    Long Short-Term Memory (LSTM; Hochreiter and Schmidhuber, 1997) is a redesign of the RNN architecture around special ‘memory cell’ units.
  • 它只能夠單向學習上下文信息。(對於序列預測很有用,但是對於序列標註,往往利用上下午的雙向信息會更有效)
    Bidirectional LSTM (Graves and Schmidhuber, 2005b) combines the benefits of long-range memory and bidirectional processing.
  • 單維度序列。
    Multidimensional LSTM (Graves et al., 2007)
  • 訓練非常耗時。
    Hierarchical subsampling RNNs (Graves and Schmidhuber, 2009)

監督序列標註

  • 監督學習:用許多『輸入-標籤對』來進行訓練。
  • 增強學習:僅僅利用標量值訓練。
  • 無監督學習:沒有訓練信號。

模式分類 (Pattern Classification)

模式分類的對象是非序列數據,是序列數據的基礎。

概率分類(Probabilistic Classification)

判別函數法(Discriminant Functions)

分類器直接給出類別標籤,如:SVM。

概率分類法(Probabilistic Classification)

得出屬於每一類的概率,其中選取概率最大值對應的類別 h(x) :

h(x)=argmaxkp(Ck|x)
  • 概率值的大小可以用於觀察置信度的相對值。
  • 能夠與其它概率算法聯合使用。

訓練概率分類器

令訓練集爲S ,分類器參數爲ω ,輸入樣本爲x ,則有:

p(S|ω)=(x,z)Sp(zx,ω)

對於一個新輸入的樣本x後驗概率分佈爲:
p(Ckx,S)=ωp(Ckx,ω)p(ωS)dω

ω 的維度非常高,上述積分式求解十分困難。又由於:
p(Ckx,S)p(Ckx,ωMAP)

實際使用最大後驗(Maximum A Posteriori,MAP)估計來尋找ωMAP 進行預測:
ωMAP=argmaxωp(ωS)=argmaxωp(S|ω)p(ω)p(S)=argmaxωp(S|ω)p(ω)

p(ω) 一般被作爲正則化項(regularisation term),對於高斯分佈有 p(ω)|ω|2 ,因此 p(ω) 被作爲權重衰減項。而對於均勻分佈,這一項可以移除,由此可以得到極大似然估計(ML) 的參數向量 ωML

ωML=argmaxωp(S|ω)=argmaxω(x,z)Sp(zx,ω)

生成模型與判別模型

  • 判別模型:直接計算所屬類別後驗概率 p(Ck|x)
  • 生成模型:首先生成類別條件密度函數 p(xCk) ,再利用貝葉斯公式,以及類別先驗概率 p(Ck) ,來得到後驗概率:
    p(Ck|x)=p(xCk)p(Ck)p(x)

    其中
    p(x)=kp(xCk)p(Ck)

    之所以稱之爲生成,是因爲 p(x) 可以用於生成輸入數據。
  • 生成模型優於判別模型的地方在於:各個類別可以獨立訓練;
  • 而判別模型當遇到有新類別加入時就需要重新訓練。
  • 判別模型對於分類任務一般效果較好,因爲判別模型致力於尋找類別分界面。

序列標註

序列標註的目的在於針對輸入序列數據,根據給定的字母表,給出對應的標籤序列。

例如翻譯一段語音(語音識別)、理解一段視頻中的手勢(手勢識別)以及蛋白質亞結構的預測(並不一定是時間序列)。

序列標註的假設

  • 序列之間相互獨立且均勻分佈。
  • 輸出序列的長度不超過輸入序列。

序列標註的任務

  • S 是訓練集,滿足分佈 × ,其中每個元素是(x,z) ,粗體代表序列
  • 是輸入空間=(M) ,對應輸入樣本爲M 個實數向量。
  • =L 是輸出空間,對應輸出目標序列z=(z1,z2,,zU) ,其中有
    |z|=U|x|=T

    不論輸入序列是否是時間序列,序列中的每個離散點都被作爲時間步。序列標註的任務可以概括爲:

使用S 訓練出一個序列標註算法 h: 將測試集S× 進行儘可能精確地標記。

三種序列標註任務

按整合程度依次遞增分別爲:

時序(Temporal)分類 -> 時間段(Segment)分類 -> 序列(Sequence)分類

  • 序列分類:每個序列對應一個類。
  • 時間段分類:每個時間段對應一類。
  • 時序分類:運行各種輸入和輸出序列的對齊方式。

序列(Sequence)分類

序列分類相當於輸出(標籤)序列被限制爲長度爲1。這樣每個輸入序列都對應於一個單一的類別。其關鍵特徵在於:

整個序列可以在分類之前就進行處理。

如果輸入序列的長度固定或者使用 padding 的手段,輸入序列就能以輸入向量的形式,應用各種機器學習方法進行分類了,如 CNNs 和 SVM。即使輸入長度已經固定,序列化的算法也能夠更好地適應輸入數據。

序列錯誤率可以定義爲:

Eseq(h,S)=100S(x,z)S{0ifh(x)=z1otherwise

時間段(Segment)分類

時間段分類的輸入時間段與輸出時間段的對應關係式已知的。

其關鍵特點在於過去側時間段的上下文信息能夠被有效利用。

上下文能起到相當重要的作用。如圖所示


這裏寫圖片描述

整體上看,這個單詞顯然是『defence』,然而但看中間這段,字母『n』卻是模糊不清的。標準的模式識別算法,每次只能處理一個輸入。一種變通辦法是,將一段時間的數據做成時間窗,然後以時間窗爲單位進行輸入,然而問題在於時間窗的長度不僅使未知的,而且也是隨着時間段而改變的。相應地,

時間段錯誤率可以定義爲:

Eseg(h,S)=100Z(x,z)SHD(h(x),z)

其中
Z=(x,z)Sz

HD(p,q) 是 兩個長度相同序列pq 之間的 hamming 距離。

時序(Temporal)分類

時序分類是最一般的情況,唯一的限制在於標籤序列的長度必須小於等於輸入序列的長度,甚至也可以是空。

時序分類與時間段分類最大的區別在於,時序分類算法需要決定在序列的什麼未知作出分類判斷。

由於判斷的邊界未知,因此之前定義錯誤率的方式並不適用。
我們定義從pq 最少要插入、刪除、替換的數量爲編輯距離ED(p,q)

標籤錯誤率可以定義爲:

Elab(h,S)=100Z(x,z)SED(h(x),z)

注意這個錯誤率並不是真正的百分比,而可能會大於100。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章