「A computer program is said to learn from experience E with respect to some class of tasksT and performance measureP if its performance at tasks inT, as measured by P, improves with experience E」(大意為:一個電腦程式要完成任務T,如果電腦獲取的關於T的經驗E越多就表現P得越好,那麼我們就可以說這個程序「學習」了關於T的經驗。)
例:
根據給定的點做一條直線儘可能去擬合樣本,「直線」即學習出的成果,可通過這一直線預測未知點。
2. 風暴預測系統
比如我們也許可以通過學習歷史數據發現:溫度超過40度,濕度在80-100之間,就容易發生風暴。種種類似的模式。
「溫度」、「濕度」等等指標,就是機器學習中的「特徵」,而這些特徵都是人工設置好的!就是說,我們在做這樣一個預測系統的時候,首先由專家通過分析哪些「特徵」是重要的,然後機器就通過分析歷史數據中的這些特徵的數據,來找到相應的模式,也就是怎樣的特徵的組合會導致怎樣的結果。(這是和深度學習的重要區別)
深度學習
「Deep learning is a particular kind of machine learning that achieves great power and flexibility by learning to represent the world as nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones.」(大意為:深度學習是一種特殊的機器學習,它可以獲得高性能也十分靈活。它可以用概念組成的網狀層級結構來表示這個世界,每一個概念更簡單的概念相連,抽象的概念通過沒那麼抽象的概念計算。)
例:
1. 形狀識別
我們的眼睛第一件要做的事情,就是看看這個形狀有沒有4條邊。如果有的話,就進一步檢查,這4條邊是不是連在一起,是不是等長的,是不是相連的互相垂直。如果滿足上面這些條件,那麼我們可以判斷,是一個正方形。
從上面的過程可以看出,我們把一個複雜的抽象的問題(形狀),分解成簡單的、不那麼抽象的任務(邊、角、長度等等)。深度學習從很大程度上就是做這個工作,把複雜任務層層分解成一個個小任務。
而現在,深度學習的方法則更進一步。深度學習自動地找出這個分類問題所需要的重要特徵!而傳統機器學習則需要我們人工地給出特徵!
那麼,深度學習是如何做到這一點的呢?
(1)首先確定出有哪些邊和角跟識別出貓狗關係最大;
(2)根據上述找出的小元素(邊、角等)構建層級網絡,找出它們間各種組合;
這裡沒找到貓和狗的神經網絡圖片,倒是看到人像識別的一個示意圖,覺得挺好:
對比機器學習和深度學習
1. 數據依賴
2. 硬體依賴
深度學習十分地依賴於高端的硬體設施,因為計算量實在太大了!深度學習中涉及很多的矩陣運算,因此很多深度學習都要求有GPU參與運算,因為GPU就是專門為矩陣運算而設計的。相反,普通的機器學習硬體要求不高。
3. 特徵工程
特徵工程就是前面的案例裡面講過的,我們在訓練一個模型的時候,需要首先確定有哪些特徵。
在機器學習方法中,幾乎所有的特徵都需要通過行業專家在確定,然後手工就特徵進行編碼。然而深度學習算法試圖自己從數據中學習特徵。這也是深度學習十分引人注目的一點,畢竟特徵工程是一項十分繁瑣、耗費很多人力物力的工作,深度學習的出現大大減少了發現特徵的成本。
在解決問題時,傳統機器學習算法通常先把問題分成幾塊,一個個地解決好之後,再重新組合起來。但是深度學習則是一次性地、端到端地解決。如下面這個物體識別的例子:
但是深度學習不同,給它一張圖,它直接給出把對應的物體識別出來,同時還能標明對應物體的名字。這樣就可以做到實時的物體識別。例如YOLO net就可以在視頻中實時識別:
5. 執行時間
深度學習需要花大量的時間來訓練,因為有太多的參數需要去學習。頂級的深度學習算法ResNet需要花兩周的時間訓練。但是機器學習一般幾秒鐘最多幾小時就可以訓練好。但是深度學習花費這麼大力氣訓練處模型肯定不會白費力氣的,優勢就在於它模型一旦訓練好,在預測任務上面就運行很快。這才能做到我們上面看到的視頻中實時物體檢測。
6. 可理解性
深度學習很多時候我們難以理解。一個深層的神經網絡,每一層都代表一個特徵,而層數多了,我們也許根本就不知道他們代表的啥特徵,我們就沒法把訓練出來的模型用於對預測任務進行解釋。例如,我們用深度學習方法來批改論文,也許我們訓練出來的模型對論文評分都十分的準確,但是我們無法理解模型到底是啥規則,這樣的話,那些拿了低分的同學找你質問「憑啥我的分這麼低啊?!」,你也啞口無言····因為深度學習模型太複雜,內部的規則很難理解。
但是機器學習不一樣,比如決策樹算法,就可以明確地把規則給你列出來,每一個規則,每一個特徵,你都可以理解。
到訪人數:(16)