1. 程式人生 > >第五章 神經網路

第五章 神經網路

神經網路

1.基礎知識

神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路

Perceptron 感知機

感知機只有兩層神經元組成,而且只有輸出層是M-P神經單元也就是功能神經元

反向傳播演算法(Back propagation)可以應用於多層前饋神經網路,還可以應用於訓練遞迴神經網路

一般說 BP演算法就是訓練的多層前饋神經網路.

深度學習的基本名詞

卷積神經網路(convolutional neural network CNN)

cnn複合多個 卷積層 和 取樣層 來對輸入訊號進行加工.最終在連線層實現與輸出目標之間的對映.

卷積層:包含多個特徵對映,每個特徵對映是一個由多個神經元構成的平面.

取樣層:基於區域性相關性原理進行亞取樣,減少資料量的同時保留有用資訊.

換個角度理解就是 用機器代替原來專家的"特徵工程(feature engineering)"

神經網路的啟用函式

1.logitic:典型的啟用函式sigmod函式,在計算分類概率時,非常有用.

f(z)=11+exp(z),0<f(z)<1

2.Tanh:

f(z)=tanh(z)=ezezez+ez,1<f(z)<1

3.Relu:線性修正函式,函式的主要目的是對抗梯度消失,當梯度反向傳播到第一層的時候,梯度容易趨近於0或者一個非常小的值.

f(z)=max(0,x)
卷積神經網路(CNN)

卷積:就是兩個操作在時間維度上的融合.

(fg)(τ)=f(τ)g(tτ)dτ 卷積的使用範圍可以被延展到離散域,數學表示式為(fg)[n]=m=f(m)g(nm) 卷積運算中最重要的是核函式,利用核函式分別與每個點的乘積再求和.作為下一個層的元素點.

2.思想脈絡

根據訓練資料集來調整神經元之間的連線權 connection weight ,以及每個功能神經元的閾值.

也就是說,神經網路所學到的東西都在連線權和閾值中.

引數的確定(利用迭代更新)調整感知機(神經網路)的權重.

ωiω+Δωi

Δωi=η(yy^xi)

先將輸入事例提供給輸入層神經元,逐層將訊號進行前傳,直到產生輸出層的結果

計算輸出層的誤差,再將誤差逆向傳播至隱層神經元

最後根據隱層神經元的誤差來對連線權和閾值進行調整.並進行迭代迴圈進行.

3.演算法推導

BP演算法:

訓練集
D={(x1,y1),(x2,y2),...,(xm,ym)}

%E9%80%89%E5%8C%BA_005.png

輸入:d個屬性

輸出:l維實值向量 閾值θj

隱藏層:q個隱層神經元網路 閾值 γh

bh=f1(αhγh)

yj=f2(βjθj)

任意引數的更新估計式

υυ+Δυ

BP演算法基於梯度下降策略來進行引數的調整

知識點補充:梯度下降法(gradient descent)

梯度下降法是一種常用的一階優化方法,是求解無約束優化問題最簡單,最經典的方法之一.

f(x)是連續可微函式,且滿足