1. 程式人生 > >機器學習_1.神經網路的研究和學習(一)

機器學習_1.神經網路的研究和學習(一)

人工神經網路      — —百度百科

         人工神經網路(Artificial Neural Network,即ANN ),是20世紀80 年代以來人工智慧領域興起的研究熱點。它從資訊處理角度對人腦神經元網路進行抽象, 建立某種簡單模型,按不同的連線方式組成不同的網路。在工程與學術界也常直接簡稱為神經網路或類神經網路。神經網路是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函式,稱為激勵函式(activation function)。每兩個節點間的連線都代表一個對於通過該連線訊號的加權值,稱之為權重,這相當於人工神經網路的記憶。網路的輸出則依網路的連線方式,權重值和激勵函式的不同而不同。而網路自身通常都是對自然界某種演算法或者函式的逼近,也可能是對一種邏輯策略的表達。

        最近十多年來,人工神經網路的研究工作不斷深入,已經取得了很大的進展,其在模式識別、智慧機器人、自動控制、預測估計、生物、醫學、經濟等領域已成功地解決了許多現代計算機難以解決的實際問題,表現出了良好的智慧特性。

分類有:

認識神經網路              (參考:http://www.cnblogs.com/subconscious/p/5058741.html

首先,找到一個三個層次的神經網路,分為輸入層、隱藏層和輸出層。其中,輸入層和輸出層的節點是固定的,隱藏層是變動的。網路中的拓補和箭頭往往代表著預測過程時的資料流向,與訓練時有區別。訓練得到的東西是邊的權值,這是最想得到的資料。

神經元模型:有3個輸入,各有一個權值,求和後執行非線性函式,最後進行輸出。訓練即為將三個權值調整到最佳以使得網路的預測效果最好。當輸入後,設為input1,input2,input3,權值為w1、w2、w3,經過邊的傳遞後(邊的傳遞本身就代表值的加權傳遞)進行加權分別為input1*w1,input2*w2,input3*w3。

神經元擴充套件模型

單層神經網路(感知器)

單層神經網路就是擁有一個計算層(需要計算的層次)的網路

模型為:

如果是一個向量輸出模型,可為:

由此可得輸出矩陣改寫:g(W*a)=z,即為神經網路從前一層到後一層計算的結果。

單層神經網路只能做簡單的線性分類任務。

兩層神經網路(多層感知器)

兩層神經網路:輸入層和輸出層之間,增加了中間層,且中間層和輸出層都是計算層。如下:

拓展:

使用矩陣表示:

         g(W(1) * a(1)) = a(2); 

         g(W(2) * a(2)) = z;

 

偏置節點:只含有儲存功能,且儲存值永遠為1的單元,與後一層的所有節點都有連線,叫做偏置。

運算變為:

           g(W(1) * a(1) + b(1)) = a(2); 

           g(W(2) * a(2) + b(2)) = z;

多層神經網路(深度學習)之普通多層神經網路

              g(W(1) * a(1)) = a(2); 

              g(W(2) * a(2)) = a(3);

                          g(W(3) * a(3)) = z;

增加層次可以實現更深入的表示特徵和更強的函式模擬能力。更深入的表示特徵可以這樣理解,隨著網路的層數增加,每一層對於前一層次的抽象表示更深入。在神經網路中,每一層神經元學習到的是前一層神經元值的更抽象的表示。例如第一個隱藏層學習到的是“邊緣”的特徵,第二個隱藏層學習到的是由“邊緣”組成的“形狀”的特徵,第三個隱藏層學習到的是由“形狀”組成的“圖案”的特徵,最後的隱藏層學習到的是由“圖案”組成的“目標”的特徵。通過抽取更抽象的特徵來對事物進行區分,從而獲得更好的區分與分類能力。

在單層神經網路時,我們使用的啟用函式是sgn函式。到了兩層神經網路時,我們使用的最多的是sigmoid函式。而到了多層神經網路時,通過一系列的研究發現,ReLU函式在訓練多層神經網路時,更容易收斂,並且預測效能更好。因此,目前在深度學習中,最流行的非線性函式是ReLU函式。ReLU函式不是傳統的非線性函式,而是分段線性函式。其表示式非常簡單,就是y=max(x,0)。簡而言之,在x大於0,輸出就是輸入,而在x小於0時,輸出就保持為0。這種函式的設計啟發來自於生物神經元對於激勵的線性響應,以及當低於某個閾值後就不再響應的模擬。

  在多層神經網路中,訓練的主題仍然是優化和泛化。當使用足夠強的計算晶片(例如GPU圖形加速卡)時,梯度下降演算法以及反向傳播演算法在多層神經網路中的訓練中仍然工作的很好。目前學術界主要的研究既在於開發新的演算法,也在於對這兩個演算法進行不斷的優化,例如,增加了一種帶動量因子(momentum)的梯度下降演算法。 

  在深度學習中,泛化技術變的比以往更加的重要。這主要是因為神經網路的層數增加了,引數也增加了,表示能力大幅度增強,很容易出現過擬合現象。因此正則化技術就顯得十分重要。目前,Dropout技術,以及資料擴容(Data-Augmentation)技術是目前使用的最多的正則化技術。