深度學習——相關公式及優化

歡迎關注,敬請點贊!

《我們是有內涵的》——深度學習相關公式、優化及應用

深度學習

往往需要與大數據結合在一起。

人臉識別:(單攝像頭的人臉識別是基於LBPH,容易突破)

  • 結構光(蘋果專利,保留了距離信息)
  • TOF深度感應

大部分傳統機器學習的算法都可以用深度學習來擬合

softmax公式:
softmax=eθjxjeθjx softmax = \frac{e^{\theta_jx}}{\displaystyle \sum_j e^{\theta_jx}}
貝葉斯公式
P(AB)=P(AB)P(B)=P(BA)P(A)P(B)=P(BA)P(A)iP(BAi)P(Ai) P(A|B) = \frac { P(AB)}{P(B)} = \frac {P(B|A) P(A)}{P(B)} = \frac {P(B|A) P(A)}{ \sum_i {P(B|A_i) P(A_i)}}

超幾何分佈概率公式
p=(kD)(nkND)/(nN) p = (^D_k) (^{N - D}_{n - k})/(^N_n)
信息熵公式(均勻分佈時,信息熵最大;模棱兩可時,最難揣測)
H(P)=iPilog(Pi) H(P) = - \sum_i P_i log (P_i)
相對熵(KL散度)公式
KL(p(x)q(x))=ipi(x)pi(x)qi(x) KL(p(x) || q(x)) = \sum_i p_i(x) \frac{p_i(x)}{q_i(x)}
交叉熵公式
cross=ipi(x)log(qi(x)) cross = - \sum_i p_i (x) log (q_i (x))
r2_score:正態分佈,平均值附近的概率最大。完全預測對,r2爲1;接近於揣測(正態分佈),r2爲0。
r2score=1iN(yiy)2(yiymean)2 r_2score =1 - \sum_i^N \frac {(y_i - y_{預測})^2}{(y_i - y_{mean})^2}

梯度下降(GD、BGD、SGD)

(返回頂部)

  • 局部最優解(模擬退火)
  • 速度慢

(SGD)nisXisYisWJ(W)Wttηtgt=ΔJis(Wt,Xis,Yis),is{12......n}E(gt)=ΔJ(Wt)Wt+1=Wtηtgt 隨機梯度下降(SGD):\\ 從一批樣本n中,隨機選取一個樣本i_s,輸入輸出分別爲X^{i_s}、Y^{i_s},\\ 模型參數爲W,損失函數爲J(W),W_t爲t模型參數, \eta_t爲學習率。\\ g_t = \Delta J_{i_s} (W_t, X^{i_s}, Y^{i_s}), \quad i_s \in \lbrace 1、2、......、n\rbrace \\ E(g_t) = \Delta J(W_t) \quad 期望仍等於正確的梯度下降\\ W_{t + 1} = W_t - \eta_t g_t

改進:

(返回頂部)

動量優化法

  • Momentum:引入一個積攢歷史梯度信息動量來加速SGD(理解爲:小球向下滾動的時候,帶上了慣性,加快向下滾動的速度)

vttα0.9(10SGD)vt=αvt1+ηtΔJis(Wt,Xis,Yis)Wt+1=Wtvt v_t 表示t時刻積攢的加速度,\alpha表示動力大小,通常取0.9(表示最大速度10倍於SGD)\\ v_t = \alpha v_{t-1} + \eta_t \Delta J_{i_s} (W_t, X^{i_s}, Y^{i_s})\\ W_{t+1} = W_t - v_t

  • NAG(Nesterov accelerate gradient,牛頓加速梯度):Momentum中加入一個校正因子(理解爲:更聰明的小球,提前知道要去哪裏,在坡底的時候速度慢下來)

vt=αvt1+ηtΔJis(Wtαvt1)Wt+1=Wtvt v_t = \alpha v_{t-1} + \eta_t \Delta J_{i_s} (W_t - \alpha v_{t-1})\\ W_{t+1} = W_t - v_t

自適應學習率優化器

  • AdaGrad:擁有損失函數梯度最大的參數,相應地有個快速下降的學習率;梯度較小的參數,相對較慢地下降。(適用於數據稀疏或分佈不均衡的數據集)

Wt+1=Wtη0t=1t(gt,i)+ϵgt,iη00.01ϵ1e8 W_{t+1} = W_t - \frac {\eta_0}{\sqrt{\sum^t_{t^{'} = 1}(g_{t^{'},i}) + \epsilon}} \bigodot g_{t,i}\\ \eta_0爲初始學習率,通常0.01;\epsilon爲很小的數,通常1e-8

  • RMSProp:修改了AdaGrad的梯度積累爲指數加權的平均移動。(經常使用的優化方法之一)

E[gt2]=αE[gt12]+(1α)gt2Wt+1=Wtη0E[gt2]+ϵgt E[g^2_t] = \alpha E[g^2_{t-1}] + (1-\alpha) g^2_t\\ W_{t+1} = W_t - \frac {\eta_0}{\sqrt{E[g^2_t] + \epsilon}} \bigodot g_t\\

  • AdaDelta:結合AdaGrad和RMSProp每次參數的更新步長。(後期可能會在局部最小值附近,反覆抖動)

E[gt2]=αE[gt12]+(1α)gt2ΔWt=i=1t1ΔWiE[gt2]+ϵWt+1=Wt+ΔWt E[g^2_t] = \alpha E[g^2_{t-1}] + (1-\alpha) g^2_t\\ \Delta W_t = -\frac {\sqrt{\sum^{t-1}_{i=1} \Delta W_i}} {\sqrt{E[g^2_t] + \epsilon}} \\ W_{t+1} = W_t + \Delta W_t

  • Adam:相對於RMSProp初期可能會有很高偏置,Adam包括偏置修正。(對超參數的選擇非常棒)

mt=β1mt1+(1β1)gtvt=β2vt1+(1β2)gt2mt^=mt1β1vt^=vt1β2Wt+1=Wtηvt^+ϵmt^ m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t\\ v_t = \beta_2 v_{t-1} + (1 - \beta_2) g^2_t\\ \hat{m_t} = \frac{m_t}{1-\beta_1},\hat{v_t} = \frac{v_t}{1-\beta_2}\\ W_{t+1} = W_t - \frac{\eta}{\sqrt{\hat{v_t}} + \epsilon} \hat{m_t}

應用:

cnn卷積神經網絡(機器視覺)都是基於圖片來說的,適用於圖片數據,特徵提取的方法之一。

rnn循環神經網絡(自然語言處理)。

自動駕駛:採集傳感器數據以及對應的人的操作,來訓練神經網絡。

歡迎關注,敬請點贊!
(返回頂部)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章