理解這25個概念,你的人工智慧,深度學習,機器學習才算入門!
人工智慧,深度學習,機器學習—無論你在做什麼,如果你對它不是很了解的話—去學習它。否則的話不用三年你就跟不上時代的潮流了。
——馬克.庫班
馬克.庫班的這個觀點可能聽起來很極端——但是它所傳達的信息是完全正確的! 我們正處於一場革命的旋渦之中——一場由大數據和計算能力引起的革命。
只需要一分鐘,我們來想像一下,在20世紀初,如果一個人不了解電力,他/她會覺得如何?你會習慣於以某種特定的方式來做事情,日復一日,年復一年,而你周圍的一切事情都在發生變化,一件需要很多人才能完成的事情僅依靠一個人和電力就可以輕鬆搞定,而我們今天正以機器學習和深度學習的方式在經歷一場相似的旅程。
所以,如果你還沒有探索或理解深度學習的神奇力量——那你應該從今天就開始進入這一領域。
誰應該讀這篇文章?
如果你是一個想學習或理解深度學習的人,這篇文章是為你量身定做的。在本文中,我將介紹深度學習中常用的各種術語。
如果你想知道我為什麼要寫這篇文章——我之所以在寫,是因為我希望你開始你的深度學習之旅,而不會遇到麻煩或是被嚇倒。當我第一次開始閱讀關於深度學習資料的時候,有幾個我聽說過的術語,但是當我試圖理解它的時候,它卻是令人感到很迷惑的。而當我們開始閱讀任何有關深度學習的應用程序時,總會有很多個單詞重複出現。
在本文中,我為你創建了一個類似於深度學習的字典,你可以在需要使用最常用術語的基本定義時進行參考。我希望在你閱讀這篇文章之後,你就不會再受到這些術語的困擾了。
與主題相關的術語
為了幫助你了解各種術語,我已經將它們分成3組。如果你正在尋找特定術語,你可以跳到該部分。如果你是這個領域的新手,那我建議你按照我寫的順序來通讀它們。
1.神經網路基礎(Basics of Neural Networks)
——常用激活函數(Common Activation Functions)
2.卷積神經網路(Convolutional Neural Networks)
3.循環神經網路(Recurrent Neural Networks)
神經網路基礎
1)神經元(Neuron)——就像形成我們大腦基本元素的神經元一樣,神經元形成神經網路的基本結構。想像一下,當我們得到新信息時我們該怎麼做。當我們獲取信息時,我們一般會處理它,然後生成一個輸出。類似地,在神經網路的情況下,神經元接收輸入,處理它併產生輸出,而這個輸出被發送到其他神經元用於進一步處理,或者作為最終輸出進行輸出。
2)權重(Weights)——當輸入進入神經元時,它會乘以一個權重。例如,如果一個神經元有兩個輸入,則每個輸入將具有分配給它的一個關聯權重。我們隨機初始化權重,並在模型訓練過程中更新這些權重。訓練後的神經網路對其輸入賦予較高的權重,這是它認為與不那麼重要的輸入相比更為重要的輸入。為零的權重則表示特定的特徵是微不足道的。
讓我們假設輸入為a,並且與其相關聯的權重為W1,那麼在通過節點之後,輸入變為a * W1
3)偏差(Bias)——除了權重之外,另一個被應用於輸入的線性分量被稱為偏差。它被加到權重與輸入相乘的結果中。基本上添加偏差的目的是來改變權重與輸入相乘所得結果的範圍的。添加偏差後,結果將看起來像a* W1 +偏差。這是輸入變換的最終線性分量。
4)激活函數(Activation Function)——一旦將線性分量應用於輸入,將會需要應用一個非線性函數。這通過將激活函數應用於線性組合來完成。激活函數將輸入信號轉換為輸出信號。應用激活函數後的輸出看起來像f(a * W1 + b),其中f()就是激活函數。
在下圖中,我們將「n」個輸入給定為X1到Xn而與其相應的權重為Wk1到Wkn。我們有一個給定值為bk的偏差。權重首先乘以與其對應的輸入,然後與偏差加在一起。而這個值叫做u。
U =ΣW* X+ b
激活函數被應用於u,即 f(u),並且我們會從神經元接收最終輸出,如yk = f(u)。
常用的激活函數
最常用的激活函數就是Sigmoid,ReLU和softmax
a)Sigmoid——最常用的激活函數之一是Sigmoid,它被定義為:
來源:維基百科
Sigmoid變換產生一個值為0到1之間更平滑的範圍。我們可能需要觀察在輸入值略有變化時輸出值中發生的變化。光滑的曲線使我們能夠做到這一點,因此優於階躍函數。
b)ReLU(整流線性單位)——與Sigmoid函數不同的是,最近的網路更喜歡使用ReLu激活函數來處理隱藏層。該函數定義為:
當X>0時,函數的輸出值為X;當X
來源:cs231n
使用ReLU函數的最主要的好處是對於大於0的所有輸入來說,它都有一個不變的導數值。常數導數值有助於網路訓練進行得更快。
c)Softmax——Softmax激活函數通常用於輸出層,用於分類問題。它與sigmoid函數是很類似的,唯一的區別就是輸出被歸一化為總和為1。Sigmoid函數將發揮作用以防我們有一個二進位輸出,但是如果我們有一個多類分類問題,softmax函數使為每個類分配值這種操作變得相當簡單,而這可以將其解釋為概率。
以這種方式來操作的話,我們很容易看到——假設你正在嘗試識別一個可能看起來像8的6。該函數將為每個數字分配值如下。我們可以很容易地看出,最高概率被分配給6,而下一個最高概率分配給8,依此類推……
5)神經網路(Neural Network)——神經網路構成了深度學習的支柱。神經網路的目標是找到一個未知函數的近似值。它由相互聯繫的神經元形成。這些神經元具有權重和在網路訓練期間根據錯誤來進行更新的偏差。激活函數將非線性變換置於線性組合,而這個線性組合稍後會生成輸出。激活的神經元的組合會給出輸出值。
一個很好的神經網路定義——
「神經網路由許多相互關聯的概念化的人造神經元組成,它們之間傳遞相互數據,並且具有根據網路」經驗「調整的相關權重。神經元具有激活閾值,如果通過其相關權重的組合和傳遞給他們的數據滿足這個閾值的話,其將被解僱;發射神經元的組合導致「學習」。
6)輸入/輸出/隱藏層(Input / Output / Hidden Layer)——正如它們名字所代表的那樣,輸入層是接收輸入那一層,本質上是網路的第一層。而輸出層是生成輸出的那一層,也可以說是網路的最終層。處理層是網路中的隱藏層。這些隱藏層是對傳入數據執行特定任務並將其生成的輸出傳遞到下一層的那些層。輸入和輸出層是我們可見的,而中間層則是隱藏的。
來源:cs231n
7)MLP(多層感知器)——單個神經元將無法執行高度複雜的任務。因此,我們使用堆棧的神經元來生成我們所需要的輸出。在最簡單的網路中,我們將有一個輸入層、一個隱藏層和一個輸出層。每個層都有多個神經元,並且每個層中的所有神經元都連接到下一層的所有神經元。這些網路也可以被稱為完全連接的網路。
8)正向傳播(Forward Propagation)——正向傳播是指輸入通過隱藏層到輸出層的運動。在正向傳播中,信息沿著一個單一方向前進。輸入層將輸入提供給隱藏層,然後生成輸出。這過程中是沒有反向運動的。
9)成本函數(Cost Function)——當我們建立一個網路時,網路試圖將輸出預測得儘可能靠近實際值。我們使用成本/損失函數來衡量網路的準確性。而成本或損失函數會在發生錯誤時嘗試懲罰網路。
我們在運行網路時的目標是提高我們的預測精度並減少誤差,從而最大限度地降低成本。最優化的輸出是那些成本或損失函數值最小的輸出。
如果我將成本函數定義為均方誤差,則可以寫為:
C= 1/m ∑(y–a)^2,
其中m是訓練輸入的數量,a是預測值,y是該特定示例的實際值。
學習過程圍繞最小化成本來進行。
10)梯度下降(Gradient Descent)——梯度下降是一種最小化成本的優化演算法。要直觀地想一想,在爬山的時候,你應該會採取小步驟,一步一步走下來,而不是一下子跳下來。因此,我們所做的就是,如果我們從一個點x開始,我們向下移動一點,即Δh,並將我們的位置更新為x-Δh,並且我們繼續保持一致,直到達到底部。考慮最低成本點。
圖:https://www.youtube.com/watch?v=5u4G23_OohI
在數學上,為了找到函數的局部最小值,我們通常採取與函數梯度的負數成比例的步長。
你可以通過這篇文章來詳細了解梯度下降。
11)學習率(Learning Rate)——學習率被定義為每次迭代中成本函數中最小化的量。簡單來說,我們下降到成本函數的最小值的速率是學習率。我們應該非常仔細地選擇學習率,因為它不應該是非常大的,以至於最佳解決方案被錯過,也不應該非常低,以至於網路需要融合。
http://cs231n.github.io/neural-networks-3/
12)反向傳播(Backpropagation)——當我們定義神經網路時,我們為我們的節點分配隨機權重和偏差值。一旦我們收到單次迭代的輸出,我們就可以計算出網路的錯誤。然後將該錯誤與成本函數的梯度一起反饋給網路以更新網路的權重。 最後更新這些權重,以便減少後續迭代中的錯誤。使用成本函數的梯度的權重的更新被稱為反向傳播。
在反向傳播中,網路的運動是向後的,錯誤隨著梯度從外層通過隱藏層流回,權重被更新。
13)批次(Batches)——在訓練神經網路的同時,不用一次發送整個輸入,我們將輸入分成幾個隨機大小相等的塊。與整個數據集一次性饋送到網路時建立的模型相比,批量訓練數據使得模型更加廣義化。
14)周期(Epochs)——周期被定義為向前和向後傳播中所有批次的單次訓練迭代。這意味著1個周期是整個輸入數據的單次向前和向後傳遞。
你可以選擇你用來訓練網路的周期數量,更多的周期將顯示出更高的網路準確性,然而,網路融合也需要更長的時間。另外,你必須注意,如果周期數太高,網路可能會過度擬合。
15)丟棄(Dropout)——Dropout是一種正則化技術,可防止網路過度擬合套。顧名思義,在訓練期間,隱藏層中的一定數量的神經元被隨機地丟棄。這意味著訓練發生在神經網路的不同組合的神經網路的幾個架構上。你可以將Dropout視為一種綜合技術,然後將多個網路的輸出用於產生最終輸出。
來源:Original paper
16)批量歸一化(Batch Normalization)——作為一個概念,批量歸一化可以被認為是我們在河流中設定為特定檢查點的水壩。這樣做是為了確保數據的分發與希望獲得的下一層相同。當我們訓練神經網路時,權重在梯度下降的每個步驟之後都會改變,這會改變數據的形狀如何發送到下一層。
但是下一層預期分布類似於之前所看到的分布。 所以我們在將數據發送到下一層之前明確規範化數據。
卷積神經網路
17)濾波器(Filters)——CNN中的濾波器與加權矩陣一樣,它與輸入圖像的一部分相乘以產生一個迴旋輸出。我們假設有一個大小為28 * 28的圖像,我們隨機分配一個大小為3 * 3的濾波器,然後與圖像不同的3 * 3部分相乘,形成所謂的卷積輸出。濾波器尺寸通常小於原始圖像尺寸。在成本最小化的反向傳播期間,濾波器值被更新為重量值。
參考一下下圖,這裡filter是一個3 * 3矩陣:
與圖像的每個3 * 3部分相乘以形成卷積特徵。
18)卷積神經網路(CNN)——卷積神經網路基本上應用於圖像數據。假設我們有一個輸入的大小(28 * 28 * 3),如果我們使用正常的神經網路,將有2352(28 * 28 * 3)參數。並且隨著圖像的大小增加參數的數量變得非常大。我們「卷積」圖像以減少參數數量(如上面濾波器定義所示)。當我們將濾波器滑動到輸入體積的寬度和高度時,將產生一個二維激活圖,給出該濾波器在每個位置的輸出。我們將沿深度尺寸堆疊這些激活圖,併產生輸出量。
你可以看到下面的圖,以獲得更清晰的印象。
19)池化(Pooling)——通常在卷積層之間定期引入池層。這基本上是為了減少一些參數,並防止過度擬合。最常見的池化類型是使用MAX操作的濾波器尺寸(2,2)的池層。它會做的是,它將佔用原始圖像的每個4 * 4矩陣的最大值。
來源:cs231n
你還可以使用其他操作(如平均池)進行池化,但是最大池數量在實踐中表現更好。
20)填充(Padding)——填充是指在圖像之間添加額外的零層,以使輸出圖像的大小與輸入相同。這被稱為相同的填充。
在應用濾波器之後,在相同填充的情況下,卷積層具有等於實際圖像的大小。
有效填充是指將圖像保持為具有實際或「有效」的圖像的所有像素。在這種情況下,在應用濾波器之後,輸出的長度和寬度的大小在每個卷積層處不斷減小。
21)數據增強(Data Augmentation)——數據增強是指從給定數據導出的新數據的添加,這可能被證明對預測有益。例如,如果你使光線變亮,可能更容易在較暗的圖像中看到貓,或者例如,數字識別中的9可能會稍微傾斜或旋轉。在這種情況下,旋轉將解決問題並提高我們的模型的準確性。通過旋轉或增亮,我們正在提高數據的質量。這被稱為數據增強。
循環神經網路
22)循環神經元(Recurrent Neuron)——循環神經元是在T時間內將神經元的輸出發送回給它。如果你看圖,輸出將返回輸入t次。展開的神經元看起來像連接在一起的t個不同的神經元。這個神經元的基本優點是它給出了更廣義的輸出。
23)循環神經網路(RNN)——循環神經網路特別用於順序數據,其中先前的輸出用於預測下一個輸出。在這種情況下,網路中有循環。隱藏神經元內的循環使他們能夠存儲有關前一個單詞的信息一段時間,以便能夠預測輸出。隱藏層的輸出在t時間戳內再次發送到隱藏層。展開的神經元看起來像上圖。只有在完成所有的時間戳後,循環神經元的輸出才能進入下一層。發送的輸出更廣泛,以前的信息保留的時間也較長。
然後根據展開的網路將錯誤反向傳播以更新權重。這被稱為通過時間的反向傳播(BPTT)。
24)消失梯度問題(Vanishing Gradient Problem)——激活函數的梯度非常小的情況下會出現消失梯度問題。在權重乘以這些低梯度時的反向傳播過程中,它們往往變得非常小,並且隨著網路進一步深入而「消失」。這使得神經網路忘記了長距離依賴。這對循環神經網路來說是一個問題,長期依賴對於網路來說是非常重要的。
這可以通過使用不具有小梯度的激活函數ReLu來解決。
25)激增梯度問題(Exploding Gradient Problem)——這與消失的梯度問題完全相反,激活函數的梯度過大。在反向傳播期間,它使特定節點的權重相對於其他節點的權重非常高,這使得它們不重要。這可以通過剪切梯度來輕鬆解決,使其不超過一定值。
作者: 多啦A亮&阿童木
來自: 機器人圈(jiqirenchanye)
【寬客網路課堂】石破天驚之作:可量化的期貨基本面策略
本課程為台灣著名專家林洸興先生的傾力之作。與目前市場上大多數泛泛而論的期貨分析課程不同,「深刻」、「邏輯」兩個詞可以概括本課程的特點。結合量化的需求與特點,林先生特意在本系列課程中將可量化的基本面因素提煉出來講述。從這樣一個獨特的角度講解期貨策略,相信本課程是一個石破天驚的課程。
點擊展開全文
TAG:大數據實驗室 |
※數據科學,人工智慧,機器學習,深度學習到底啥關係?
※掌握這12 條經驗,才算學懂了機器學習!
※兩分鐘,了解人工智慧、機器學習和深度學習的區別
※概念解析:深入理解人工智慧和機器學習
※深度學習必須理解的25個概念
※人工智慧世界裡的機器學習與深度學習
※人工智慧:懂的人在研究人腦,不懂的在捧深度學習!
※什麼是深度強化學習:人工智慧和深度學習的下一步
※人工智慧、機器學習和深度學習
※深度學習,人的解析
※人工智慧,機器學習和深度學習之間存在著細微差別
※AI 人工智慧的深度學習
※入門 | 初學機器學習:直觀解讀KL散度的數學概念
※人工智慧–深度學習
※深度學習的一些概念分享
※數學不好,進入機器學習領域還有戲嗎?
※相比於深度學習,機器學習沒落了嗎?
※未來 3 5 年內,什麼樣的機器學習人才最緊缺?
※人工智慧深度學習培訓哪家好?
※人工智慧與深度學習