一、神經網路定義
playground 通過這個位址了解神經網路
1.人工神經網路( artificial neural network, 簡寫為ann)也簡稱為神經網路(nn),分別輸入層,輸出層以及隱藏層
2.特點:每個連線都有個權值,同一層神經元之間沒有連線,最後的輸出結果對應的層也稱之為全連線層
3.感知機(pla: perceptron learning algorithm))
1)啟用函式:啟用函式的主要作用是給線性輸出的結果新增乙個非線性變換,經過非線性變換後的神經網路具備擬合各種線性和非線性模型的能力。啟用函式可以是任何函式,常用的函式sigmoid(邏輯回歸)、tanh、relu、softmax函式
sigmoid 函式,其值域是0到1之間,它的輸出還可以被擬合為事件成功的概率。
sigmoid函式的閾值為0.5,我們在構造乙個分類模型時候,設定小於0.5結果為a類大於0.5的為b類,
早期的人工神經網路用的啟用函式sigmoid函式,但是因為反向傳播會導致前面隱藏層更新權重非常緩慢,容易造成梯度消失,所以我們採用了relu(rectified linear unit的縮寫)。
relu函式
sigmoid函式的導數是sigmoid*(1-sigmoid函式)
反向傳播:
反向傳播更新權重(梯度下降法),採用求導的鏈式法則來找到誤差域輸入層到輸入層鏈結的權重
#構造兩層神經網路,用r語言反向傳播鏈式求導
l1 <
-expression
(x*w1)#輸入層乘以權重輸出到隱藏層
z1<
-expression(1
/(1+
exp(l1)
))#第乙個隱藏層經過啟用函式作為輸入到下乙個隱藏層
l2 <
-expression
(z1*w2)#乘以權重
yhat <
-expression(1
/(1+
exp(
-l2)
))#經過啟用函式到輸出層
loss=
expression
((yreal-yhat)^2
)#如下一層一層的鏈式求導
d(loss,
'yhat')d
(yhat,
'l2')d
(l2,
'w2')d
(z1,'l1')d
(l1,
'w1'
)
結果:
2)矩陣的乘dot運算
二、神經網路的原理
1.神經網路解決多分類問題最常用的方法是在全連線層設定n個輸出節點,其中n為類別的個數。
例如:我們最終要把資料分成10個類別,則n=10
2.我們把神經網路輸出轉換乘概率結果:邏輯回歸常用於兩分類問題,而多分類問題常用softmax回歸
用softmax函式求概率,概率最大代表是這一類
三、神經網路損失:
線性回歸:均方誤差
邏輯回歸:對數似然
神經網路:交叉熵損失
交叉熵損失函式的公式如下:
為了能夠衡量距離,目標值需要進行one-hot編碼,能與概率值一一對應,如下圖
注:(1).提高對應目標值為1的位置輸出概率大小.減少其他位置為0的概率
(2).log1=0
(3).目標值是one_hot編碼,**值:概率分布,所有概率加起來為1
四、神經網路的損失優化
bp演算法(backpropagation)即梯度下降+鏈式求導規則
1、前向傳輸(feed-forward)
從輸入層=>隱藏層=>輸出層,一層一層的計算所有神經元輸出值的過程。
2、反向(back propagation)
因為輸出層的值與真實的值會存在誤差,我們可以用交叉熵損失來衡量**值和真實值之間的誤差。
在手工設定了神經網路的層數,每層的神經元的個數,學習率 η(下面會提到)後,bp 演算法會先隨機初始化每條連線線權重和偏置
對於訓練集中的每個輸入 x 和輸出 y,bp 演算法都會先執行前向傳輸得到**值
根據真實值與**值之間的誤差執行逆向反饋更新神經網路中每條連線線的權重和每層的偏好。
3.softmax、交叉熵損失api
tf.nn.
softmax_cross_entropy_with_logits
(labels=none, logits=none,name=none)
計算logits和labels之間的交叉損失熵
labels:標籤值(真實值)
logits:樣本加權之後的值
return
:返回損失值列表
tf.reduce_mean
(input_tensor)
計算張量的尺寸的元素平均值
機器學習,深度學習,神經網路,深度神經網路
先來說一下這幾者之間的關係 人工智慧包含機器學習,機器學習包含深度學習 是其中比較重要的分支 深度學習源自於人工神經網路的研究,但是並不完全等於傳統神經網路。所以深度學習可以說是在傳統神經網路基礎上的公升級。神經網路一般有輸入層 隱藏層 輸出層,一般來說隱藏層大於2的神經網路就叫做深度神經網路,深度...
深度學習 神經網路基礎 2
目錄 一 常用標記 樣本 x,y x 為輸入,y 為輸出 輸入 x x in mathbb 是乙個 n 維的特徵向量 輸出 y 取值為0或1 樣本數量 m 樣本空間 y x y x y 如何組織 按列來組織,每一列表示乙個樣本 矩陣 x x x x 矩陣 y y y y sigmoid函式 g z ...
深度學習 深度神經網路
神經網路是由乙個個神經元相互連線並按層次排列構成的,深度神經網路是有任意層的神經網路,這裡的深度是指層次的多,而不是神經元數量的多。有任意層,那麼就要有乙個迴圈來負責遍歷每一層進行計算。所以深度神經網路的計算形式,就必須要適應這個迴圈結構。我們先來說說神經元吧 對於多神經元神經網路,其實也是一樣的。...