深度學習超簡單入門

2021-09-11 08:15:28 字數 2548 閱讀 8499

線性:當存在w

ww和b

bb使得式子

f (x

)=x⋅

w+bx

∈rdi

n,w∈

rdin

×dou

tand

b∈rd

ou

tf(x) = x \cdot w + b \quad\\ x \in \mathbb}} , w \in \mathbb \times d_ }} and \quad b \in \mathbb}}

f(x)=x

⋅w+b

x∈rd

in​,

w∈rd

in​×

dout

​and

b∈rd

out​

非線性:不滿足線性條件的,比較典型的是xor

ww 和 b

bb 的優解。但是我們的問題在大多數情況下都是非線性的, 我們往往會通過加入核函式(或啟用函式)來使得我們的模型能夠適應線性不可分的問題。

啟用函式一般同樣會選擇一些非線性函式。比較典型的有:

sigmoid(logistic)

σ (x

)=11

+e−x

\sigma(x) = \frac}

σ(x)=1

+e−x

1​tanh

t an

h(x)

=e2x

−1e2

x+

1tanh(x) = \frac -1} + 1}

tanh(x

)=e2

x+1e

2x−1

​relu

r el

u(x)

=max

(0,x

)=

0 \quad x < 0\\ x \quad others \end \right .

relu(x

)=ma

x(0,

x)= = relu(a(relu(xw_1 + b_1))w_2 + b_2)

mlp1−r

elu​

=rel

u(a(

relu

(xw1

​+b1

​))w

2​+b

2​)深度學習有很多的損失函式,不同的應用也應該使用不同的損失函式。損失函式總的來說就是計算兩個向量的的相差程度,並將結果化為標量。常見的損失函式有:

這裡設預期輸出和分類器輸出的差值為m。

log:

l lo

g=lo

g(1+

exp(

−m))

l_ = log(1+ exp(-m))

llog​=

log(

1+ex

p(−m

))logistic(也叫二元交叉熵):

l =−

yalo

gyp−

(1−y

a)lo

g(1−

yp

)l = -y_a logy_p - ( 1 - y_a) log( 1- y_p)

l=−ya​

logy

p​−(

1−ya

​)lo

g(1−

yp​)

**規則是:

p re

dict

ion=

0 \quad y_p < 0.5\\ 1 \quad y_p \ge 0.5 \end \right.

predic

tion

=}}

d(i)=∂

i∂n​

實際上,我們使用鏈式傳導法則就可以一次算出所有節點的梯度值。

我們比較常用的是隨機梯度下降(sgd)。sgd的核心思想是梯度越小,下降越慢。但是這樣很容易進入區域性最優,於是sgd還引入了隨機性,從而可以跳出區域性最優的情況。

梯度消失指的是梯度變得接近0,梯度**指的是梯度變得非常高。這兩個都是嚴重的問題。在深層網路中,這兩個問題會非常嚴重。比如我在訓練googlenet的時候,就不止一次的碰到了梯度消失的問題。

可以參考**更加詳細的了解:

雖說和傳統的機器學習相比,深度學習的乙個優點就是不需要人們大量的調整引數,模型會自動的學習到一些引數。但是這不意味著深度學習不需要調參。比較常見的需要調整的超參有學習率優化演算法的引數和batch size等。

cnn,卷積神經網路

rnn,迴圈神經網路

這個要展開說還是挺費時間的,加上網上資料比較多,這裡就不說了。

在nlp中,cnn善於抽取資料中有意義的區域性模式。其可以接受任意長度的輸入並抽取有意義的區域性模式。cnn對於單詞順序敏感,但是對於其在輸入中的位置不敏感(cnn是區域性視野的)。

rnn比較適合一些序列任務。和cnn不同的是,它具有對詞順序的敏感性。一般rnn很少單獨作為乙個網路,更多的時候是作為一種資料的處理手段。例如,可以把rnn的輸出給cnn,來完成一些特定的任務。

struts超簡單入門( )

作為最流行的web framework,struts的入門可能算是比較麻煩了,本人花費了一整天的時間才算將他初步執行成功,現將成果整理如下 例子的需求 1 允許使用者輸入乙個名字,提交後返回 hello 輸出形式為hello 字串 2 當使用者沒有輸入名字時,返回乙個錯誤提示 3 當使用者輸入的名字...

struts超簡單入門( )

例子的需求 1 允許使用者輸入乙個名字,提交後返回 hello 輸出形式為hello 字串 2 當使用者沒有輸入名字時,返回乙個錯誤提示 3 當使用者輸入的名字帶 符號時,提示錯誤資訊,即不允許輸入含有 符號的名字 例子的執行環境 windows2000 jdk1.4.2 tomcat5.0 str...

超簡單git入門

安裝完後,右擊目標資料夾,選擇git bash,就可以輸入git命令操作了。二 常用的git操作過程 我們首次用git管理工程,有兩種方法 1 先有本地工程,然後提交遠端倉庫 2 先轉殖遠端倉庫到本地,然後建立本地工程。1 先建立本地工程,提交遠端倉庫 git init 初始化 git add 新增...