反向傳播鏈式計算梯度。sigmoid函式將實數壓縮到[0,1],tanh函式將實數壓縮到[-1,1]。
relu函式
優點:梯度下降收斂巨大加速。
缺點:如果學習率設定得太快,可能會發現網路中40%神經元不被啟用。改進—leaky relu。x<0時,y接近0。
maxout是relu與leaky relu的一般化歸納。函式是 ma
x(wt
1x+b
1,wt
2x+b2)m
ax(w
1tx+
b1,w
2tx+
b2
)第一層啟用函式為sigmoid函式,第二層啟用函式為線性函式,輸入為64*1000矩陣,輸出64*10,第二層輸入為64*100。執行2000次後損失函式為4.04。
#兩層神經網路
import numpy as np
from numpy.random import randn
#h 為第二層的輸入維度
n,d_in,h,d_out=64,1000,100,10
#rand產生0-1的數,randn產生符合正態分佈的數,randint產生整數,定義最小值
x,y = randn(n,d_in),randn(n,d_out)#64*1000
w1,w2 = randn(d_in,h),randn(h,d_out)
for t in range(2000):
h = 1/(1+np.exp(-x.dot(w1)))
y_pred = h.dot(w2)
loss = np.square(y_pred-y).sum()
print t,loss
# 結果1999,4.04
# 損失函式對w1,w2求導
grad_y_pred=2.0*(y_pred-y)
grad_w2 = h.t.dot(grad_y_pred)
grad_h = grad_y_pred.dot(w2.t)
grad_w1 = x.t.dot(grad_h*h*(1-h))
w1 -=1e-4*grad_w1
w2 -=1e-4*grad_w2
cs231n筆記 反向傳播
首先反向傳播是利用鏈式法則遞迴計算表示式的梯度的方法。從簡單表示式入手可以為複雜表示式打好符號和規則基礎。先考慮乙個簡單的二元乘法函式 這些導數的意義在於函式變數在某個點周圍的極小區域內變化,而導數就是變數變化導致的函式在該方向的變化率。現在考慮更複雜的包含多個函式的復合函式,比如 鏈式法則指出將這...
cs231n筆記總結
cs231n的課程以及作業都完成的差不多了,後續的課程更多的涉及到卷積神經網路的各個子方向了,比如語義分割 目標檢測 定位 視覺化 遷移學習 模型壓縮等等。assignment3有涉及到這些中的一部分,但需要深入了解的話還是得看 了。所以在看 前把之前已學的知識,筆記和作業 一起做個整理。部落格裡主...
CS231n理解筆記
linear classification notes 該方法的組成 乙個是評分函式 原始影象資料到類別分值的對映 乙個是損失函式 用來量化 分類標籤的得分和真實標籤之間的一致性。影象分類的任務是從已有的固定分類標籤中選擇乙個並分配一張影象,我們介紹了knn分類器,該分類器的基本思想是通過將測試影象...