Machine Learning---Neural Network

來源:互聯網
上載者:User

標籤:machine learning   pattern recognition   neural network   

Machine Learning:Neural Network一:前言

1,Wikipedia上對Neural Network的定義:

     In machine learning,artificial neural networks (ANNs) are a family of statistical learning algorithms inspired by biological neural networks (thecentral nervous systems of animals, in particular thebrain) and are used to estimate orapproximate functions that can depend on a large number of input sand are generally unknown. Artificial neural networks are generally presented as systems of interconnected "neurons" which can compute values from inputs, and are capable ofmachine learning as well aspattern recognition thanks to their adaptive nature.

2,為什麼要引入Neural Network?

     我們前面學習了迴歸和分類模型,然而它們的實際應用受制於資料的規模(也就是維度災難(curse of dimensionality))。Neural Network用於處理大量輸入特徵是非常有優勢的,例如抽取電腦視覺中圖片的像素作為輸入特徵,那麼這將得到數量巨大的輸入特徵集;如果仍然迴歸和分類模型,學習參數所需要的時間將會是不能承受的;


二:Neural Network—Representation

1,Neural Network模型


在神經網路中,我們把第一層稱為input layer,最後一層稱為output layer,中間若干層都稱為hidden layer。

下面我們來看一個非常簡單的神經網路:


這個簡單的神經網路相當於一個邏輯分類器。之所以會是這樣的結果,是因為output layer上neutron的轉換函式是sigmoid函數。當然這完全可以根據我們的實際問題去選擇合適的activation function。

下面我們來詳細的描述一下神經網路:


中,a(i,j)表示為第j層的第i個activation,它是由activation function轉換得到的,也就是這裡的g(.);一般來說,各層的activation function是一樣的(除了output layer,這個需要根據最後需要的形式來確定,比如離散、連續還是multi-classification等等),當然你也可以選擇使它們不一樣,這樣增大了實現起來的難度。Theta權重參數矩陣控制layer j到layer j+1的映射。

2,Forward Propagation Algorithm


這種Forward propagation的方式是從input layeràhidden layeràoutput layer來進行對h(x)的計算;我們並不是直接對未經處理資料進行建模、調參,而是利用中介層得到的結果,然而中介層的結果是由未經處理資料學習而來的;換言之,這有很大的靈活性,每層之間的轉換可以是任何線性組合或者多項式組合等。

下面來看一下如何利用神經網路實現邏輯運算式:






通過多And、Or、Not的分析,組合成了一個小的神經網路實現了XNOR的功能。

3,神經網路的multi-classification問題



對於multi-classification,我們用了softmax activation function來表示最後的輸出結果。

三,Neural Network—Learning

下面我們將以分類問題來闡述Neural Network的學習過程,類比羅吉斯迴歸得到Neural Network的Cost Function,然後用梯度下降演算法求出參數。



1,Error Back Propagation Algorithm:

我們知道梯度下降演算法分為兩個步驟:

(1), 對Cost Function求關於參數theta的偏導數;

(2),根據偏導數對參數theta進行更新、調整;

Error Back Propagation Algorithm提供了一種高效的求偏導數的方法。


例如在所示的神經網路中,我們進行一般化的推導:


     

                                                              


通過上面的推導,我們已經得到了一個高效的求解偏導數的方法:通過Forward propagation求出a(i)的值,再通過back propagation求出delta的值,然後帶入式子(6)中即可;

現在我們來整合一下Neural Network Learning的整個過程,舉一個具體的例子:




上面的back propagation Algorithm直接引用了上面推導的結果;

總結一下back propagation Algorithm:


2,下面介紹一下Neural Network在MATLAB中的實現技巧:




簡單的說就是先把權重參數矩陣unroll成一個向量,然後利用庫中現成的梯度下降演算法求出最優參數,最後reshape成矩陣的形式;之所以這樣做是因為現成的梯度下降演算法的參數即initTheta要求必須是一個向量的形式。

3,Gradient Checking

這是一種數學上求偏導數的方法。





它可以用來校正實現的梯度下降演算法是否運行正確,當二者的資料非常相似時,則表明啟動並執行結果是正確的;若二者結果相差很大,則表明梯度下降演算法沒有正確運行;

4,如何初始化權重矩陣Theta的值




四,總結一下整個過程





總結匆忙,難免會有紕漏和錯誤,還望大家不吝指正、賜教;

----------------------------------------------------------------------------------------------------------------------

本文中課件來自斯坦福大學Andrew Ng老師的機器學習PPT

Machine Learning---Neural Network

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.