豬豬的機器學習筆記(十)人工神經網絡

人工神經網絡

做者:櫻花豬算法

 

摘要:編程

本文爲七月算法(julyedu.com12月機器學習第十次次課在線筆記。人工神經網絡在支持圖像處理、文本、語言以及序列多種類型的數據處理時都用用到。本次課程更加側重於實踐,把抽象的人工神經網絡用程序展示出來,課上講述了編程使用的工具和方法,對於往後實驗有很是重要的幫助。網絡

 

引言:框架

人工神經網絡(Artificial Neural Network,即ANN ),是20世紀80 年代以來人工智能領域興起的研究熱點。它從信息處理角度對人腦神經元網絡進行抽象,創建某種簡單模型,按不一樣的鏈接方式組成不一樣的網絡。在工程與學術界也常直接簡稱爲神經網絡或類神經網絡。本次課程討論了神經網絡的基本框架、很是熱門的BP算法以及實際編程的要點。機器學習

 

預備知識:函數

機率論;梯度降低法工具

 

人工神經網絡學習

前向全鏈接網路優化

人工神經網絡求法編碼

 

1、人工神經網絡

    人工神經網絡基礎形態是前向全鏈接網絡,同時擁有多種變形,這些變形構成了深度學習的主要內容。

卷積網路(CNN):屬於部分鏈接網絡,是深度學習結構核心之一

遞歸網絡(RNN):是一種更爲複雜的網絡結構,可以很好的應對序列數據。

   自編碼器(Auto Encoder),一種數據特徵學習,相似於PCA的做用

 

2、前向全鏈接網路(Full connected Forward Network)

一、基礎神經單元

神經元是構成神經網絡的基本單元,一個神經元的組成包括:

輸入:n 維向量x;

線性加權:

激活函數:,求非線性,容易求導;

輸出標量:

 

二、經常使用激活函數:

a、sigmoid函數。輸出值域不對稱,兩頭過於平坦。

b、tanh函數。兩頭過於平坦

C、Rectified linear unit

   收斂速度比sigmoid和tanh快,計算簡單高效。是目前最普遍使用的激活函數,特別應用在CNN。

 

三、叢神經元到網絡

輸入錯,輸入向量;

中間層(隱含層)

輸出層,輸出向量,用於預測、分類以及迴歸。

 

3、人工神經網絡求法

一、損失函數(Loss Function)

配合模型訓練,有Loss/Error Fuction:

Softmax / Cross-entropy loss:

SVM / hinge loss:

 Least squares (L2 loss):

 

二、輸入數據的預處理:

    若是輸入數據各個維度數據是相關的,將致使各個權重相互影響,不利於優化算法尋找局部最優解。

    若是各個維度的規模不一致,將致使對應的Error Surface容易出現狹窄區域,不利於優化算法尋找局部最優。

    一般對向量數據必需要用PCA和白化處理,而對於通常的數據只須要作到均值化和歸一化。

 

三、訓練算法(BP算法)

   神經網絡的訓練目標是找到W和B使得損失函數最小。優化算法須要計算dW和dB。BP算法就是計算W和B導數的算法。

   BP算法的核心是鏈式規則。

算法步驟:

a. forward計算一次

b. 逐層計算backwoard獲得各個層的dW和dB。

c. 應用隨機梯度降低法SGD,更新W,B

 

四、數值校驗

   實現BP算法的過程當中比較容易出錯,所以有必要進行檢查。

 

五、算法優化

   多層網絡的Error Surface很是複雜,存在不少局部最優,咱們要尋找儘量大的範圍內的局部最優。

   動量法不隨更新W合適更新「更新W」的速度。

   當位於距離較長的「坡」的時候動量法能夠加快滑動速度;當位於平緩的區域時,動量法也可以保持必定的速度。



相關文章
相關標籤/搜索