一. 增強學(xué)習(xí)/強化學(xué)習(xí)(Reinforcement Learning )
我們總是給定一個樣本x,然后給或者不給label y。之后對樣本進行擬合、分類、聚類或者降維等操作。然而對于很多序列決策或者控制問題,很難有這么規(guī)則的樣本。比如,四足機器人的控制問題,剛開始都不知道應(yīng)該讓其動那條腿,在移動過程中,也不知道怎么讓機器人自動找到合適的前進方向。另外如要設(shè)計一個下象棋的AI,每走一步實際上也是一個決策過程,雖然對于簡單的棋有A*的啟發(fā)式方法,但在局勢復(fù)雜時,仍然要讓機器向后面多考慮幾步后才能決定走哪一步比較好,因此需要更好的決策方法。
對于這種控制決策問題,有這么一種解決思路。我們設(shè)計一個回報函數(shù)(reward function),如果learning agent(如上面的四足機器人、象棋AI程序)在決定一步后,獲得了較好的結(jié)果,那么我們給agent一些回報(比如回報函數(shù)結(jié)果為正),得到較差的結(jié)果,那么回報函數(shù)為負(fù)。比如,四足機器人,如果他向前走了一步(接近目標(biāo)),那么回報函數(shù)為正,后退為負(fù)。如果我們能夠?qū)γ恳徊竭M行評價,得到相應(yīng)的回報函數(shù),那么就好辦了,我們只需要找到一條回報值最大的路徑(每步的回報之和最大),就認(rèn)為是最佳的路徑。
增強學(xué)習(xí)(Q-learning)要解決的是這樣的問題:一個能感知環(huán)境的自治agent,怎樣通過學(xué)習(xí)選擇能達到其目標(biāo)的最優(yōu)動作。agent的任務(wù)就是從這個非直接的,有延遲的回報中學(xué)習(xí),以便后續(xù)的動作產(chǎn)生最大的累積效應(yīng),Agent通過學(xué)習(xí)改進自身的性能并選擇行為。
所謂強化學(xué)習(xí)是指從環(huán)境狀態(tài)到行為映射的學(xué)習(xí),以使系統(tǒng)行為從環(huán)境中獲得的累積獎賞值最大。該方法不同與監(jiān)督學(xué)習(xí)技術(shù)那樣通過正例、反例來告知采取何種行為,而是通過試錯(trial-and-error)的方法來發(fā)現(xiàn)最優(yōu)行為策略。強化學(xué)習(xí)的目標(biāo)就是學(xué)習(xí)從環(huán)境狀態(tài)到行為的映射,使得智能體選擇的行為能夠獲得環(huán)境最大的獎賞,使得外部環(huán)境對學(xué)習(xí)系統(tǒng)在某種意義下的評價(或整個系統(tǒng)的運行性能)為最佳。
增強學(xué)習(xí)的目的就是求解馬爾可夫決策過程(MDP)的最優(yōu)策略,基本的解法有:動態(tài)規(guī)劃法,蒙特卡羅方法,時間差分法,Q學(xué)習(xí)。
增強學(xué)習(xí)在很多領(lǐng)域已經(jīng)獲得成功應(yīng)用,比如自動直升機,機器人控制,手機網(wǎng)絡(luò)路由,市場決策,工業(yè)控制,高效網(wǎng)頁索引等。
發(fā)展(AlphaGo結(jié)合了深度學(xué)習(xí)、強化學(xué)習(xí)和蒙特卡洛樹搜索這三種算法):
深度強化學(xué)習(xí)(DQN)是深度學(xué)習(xí)與強化學(xué)習(xí)的結(jié)合,就是用深度學(xué)習(xí)網(wǎng)絡(luò)自動學(xué)習(xí)動態(tài)場景的特征,然后通過強化學(xué)習(xí)學(xué)習(xí)對應(yīng)場景特征的決策動作序列。
二、增量學(xué)習(xí)(Incremental learning)
為什么需要增量學(xué)習(xí)算法?
1)數(shù)據(jù)庫中的數(shù)據(jù)是動態(tài)變化的
2)數(shù)據(jù)量(訓(xùn)練樣本)的變化引起重復(fù)學(xué)習(xí)
3)應(yīng)避免在海量數(shù)據(jù)的情況下重復(fù)學(xué)習(xí)
4)?只需修改因數(shù)據(jù)變化而涉及的規(guī)則
5)增量學(xué)習(xí)算法是數(shù)據(jù)挖掘算法走向?qū)嵱没年P(guān)鍵問題之一
增量式算法的重要性體現(xiàn)在2個方面:
1)在實際的數(shù)據(jù)庫中,數(shù)據(jù)量往往是逐漸增 加的,因此,在面臨新的數(shù)據(jù)時,學(xué)習(xí)方法應(yīng)能對訓(xùn)練好的系統(tǒng)進行某些改動,以對新數(shù)據(jù)中蘊涵的知識進行學(xué)習(xí)。
2) 對一個訓(xùn)練好的系統(tǒng)進行修改的時間代價通常低于重新訓(xùn)練一個系統(tǒng)所需的代價。
增量式算法:就是每當(dāng)新增數(shù)據(jù)時,并不需要重建所有的知識庫,而是在原有知識庫的基礎(chǔ)上,僅做由于新增數(shù)據(jù)所引起的更新,這更加符合人的思維原理。
對于傳統(tǒng)的批量學(xué)習(xí)技術(shù)來說,如何從日益增加的新數(shù)據(jù)中得到有用信息是一個難題。隨著數(shù)據(jù)規(guī)模的不斷增加,對時間和空間的需求也會迅速增加,最終會導(dǎo)致學(xué)習(xí)的速度趕不上數(shù)據(jù)更新的速度。機器學(xué)習(xí)是一個解決此問題的有效方法。然而傳統(tǒng)的機器學(xué)習(xí)是批量學(xué)習(xí)方式,需要在進行學(xué)習(xí)之前,準(zhǔn)備好所有的數(shù)據(jù)。為了能滿足在線學(xué)習(xí)的需求,需要拋棄以前的學(xué)習(xí)結(jié)果,重新訓(xùn)練和學(xué)習(xí),這對時間和空間的需求都很高,因此,迫切需要研究增量學(xué)習(xí)方法,可以漸進的進行知識更新,且能修正和加強以前的知識,使得更新后的知識能適應(yīng)新增加的數(shù)據(jù)。
與傳統(tǒng)的數(shù)據(jù)分類技術(shù)相比,增量學(xué)習(xí)分類技術(shù)具有顯著的優(yōu)越性,這主要表現(xiàn)在兩個方面:一方面由于其無需保存歷史數(shù)據(jù),從而減少存儲空間的占用;另一方面,由于其在新的訓(xùn)練中充分利用了歷史的訓(xùn)練結(jié)果,從而顯著地減少了后續(xù)訓(xùn)練的時間。增量學(xué)習(xí)技術(shù)(incremental learning technique)是一種得到廣泛應(yīng)用的智能化數(shù)據(jù)挖掘與知識發(fā)現(xiàn)技術(shù)。其思想是當(dāng)樣本逐步積累時,學(xué)習(xí)精度也要隨之提高。
增量學(xué)習(xí)(Incremental Learning)是指一個學(xué)習(xí)系統(tǒng)能不斷地從新樣本中學(xué)習(xí)新的知識,并能保存大部分以前已經(jīng)學(xué)習(xí)到的知識。增量學(xué)習(xí)非常類似于人類自身的學(xué)習(xí)模式。因為人在成長過程中,每天學(xué)習(xí)和接收新的事物,學(xué)習(xí)是逐步進行的,而且,對已經(jīng)學(xué)習(xí)到的知識,人類一般是不會遺忘的。
隨著人工智能和機器學(xué)習(xí)的發(fā)展,人們幵發(fā)了很多機器學(xué)習(xí)算法。這些算法大部分都是批量學(xué)習(xí)(Batch Learning)模式,即假設(shè)在訓(xùn)練之前所有訓(xùn)練樣本一次都可以得到,學(xué)習(xí)這些樣本之后,學(xué)習(xí)過程就終止了,不再學(xué)習(xí)新的知識。然而在實際應(yīng)用中,訓(xùn)練樣本通常不可能一次全部得到,而是隨著時間逐步得到的,并且樣本反映的信息也可能隨著時間產(chǎn)生了變化。如果新樣本到達后要重新學(xué)習(xí)全部數(shù)據(jù),需要消耗大量時間和空間,因此批量學(xué)習(xí)的算法不能滿足這種需求。只有增量學(xué)習(xí)算法可以漸進的進行知識更新,且能修正和加強以前的知識,使得更新后的知識能適應(yīng)新到達的數(shù)據(jù),而不必重新對全部數(shù)據(jù)進行學(xué)習(xí)。增量學(xué)習(xí)降低了對時間和空間的需求,更能滿足實際要求。
一個增量學(xué)習(xí)算法應(yīng)同時具有以下特點:
- 可以從新數(shù)據(jù)中學(xué)習(xí)新知識;
- 以前已經(jīng)處理過的數(shù)據(jù)不需要重復(fù)處理;
- 每次只有一個訓(xùn)練觀測樣本被看到和學(xué)習(xí);
- 學(xué)習(xí)新知識的同時能保存以前學(xué)習(xí)到的大部分知識;
- —旦學(xué)習(xí)完成后訓(xùn)練觀測樣本被丟棄;
- 學(xué)習(xí)系統(tǒng)沒有關(guān)于整個訓(xùn)練樣本的先驗知識;
三、遷移學(xué)習(xí)(Transfer Learning)
在傳統(tǒng)的機器學(xué)習(xí)的框架下,學(xué)習(xí)的任務(wù)就是在給定充分訓(xùn)練數(shù)據(jù)的基礎(chǔ)上來學(xué)習(xí)一個分類模型;然后利用這個學(xué)習(xí)到的模型來對測試文檔進行分類與預(yù)測。然而,我們看到機器學(xué)習(xí)算法在當(dāng)前的Web挖掘研究中存在著一個關(guān)鍵的問題:一些新出現(xiàn)的領(lǐng)域中的大量訓(xùn)練數(shù)據(jù)非常難得到。我們看到Web應(yīng)用領(lǐng)域的發(fā)展非??焖佟4罅啃碌念I(lǐng)域不斷涌現(xiàn),從傳統(tǒng)的新聞,到網(wǎng)頁,到圖片,再到博客、播客等等。傳統(tǒng)的機器學(xué)習(xí)需要對每個領(lǐng)域都標(biāo)定大量訓(xùn)練數(shù)據(jù),這將會耗費大量的人力與物力。而沒有大量的標(biāo)注數(shù)據(jù),會使得很多與學(xué)習(xí)相關(guān)研究與應(yīng)用無法開展。其次,傳統(tǒng)的機器學(xué)習(xí)假設(shè)訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)服從相同的數(shù)據(jù)分布。然而,在許多情況下,這種同分布假設(shè)并不滿足。通??赡馨l(fā)生的情況如訓(xùn)練數(shù)據(jù)過期。這往往需要我們?nèi)ブ匦聵?biāo)注大量的訓(xùn)練數(shù)據(jù)以滿足我們訓(xùn)練的需要,但標(biāo)注新數(shù)據(jù)是非常昂貴的,需要大量的人力與物力。從另外一個角度上看,如果我們有了大量的、在不同分布下的訓(xùn)練數(shù)據(jù),完全丟棄這些數(shù)據(jù)也是非常浪費的。如何合理的利用這些數(shù)據(jù)就是遷移學(xué)習(xí)主要解決的問題。遷移學(xué)習(xí)可以從現(xiàn)有的數(shù)據(jù)中遷移知識,用來幫助將來的學(xué)習(xí)。遷移學(xué)習(xí)(Transfer Learning)的目標(biāo)就是將從一個環(huán)境中學(xué)到的知識用來幫助新環(huán)境中的學(xué)習(xí)任務(wù)。因此,遷移學(xué)習(xí)不會像傳統(tǒng)機器學(xué)習(xí)那樣作同分布假設(shè)。舉一個通俗的例子,一個會下象棋的人可以更容易的學(xué)會下圍棋;一個認(rèn)識桌子的人可以更加容易的認(rèn)識椅子;
在遷移學(xué)習(xí)方面的工作目前可以分為以下三個部分:同構(gòu)空間下基于實例的遷移學(xué)習(xí),同構(gòu)空間下基于特征的遷移學(xué)習(xí)與異構(gòu)空間下的遷移學(xué)習(xí)?;趯嵗倪w移學(xué)習(xí)有更強的知識遷移能力,基于特征的遷移學(xué)習(xí)具有更廣泛的知識遷移能力,而異構(gòu)空間的遷移具有廣泛的學(xué)習(xí)與擴展能力。
遷移學(xué)習(xí)即一種學(xué)習(xí)對另一種學(xué)習(xí)的影響,它廣泛地存在于知識、技能、態(tài)度和行為規(guī)范的學(xué)習(xí)中。任何一種學(xué)習(xí)都要受到學(xué)習(xí)者已有知識經(jīng)驗、技能、態(tài)度等的影響,只要有學(xué)習(xí),就有遷移。遷移是學(xué)習(xí)的繼續(xù)和鞏固,又是提高和深化學(xué)習(xí)的條件,學(xué)習(xí)與遷移不可分割。
對于人工智能的發(fā)展路徑,很多人可能對基于大數(shù)據(jù)的人工智能很熟悉,但其實還有基于小樣本的嘗試和遷移,這也是人工智能的一種路徑。
數(shù)據(jù)需求量太大正是目前人工智能的一個顯著缺點。擁有大數(shù)據(jù)的人畢竟是少數(shù),這樣發(fā)展下去,擁有數(shù)據(jù)越多的人,就能做出越好的人工智能產(chǎn)品,反過來,因為能提供更加便捷的服務(wù),這些人又能吸引更多的用戶貢獻數(shù)據(jù)。如此循環(huán),就會形成一些“數(shù)據(jù)寡頭”,進而成為“人工智能寡頭”。這會帶來復(fù)雜的社會問題,從技術(shù)上來講,小樣本的遷移學(xué)習(xí)提供了一個緩解問題的方案,可以讓初創(chuàng)公司在數(shù)據(jù)較少的領(lǐng)域也能提供人工智能的創(chuàng)新服務(wù)。就像深度學(xué)習(xí)必須具備大數(shù)據(jù),而經(jīng)過學(xué)習(xí)訓(xùn)練后的知識又很難遷移到新的領(lǐng)域,這也導(dǎo)致了計算機學(xué)習(xí)效率不高。有網(wǎng)友曾開玩笑,要和alphago比拼麻將,這恰恰戳中了它的軟肋。alphago要學(xué)會打麻將,必須輸入新的數(shù)據(jù)從頭學(xué)起!遷移學(xué)習(xí),可以讓計算機把大數(shù)據(jù)領(lǐng)域習(xí)得的知識和方法遷移到數(shù)據(jù)不那么多的領(lǐng)域,這樣,計算機也可以“舉一反三”“觸類旁通”,而不必在每個領(lǐng)域都依賴大數(shù)據(jù)從頭學(xué)起。