最近有接觸到一些機器學習的內容,同時還發現了深度學習和強化學習兩個名詞,不知道這三個內容是否有一定的相關性,區別是什麼?各自的核心和側重點是什麼?各自的應用領域有哪些?應用的前景如何?


機器學習:一切通過優化方法挖掘數據中規律的學科。

深度學習:一切運用了神經網路作為參數結構進行優化的機器學習演算法。

強化學習:不僅能利用現有數據,還可以通過對環境的探索獲得新數據,並利用新數據循環往複地更新迭代現有模型的機器學習演算法。學習是為了更好地對環境進行探索,而探索是為了獲取數據進行更好的學習。

深度強化學習:一切運用了神經網路作為參數結構進行優化的強化學習演算法。


人工智慧並不是一個新的術語,它已經有幾十年的歷史了,大約從80年代初開始,計算機科學家們開始設計可以學習和模仿人類行為的演算法。

在演算法方面,最重要的演算法是神經網路,由於過擬合而不是很成功(模型太強大,但數據不足)。儘管如此,在一些更具體的任務中,使用數據來適應功能的想法已經取得了顯著的成功,並且這也構成了當今機器學習的基礎。

在模仿方面,人工智慧專註於圖像識別,語音識別和自然語言處理。人工智慧專家們花費了大量的時間來創建諸如邊緣檢測,顏色配置文件,N-gram,語法樹等。不過,這些進步還不足以達到我們的需求。

傳統的機器學習:

機器學習(ML)技術在預測中發揮了重要的作用,ML經歷了多代的發展,形成了具有豐富的模型結構,例如:

1.線性回歸。

2.邏輯回歸。

3.決策樹。

4.支持向量機。

5.貝葉斯模型。

6.正則化模型。

7.模型集成(ensemble)。

8.神經網路。

這些預測模型中的每一個都基於特定的演算法結構,參數都是可調的。訓練預測模型涉及以下步驟:

1. 選擇一個模型結構(例如邏輯回歸,隨機森林等)。

2. 用訓練數據(輸入和輸出)輸入模型

3. 學習演算法將輸出最優模型(即具有使訓練錯誤最小化的特定參數的模型)。

每種模式都有自己的特點,在一些任務中表現不錯,但在其他方面表現不佳。但總的來說,我們可以把它們分成低功耗(簡單)模型和高功耗(複雜)模型。選擇不同的模型是一個非常棘手的問題。

由於以下原因,使用低功率/簡單模型是優於使用高功率/複雜模型:

  • 在我們擁有強大的處理能力之前,訓練高功率模型將需要很長的時間。
  • 在我們擁有大量數據之前,訓練高功率模型會導致過度擬合問題(因為高功率模型具有豐富的參數並且可以適應廣泛的數據形狀,所以我們最終可能訓練一個適合於特定到當前的訓練數據,而不是推廣到足以對未來的數據做好預測)。

然而,選擇一個低功率的模型會遇到所謂的「欠擬合」的問題,模型結構太簡單,如果它複雜,就無法適應訓練數據。(想像一下,基礎數據有一個二次方關係:y = 5 * x ^ 2;你無法適應線性回歸:y = a * x + b,不管我們選擇什麼樣的a和b。

為了緩解「不適合的問題」,數據科學家通常會運用他們的「領域知識」來提出「輸入特徵」,這與輸出關係更為直接。(例如,返回二次關係y = 5 * square(x),如果創建了一個特徵z = x ^ 2,則可以擬合線性回歸:y = a * z + b,通過選擇a = 5和b = 0)。

機器學習的主要障礙是特徵工程這個步驟,這需要領域專家在進入訓練過程之前就要找到非常重要的特徵。特徵工程步驟是要靠手動完成的,而且需要大量領域專業知識,因此它成為當今大多數機器學習任務的主要瓶頸。

換句話說,如果我們沒有足夠的處理能力和足夠的數據,那麼我們必須使用低功耗/更簡單的模型,這就需要我們花費大量的時間和精力來創建合適的輸入特徵。這是大多數數據科學家今天花時間去做的地方。

神經網路的回歸:

在大數據時代,雲計算和大規模並行處理基礎架構的共同發展,使得機器處理能力在二十一世紀初得到了極大的提升。我們不再局限於低功耗/簡單的模型。例如,當今最流行的兩種主流機器學習模型是隨機森林和梯度提升樹。儘管如此,兩者都非常強大,並且提供了非線性模型擬合的訓練數據,但數據科學家仍然需要仔細地創建特徵以獲得良好的性能。

與此同時,計算機科學家重新使用神經網路的許多層來完成這些人類模仿的任務。這給DNN(深度神經網路)帶來了新的生機,並在圖像分類和語音識別任務方面提供了重大突破。DNN的主要區別在於,你可以將原始信號(例如RGB像素值)直接輸入DNN,而不需要創建任何域特定的輸入功能。通過多層神經元(這就是為什麼它被稱為「深度」神經網路),DNN可以「自動」通過每一層產生適當的特徵,最後提供一個非常好的預測。這極大地消除了尋找「特徵工程」的麻煩,這是數據科學家們最喜歡看到的。

DNN也演變成許多不同的網路拓撲結構,所以有CNN(卷積神經網路),RNN(遞歸神經網路),LSTM(長期短期記憶),GAN(生成敵對網路),轉移學習,注意模型(attention model)所有的這些被統稱為深度學習(Deep Learning),它正在引起整個機器學習界的關注。

強化學習:

另一個關鍵組成部分是關於如何模仿一個人(或動物)的學習,設想感知/行為/獎勵循環的非常自然的動物行為。一個人或者一個動物首先會通過感知他或者她所處的狀態來了解環境。在此基礎上,他或者她會選擇一個「動作」,將他或者她帶到另一個「狀態」。那麼他或她將獲得「獎勵」,循環重複,直到他或她消失。這種學習方式(稱為強化學習)與傳統監督機器學習的曲線擬合方法有很大不同。尤其是,強化學習學習得非常快,因為每一個新的反饋(例如執行一個行動並獲得獎勵)都被立即發送到影響隨後的決定。

強化學習也提供了預測和優化的平滑整合,因為它在採取不同的行動時保持當前狀態的信念和可能的轉換概率,然後做出決定哪些行動可以導致最佳結果。

深度學習+強化學習= AI

與經典的ML技術相比,DL提供了一個更強大的預測模型,通常可以產生良好的預測結果。與經典優化模型相比,強化學習提供了更快的學習機制,並且更適應環境的變化。

機器學習 vs 深度學習

在深度探討machine learning和data science的聯繫之前,這裡簡要地討論一下machine learning 和deep learning。machine learning是一套演算法,來訓練數據集做預測或者採取行動以使得系統最優化。舉例來說,supervised classification algorithms被用來根據歷史數據將想要貸款的客戶分成預期好的和預期差的(good or bad prospects)。對於給定的任務(比如監督聚類),需要的技術多種多樣:naive Bayes、SVM、neural nets、ensembles、association rules、decision trees、logistic regression,或者是很多技術的組合。所有這些都是數據科學的子集。當這些演算法自動化後,比如無人駕駛飛機或者無人駕駛汽車,這就叫AI了,或者說的具體一點,deep learning。如果採集的數據來自感測器並且通過互聯網傳播,那麼這就是機器學習或數據科學或深度學習應用於物聯網了。

有些人對深度學習有不同的定義,他們認為深度學習是更深層次的神經網路(一種機器學習的技術)。AI(Artificial Intelligence)是創建於20世紀60年代的計算機科學的一個子領域,是關於解決那些對人類來講非常容易但是對計算機而言很難的任務。值得一提的是,所謂的strong AI可能可以做所有人類可以做的事情(可能除了純粹的物理問題)。這是相當廣泛的,包括各種各樣的事情,比如做計劃,在世界上到處溜達,識別物體和聲音,說話,翻譯,社交或者商業交易,還有創造性工作(比如寫詩畫畫)等等。

NLP(Natural language processing)只是AI要處理的語言部分,尤其是寫。

Machine learning是這樣的一種情況:給出一些可以被以離散形式描述的AI問題(比如從一系列動作中選出對的那個),然後給定一堆外部世界的信息,在不需要程序員手動寫程序的情況下選出那個「正確的」行為。通常情況需要藉助外界的一些過程來判斷這個動作對不對。在數學上,這就是函數:你給一些輸入,然後你想要他處理一下得到正確的輸出,所以整個問題就簡化為用一些自動的方式建立這種數學函數模型。和AI區分一下:如果我寫了一段特別機智的程序有著人類的行為,那這就可以是AI,但是除非它的參量都是自動從數據中學會的,否則就不是機器學習。

Deep learning是當下非常流行的機器學習的一種。它包含一種特殊的數學模型,可以想成是一種特定類型的簡單塊的組合(或者說是塊的功能的組合),這些塊可以進行調整來更好的預測最終結果。

原文:http://click.aliyun.com/m/1000006623/

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎


出處:https://arxiv.org/pdf/1810.06339.pdf


大概屬於薔薇科和玫瑰的關係?


樓上說的對。深度學習和強化學習屬於機器學習。


推薦閱讀:
相关文章