天天看點

大牛講堂 | 深度學習Sequence Learning技術分享

雷鋒網按:本文作者都大龍,2011年7月畢業于中科院計算技術研究所;曾任百度深度學習研究院(idl)資深研發工程師,并連續兩次獲得百度最高獎—百萬美金大獎;現在horizon robotics負責自主服務機器人、智能家居以及玩具方向的算法研究與開發,涉及深度學習、計算機視覺、人機互動、slam、機器人規劃控制等多個領域。

人工智能領域深度學習獨領風騷自2006 年geoffery hinton等在《科學》( science) 雜志發表那篇著名的論文開始, 深度學習的熱潮從學術界席卷到了工業界。

從那天起,深度學習在工業界的應用就如火如荼,真正開始“深度”影響我們的生活。比如這個大牛同學,參與開發了國内最早的基于cdnn的圖像識别技術,極大提升了計算機視覺相關線上應用的效果,還創新性的主導研發了基于cnn和blstm的ocr識别系統,大幅提升了商用ocr系統的識别率,他的工作影響了包括你我在内的千萬網際網路使用者。

人工智能的特征之一是學習的能力,即系統的性能是否會随着經驗資料的積累而不斷提升。我們認識到深度學習主要在以下三個方面具有巨大優勢:

1.從統計和計算的角度看,深度學習特别适合處理大資料。在很多問題上,深度學習是目前我們能找到的最好方法。 2.深度學習不是一個黑箱系統。它提供一套豐富的、基于聯接主義的模組化語言(模組化架構)。利用這套語言系統,我們可以表達資料内在的豐富關系和結構,比如用卷積處理圖像中的二維空間結構, 用遞歸神經網絡(recurrent neu­ral network, rnn) 處理自然語言等資料中的時序結構。 3.深度學習幾乎是唯一的端到端機器學習系統。它直接作用于原始資料,自動逐層進行特征學習,整個過程直接優化某個目标函數。

關于sequence learning的技術分享現場實錄從2012 年的imagenet競賽開始,深度學習首先在圖像識别領域發揮出巨大威力。随着研究的深入,深度學習逐漸被應用到音頻、視訊以及自然語言了解領域。這些領域的特點是針對時序資料的模組化,我們将其稱之為sequence learning。如何利用深度學習來進行端到端的學習,并摒棄基于人工規則的中間步驟,以提升sequence learning的效果已經成為目前研究的熱點。

sequence learning 已經成功應用到多個領域,比如語音識别、 image captain 、機器翻譯、 ocr 等,它們的共同特點是利用 dnn 或者 cnn 提取進階語義特征,利用 rnn 模組化時序資訊。在損失函數方面,除了常見的 logistic 損失外,還引入了結構化損失,比如 ctc 等序列對序列的損失等。

大牛講堂 | 深度學習Sequence Learning技術分享

simple rnn的變體—lstm

大牛講堂 | 深度學習Sequence Learning技術分享

ctc結構化損失函數

在 sequence learning 中,我們認為 rnn 和 sequence 相關的結構化損失函數是目前時序學習取得巨大成功的重要組成部分。除了傳統的 simple rnn 外,出現了很多 rnn 變種,比如lstm( long short temporal memory )、 gru(gated recurrent unit)等,已經被廣泛的應用到時序學習的任務中,它們都具有特定的 recurrent 結構,并且通過一系列 gate 開關自适應的模組化長時的資訊,都在一定程度上克服了 simple rnn 優化過程中的梯度消失或爆炸問題。ctc 作為一種結構化損失函數,它沒有必要對序列資料進行分割,并且估計整體序列标注機率作為損失,已經被廣泛應用到 ocr 、語音識别以及其他序列識别任務中。

在這裡他就以 ocr 為例,介紹如何利用機器學習尤其是 sequence learning 技術對傳統 ocr 技術進行改造更新。

大牛講堂 | 深度學習Sequence Learning技術分享

大牛正在白闆上講解rnn

光學字元識别的概念早在20世紀20年代便被提出,一直是模式識别領域研究中極具代表性的重要課題。 經典的光學字元識别系統從輸入圖像到輸出最終的文字識别結果,曆經版面分析、行分割、字分割、單字識别、語言模型解碼和後處理。涉及的技術分為基于經驗制定的規則和基于統計學習的模型兩大類。前者包括系統預處理階段(版面分析、行分割、字分割)的二值化、連通域分析、投影分析等,以及後處理階段的規則噪聲過濾器;後者包括基于類方向梯度直方圖(histogram of oriented gradient, hog)特征的單字識别引擎和基于n-gram 的語言模型,用于單字識别和語言模型解碼階段。 在資料簡單、條件可控的情況下,經典的光學字元識别技術架構通過細緻的人工規則制定和适量的模型參數學習,便可以達到比較理想的識别精度。但在廣泛的自然場景中,文字呈現出的圖像資訊複雜度顯著增大,而拍攝圖像的條件又得不到很好的控制,經典的光學字元識别技術架構難以滿足實際應用的需求。究其原因,是這一技術架構的處理流程繁瑣冗長導緻錯誤不斷傳遞,以及過分倚重人工規則并輕視大規模資料訓練。

針對複雜場景的特點和經典技術架構的不足,利用機器學習尤其是 sequence learning 技術對光學字元識别的系統流程和技術架構進行了大幅改造。

大牛講堂 | 深度學習Sequence Learning技術分享

在系統流程方面,摒棄傳統的二值化和連通域等基于規則的方法,引入基于學習的 boosting 文字檢測概念,并和行分割合并成新的預處理子產品,任務是檢測圖像中包含文字的區域并生成相應文字行;将字分割和單字識别合并成新的整行識别子產品;基于 n-gram 的語言模型解碼子產品予以保留,但将主要依賴人工規則的版面分析和後處理子產品從系統中删除。6 個步驟減少到3 個步驟,降低了誤差傳遞造成的不良影響。

此外, 由于整行文字識别是一個序列學習(sequence learning)問題,我們有針對性地研發出基于雙向長短期記憶神經網絡(bidirectional long short-term memory, blstm)的遞歸神經網絡序列模型學習算法,結合卷積神經網絡模型提取出的圖像特征,不考慮每個字元出現的具體位置,隻關注整個圖像序列對應的文字内容,使得單字分割和單字識别問題融為一體, 最終實作深度學習理論追求的理想——端到端訓練。

大牛講堂 | 深度學習Sequence Learning技術分享
大牛講堂 | 深度學習Sequence Learning技術分享

這樣做能夠充分利用文字序列上下文關聯進行消歧,避免傳統方法中字元分割造成的不可逆轉的錯誤。這一序列學習模型極其擅長識别字分割比較困難的文字序列,甚至包括潦草的手寫電話号碼。此外,這一序列學習模型還使得訓練資料的标注難度大為降低,便于收集更大規模的訓練資料。不同語言(即便字詞、句子的長短結構迥異)光學字元識别問題也可以納入同一個技術架構内統一解決,大幅降低系統維護成本。

大牛講堂 | 深度學習Sequence Learning技術分享

作為深度學習以及 sequence learning 的實踐者,我們獲得許多頗具價值的經驗和知識:

1. 豐富的圖像擾動是我們将關于圖像的先驗知識用于深度學習輸入端的有效手段。不同于許多其他資料,圖像和視訊在時間、空間次元上具有良好的連續性和結構性,且包含大量備援資訊。無論使用平移和翻轉,還是旋轉、縮放、高斯和椒鹽噪音、錯切等圖像處理變換,都能夠産生大量有效的訓練資料,增強深度學習模型的魯棒性。 2. rnn作為一種序列資訊的模組化語言能夠有效的模組化序列内部的依賴關系。rnn可以利用它内部的記憶來處理任意時序的輸入序列,極大的降低了視訊處理、語音識别、語義了解中序列模組化的難度。 3.結構化損失函數是我們将模型化知識用于深度學習輸出端的有效方式。采用人工模型對深度學習模型輸出進行後處理時,具有針對性的結構化損失函數往往能夠幫助深度學習過程更快地收斂到更加理想的狀态。

展望未來,基于深度學習的序列識别問題,可圍繞如下重點展開:

與卷積神經網絡和遞歸神經網絡相比,增強學習産出的模型能夠根據資料特點更靈活地産生輸入序列,并通過更加模糊的監督方式進行模型訓練。這樣可以精簡模型的複雜度,提高預測速度,同時大幅降低訓練資料的标注難度,使得學習和預測過程不需要過多的人工參與,形式上更接近真正智能的學習模式。

作為一種抽象的概念,它模拟人的識别行為,并不隻是利用序列目前時刻的狀态資訊,而是在decode的過程中對之前的序列狀态資訊進行自适應的模組化權重,進而得以利用context的全部資訊。

本文作者:大牛講堂

繼續閱讀