深度学习基础算法梳理
1、實(shí)質(zhì)用途
深度學(xué)習(xí)用來處理圖像、語音等任務(wù),也可用來處理數(shù)值型分類、回歸任務(wù)。深度學(xué)習(xí)無需特征選擇過程,具有較強(qiáng)的自學(xué)習(xí)能力,能擬合任意函數(shù)。
2、算法列表
2.1 感知器
感知器是由神經(jīng)元,組成的一個(gè)基本的線性深度學(xué)習(xí)模型。用來解決線性分類問題。
感知器可實(shí)現(xiàn)基本的與、或函數(shù)、基本的二分類。它可以擬合任何的線性函數(shù),任何線性分類或線性回歸問題都可以用感知器來解決。
(1)感知器的定義
感知器為神經(jīng)網(wǎng)絡(luò)的組成單元,感知器的結(jié)構(gòu)圖片如下
感知器的公式如下:
激活函數(shù)的公式如下:
感知器由輸入權(quán)值、激活函數(shù)(階躍函數(shù))、輸出組成。
(2)感知器的訓(xùn)練
權(quán)重更新的公式如下:
注意:此處t、y為一批輸入的所有訓(xùn)練數(shù)據(jù)的y值。輪次則代表這個(gè)w更新幾輪。如果輪次為1的話,此處w只更新一次。圖中的學(xué)習(xí)率為每次更新的參數(shù)的跨度。
2.2 線性單元
感知器只能解決線性可分的情況,面對(duì)線性不可分的情況無法處理,線性單元就是為了解決線性不可分的情況。
激活函數(shù)的公式為
f(x)=xf(x)=x f(x)=x
以上這種簡(jiǎn)單的激活函數(shù),為線性回歸,可以解決回歸問題。
因此線性單元的公式為,其中X0為1,代表偏置b。目標(biāo)函數(shù)為
y=wTxy=w^Tx y=wTx
e=12(y?y ̄)2e=\frac{1}{2}(y?\overline{y})^2 e=21?(y?y?)2
2.3 全連接神經(jīng)網(wǎng)絡(luò)
在線性單元的基礎(chǔ)上,激活函數(shù)變換為sigmoid等其他的激活函數(shù),目標(biāo)函數(shù)為均方差。因此參數(shù)更新公式如下
反向傳播算法
代表從輸出層往前一直求解權(quán)重的過程。
由于全連接神經(jīng)網(wǎng)絡(luò)參數(shù)太多,一般無法將參數(shù)傳遞超過3層。因此需要用其他網(wǎng)絡(luò)來優(yōu)化算法。
2.4 卷積神經(jīng)網(wǎng)絡(luò)
圖像和語音識(shí)別一般選擇卷積神經(jīng)網(wǎng)絡(luò)。激活函數(shù)一般選擇relu為max(0,x)
relu速度快、減輕梯度小時(shí)、稀疏性
卷積神經(jīng)網(wǎng)絡(luò)由卷積層、池化層、全連接層組成。
卷積層:局部連接、權(quán)值共享【某一片節(jié)點(diǎn)連接1個(gè)輸出,公用一個(gè)權(quán)值】提升計(jì)算效率可保留局部特征。(卷積相當(dāng)于矩陣的內(nèi)積,是對(duì)一片區(qū)域的特征提取過程,得到一個(gè)featuremap)
池化層:下采樣【均值、最大值】
LeNet-5是實(shí)現(xiàn)手寫數(shù)字識(shí)別的卷積神經(jīng)網(wǎng)絡(luò),在MNIST測(cè)試集上,它取得了0.8%的錯(cuò)誤率。
2.5 循環(huán)神經(jīng)網(wǎng)絡(luò)
某些任務(wù)需要能夠更好的處理序列的信息,即前面的輸入和后面的輸入是有關(guān)系的。同時(shí)輸入的長(zhǎng)度不是固定的。
網(wǎng)絡(luò)結(jié)構(gòu)如下,S值取決于當(dāng)前的x值與上次隱藏層的s值。可以理解為當(dāng)前來了個(gè)單次要看下一個(gè)單次是什么,不僅要拿當(dāng)前單次,還要拿以前存儲(chǔ)的信息庫(kù)的信息。
循環(huán)神經(jīng)網(wǎng)絡(luò)為向前看,雙向循環(huán)神經(jīng)網(wǎng)絡(luò)【結(jié)合向前看和向后看】
深度循環(huán)神經(jīng)網(wǎng)絡(luò),代表中間有多個(gè)隱藏層
循環(huán)神經(jīng)網(wǎng)絡(luò)存在梯度爆炸和梯度消失問題,并不能真正的處理好長(zhǎng)距離的依賴(雖然有一些技巧可以減輕這些問題)
2.6 長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)
針對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò),增加一個(gè)來存儲(chǔ)長(zhǎng)期狀態(tài)。包含輸入門、遺忘門、新值門、輸出門,其中原來RNN的狀態(tài)不變,只是增加了一個(gè)C來存儲(chǔ)長(zhǎng)期狀態(tài)。可以理解為上一個(gè)信息經(jīng)過多重變換,保留信息的原始性,放在了h中。
3、基礎(chǔ)概念
3.1目標(biāo)函數(shù)
(1)0-1 loss函數(shù)
(2)交叉熵函數(shù)
(3)Hinge loss
(4)均方差損失
Hinge loss被用來解SVM問題中的間距最大化問題。回歸任務(wù)的損失(5)L1損失(MAE)
(6)L2損失(MSE)
3.2激活函數(shù)
(1)sigmoid
(2)tanh
(3)relu
relu優(yōu)勢(shì)計(jì)算速度快、不存在梯度飽和的問題
4、常用實(shí)例
梯度下降
一般情況我們求解一個(gè)函數(shù)的極值是通過求導(dǎo)來求解的,但是有很多函數(shù)求導(dǎo)很復(fù)雜,且計(jì)算器不會(huì)求導(dǎo),計(jì)算機(jī)是通過試出來的,這種嘗試的方式就是梯度下降。
所謂的梯度下降也就是對(duì)當(dāng)前函數(shù)針對(duì)參數(shù)求導(dǎo),導(dǎo)數(shù)乘以步長(zhǎng)作為梯度的反方向去下降找到最小誤差值點(diǎn)。(梯度下降也可理解為,尋找一個(gè)最能找到極值點(diǎn)的方向去移動(dòng))
https://www.cnblogs.com/pinard/p/5970503.html
詳細(xì)內(nèi)容參考以上文獻(xiàn)。
隨機(jī)梯度下降與批梯度下降
批梯度下降,使用全部樣本進(jìn)行更新,更新速度慢。
隨機(jī)梯度下降每次選取一個(gè)樣本來優(yōu)化權(quán)重,方向變化大不一定能很快得到局部最優(yōu)解
最小二乘法
尋找一條線到所有的點(diǎn)距離最短,采用求導(dǎo)的方式計(jì)算
超參數(shù)設(shè)置
神經(jīng)網(wǎng)絡(luò)的層數(shù),一般根據(jù)經(jīng)驗(yàn)來確定。層的節(jié)點(diǎn)個(gè)數(shù)根據(jù)公式來定,比如根號(hào)nl,或者log。學(xué)習(xí)率、單批次大小、輪次
softmax
給定多維向量,輸出對(duì)應(yīng)的概率
相關(guān)學(xué)習(xí)鏈接
總體參考技術(shù)博客
https://cuijiahua.com/
NLP學(xué)習(xí)視頻
https://www.bilibili.com/video/BV17A411e7qL?p=4
圖像識(shí)別課程
OpenCV視頻教程計(jì)算機(jī)視覺圖像識(shí)別從基礎(chǔ)到深度學(xué)習(xí)實(shí)戰(zhàn)
https://www.bilibili.com/video/BV1uW41117GE?p=8
撰寫目的
以最通俗的方式,記錄深度學(xué)習(xí)學(xué)習(xí)進(jìn)程,以應(yīng)用為主。
總結(jié)
以上是生活随笔為你收集整理的深度学习基础算法梳理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是AIFF?
- 下一篇: 食品安全培训PPT模板