-
MobileNets V1 與 MobileNets V2
MobileNets V1:- 深度可分離卷積省店,kernel_size x kernel_size + 1 x 1 x C_out
- 兩個全局超參數(shù)來平衡延遲性和準確性;
(1)寬度乘數(shù):對一個給定的層犀填,輸入通道數(shù)
變成
,輸出通道數(shù)
變成
踊沸。
(2)分辨率乘數(shù):將其應(yīng)用于輸入圖像扔役,縮放輸入圖片大小
MobileNets V2:
- 引入殘差結(jié)構(gòu),先升維再降維卫病,增強梯度的傳播
- 去掉 Narrow layer(low dimension or depth) 后的 ReLU油啤,保留特征多樣性,增強網(wǎng)絡(luò)的表達能力(Linear Bottlenecks)
- 網(wǎng)絡(luò)為全卷積的蟀苛,使得模型可以適應(yīng)不同尺寸的圖像益咬;使用 RELU6(最高輸出為 6)激活函數(shù),使得模型在低精度計算下具有更強的魯棒性
- python 2 與 python 3 的區(qū)別
- print:在 Python 2 中帜平,print 是一條語句幽告,而 Python3 中作為函數(shù)存在
# py2
print("hello") # 等價 print ("hello")
#py3
print("hello")
前者是把 ("hello")當作一個整體,
而后者 print()是個函數(shù)裆甩,接收字符串作為參數(shù)冗锁。
編碼:Python2 的默認編碼是 asscii,Python 3 默認采用了 UTF-8 作為默認編碼
字符串:在 Python2 中嗤栓,字符串有兩個類型冻河,一個是 unicode,一個是 str茉帅,前者表示文本字符串叨叙,后者表示字節(jié)序列;在 Python3 中兩者做了嚴格區(qū)分堪澎,分別用 str 表示字符串擂错,byte 表示字節(jié)序列
True 和 False:True 和 False,在python 2中全封,是兩個全局變量的名字马昙,可以被修改,而在python 3中刹悴,變?yōu)殛P(guān)鍵字行楞,用于指向兩個固定對象,不允許被重新賦值
“==”的實現(xiàn)機制
==是值比較-
多任務(wù)學(xué)習(xí)中每部分損失函數(shù)的權(quán)重確定
損失合并:為多個任務(wù)定義單個損失函數(shù)土匀。雖然單個任務(wù)有定義明確的損失函數(shù)子房,但多個任務(wù)會帶來多個損失。直接將所有的損失相加。發(fā)現(xiàn)证杭,當一個任務(wù)趨同于好的結(jié)果時田度,其他任務(wù)看起來相當糟糕。造成這個現(xiàn)象的原因很簡單解愤,因為損失的規(guī)模是如此的不同镇饺,以至于一個任務(wù)主導(dǎo)了整個損失,而其余的任務(wù)沒有機會影響共享層的學(xué)習(xí)過程送讲。
一個快速解決辦法是用一個加權(quán)和替代損失的直接相加和奸笤,使所有的損失對共享層的影響大致相同調(diào)整學(xué)習(xí)速率:選擇較高的學(xué)習(xí)率會導(dǎo)致其中一個任務(wù)的dying Relu,而使用較低的學(xué)習(xí)率會導(dǎo)致另一個任務(wù)的收斂緩慢哼鬓。那我們該怎么辦监右?我們可以讓每個特定于任務(wù)的子網(wǎng)調(diào)整為單獨的學(xué)習(xí)速率,并將共享子網(wǎng)調(diào)整為另一個速率异希。
使用評估作為特征:一旦我們通過了創(chuàng)建預(yù)測多個任務(wù)的 NN 的第一個階段健盒,我們可能會將某個任務(wù)的評估作為另一個任務(wù)的結(jié)果
-
BN 針對的是哪個維度:通道維度
BN就是通過一定的規(guī)范化手段,把每層神經(jīng)網(wǎng)絡(luò)任意神經(jīng)元這個輸入值的分布強行拉回到均值為0方差為1的標準正態(tài)分布称簿,其實就是把越來越偏的分布強制拉回比較標準的分布扣癣,這樣使得激活輸入值落在非線性函數(shù)對輸入比較敏感的區(qū)域,這樣輸入的小變化就會導(dǎo)致?lián)p失函數(shù)較大的變化憨降,意思是這樣讓梯度變大搏色,避免梯度消失問題產(chǎn)生,而且梯度變大意味著學(xué)習(xí)收斂速度快券册,能大大加快訓(xùn)練速度。對于CNN來說垂涯,特征是(N,H,W,C)烁焙,我們需要把數(shù)據(jù)變成 (NHW,C)。
-
訓(xùn)練的時候為什么要分成訓(xùn)練集耕赘、驗證集
image.png
訓(xùn)練集是用來訓(xùn)練模型內(nèi)參數(shù)的數(shù)據(jù)集骄蝇;
驗證集用于調(diào)整超參數(shù), 根據(jù)幾組模型驗證集上的表現(xiàn) 決定哪組超參數(shù)擁有最好的性能操骡, 同時用來監(jiān)控模型是否發(fā)生過擬合九火。
測試集用來評價模型泛化能力, 即之前模型使用驗證集確定了超參數(shù)册招, 最后使用一個從沒有見過的新數(shù)據(jù)集來判斷這個模型是否工作岔激。 -
BN在訓(xùn)練和測試的時候分別是怎么操作的
- 在訓(xùn)練過程中,只能計算當前batch樣本上的均值和方差是掰;
- 在訓(xùn)練結(jié)束時候虑鼎,網(wǎng)絡(luò)的mean和std就固定住了。因為測試時計算batch的均值方差不適合,因此會直接拿訓(xùn)練過程中對整個樣本空間估算的mean和var來使用(對訓(xùn)練過程中每個batch的mean炫彩,var做指數(shù)加權(quán)平均來將batch上的mean和var近似成整個樣本空間上的mean和var)匾七。
-
空洞卷積(Dilated / Atrous Convolution)
空洞卷積廣泛應(yīng)用于語義分割與目標檢測等任務(wù)中。
對于普通的卷積層江兢,其為了減少網(wǎng)絡(luò)的參數(shù)量昨忆,卷積核通常旋轉(zhuǎn)較小的 1 x 1,3 x 3 感受野大小杉允。小卷積核使得網(wǎng)絡(luò)提取特征時的感受野區(qū)域有限邑贴,但是增大感受野的區(qū)域又會增加網(wǎng)絡(luò)的參數(shù)量和計算代價。空洞卷積的提出較好地解決了這個問題夺颤,空洞卷積在普通卷積的感受野上增加了一個 dilation rate 參數(shù)痢缎,用于控制感受野區(qū)域的采樣步長。
當 dilation rate 為1時世澜,空洞卷積退化為普通的卷積独旷;
當 dilation rate 為2時,感受野每兩個單元采樣一個點寥裂。空洞卷積感受野計算:F = F + (F -1)(r - 1)嵌洼,K 為原始卷積核大小,r 為空洞卷積參數(shù)空洞率
然后帶入到標準卷積輸出大小計算公式就能得到通過空洞卷積后的規(guī)模:N = (W - F + 2P) / S + 1
-
上采樣方法都有哪些封恰?
(1)基于線性插值的上采樣:
最近鄰算法麻养,雙線性插值算法,雙三次插值算法
(2)基于深度學(xué)習(xí)的上采樣:
轉(zhuǎn)置卷積诺舔,PixelShuffle(亞像素卷積鳖昌,CVPR2016),PixelShuffle(亞像素卷積低飒,CVPR2016)许昨,Meta-Upscale(任意尺度縮放,CVPR2019)褥赊,CAPAFE(內(nèi)容關(guān)注與核重組糕档,思路新穎,ICCV2019)轉(zhuǎn)置卷積(Transposed Convolution 或 Fractionally Strided Convolution拌喉,或者反卷積/Deconvolution):并不能恢復(fù)成原卷積的輸入速那,通過在輸入之間填充大量的padding來實現(xiàn)高寬大于輸入高寬的效果,從而實現(xiàn)向上采樣的目的尿背。
只討論 h = w 的情況:
(1) o + 2p - k 為 s 倍數(shù)時:
o = (i -1) * s + k - 2 * p
(2) o + 2p - k 不為 s 倍數(shù)時:
a = (o + 2p - k) % s
o = (i - 1) * s + k - 2 * p + a
FCN
(1)FCN對圖像進行像素級的分類端仰,從而解決了語義級別的圖像分割問題。與經(jīng)典的CNN在卷積層使用全連接層得到固定長度的特征向量進行分類不同田藐,F(xiàn)CN可以接受任意尺寸的輸入圖像榆俺,采用反卷積層對最后一個卷基層的特征圖(feature map)進行上采樣,使它恢復(fù)到輸入圖像相同的尺寸,從而可以對每一個像素都產(chǎn)生一個預(yù)測茴晋,同時保留了原始輸入圖像中的空間信息陪捷,最后奇偶在上采樣的特征圖進行像素的分類。
(2)FCN將傳統(tǒng)CNN中的全連接層轉(zhuǎn)化成一個個的卷積層诺擅。-
編程
image.png
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
dp = [0] * len(nums)
dp[0] = nums[0]
for i in range(1,len(nums)):
if dp[i-1] <= 0:
dp[i] = nums[i]
else:
dp[i] = dp[i-1] + nums[i]
return max(dp)
class Solution:
def rearrangeString(self, s: str, k: int) -> str:
from collections import Counter
import heapq
if k <= 1: return s
c = Counter(s)
n = len(s)
heap = [(-v, k) for k, v in c.items()]
heapq.heapify(heap)
res = ""
while heap:
tmp = []
for _ in range(k):
if not heap:return res if len(res) == n else ""
num, alp = heapq.heappop(heap)
num += 1
res += alp
if num != 0:
tmp.append((num, alp))
for t in tmp:
heapq.heappush(heap, t)
return res
-
評價指標
AUC是POC曲線下的面積,面積的計算可以通過梯形去插值計算
準確率市袖,召回率,F(xiàn)1烁涌,TPR苍碟,F(xiàn)RR
P-R曲線:橫坐標是召回率,縱坐標是準確率
ROC曲線:橫坐標是FPR撮执,縱坐標是TPR微峰。
image.png
一般情況下抒钱,模型評估選擇P-R或者ROC沒啥區(qū)別蜓肆,但是當正樣本的個數(shù)嚴重少于負樣本個數(shù)時,P-R曲線相比較于ROC曲線能夠更加直觀的表現(xiàn)模型之間的差異谋币,更加合適仗扬。
當正樣本比例減小時,ROC曲線變化不明顯蕾额,但是P-R曲線的縱坐標早芭,即準確率出現(xiàn)了明顯的衰減。原因是诅蝶,當樣本嚴重傾斜時退个,我們假定召回率不變,那么表現(xiàn)較差的模型必然會召回更多的負樣本调炬,那么FP(假正例)就會迅速增加帜乞,準確率就會大幅衰減。
-
數(shù)據(jù)不平衡怎么辦
- 從數(shù)據(jù)角度:
(1)主動獲瓤鹁臁:獲取更多的少量樣本數(shù)據(jù)
(2) 算法采樣:上采樣、下采樣习柠、生成合成數(shù)據(jù)
(3)數(shù)據(jù)增強
(4)改變權(quán)重匀谣;懲罰因子 - 從評價指標:
(1)謹慎選擇AUC作為評價指標
(2)不要只看Accuracy
- 從數(shù)據(jù)角度:
梯度消失和梯度爆炸的原因
使用標準化初始w,那么各個層次的相乘都是0-1之間的小數(shù)资溃,而激活函數(shù)f的導(dǎo)數(shù)也是0-1之間的數(shù)武翎,其連乘后,結(jié)果會變的很小溶锭,導(dǎo)致梯度消失宝恶。若我們初始化的w是很大的數(shù),w大到乘以激活函數(shù)的導(dǎo)數(shù)都大于1,那么連乘后垫毙,可能會導(dǎo)致求導(dǎo)的結(jié)果很大霹疫,形成梯度爆炸。
- sigmoid和relu區(qū)別,為什么現(xiàn)在都用relu而不用sigmoid
-
ResNet 優(yōu)缺點
- 優(yōu)點:使前饋/反饋傳播算法順利進行综芥,結(jié)構(gòu)更加簡單丽蝎;恒等映射增加基本不會降低網(wǎng)絡(luò)的性能。
- 缺點:訓(xùn)練時間長
L1膀藐,L2正則化的區(qū)別
(1)L1是模型各個參數(shù)的絕對值之和屠阻;
(2)L2是模型各個參數(shù)的平方和的開方值;
(3)L1會趨向于產(chǎn)生少量的特征额各,而其他的特征都是0国觉,產(chǎn)生稀疏權(quán)重矩陣;
(4)L2會選擇更多的特征虾啦,這些特征都會接近于0麻诀。-
交叉熵和散度之間的關(guān)系
image.png
參考資料:
https://blog.csdn.net/cui841923894/article/details/82632639
https://www.cnblogs.com/lyr2015/p/8718104.html
https://blog.csdn.net/lujiandong1/article/details/53320174?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
http://www.reibang.com/p/f86002b7fcc4
https://blog.csdn.net/b876144622/article/details/80009867
https://zhuanlan.zhihu.com/p/95619637
https://blog.csdn.net/qq_36269513/article/details/80420363
https://blog.csdn.net/weixin_42137700/article/details/92760531
https://blog.csdn.net/qq_24502469/article/details/104737427
https://www.sohu.com/a/294959901_114877