1
本文作者: 大牛講堂 | 2016-08-22 19:35 |
雷鋒網(wǎng)按:本文作者都大龍,2011年7月畢業(yè)于中科院計算技術研究所;曾任百度深度學習研究院(IDL)資深研發(fā)工程師,并連續(xù)兩次獲得百度最高獎—百萬美金大獎;現(xiàn)在Horizon Robotics負責自主服務機器人、智能家居以及玩具方向的算法研究與開發(fā),涉及深度學習、計算機視覺、人機交互、SLAM、機器人規(guī)劃控制等多個領域。
人工智能領域深度學習獨領風騷自2006 年Geoffery Hinton等在《科學》( Science) 雜志發(fā)表那篇著名的論文開始, 深度學習的熱潮從學術界席卷到了工業(yè)界。
從那天起,深度學習在工業(yè)界的應用就如火如荼,真正開始“深度”影響我們的生活。比如這個大牛同學,參與開發(fā)了國內(nèi)最早的基于CDNN的圖像識別技術,極大提升了計算機視覺相關線上應用的效果,還創(chuàng)新性的主導研發(fā)了基于CNN和BLSTM的OCR識別系統(tǒng),大幅提升了商用OCR系統(tǒng)的識別率,他的工作影響了包括你我在內(nèi)的千萬互聯(lián)網(wǎng)用戶。
人工智能的特征之一是學習的能力,即系統(tǒng)的性能是否會隨著經(jīng)驗數(shù)據(jù)的積累而不斷提升。我們認識到深度學習主要在以下三個方面具有巨大優(yōu)勢:
1.從統(tǒng)計和計算的角度看,深度學習特別適合處理大數(shù)據(jù)。在很多問題上,深度學習是目前我們能找到的最好方法。
2.深度學習不是一個黑箱系統(tǒng)。它提供一套豐富的、基于聯(lián)接主義的建模語言(建模框架)。利用這套語言系統(tǒng),我們可以表達數(shù)據(jù)內(nèi)在的豐富關系和結構,比如用卷積處理圖像中的二維空間結構, 用遞歸神經(jīng)網(wǎng)絡(Recurrent Neu-ral Network, RNN) 處理自然語言等數(shù)據(jù)中的時序結構。
3.深度學習幾乎是唯一的端到端機器學習系統(tǒng)。它直接作用于原始數(shù)據(jù),自動逐層進行特征學習,整個過程直接優(yōu)化某個目標函數(shù)。
關于Sequence Learning的技術分享現(xiàn)場實錄從2012 年的ImageNet競賽開始,深度學習首先在圖像識別領域發(fā)揮出巨大威力。隨著研究的深入,深度學習逐漸被應用到音頻、視頻以及自然語言理解領域。這些領域的特點是針對時序數(shù)據(jù)的建模,我們將其稱之為Sequence Learning。如何利用深度學習來進行端到端的學習,并摒棄基于人工規(guī)則的中間步驟,以提升Sequence Learning的效果已經(jīng)成為當前研究的熱點。
Sequence Learning 已經(jīng)成功應用到多個領域,比如語音識別、 Image Captain 、機器翻譯、 OCR 等,它們的共同特點是利用 DNN 或者 CNN 提取高級語義特征,利用 RNN 建模時序信息。在損失函數(shù)方面,除了常見的 logistic 損失外,還引入了結構化損失,比如 CTC 等序列對序列的損失等。
simple RNN的變體—LSTM
CTC結構化損失函數(shù)
在 Sequence Learning 中,我們認為 RNN 和 sequence 相關的結構化損失函數(shù)是當前時序?qū)W習取得巨大成功的重要組成部分。除了傳統(tǒng)的 simple RNN 外,出現(xiàn)了很多 RNN 變種,比如LSTM( Long Short Temporal Memory )、 GRU(Gated Recurrent Unit)等,已經(jīng)被廣泛的應用到時序?qū)W習的任務中,它們都具有特定的 Recurrent 結構,并且通過一系列 gate 開關自適應的建模長時的信息,都在一定程度上克服了 Simple RNN 優(yōu)化過程中的梯度消失或爆炸問題。CTC 作為一種結構化損失函數(shù),它沒有必要對序列數(shù)據(jù)進行分割,并且估計整體序列標注概率作為損失,已經(jīng)被廣泛應用到 OCR 、語音識別以及其他序列識別任務中。
在這里他就以 OCR 為例,介紹如何利用機器學習尤其是 Sequence Learning 技術對傳統(tǒng) OCR 技術進行改造升級。
大牛正在白板上講解RNN
光學字符識別的概念早在20世紀20年代便被提出,一直是模式識別領域研究中極具代表性的重要課題。
經(jīng)典的光學字符識別系統(tǒng)從輸入圖像到輸出最終的文字識別結果,歷經(jīng)版面分析、行分割、字分割、單字識別、語言模型解碼和后處理。涉及的技術分為基于經(jīng)驗制定的規(guī)則和基于統(tǒng)計學習的模型兩大類。前者包括系統(tǒng)預處理階段(版面分析、行分割、字分割)的二值化、連通域分析、投影分析等,以及后處理階段的規(guī)則噪聲過濾器;后者包括基于類方向梯度直方圖(Histogram of Oriented Gradient, HOG)特征的單字識別引擎和基于N-gram 的語言模型,用于單字識別和語言模型解碼階段。
在數(shù)據(jù)簡單、條件可控的情況下,經(jīng)典的光學字符識別技術架構通過細致的人工規(guī)則制定和適量的模型參數(shù)學習,便可以達到比較理想的識別精度。但在廣泛的自然場景中,文字呈現(xiàn)出的圖像信息復雜度顯著增大,而拍攝圖像的條件又得不到很好的控制,經(jīng)典的光學字符識別技術架構難以滿足實際應用的需求。究其原因,是這一技術架構的處理流程繁瑣冗長導致錯誤不斷傳遞,以及過分倚重人工規(guī)則并輕視大規(guī)模數(shù)據(jù)訓練。
針對復雜場景的特點和經(jīng)典技術框架的不足,利用機器學習尤其是 Sequence Learning 技術對光學字符識別的系統(tǒng)流程和技術框架進行了大幅改造。
在系統(tǒng)流程方面,摒棄傳統(tǒng)的二值化和連通域等基于規(guī)則的方法,引入基于學習的 Boosting 文字檢測概念,并和行分割合并成新的預處理模塊,任務是檢測圖像中包含文字的區(qū)域并生成相應文字行;將字分割和單字識別合并成新的整行識別模塊;基于 N-gram 的語言模型解碼模塊予以保留,但將主要依賴人工規(guī)則的版面分析和后處理模塊從系統(tǒng)中刪除。6 個步驟減少到3 個步驟,降低了誤差傳遞造成的不良影響。
此外, 由于整行文字識別是一個序列學習(Sequence Learning)問題,我們有針對性地研發(fā)出基于雙向長短期記憶神經(jīng)網(wǎng)絡(Bidirectional Long Short-term Memory, BLSTM)的遞歸神經(jīng)網(wǎng)絡序列模型學習算法,結合卷積神經(jīng)網(wǎng)絡模型提取出的圖像特征,不考慮每個字符出現(xiàn)的具體位置,只關注整個圖像序列對應的文字內(nèi)容,使得單字分割和單字識別問題融為一體, 最終實現(xiàn)深度學習理論追求的理想——端到端訓練。
這樣做能夠充分利用文字序列上下文關聯(lián)進行消歧,避免傳統(tǒng)方法中字符分割造成的不可逆轉的錯誤。這一序列學習模型極其擅長識別字分割比較困難的文字序列,甚至包括潦草的手寫電話號碼。此外,這一序列學習模型還使得訓練數(shù)據(jù)的標注難度大為降低,便于收集更大規(guī)模的訓練數(shù)據(jù)。不同語言(即便字詞、句子的長短結構迥異)光學字符識別問題也可以納入同一個技術框架內(nèi)統(tǒng)一解決,大幅降低系統(tǒng)維護成本。
作為深度學習以及 Sequence Learning 的實踐者,我們獲得許多頗具價值的經(jīng)驗和知識:
1. 豐富的圖像擾動是我們將關于圖像的先驗知識用于深度學習輸入端的有效手段。不同于許多其他數(shù)據(jù),圖像和視頻在時間、空間維度上具有良好的連續(xù)性和結構性,且包含大量冗余信息。無論使用平移和翻轉,還是旋轉、縮放、高斯和椒鹽噪音、錯切等圖像處理變換,都能夠產(chǎn)生大量有效的訓練數(shù)據(jù),增強深度學習模型的魯棒性。
2. RNN作為一種序列信息的建模語言能夠有效的建模序列內(nèi)部的依賴關系。RNN可以利用它內(nèi)部的記憶來處理任意時序的輸入序列,極大的降低了視頻處理、語音識別、語義理解中序列建模的難度。
3.結構化損失函數(shù)是我們將模型化知識用于深度學習輸出端的有效方式。采用人工模型對深度學習模型輸出進行后處理時,具有針對性的結構化損失函數(shù)往往能夠幫助深度學習過程更快地收斂到更加理想的狀態(tài)。
展望未來,基于深度學習的序列識別問題,可圍繞如下重點展開:
與卷積神經(jīng)網(wǎng)絡和遞歸神經(jīng)網(wǎng)絡相比,增強學習產(chǎn)出的模型能夠根據(jù)數(shù)據(jù)特點更靈活地產(chǎn)生輸入序列,并通過更加模糊的監(jiān)督方式進行模型訓練。這樣可以精簡模型的復雜度,提高預測速度,同時大幅降低訓練數(shù)據(jù)的標注難度,使得學習和預測過程不需要過多的人工參與,形式上更接近真正智能的學習模式。
作為一種抽象的概念,它模擬人的識別行為,并不只是利用序列當前時刻的狀態(tài)信息,而是在decode的過程中對之前的序列狀態(tài)信息進行自適應的建模加權,從而得以利用context的全部信息。
雷鋒網(wǎng)按:本文由大牛講堂授權雷鋒網(wǎng)發(fā)布,如需轉載請聯(lián)系原作者。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。