Machine Learning - Andrew Ng on Coursera (Week 4)
本篇文章將分享Coursera上Andrew Ng的Machine Learning第四周的課程,主要內容有如下,詳細內容可以參考文末附件:
- 動機
- 神經網絡
- 應用
動機
為什么要引入神經網絡?在分類問題中,特別是在非凸邊界函數的情況下,要將用樣本訓練分類器,假設公式[Math Processing Error]會寫的比較復雜,兩個變量的問題可能會涉及到三階以及上的項,特征變量的數量如果隨之增加,那么求解的難度會成倍地增加。
特別的,在機器視覺相關問題中,一塊圖像區域可能包含成千上萬個像素點,如果都作為特征變量的話用線性回歸或者邏輯回歸會使問題變得尤為復雜。通常在圖像分類問題中都采用的是神經網絡算法,通過提取特定區域的像素值作為特征變量進行訓練和識別,可以有效提高正確率和效率。
神經網絡算法最早是人們為了發明一種算法來模擬人腦的學習過程,曾經在八十年代以及九十年代早期廣泛應用,而在九十年代末期使用熱情退卻過一段時間,主要是受限于當年計算機的運算速度。而后又因為計算機運算速度突飛猛進而重新被大家重視并廣泛應用。
有一些有趣的實驗證實,雖然大腦可以完成許多看似不相關的任務,如聽、觸、看、聞等等,但實際上只用一種算法就可以搞這些任務。其中一個實驗是將聽覺神經切斷,將相應的大腦皮層區域連接到視覺神經上,在這種情況下動物就可以用本該負責聽覺的區域用于視覺的學習。另一個類似的實驗是將觸覺神經切斷,讓觸覺的大腦皮層區域學會“看”。這個發現會有很多的應用,如幫助視覺殘疾的人學會用舌頭看東西,用聲音定位,用磁場感應方向以及用移植的第三只眼學會看東西(現實版的“二郎神”)。
神經網絡
前面提到神經網絡是人類模仿神經工作方式的一種算法,本節就從神經細胞開始,切入到神經網絡模型的表示。神經細胞有樹突和軸突,樹突作為參數輸入的接收部分,將電信號經過“計算”,由軸突轉遞給下一個神經元,直到最后。
神經網絡模型也是一樣,可以接受多個參數的輸入,由結點經過計算后輸出結果。一般用邏輯回歸作為激活函數,也就是從輸入參數轉換為計算結果的計算過程。另外,一般在每一層除了輸入以外,還會加一個偏置單元。這個偏置單元的作用主要控制神經元產生正/負激勵的難易,參考請戳此處。
一般模型分為三層,分別是輸入層、隱藏層和輸出層。如果多于三層的話,除了第一層和最后一層,都是隱藏層。[Math Processing Error]表示第[Math Processing Error]層的激勵函數,[Math Processing Error]表示第[Math Processing Error]到[Math Processing Error]層的權重矩陣。以下圖中三層神經網絡模型為例,
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
[Math Processing Error]
其中,[Math Processing Error]是Sigmod函數。整個傳播過程就是由前向后,從輸入一直到輸出。
應用
本節簡述了以神經網絡模型實現XOR(異或門)和XNOR(同或門)的例子。從最簡單的AND、OR、NOT講起,深入淺出地將神經網絡應用于實際的問題中去。調整的就是各輸入變量和偏置單元的權重參數,利用真值表檢驗結果是否正確。而XOR和XNOR就是利用不同的基礎的神經元上進行組合,以得到正確的結果。最后還展示了一個手寫數字識別的小Demo,非常有意思。
在利用神經網絡模型處理多分類的問題時,采用的是和邏輯回歸類似的One-vs-all思想,需要調整的就是將原來只有一個輸出結點變為多個,并使不同輸出結點互斥。即輸出層變為對應[Math Processing Error]類的[Math Processing Error]的列向量,不再用1,2,3,4表示各類。
附本次分享演示文檔:ML-Coursera-Week4
總結
以上是生活随笔為你收集整理的Machine Learning - Andrew Ng on Coursera (Week 4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Machine Learning - A
- 下一篇: Machine Learning - A