維基百科對深度學習的定義: 一類通過多層非線性變換對高複雜性資料建模演算法的合集.
tensorflow提供了7種不同的非線性啟用函式, 常見的有tf.nn.relu, tf.sigmoid, tf.tanh.
使用者也可以自己定義啟用函式..
3.1.1 交叉熵
用途: 刻畫兩個概率分布之間的距離, 交叉熵h越小, 兩個概率分布就越近.
給定兩個概率分布p和q, 通過q來表示p的交叉熵為: h(
p,q)
=−∑x
p(x)
logq(s
) h(p
,q)=
−∑xp
(x
)logq
(s
)p代表的是正確答案, q代表的是**值.
3.1.2 softmax回歸
用途: 將神經網路的輸出變成乙個概率分布.
設原始神經網路的輸出為y1
y
1… yn
y
n, 經過softmax回歸處理之後的輸出為: so
ftma
x(y)
i=y′
i=ey
i∑j=
1ney
j sof
tmax
(y)i
=yi′
=eyi
∑j=1
neyj
3.1.3 tf.nn.softmax_cross_entropy_with_logits函式
該函式把softmax回歸和交叉熵同一封裝了起來.
優化單個引數的取值.
以乙個高效的方式在所有的引數上使用梯度下降演算法, 從而使損失函式盡可能的小.
引數更新公式: θn
+1=θ
n−η∂
∂θnj
(θn)
θ n+
1=θn
−η∂∂
θnj(
θn
)式中η式學習率, 需要人為設定.
5.1.1 exponential_decay函式
它可以指數級地減小學習率.
(第三張圖展示了過擬合的情景)
用正則化方法避免過擬合的問題
思想: 在損失函式中加入刻畫模型複雜度的指標r(w), 優化時不直接優化損失函式l(θ), 而是優化l(θ)+λr(w).
r(w)通常有兩種: l1正則化r(
w)=∑
i|wi
| r(w
)=∑i
|wi|
和 l2正則化r(
w)=∑
i|w2
i|r (w
)=∑i
|wi2
|tf.contrib.layers.l2_regularizer函式可以計算乙個給定引數的l2正則化項的值.
思想: 通過影子變數來控制模型的更新速度.
具體做法: 先指定乙個衰減率decay, 然後給每乙個變數都維護乙個影子變數. sh
adow
vari
able
=dec
ay∗s
hado
wvar
iabl
e+(1
−dec
ay)∗
vari
able
s ha
dowv
aria
ble=
deca
y∗sh
adow
vari
able
+(1−
deca
y)∗v
aria
bl
edecay可以通過設定numupdates來動態設定: de
cay=
min(de
cay,
1+nu
mupd
ates
10+nu
mupd
ates
) dec
ay
=min(d
ecay
,1+n
umup
date
s10+n
umup
date
s)
Tensorflow筆記之深層神經網路
前面的學習中已經介紹了tensorflow的基本概念。下面會學習深層神經網路。深層神經網路的定義為 一類通過多層非線性變換對高複雜性資料建模演算法的合集。因為深層神經網路是實現 多層非線性變換 最常用的一種方法。深度學習具有兩個非常重要的特性 多層和非線性。1 線性模型的侷限性 當模型的輸入有n個時...
3 TensorFlow 深層神經網路
深層神經網路 簡稱為深度學習有兩個非常重要的特性 1.多層 2.非線性 線性模型的侷限性 例如前面的神經網路有兩層 不算輸入層 但是它和單層的神經網路井沒有區別,任意線性模型的組合仍然還是線性模型,然而線性模型能夠解決的問題是有限的 下面用tensorflow playground來演示 線性模型的...
tensorflow實戰 實現簡單的神經網路
from tensorflow.examples.tutorials.mnist import input data import tensorflow as tf mnist input data.read data sets mnist data one hot true sess tf.int...