所在位置: 前沿科技首頁 > 最新文章 > 人工智能  > 正文

智能化應用場景如何實現
——談小數據機器學習開發路徑

2019-06-20 10:11:31 來源: 《前沿科學》 作者: 劉繼明 陳 純 劉軍徽

杭州初靈大數據院士工作站  劉繼明  陳 純  劉軍徽

近年來,機器學習(machine learning)方法在人工智能方面取得了矚目的成就。與普通解決方案不同的是,人工智能的解決方案通常包含三個部分:產品、數據和算法(架構)。也就是說,當涉及到人工智能領域的產品戰略時,除了產品戰略本身之外,還需要考慮到相關的算法和數據策略。目前,業界已經有足夠的產品戰略管理理論和關于深度神經網絡算法的研究,開源社區也提供了多種算法和體系結構,但在大多數情況下,收集數據比開發和應用算法要困難得多。

收集數據 成為中小型企業困擾

提到人工智能,往往離不開大數據。通過大數據技術,可以實現對海量數據的收集、處理與分析,挖掘出隱藏在數據中的特定規律,并基于該規律進行有效預測,從而實現智能化應用場景的需求。

互聯網時代信息技術的高速發展使收集大數據成為可能,也讓人工智能有了堅實的數據基礎,基于大數據的深度學習,近年來在人工智能領域取得的成績有目共睹。而隨著5G通信技術、物聯網等相關產業快速發展,萬物互聯所產生的數據信息將會加速增長,給人工智能行業帶來更多機會。

國外的谷歌、亞馬遜、微軟,國內的百度、阿里巴巴、騰訊等互聯網巨頭,都是大數據公司典型的代表。這些巨頭通過本身的互聯網業務覆蓋,擁有大量的數據,借助數據方面的先天優勢在人工智能領域處于領先地位。

但對于廣大中小型或初創公司而言,既沒有足夠的數據基礎,也無法承擔購買數據所需的大筆費用,所以,最簡單的方法是通過谷歌、百度等搜索引擎和數據下載,配合快速注釋工具或標記進行注釋。公開的數據信息內容源往往量小且時效性差,網絡爬蟲技術則可以獲取最為即時且規模龐大的互聯網數據信息內容。有時一些看似微不足道的數據在收集、整理、提取、分析之后也會具有相當價值,這對于市場分析、競品調研、用戶分析、商業決策是一個非常有效的方式。

但是在許多特定的應用場景下,尤其是當自身的數據樣本比較有限時,在公開的互聯網上采用即便是最有效的爬蟲技術,也是勉為其難的。在這種場景下,將如何構建人工智能驅動的產品和解決方案呢?

由于擁有大數據的公司寥寥無幾,基于大數據的深度學習顯然不是實現人工智能的唯一途徑。而基于小樣本數據的機器學習,則是適合廣大中小型或初創公司的路線。業內早已開始對小數據的機器學習進行各項研究,也取得了一定的成果。那么如何減少人工智能產品對數據的需求?基于小數據,視不同情況,通過機器學習的特定方法不失為有效途徑。

利用數據 滿足機器學習要求

對于自己所擁有的數據,我們要盡可能充分利用,尤其是增加數據點的數量(假設可以訪問一些付費或者半付費的可用數據資源,從單純的谷歌百度搜索到像ImageNet和知網這樣的數據庫),相關的方法有數據擴充和遷移學習等。

在數據量有限的情況下,可以通過一些特殊的隨機變換來進行數據擴充,即在不改變數據基本特征的前提下,將數據的其他信息進行隨機變化,從而生成更多可用于機器訓練的數據。

該項技術在圖像識別領域的應用就是一個很好的例子。比如通過對同一張圖片進行旋轉、翻轉、縮放、裁剪等操作,可以得到很多“不同”的圖片。這些圖片雖然人類一眼就能看出是同一張圖片的變種,似乎有數據重復的嫌疑,但對機器而言,這些都是不同的學習樣本,與萬千其他圖片一樣,同樣能很好滿足機器學習的要求。

基于大數據的深度學習往往需要耗費巨大的數據、計算資源,于是,人們想到機器學習是否可以做到像人類那樣繼承已有的知識,從而舉一反三更快掌握新的知識呢?比如在某個小數據領域相鄰的領域找到擁有大量數據的領域,當兩者之間的知識遷移成功,那么前者就不需要收集龐大的數據集了。遷移學習就是這樣一種提高機器學習效率的方法。

很少有人會隨機初始化權重,從頭開始訓練整個深度學習網絡。原因顯而易見:一是,我們很難擁有足夠大的數據集;二是,真實環境的各種數據集本質上與公開數據集并沒有多大的差異。因此,較為常見的一種做法是,先基于非常大的數據進行預訓練,再將模型用于實際的項目。

目前,自然語言處理領域遷移學習的典型案例是各種預訓練詞向量。這些詞向量基于大規模通用語料進行了訓練,已經學習到特定語言中詞語語義的分布式表示。當解決特定領域的下游任務時,只需要結合新的語料進行模型調優,就可以收到很好的效果。而如果想完全基于特定領域的語料進行訓練,雖然可能會取得更好的成績,但往往因語料的規模太小以至于無法學習到足夠的語言和語義特征。此時,遷移學習基本是唯一的選擇。

生成數據 完成深度學習架構重構

有目共睹的是,各行各業都有許多深度學習架構可以參考,從有助于生成數據的角度來重構目前的產品和解決方案架構,是行之有效的。相關的方法有靈活使用分類器、半監督學習和數據生成等。

當需要使用某類特定標記的數據時,現有數據的各類標記并不一定能夠直接匹配,怎么辦?我們可以采用遞歸分類的方法,將一個指定的問題分解成多個分類問題,從現有的數據集中獲取想要的數據。

舉個簡單的例子,比如某個交通相關的項目需要獲取行人的圖片集,但現有的圖片集中并沒有行人這一分類器,因此不能直接獲取。通過分析行人的圖片特征,我們可以使用多個分類器來獲取行人的圖片。首先,在現有的數據集上按照“是否有人”進行分類,獲取包含人的圖片集。然后,在包含人的圖片集上按照“是否有斑馬線”進行分類,這樣就可以獲取同時包含人與斑馬線的圖片集,大致就可以作為“行人”圖片集了。當然,這只是一種比較簡單的分類方法,其實還可以按照“有人”“步行”“馬路”等標準進行數據分類,以獲取到行人的圖片集。

在其他的應用場景中同樣可以使用以上方法。通過對已有的數據集應用多個不同的分類器,從而得到一組全新的數據集。分類的方法實際上并不是什么高深的技術手段,而是我們解決問題的一種思維方式。在實際項目中靈活切換思維方式,從不同的角度多嘗試,就更有可能解決遇到的問題。

監督學習是基于有標簽的訓練數據進行訓練的,而無監督學習的訓練數據是無標簽的。監督學習的成本往往比較高,現實中獲取大量有標記的數據比較困難,往往需要耗費大量人力、物力。

以常見的內容推薦系統為例,需要請用戶標注自己感興趣的內容,但絕大部分用戶不愿意花時間去標注。最后只能得到少量的已標記數據和大量的未標記數據,在這種情況下就可以采用半監督學習的方法?;谏倭恳褬擞洈祿柧毮P?,并使用該模型對大量未標記的數據進行分類標注,得到帶有大量偽標簽的數據,這些數據可應用于后續的深度學習。如果我們事先了解了數據的設置和分類方式,采用半監督學習就能夠以較低的學習成本獲得準確度較高的大數據集。

此外,在部分情況下,我們也可以通過數據生成來解決機器學習中面臨的數據不足的問題。數據生成的方法有很多種,其中比較常用的生成對抗網絡(Generative Adversarial Network,GAN)是一個非常強大的數據生成方法。GAN最早由Ian Goodfellow提出,由生成器和鑒別器兩個網絡組成,在整個框架中扮演不同的角色。生成器嘗試生成假數據,而鑒別器來判斷該數據究竟是樣本數據還是生成的假數據,通過這兩個網絡的不斷對抗,生成的數據會越來越接近樣本數據,最終得到的樣本經??梢砸约賮y真。

另一種數據生成方式方法是長短時記憶網絡(Long Short-Term Memory,LSTM)。LSTM模型可以通過一個大的序列數據集,如通過文本文檔來學習該語料庫的一般結構屬性,之后便可以根據新的輸入,生成能代表原始語料庫的新序列。這種方法可以應用在不同的領域,按照應用場景的需求生成大量的音樂、語音、代碼或者文檔等。

在生活中比較常見的一個應用場景,就是手機地圖APP里的明星語音導航,實際上明星并沒有真的錄制那么多提示語音,而是只需朗讀很少的詞語用于語音特征采集,之后導航軟件就能播放出幾乎接近真人發聲的導航提示。另外,還可以通過一些其他途徑來合成數據。比如,要是你熟悉游戲引擎,那么就可以通過編寫代碼,使用游戲引擎來合成數據,生成所需要的數據集。

自主學習 應對場景多重需求

除此之外,通過深入理解領域知識來構建自身需要更少數據的數字模型,也是當下人工智能場景應用研究的重要途徑。當然,這就需要對數據的需求與產品的體系結構之間進行權衡,更復雜的模型可能涉及到更多的產品開發工作。相關的方法有強化學習、單樣本學習及孿生神經網絡和模擬練習等。

人工智能在一些場景下,可以采用強化學習的方式自己完成訓練,而不需要任何外部數據樣本。強化學習主要基于行為主義理論,系統在環境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產生能獲得最大利益的習慣性行為。AlphaGo Zero就是一個強化學習的最佳案例之一。

2016年,谷歌DeepMind團隊打造的人工智能AlphaGo,動用了3000萬盤比賽作為其訓練數據,擊敗了傳奇圍棋選手李世石;2017年,新版的AlphaGo Zero僅用了490萬盤比賽數據,經過3天訓練,就以100∶0的比分在與舊版AlphaGO的比賽中大獲全勝。經過21天的自學,又打敗了AlphaGo的Master版本,成為歷史上最強的玩家。

AlphaGo Zero并沒有使用任何人類的圍棋經驗數據,而是采用自己和自己對弈的方式進行自我學習。系統從一個一無所知的神經網絡開始,結合強大的算法,在自我博弈中不斷調正、更新、預測行動,掌握游戲規則,迅速超過了人類的游戲水平。

在現實生活中某些人,你只要見過一兩次,到下次見面時就能夠順利地認出來,并不需要成千上萬張別人的照片來進行學習對比。雖然人工智能距離人類智能還有很大的距離,但是這種根據少量的數據樣本進行匹配判斷的方法,在人工智能領域其實也有著廣泛的應用。在某些情況下,我們是可以通過單樣本學習算法,僅僅從少量數據中學會對類似數據進行對比識別。

在人臉識別的應用場景中,經常會用到孿生神經網絡技術。孿生神經網絡由兩個相同的子網絡組成,兩個子網絡有相同的參數和權重。通過孿生神經網絡建立人臉檢測深度學習模型,并定義好檢測精度。該模型會將輸入模型中的人臉數據,與系統中已有的人臉數據,表示為兩個嵌入式矢量進行對比。當兩者之間的距離在精度范圍內時,可認為是同一個人,否則就是其他人。單樣本學習及孿生神經網絡對數據的需求本質上較少,屬于小數據應用的典型之一。

講到模擬練習,一個很典型的應用場景就是自動駕駛。我們知道,通常隨著駕駛里程數的增加,司機的駕駛水平也越來越好。司機掌握駕駛技巧的關鍵在于練習,基于人工智能的自動駕駛也是如此。但是,自動駕駛在技術成熟以前,因為各地法規限制,很難在真實環境中練習。而且真實場景練習也存在一些局限性。比如,雖然路況瞬息萬變,但道路本身基本不變,每次駕駛練習的場景無法多樣化;另外,因為受到現實車速的限制,使得駕駛所消耗的時間無法壓縮,這樣就很難進一步提高練習效率等。而采用模擬練習能很好地解決以上問題。

谷歌就是采用了這種方式對自動駕駛進行模擬練習的。每天2.5萬輛虛擬的自動駕駛汽車在模擬環境中行駛高達800萬英里,對功能進行測試、優化和升級。通過模擬各種行駛場景,幫助自動駕駛汽車在現實中取得更好的表現。模擬環境可以將單一的現實場景,變成無數次的練習和掌握技能的機會,從而更有效地提高自動駕駛的水平。

當然,建立高質量的模擬環境也是一項復雜工程,往往需要額外的人力物力投入。但應該看到,通過模擬環境下的練習,確實可以提供更高數量級的學習數據,在實際應用時可以權衡考慮是否能使用這種方法。

由此可見,對于一些標注樣本短缺的情況,我們仍然可以根據實際使用場景,設計出不同的方案來達到深度學習對于數據的要求。實際應用中初始數據的多少并不是至關重要的,關鍵還是在于我們如何能夠靈活地找到有效使用方法,提高數據利用價值,最終達到更好的應用效果。

(原文刊載于《前沿科學》2019年第2期)

責任編輯: 桂楷東
欧美 卡通 另类 偷拍