我先把前面的總結一下,總結才能進步
神經網路進行**的步驟:
(1) 將以特徵向量的形式輸入到神經網路中;
(2) 神經網路通過一種演算法(**演算法)來對輸入的資料進行處理,給出**結果。
(3) 把**結果跟事先給出的答案進行對照,判斷**的是否準確。(通過損失函式來評判)
如果**的不準確,就要進行修正,修正的過程就是改進學習的過程,改進主要是改進**結果演算法中的引數。
前面已經給出了**結果的公式,即邏輯回歸演算法。
**是否準確主要是由**公式中的w和b決定的,所以改進主要是改進w和b的值。那麼如何找到乙個最合適的w和b,可以通過乙個梯度下降(gradient descent)的演算法(反向傳播演算法)來得出。梯度下降演算法每次都會判斷**結果與已給出答案之間的偏差、來逐步調整w和b的值,使w和b的值能夠使**結果和已給出答案之間的偏差越來越小,越來越接近已給出的答案。下面發揮一下我本科自動化的專長,用一張圖來更明白的解釋一下邏輯回歸演算法、損失函式、梯度下降演算法之間的關係。
由上面的公式可以看到,損失函式是乙個關於w和b的函式。所謂「學習」或「訓練神經網路」,就是找到一組最合適的w和b的值,使這個損失函式的值最小,同樣也是使邏輯回歸演算法中w和b的值最合適,進而使**結果更準確。損失函式的圖形如下圖所示。
由上圖可知,損失函式的形狀是乙個漏斗形,我們訓練神經網路的目的就是為了找到這個漏斗最底端的一組w和b的值,使j即損失函式的值最小。
這種漏斗形狀的函式稱為凸函式,正是因為j函式是凸函式,所以我們很容易能夠找到其最低點,進而找到w和b位於最低點的值。而之前的平方差函式不是乙個凸函式,所以很難找到其最低點,這就是為什麼不選擇平方差函式作為損失函式的原因。如下圖所示,梯度下降演算法會逐步更新w和b的值,使損失函式j一步一步地變得更小,最終找到最小值或接近最小值的地方。
那麼這個梯度下降演算法更新w和b的具體過程是什麼樣的呢?為了簡化問題,我們做出兩點假設,1、假設損失函式j只有乙個引數w(實際上j是乙個關於w和b的函式);2、假設w只是乙個實數(實際上w是乙個向量/一組實數)。如下圖所示,梯度下降演算法一步一步地在改變著w的值,使損失函式的結果越來越小(將w的值一步一步的移到紅點處)。
具體實現過程如下面的公式,通過公式的遞迴來逐步改變w的值
w'=w-r*dw
梯度下降演算法就是重複諮詢過上面的公式來不斷更新w的值
注:w'是新的w的值;
w是舊的w;
r是步進/學習率;
dw是損失函式j關於引數w的偏導數。
1、解釋r
假設w=10,dw=1,r=4,第一次梯度下降後,w'=10-4*1=6
r=2,第一次梯度下降後,w'=10-2*1=8
10變到8沒有10變到6,變化的快。是因為變化率r比較小,r是用來控制w變化快慢的引數。
2、解釋dw
dw就是j的變化與w的變化的比例,我們按照這個比例去使w越來越小那麼它相應的j也會越來越小,最終達到我們的目的,找到j最小值時w的值是多少。損失函式j的值越小,表示**越精準。
神經網路就是通過這種方法來進行學習的,通過梯度下降演算法來一步一步改變w和b的值,使損失函式越來越小,使**越來越精準。
乙個容易犯的誤區。
有人會說,那我每次都使w改變很多,那麼就會更快的到達j的最小值處,是可以。但是,欲速則不達,關鍵是要控制好「度」,因為如果你每次讓w改變太多,那麼可能會錯過了j的最小值處,例如上圖中你可能會從w的初始位置直接到了綠色小三角的位置(跳過了j的最小值處),之後你會左右來回跳,永遠到不了j的最小值處。這就是r的用武之地,用它來控制w改變的步進,所以選擇乙個正確的學習率很重要。選錯了,那麼你的神經網路可能會永遠找不到損失函式的最小值處,即你的神經網路**得永遠不會很準。
本節的內容到這裡就要結束了。
神經網路究竟是怎樣學習的,它是通過反饋來不斷學習的。在這裡用笛卡爾的一句話來結束這篇部落格,「我思故我在」
神經網路和深度學習(1) 什麼是神經網路
神經網路和深度學習 主目錄僅僅在過去的 20 年裡對於很多應用,我們便收集到了大量的 資料,遠超過機器學習演算法能夠高效發揮它們優勢的規模。而深度學習和神經網路展現出的是,如果你訓練乙個小型的神經網路,那麼這個效能可能會像下圖黃 色曲線表示那樣 如果你訓練乙個稍微大一點的神經網路,比如說乙個中等規模...
深度學習概論 什麼是神經網路
深度學習指的是訓練 神經網路 所謂訓練就是和正確的結果對比,然後不斷更正有操作的偏差。就像且土豆絲,不斷調整自己下刀的厚度,既不能太細,也不能切成塊。什麼是神經網路 乙個簡單的神經網路。現在假設我們有一些關於房屋的資料集,這個資料集裡面包含了房屋的面積以及房價。我們希望從房屋的面積大小來 該房屋的 ...
深度學習筆記 什麼是神經網路
人工神經網路 英語 artificial neural network,ann 簡稱神經網路 neural network,nn 或類神經網路,在機器學習和認知科學領域,是一種模仿生物神經網路 動物的中樞神經系統,特別是大腦 的結構和功能的數學模型或計算模型,用於對函式進行估計或近似。神經網路由大量...