視頻學(xué)習(xí)資源
1. 李宏毅
b站資源:
【李宏毅 深度學(xué)習(xí)19(完整版)國語】機(jī)器學(xué)習(xí) 深度學(xué)習(xí)
下面這兩個(gè)一樣:
【李宏毅】Linear Algebra 線性代數(shù) (2018,Fall) : 360p,37課说庭。
【合集】機(jī)器學(xué)習(xí)線代基礎(chǔ)_李宏毅_Linear Algebra 線性代數(shù) (2018) : 480p伪节,不全,只有25課。
李宏毅主頁:有線性代數(shù)課程沾乘。
李宏毅 - Linear Algebra (2016,Spring)
2. 吳恩達(dá)
機(jī)器學(xué)習(xí)(Machine Learning)- 吳恩達(dá)(Andrew Ng)
吳恩達(dá)《機(jī)器學(xué)習(xí)》文字整理版
3. 數(shù)學(xué)資源
圖解機(jī)器學(xué)習(xí)的數(shù)學(xué)直覺:線性代數(shù)擦剑,微積分,PCA(全完結(jié))
4. 其他
MarkDown寫數(shù)學(xué)公式
在這兒可以手動(dòng)選擇符號得到LaTeX公式:在線LaTeX公式編輯器峦剔。
VSCode安裝Markdown Preview Enhanced插件档礁。
$...$
或者\(...\)
中的數(shù)學(xué)表達(dá)式將會(huì)在行內(nèi)顯示。
$$...$$
或者\[...\]
或者```math 換行...```中的數(shù)學(xué)表達(dá)式將會(huì)在塊內(nèi)顯示吝沫。
簡書只支持$...$
和$$...$$
呻澜,例如:
深度學(xué)習(xí)開源項(xiàng)目及文章
圖像風(fēng)格遷移
一個(gè)藝術(shù)風(fēng)格化的神經(jīng)網(wǎng)絡(luò)算法(A Neural Algorithm of Artistic Style)(譯)
神經(jīng)風(fēng)格遷移(Neural Style Transfer)程序?qū)崿F(xiàn)(Keras)
Image Style Transfer:多風(fēng)格 TensorFlow 實(shí)現(xiàn)
【啄米日常】5:keras示例程序解析(2):圖像風(fēng)格轉(zhuǎn)移
深度卷積神經(jīng)網(wǎng)絡(luò)圖像風(fēng)格變換惨险,這個(gè)是優(yōu)化過后的風(fēng)格遷移羹幸,只是論文沒有開源,像是廣告?
這篇收集了多篇風(fēng)格遷移文章
機(jī)器學(xué)習(xí)實(shí)戰(zhàn)--對亞馬遜森林衛(wèi)星照片進(jìn)行分類(3)
TensorFlow從1到2(十三)圖片風(fēng)格遷移
風(fēng)格遷移中用到Gram矩陣辫愉,學(xué)習(xí)一下:
如何用簡單易懂的例子解釋格拉姆矩陣/Gram matrix栅受?
Gram矩陣和協(xié)方差矩陣相似,所以先學(xué)學(xué)協(xié)方差:
如何通俗易懂地解釋「協(xié)方差」與「相關(guān)系數(shù)」的概念恭朗? - GRAYLAMB的回答 - 知乎
風(fēng)格遷移大多使用VGG模型屏镊,代碼之中有一串?dāng)?shù)字我很疑惑:
VGG_MEAN = [103.939, 116.779, 123.68]
查了資料應(yīng)該是VGG中寫死的歸一化的數(shù)據(jù)預(yù)處理,那么不就用深究了痰腮,反正就是這么寫闸衫。VGGNet論文中應(yīng)該有說明,還沒看诽嘉。
神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識
梯度是如何計(jì)算的
Deep Learning(深度學(xué)習(xí))學(xué)習(xí)筆記整理系列之(一)
batch蔚出、epoch弟翘、iteration
- batch:意思是訓(xùn)練數(shù)據(jù)分批,比如我有10萬個(gè)訓(xùn)練數(shù)據(jù)全都要參與訓(xùn)練骄酗,因?yàn)閿?shù)據(jù)量太大了稀余,沒辦法一次訓(xùn)練完,那么只能分批趋翻,比如分成20個(gè)batch睛琳,那么每個(gè)batch的size就是5000。每一次參數(shù)的更新的Loss Function并不是由一個(gè)樣本得到的踏烙,而是由一個(gè)batch的數(shù)據(jù)加權(quán)得到师骗。
- iteration:使用batch size個(gè)樣本訓(xùn)練一次的過程叫做一個(gè)iteration。
- epoch:一個(gè)epoch就是使用訓(xùn)練集中的全部樣本訓(xùn)練一次讨惩。通俗的講辟癌,epoch的值就是整個(gè)訓(xùn)練數(shù)據(jù)集被反復(fù)使用幾次。
深度學(xué)習(xí)中為什么要使用多于一個(gè)epoch?
CNN知識及各種神經(jīng)網(wǎng)絡(luò)模型
介紹了:VGGNet荐捻、ResNet黍少、Inception與Xception
ResNet, AlexNet, VGG, Inception: 理解各種各樣的CNN架構(gòu)
CNN網(wǎng)絡(luò)架構(gòu)演進(jìn):從LeNet到DenseNet
大白話講解卷積神經(jīng)網(wǎng)絡(luò)工作原理
這篇文章里“3、卷積神經(jīng)網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)”中的動(dòng)圖非常助于理解卷積神經(jīng)網(wǎng)絡(luò)处面,特別是RGB通道的卷積過程解了我的疑惑厂置。
RGB通道的卷積:每一個(gè)顏色通道與不同的filter同時(shí)進(jìn)行卷積,然后將3個(gè)卷積結(jié)果相加即是feature map的值魂角。也就是多個(gè)通道的卷積結(jié)果相加得到一個(gè)feature map昵济。
權(quán)值共享:
如何理解卷積神經(jīng)網(wǎng)絡(luò)中的權(quán)值共享? - superbrother的回答 - 知乎
cnn中權(quán)值共享理解
我個(gè)人簡單理解野揪,舉例:
1層可以只使用一個(gè)的卷積核進(jìn)行卷積運(yùn)算砸紊,輸入的圖片可能很大,但每次卷積只使用這么一個(gè)卷積核囱挑,這就叫權(quán)值共享醉顽。
感受野:
第2篇對于理解感覺野來說是極好的平挑,第1篇看了半天還不知道什么是感受野游添。
不過最終計(jì)算公式還是看第1篇好。
結(jié)合上文我個(gè)人對感受野的簡單理解:
第n層卷積的結(jié)果是由第1層到n-1層多次卷積而來的通熄,所以第n層得到的單元是受一層層影響才得到的結(jié)果唆涝,卷積結(jié)果中的一個(gè)單元所對應(yīng)原始輸入層的范圍肯定是越來越大, 這個(gè)受影響的范圍就是其看到的范圍也就是感受野唇辨。
比如最終卷積層如果只得到1個(gè)單元值廊酣,那么肯定就是對應(yīng)整個(gè)原始input的特征,這是很直覺的赏枚,一張圖經(jīng)過卷積得到一個(gè)數(shù)字亡驰,這個(gè)數(shù)字肯定是整張圖的特征綜合而來的晓猛,所以這個(gè)值的感受野就是全圖。
更直觀但不嚴(yán)謹(jǐn)?shù)睦斫猓阂婚_始我們走很近盯著圖的很小的局部一塊塊的看凡辱,慢慢走遠(yuǎn)一點(diǎn)看的更大一點(diǎn)范圍戒职,這樣一層層遞進(jìn)直至一眼就看到全圖。
引用第1篇:
第1篇有兩個(gè)公式透乾。第1個(gè)公式我沒有細(xì)看洪燥,第2個(gè)公式跟第2篇一樣,所以這里只說一下第2個(gè)公式乳乌。第 個(gè)卷積層中捧韵,每個(gè)單元的感受野公式:
其中 是第層的感受野大小,而 是當(dāng)前層的卷積核大小汉操,是第層的步長再来。從這個(gè)公式可以看到,相比前一層客情,當(dāng)前層的感受野大小在兩層之間增加了,這是一個(gè)指數(shù)級增加癞己,如果stride大于1的話膀斋。這個(gè)公式也可以這樣理解,對于第 層痹雅,其卷積核為仰担,那么相比前一層需要計(jì)算個(gè)位置(或者神經(jīng)元,意思是 層的一個(gè)位置在 層的視野大小是 )绩社,但是這些位置要一直向前擴(kuò)展到輸入層摔蓝。對于第一個(gè)位置,擴(kuò)展后的感受野為愉耙,正好是前一層的感受野大小贮尉,但是對于剩余的個(gè)位置就要看stride大小,你需要擴(kuò)展到前面所有層的stride(注意不包括當(dāng)前層的stride朴沿,當(dāng)前層的stride只會(huì)影響后面層的感受野),所以需要乘以赌渣,這樣剩余個(gè)位置的感受野大小就是魏铅,和第一個(gè)位置的感受野加到一起就是上面的公式了。
原諒我書讀的少坚芜,下面這個(gè)符號都不知識什么意思览芳,學(xué)習(xí)一下:
,其中數(shù)學(xué)符號是累乘符號鸿竖,是希臘字母的大寫讀pai沧竟,在數(shù)學(xué)上通常表示連乘铸敏,小寫就表示圓周率。
此符號代表“求乘積”屯仗,上下添加的為求乘積的初始值和終止值搞坝,故。
另input輸入層的感受野為:1魁袜,因?yàn)槊總€(gè)像素只能看到自身桩撮。
用第2篇的實(shí)例代入計(jì)算一下:
各層的卷積核與步長值:
代入公式:
得:
,第一層就直接是卷積核大小不用計(jì)算峰弹。
感受野的作用: (引用自第2篇的評論)
感受野是可以幫助設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)的店量,至起碼可以大致了解到在每一層的特征所涵蓋的信息量。例如鞠呈,輸入圖像大小是250*250的情況下融师,如果最后一層的感受野能超過250的話,那么可以認(rèn)為在做最后的分類判斷時(shí)所用到的特征已經(jīng)涵蓋了原始圖像所有范圍的信息了蚁吝。在保證最后一層特征的感受野大小的情況下旱爆,如果能夠盡可能的降低網(wǎng)絡(luò)的參數(shù)總量,那么就是件很有意義的事情窘茁。事實(shí)上inception model就是這樣的思路怀伦,通過非對稱的結(jié)構(gòu)來降低參數(shù)量,同時(shí)還能保證感受野山林。
Feature map特征圖大蟹看:
順便記錄一下feature map大小計(jì)算公式,來自上文感受野第1篇:
: number of input features
: number of output features
: convolution kernel size
: convolution padding size
: convolution stride size
舉例:
輸入特征圖大小為驼抹,采用的卷積參數(shù)如下:
卷積核大小 桑孩,padding大小,步長 框冀。
經(jīng)過一次卷積之后流椒,得到大小為的輸出特征圖。在這個(gè)特征圖上繼續(xù)采用相同的卷積明也,得到一個(gè) 的特征圖镣隶。
補(bǔ)充一個(gè)寬高不同的計(jì)算公式,來自《一文入門卷積神經(jīng)網(wǎng)絡(luò):CNN通俗解析》:
輸出寬度:
輸出高度:
W :輸入圖像的寬度
H :輸入圖像的高度
Fw :濾波器或內(nèi)核的寬度
Fh :濾波器的高度
P :填充
S :移動(dòng)步幅
其實(shí)這個(gè)公式是用來倒推出padding size诡右。
當(dāng)padding=‘SAME’時(shí):
先由另一個(gè)公式算出output size安岂,然后再用上面公式倒推padding size。
計(jì)算得到padding的值帆吻,如果padding的值為整數(shù)域那,則填充padding圈;如果padding為小數(shù),則填充padding的整數(shù)圈以后次员,再填充半圈败许,即右側(cè)再填充一列和底側(cè)再填充一行。(參考)
卷積過程的個(gè)人理解:
- 每一層有多少個(gè)卷積核filter就輸出多少個(gè)feature map淑蔚。
- 每一層的input有可能有多個(gè)channel市殷。
- 每一層可以有n個(gè)filter。
- 對應(yīng)channel數(shù)量刹衫,每個(gè)filter有相應(yīng)的深度醋寝,比如說RGB圖有3個(gè)channel,那么一層中可以有64個(gè)filter带迟,每個(gè)filter的尺寸為音羞,前面的是filter的寬高,后面的一個(gè)是對應(yīng)channel數(shù)量的深度仓犬。
- 計(jì)算過程:
使用第4條的參數(shù)配置計(jì)算:(VGGNet舉例)
1個(gè)filter有3層嗅绰,每層的值都是不同的,一開始這些值都是隨機(jī)生成的搀继。將filter的每一層對應(yīng)每個(gè)channel同時(shí)進(jìn)行卷積計(jì)算窘面,然后將3層channel與3層filter計(jì)算出的3個(gè)值加在一起當(dāng)然還要再加上一個(gè)bias,變成這個(gè)filter對應(yīng)的feature map的值叽躯。
也就是說3個(gè)channel與3層filter卷積出來的結(jié)果只有一個(gè)feature map财边,也就是一個(gè)filter對應(yīng)一個(gè)feature map,換句話說不管有多少個(gè)channel每次卷積都會(huì)變成一個(gè)channel參與運(yùn)算险毁。
這樣一共64個(gè)filter計(jì)算出64個(gè)feature map制圈,然后使用Relu激活函數(shù)激活们童,然后又跟著卷積+Relu......畔况,多次卷積和激活后再進(jìn)行池化(max pooling),這一層結(jié)束運(yùn)算然后將輸出交給再下一層進(jìn)行類似同樣的操作慧库。
最終VGGNet后面跟著3個(gè)全連接層(FC-4096,FC-4096,FC-1000)跷跪,最后再使用soft-max進(jìn)行分類。 - 每一層的filter數(shù)量是遞增的齐板,一般是以的倍數(shù)遞增(成倍遞增)吵瞻,這是因?yàn)殡S著層數(shù)深度的遞進(jìn),feature map的尺寸越來越小甘磨,本卷積層的每個(gè)feature map提取的特征越具有代表性(精華部分)橡羞,所以后一層卷積層需要增加feature map的數(shù)量,才能更充分的提取出前一層的特征济舆,一般是成倍增加(不過具體論文會(huì)根據(jù)實(shí)驗(yàn)情況具體設(shè)置)卿泽。
參考:
CNN中feature map、卷積核滋觉、卷積核個(gè)數(shù)签夭、filter齐邦、channel的概念解釋,以及CNN 學(xué)習(xí)過程中卷積核更新的理解
VGGNet
TensorFlow神經(jīng)網(wǎng)絡(luò)(九)VGG net論文閱讀筆記
百度百科的這篇居然寫的不錯(cuò):VGG 模型
【模型修改的漫漫長路】經(jīng)典VGG模型理解-這大概是目前最詳細(xì)的講解了【一】
殘差網(wǎng)絡(luò) ResNet
大話深度殘差網(wǎng)絡(luò)(DRN)ResNet網(wǎng)絡(luò)原理
深度學(xué)習(xí)筆記(5)——學(xué)術(shù)界的霸主Resnet
一張圖就可以理解(處理過程):
最主要的是這個(gè)function: 第租。
假定某段神經(jīng)網(wǎng)絡(luò)的輸入是x措拇,期望輸出是H(x),即H(x)是期望的復(fù)雜潛在映射慎宾。
在上圖的殘差網(wǎng)絡(luò)結(jié)構(gòu)圖中丐吓,通過“shortcut connections(捷徑連接)”的方式,直接把輸入x傳到輸出作為初始結(jié)果璧诵,輸出結(jié)果為H(x)=F(x)+x汰蜘,當(dāng)F(x)=0時(shí),那么H(x)=x之宿,也就是上面所提到的恒等映射族操。于是,ResNet相當(dāng)于將學(xué)習(xí)目標(biāo)改變了比被,不再是學(xué)習(xí)一個(gè)完整的輸出色难,而是目標(biāo)值H(X)和x的差值,也就是所謂的殘差F(x) := H(x)-x等缀,因此枷莉,后面的訓(xùn)練目標(biāo)就是要將殘差結(jié)果逼近于0,使到隨著網(wǎng)絡(luò)加深尺迂,準(zhǔn)確率不下降笤妙。
RNN知識
一文搞懂RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))基礎(chǔ)篇
完全圖解RNN、RNN變體噪裕、Seq2Seq蹲盘、Attention機(jī)制
目標(biāo)檢測
干貨 | 目標(biāo)檢測入門,看這篇就夠了(已更完)
基于深度學(xué)習(xí)的目標(biāo)檢測算法綜述(一)
基于深度學(xué)習(xí)的目標(biāo)檢測算法綜述(二)
基于深度學(xué)習(xí)的目標(biāo)檢測算法綜述(三)
綜述|基于深度學(xué)習(xí)的目標(biāo)檢測(一)
第三十三節(jié)膳音,目標(biāo)檢測之選擇性搜索-Selective Search
樓上作者的一堆目標(biāo)檢測相關(guān)文章及其他深度學(xué)習(xí)知識
一文讀懂Faster RCNN
從編程實(shí)現(xiàn)角度學(xué)習(xí)Faster R-CNN(附極簡實(shí)現(xiàn))
目標(biāo)檢測算法已經(jīng)迭代更新好多代召衔,我覺得應(yīng)該深入學(xué)習(xí)最新的最好的算法,畢竟老的算法已經(jīng)沒有什么意義祭陷,稍微了解其大概原理即可苍凛。
Faster RCNN開源實(shí)現(xiàn):
tensorflow版
endernewton/tf-faster-rcnn
tensorpack/examples/FasterRCNN/
smallcorgi/Faster-RCNN_TFkeras版
jinfagang/keras_frcnn
Mask RCNN開源實(shí)現(xiàn):
- tensorflow版
CharlesShang/FastMaskRCNN
matterport/Mask_RCNN
文字檢測
白翔:趣談“捕文捉字”-- 場景文字檢測 | VALSE2017之十
場景文字檢測—CTPN原理與實(shí)現(xiàn)
一文讀懂CRNN+CTC文字識別
GAN對抗網(wǎng)絡(luò)
GAN對抗網(wǎng)絡(luò)入門教程
GAN學(xué)習(xí)指南:從原理入門到制作生成Demo
線稿自動(dòng)上色
CNN網(wǎng)絡(luò)結(jié)構(gòu)可視化查看工具
Netscope CNN Analyzer
可以在線查看CNN各種網(wǎng)絡(luò)結(jié)構(gòu),非常棒兵志。
數(shù)學(xué)知識
張量的通俗理解
速成零基礎(chǔ)高中數(shù)學(xué)導(dǎo)數(shù)部分
matrix: 矩陣:mn矩陣醇蝴,m是row, n是column,也就是行列想罕。
identity matrix: 單位矩陣悠栓。
transpose matrix: 轉(zhuǎn)置矩陣,mn-> nm,行列互換闸迷。
矩陣mn乘以列向量n也就是n1的矩陣嵌纲, 結(jié)果為m的向量也就是m*1的矩陣:
矩陣相乘
13,1行3列乘以34腥沽,3行4列逮走,列數(shù)等于行數(shù)才可以相乘,結(jié)果為1行4列今阳。
但是 34乘以13就不行师溅,會(huì)出錯(cuò)。
導(dǎo)數(shù)與微分
(1)方向?qū)?shù):本質(zhì)就是函數(shù)在A點(diǎn)無數(shù)個(gè)切線的斜率的定義盾舌。每一個(gè)切線都代表一個(gè)變化的方向墓臭。
(2)梯度:函數(shù)在A點(diǎn)無數(shù)個(gè)變化方向中變化最快的那個(gè)方向。
(3)全微分:函數(shù)從A點(diǎn)到B點(diǎn)變化的量(其實(shí)是取一個(gè)無窮小的變化的量)妖谴。
(4)偏導(dǎo):多元函數(shù)降維時(shí)候的變化窿锉,比如二元函數(shù)固定y,只讓x單獨(dú)變化膝舅,從而看成是關(guān)于x的一元函數(shù)的變化來研究嗡载。
導(dǎo)數(shù):即描述函數(shù)在一點(diǎn)處的變化快慢的趨勢。
微分:即描述函數(shù)在一點(diǎn)處發(fā)生一個(gè)無窮小區(qū)間的變化的量的線性逼近仍稀。
概率與統(tǒng)計(jì)
《概率論與數(shù)理統(tǒng)計(jì)》教學(xué)視頻全集(宋浩)