Tensorflow 深層神經網路

2021-08-17 23:08:58 字數 2148 閱讀 6884

維基百科對深度學習的定義: 一類通過多層非線性變換對高複雜性資料建模演算法的合集.

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

)log⁡q

(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...