目錄
問題1:目標檢測的算法分類
問題2:卷積神經(jīng)網(wǎng)絡(luò)的組成
問題3:輸入層的作用
問題4:卷積層作用?
問題5:卷積核類型
問題6:1×1卷積核作用
問題7:卷積核是否越大越好
問題8:棋盤效應(yīng)及解決辦法
問題9:如何減少卷積層參數(shù)
問題10:神經(jīng)網(wǎng)絡(luò)可視化工具
問題11:池化層作用?
問題12:卷積層和池化層的區(qū)別
問題13:激活函數(shù)層作用
問題14:全連接層作用
問題15:如何提高卷積神經(jīng)網(wǎng)絡(luò)的泛化能力
問題16:講一下BN、LN、IN、GN這幾種歸一化方法?
問題17:softmax公式,如果乘上一個系數(shù)a, 則概率分布怎么變??
問題18:如何解決正負樣本不平衡問題?
問題19:訓(xùn)練網(wǎng)絡(luò)不收斂的原因?
問題20:優(yōu)化算法,Adam, Momentum, Adagard,SGD特點
問題21:小目標難檢測原因
問題1:目標檢測的算法分類
基于深度學(xué)習(xí)的目標檢測算法主要分為兩類
two-stage目標檢測算法
- 主要思路:先進行區(qū)域(Region Proposal,RP)生成,再通過卷積神經(jīng)網(wǎng)絡(luò)進行樣本分類。
- 任務(wù)路線:特征提取一生成目標候選區(qū)域一分類/定位回歸。
one-stage 目標檢測算法
- 主要思路:不用進行區(qū)域生成,直接在網(wǎng)絡(luò)中提取特征來預(yù)測物體分類和位置
- 任務(wù)路線:特征提取一分類/定位回歸。
問題2:卷積神經(jīng)網(wǎng)絡(luò)的組成
卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)由以下幾個部分組成:輸入層(input layer),卷積層(convolution layer),池化層(pooling layer),激活函數(shù)層和全連接層(full-connection layer)。
問題3:輸入層的作用
在處理圖像的CNN中,輸入層一般代表了一張圖片的像素矩陣??梢杂萌S矩陣代表一張圖片。三維矩陣的長和寬代表了圖像的大小,而三維矩陣的深度代表了圖像的色彩通道。比如黑白圖片的深度為1,而在RGB色彩模式下,圖像的深度為3。
問題4:卷積層作用?
卷積神經(jīng)網(wǎng)絡(luò)的核心是卷積層,卷積層的核心部分是卷積操作。
對圖像(不同的數(shù)據(jù)窗口數(shù)據(jù))和濾波矩陣(一組固定的權(quán)重:因為每個神經(jīng)元的多個權(quán)重固定,所以又可以看做一個恒定的濾波器filter)做內(nèi)積(逐個元素相乘再求和)的操作就是所謂的卷積操作,也是卷積神經(jīng)網(wǎng)絡(luò)的名字來源。
在CNN中,濾波器filter對局部輸入數(shù)據(jù)進行卷積計算。每計算完一個數(shù)據(jù)窗口內(nèi)的局部數(shù)據(jù)后,數(shù)據(jù)窗口不斷平移滑動,直到計算完所有數(shù)據(jù)。這個過程中,有這么幾個參數(shù):
- 深度depth:神經(jīng)元個數(shù),決定輸出的depth厚度。同時代表濾波器個數(shù)。
- 步長stride:決定滑動多少步可以到邊緣。
- 填充值zero-padding:在外圍邊緣補充若干圈0,方便從初始位置以步長為單位可以剛好滑到末尾位置,通俗地講就是為了總長能被步長整除。
問題5:卷積核類型
轉(zhuǎn)置(Transposed)卷積
有時我們需要對輸入進行如增加尺寸(也稱為“上采樣”)等處理。先對原始特征矩陣進行填充,使其維度擴大到適配卷積目標輸出維度,然后進行普通的卷積操作的一個過程。轉(zhuǎn)置卷積常見于目標檢測領(lǐng)域中對小目標的檢測和圖像分割領(lǐng)域中還原輸入圖像的尺度。
擴張/空洞(Dilated/Atrous)卷積
引入一個稱作擴張率(Dilation Rate)的參數(shù),使同樣尺寸的卷積核可以獲得更大的感受視野,相應(yīng)地,在相同感受視野的前提下比普通卷積采用更少的參數(shù)。同樣是 3x3 的卷積核尺寸,擴張卷積可以提取 5x5 范圍的區(qū)域特征,在實時圖像分割領(lǐng)域廣泛應(yīng)用。
可分離卷積
標準的卷積操作是同時對原始圖像 HxWxC 三個方向的卷積運算,假設(shè)有3個相同尺寸的卷積核,這樣的卷積操作需要用到的參數(shù)為 HxWxCxK個;若將長、寬與深度方向的卷積操作進行分離操作,變?yōu)橄扰c HXW方向卷積,再與C方向卷積的兩步卷積操作,則同樣有 K 個相同的尺寸的卷積核,只需要 (HxW+C) XK個參數(shù),便可得到同樣的輸出尺度??煞蛛x卷積 (SeperableConvolution)通常應(yīng)用在模型壓縮或一些輕量的卷積神經(jīng)網(wǎng)絡(luò)中,如MobileNet、Xception 等
問題6:1×1卷積核作用
對于1x1卷積核的作用主要可以歸納為以下幾點
- 增加網(wǎng)絡(luò)深度(增加非線性映射次數(shù))
- 升維/降維
- 跨通道的信息交互
- 減少卷積核參數(shù)(簡化模型)
問題7:卷積核是否越大越好
設(shè)置較大的卷積核可以獲取更大的感受野。但是這種大卷積核反而會導(dǎo)致計算量大幅增加,不利于訓(xùn)練更深層的模型,相應(yīng)的計算性能也會降低。后來的卷積經(jīng)網(wǎng)絡(luò)(VGG、GoogLeNet 等),發(fā)現(xiàn)通過堆疊2個3X3 卷積核可以獲得與 5X5 卷積核同的感受視野,同時參數(shù)量會更少 (3X3X2+1<5X5X1+1),3X3 卷積核被廣泛應(yīng)用許多卷積神經(jīng)網(wǎng)絡(luò)中。
????????但是,這并不表示更大的卷積核就沒有作用,在某些領(lǐng)域應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)時仍然可以采用較大的卷積核。在將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在自然語言處理領(lǐng)域時,神經(jīng)網(wǎng)絡(luò)通常都是由較為淺層的卷積層組成的,但是文本特征有時又需要有較廣的感受野讓模型能夠組合更多的特征(如詞組和字符),此時接采用較大的卷積核將是更好的選擇。
????????綜上所述,卷積核的大小并沒有絕對的優(yōu)劣,需要視具體的應(yīng)用場景而定,但是極大和極小的卷積核都是不合適的,單獨的 1X1極小卷積核只能用作分離卷積而不能對輸入的原始特征進行有效的組合,極大的卷積核通常會組合過多的無意義特征,從而浪費大量的計算資源。
問題8:棋盤效應(yīng)及解決辦法
由以上現(xiàn)象得知,當過濾器尺寸無法被卷積步長整除時,轉(zhuǎn)置卷積就會出現(xiàn)不均勻重疊,造成圖像中某個部位的顏色比其他部位更深,因而會帶來棋盤效應(yīng)。
如何避免和減輕棋盤效應(yīng):
(1) 確認使用的過濾器的大小是能夠被卷積步長整除的,從而來避免重疊問題
(2) 可以采用卷積步長為 1的轉(zhuǎn)置卷積來減輕棋盤效應(yīng)。
參考文章:卷積操作總結(jié)(三)—— 轉(zhuǎn)置卷積棋盤效應(yīng)產(chǎn)生原因及解決 - 知乎
問題9:如何減少卷積層參數(shù)
- 使用堆疊小卷積核代替大卷積核:VGG 網(wǎng)絡(luò)中 2個 3X3 的卷積核可以代替 1個5X5 的卷積核。
- 使用分離卷積操作: 將原本 KXKXC 的卷積操作分離為 KXKX1和1X1XC的兩部分操作。
- 添加 1X1的卷積操作:與分離卷積類似,但是通道數(shù)可變,在 KXKXC 卷積前添加1X1XC2的卷積核。
- 在卷積層前使用池化操作:池化可以降低卷積層的輸入特征維度
問題10:神經(jīng)網(wǎng)絡(luò)可視化工具
神經(jīng)網(wǎng)絡(luò)的可視化工具有Netron、draw_convnet、NNSVG、PlotNeuralNet、Tensorboard、Caffe等。
參考文章:【深度學(xué)習(xí) | 機器學(xué)習(xí)】干貨滿滿 | 近萬字總結(jié)了 12 個令人驚艷的神經(jīng)網(wǎng)絡(luò)可視化工具!_旅途中的寬~的博客-CSDN博客
問題11:池化層作用?
池化層又稱為降采樣層(Downsampling Layer),作用是對感受野內(nèi)的特征進行篩選提取區(qū)域內(nèi)最具代表性的特征,能夠有效地減小輸出特征尺度,進而減少模型所需要的參數(shù)量。?主要有平均池化(Average?Pooling)、最大池化(Max Pooling)等。簡單來說池化就是在該區(qū)域上指定一個值來代表整個區(qū)域。池化層的超參數(shù):池化窗口和池化步長。池化操作也可以看做是一種卷積操作。
問題12:卷積層和池化層的區(qū)別
卷積層和池化層在結(jié)構(gòu)上具有一定的相似性,都是對感受野內(nèi)的特征進行提取,并且根據(jù)步長設(shè)置獲取到不同維度的輸出,但是其內(nèi)在操作是有本質(zhì)區(qū)別
卷積層 池化層 結(jié)構(gòu) 零填充時輸出維度不變,而通道數(shù)改變 通常特征維度會降低,通道數(shù)不變 穩(wěn)定性 輸入特征發(fā)生細微改變時,輸出結(jié)果會改變 感受野內(nèi)的細微變化不影響輸出結(jié)果 作用 感受野內(nèi)提取局部關(guān)聯(lián)特征 感受野內(nèi)提取泛化特征,降低維度 參數(shù)量 與卷積核尺寸、卷積核個數(shù)相關(guān) 不引入額外參數(shù)
問題13:激活函數(shù)層作用
激活函數(shù)(非線性激活函數(shù),如果激活函數(shù)使用線性函數(shù)的話,那么它的輸出還是一個線性函數(shù)。)但使用非線性激活函數(shù)可以得到非線性的輸出值。常見的激活函數(shù)有Sigmoid、tanh和Relu等。一般我們使用Relu作為卷積神經(jīng)網(wǎng)絡(luò)的激活函數(shù)。Relu激活函數(shù)提供了一種非常簡單的非線性變換方法,函數(shù)圖像如下所示:
問題14:全連接層作用
在經(jīng)過多輪卷積層和池化層的處理之后,在CNN的最后一般會由1到2個全連接層來給出最后的分類結(jié)果。經(jīng)過幾輪卷積層和池化層的處理之后,可以認為圖像中的信息已經(jīng)被抽象成了信息含量更高的特征。我們可以將卷積層和池化層看成自動圖像特征提取的過程。在提取完成之后,仍然需要使用全連接層來完成分類任務(wù)
問題15:如何提高卷積神經(jīng)網(wǎng)絡(luò)的泛化能力
- 使用更多的數(shù)據(jù):竟可能標注更多的訓(xùn)練數(shù)據(jù),這是提高泛化能力最理想的方法,更多的數(shù)據(jù)讓模型得到更充分的學(xué)習(xí),自然提高了泛化能力。
- 使用更大的batch_size:在相同迭代次數(shù)和學(xué)習(xí)率的條件下,每批次采用更多的數(shù)據(jù)將有助于模型更好的學(xué)習(xí)到正確的模式,模型輸出結(jié)果也會更加穩(wěn)定。
- 數(shù)據(jù)過采樣:很多情況下我們拿到手的數(shù)據(jù)都存在類別不均勻的情況,模型這個時候過多的擬合某類數(shù)量多的數(shù)據(jù)導(dǎo)致其輸出結(jié)果偏向于該類數(shù)據(jù),此時如果我們過采樣其他類別的數(shù)據(jù),使得數(shù)據(jù)量比較均衡可以一定程度提高泛化能力。
- 數(shù)據(jù)增強:數(shù)據(jù)增強是指在數(shù)據(jù)有限的情況通過一些幾何操作對圖像進行變換,使得同類數(shù)據(jù)的表現(xiàn)形式更加豐富,以此提高模型的泛化能力。
- 修改損失函數(shù):這方面有大量的工作,如目標檢測中的Focal Loss, GHM Loss,IOU Loss等都是為了提升模型的泛化能力。
- 修改網(wǎng)絡(luò):如果網(wǎng)絡(luò)過淺并且參數(shù)量過少往往會使得模型的泛化能力不足導(dǎo)致欠擬合,此時一般考慮使用簡單的堆疊卷積層增加網(wǎng)絡(luò)的參數(shù),提高模型的特征提取能力。而如果網(wǎng)絡(luò)過深且訓(xùn)練數(shù)據(jù)量比較少,那么就容易導(dǎo)致模型過擬合,此時一般需要簡化網(wǎng)絡(luò)結(jié)構(gòu)減少網(wǎng)絡(luò)層數(shù)或者使用resnet的殘差結(jié)構(gòu)以及BN層。
- 權(quán)重懲罰:權(quán)重懲罰也即是正則化操作,一般是在損失函數(shù)中添加一項權(quán)重矩陣的正則項作為懲罰項,用來懲罰損失值較小時網(wǎng)絡(luò)權(quán)重過大的情況,此時往往是網(wǎng)絡(luò)權(quán)值過擬合了數(shù)據(jù)樣本。
- Dropout策略:如果網(wǎng)絡(luò)最后有全連接層可以使用Dropout策略,相當于對深度學(xué)習(xí)模型做了Ensemble,有助于提高模型的泛化能力。
問題16:講一下BN、LN、IN、GN這幾種歸一化方法?
BN
- BatchNormalization,假設(shè)特征在不同輸入以及H、W層級上是均勻分布的,所以在NHW上統(tǒng)計每個channel的均值和方差,參數(shù)量為2C;
- 缺點是容易受到batch內(nèi)數(shù)據(jù)分布影響,如果batch_size小的話,計算的均值和方差不具有代表性。而且不適用于序列模型中,因為序列模型中通常各個樣本的長度都是不同的。此外當訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)分布有差別時也并不適用。
LN
- Layer Normalization,LN是獨立于batch size的算法,樣本數(shù)多少不會影響參與LN計算的數(shù)據(jù)量,從而解決BN的兩個問題;
- 缺點是在BN和LN都能使用的場景中,BN的效果一般優(yōu)于LN,原因是基于不同數(shù)據(jù),同一特征得到的歸一化特征更不容易損失信息。
IN
- Instance Normalization,IN的計算就是把每個HW單獨拿出來歸一化處理,不受通道和batch_size 的影響,常用在風格化遷移,因為它統(tǒng)計了每個樣本的每個像素點的信息;
- 缺點是如果特征圖可以用到通道之間的相關(guān)性,那么就不建議使用它做歸一化處理。
GN
- Group Normalization,其首先將channel分為許多組(group),對每一組做歸一化,及先將feature的維度由[N, C, H, W]reshape為[N, G,C//G , H, W],歸一化的維度為[C//G , H, W];
- GN的歸一化方式避開了batch size對模型的影響,特征的group歸一化同樣可以解決 I n t e r n a l InternalInternal C o v a r i a t e CovariateCovariate S h i f t ShiftShift 的問題,并取得較好的效果。
問題17:softmax公式,如果乘上一個系數(shù)a, 則概率分布怎么變??
當a>1時變陡峭,當a<1是變平滑
問題18:如何解決正負樣本不平衡問題?
- 過采樣:對訓(xùn)練集里面樣本數(shù)量較少的類別(少數(shù)類)進行過采樣,合成新的樣本來緩解類不平衡。
- 欠采樣:對訓(xùn)練集里面樣本數(shù)量較多的類別(多數(shù)類)進行欠采樣,拋棄一些樣本來緩解類不平衡。
- 合成新的少數(shù)類
問題19:訓(xùn)練網(wǎng)絡(luò)不收斂的原因?
數(shù)據(jù)處理原因
- 沒有做數(shù)據(jù)歸一化;
- 沒有做數(shù)據(jù)預(yù)處理;
- 沒有使用正則化;
參數(shù)設(shè)置原因
- Batch Size設(shè)的太大;
- 學(xué)習(xí)率設(shè)的不合適;
網(wǎng)絡(luò)設(shè)置原因
- 網(wǎng)絡(luò)存在壞梯度,比如當Relu對負值的梯度為0,反向傳播時,梯度為0表示不傳播;
- 參數(shù)初始化錯誤;
- 網(wǎng)絡(luò)設(shè)定不合理,網(wǎng)絡(luò)太淺或者太深;
問題20:優(yōu)化算法,Adam, Momentum, Adagard,SGD特點
- Adagard在訓(xùn)練的過程中可以自動變更學(xué)習(xí)的速率,設(shè)置一個全局的學(xué)習(xí)率,而實際的學(xué)習(xí)率與梯度歷史平方值總和的平方根成反比。用adagrad將之前梯度的平方求和再開根號作為分母,會使得一開始學(xué)習(xí)率呈放大趨勢,隨著訓(xùn)練的進行學(xué)習(xí)率會逐漸減小。
- Momentum參考了物理中動量的概念,前幾次的梯度也會參與到當前的計算中,但是前幾輪的梯度疊加在當前計算中會有一定的衰減。用來解決梯度下降不穩(wěn)定,容易陷入鞍點的缺點。
- SGD為隨機梯度下降,每一次迭代計算數(shù)據(jù)集的mini-batch的梯度,然后對參數(shù)進行跟新。優(yōu)點是更新速度快,缺點是訓(xùn)練不穩(wěn)定,準確度下降。
- Adam利用梯度的一階矩估計和二階矩估計動態(tài)調(diào)整每個參數(shù)的學(xué)習(xí)率,在經(jīng)過偏置的校正后,每一次迭代后的學(xué)習(xí)率都有個確定的范圍,使得參數(shù)較為平穩(wěn),結(jié)合momentum和adagrad兩種算法的優(yōu)勢。
問題21:小目標難檢測原因
小目標在原圖中尺寸比較小,通用目標檢測模型中,一般的基礎(chǔ)骨干神經(jīng)網(wǎng)絡(luò)(VGG系列和Resnet系列)都有幾次下采樣處理,導(dǎo)致小目標在特征圖的尺寸基本上只有個位數(shù)的像素大小,導(dǎo)致設(shè)計的目標檢測分類器對小目標的分類效果差。
小目標在原圖中的數(shù)量較少,檢測器提取的特征較少,導(dǎo)致小目標的檢測效果差。神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)中被大目標主導(dǎo),小目標在整個學(xué)習(xí)過程被忽視,導(dǎo)致導(dǎo)致小目標的檢測效果差。
Tricks
(1) data-augmentation.簡單粗暴,比如將圖像放大,利用 image pyramid多尺度檢測,最后將檢測結(jié)果融合.缺點是操作復(fù)雜,計算量大,實際情況中不實用;
(2) 特征融合方法:FPN這些,多尺度feature map預(yù)測,feature stride可以從更小的開始;
(3)合適的訓(xùn)練方法:CVPR2018的SNIP以及SNIPER;
(4)設(shè)置更小更稠密的anchor,回歸的好不如預(yù)設(shè)的好, 設(shè)計anchor match strategy等,參考S3FD;
(5)利用GAN將小物體放大再檢測,CVPR2018有這樣的論文;
(6)利用context信息,建立object和context的聯(lián)系,比如relation network;
(7)有密集遮擋,如何把location 和Classification 做的更好,參考IoU loss, repulsion loss等.
(8)卷積神經(jīng)網(wǎng)絡(luò)設(shè)計時盡量采用步長為1,盡可能保留多的目標特征。
(9)matching strategy。對于小物體不設(shè)置過于嚴格的 IoU threshold,或者借鑒 Cascade R-CNN 的思路。
問題22:描述YOLOv5框架
1 網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)主要由以下幾部分組成:
- Backbone: New CSP-Darknet53
- Neck: SPPF, New CSP-PAN
- Head: YOLOv3 Head
下面是我根據(jù)yolov5l.yaml繪制的網(wǎng)絡(luò)整體結(jié)構(gòu),YOLOv5針對不同大?。╪, s, m, l, x)的網(wǎng)絡(luò)整體架構(gòu)都是一樣的,只不過會在每個子模塊中采用不同的深度和寬度。還需要注意一點,官方除了n, s, m, l, x版本外還有n6, s6, m6, l6, x6,區(qū)別在于后者是針對更大分辨率的圖片比如1280x1280,當然結(jié)構(gòu)上也有些差異,后者會下采樣64倍,采用4個預(yù)測特征層,而前者只會下采樣到32倍且采用3個預(yù)測特征層。
通過和YOLOv4對比,其實YOLOv5在Backbone部分沒太大變化。但是YOLOv5在v6.0版本后相比之前版本有一個很小的改動,把網(wǎng)絡(luò)的第一層(原來是Focus模塊)換成了一個6x6大小的卷積層,兩者在理論上其實等價的。下圖是原來的Focus模塊(和之前Swin Transformer中的Patch Merging類似),將每個2x2的相鄰像素劃分為一個patch,然后將每個patch中相同位置(同一顏色)像素給拼在一起就得到了4個feature map,然后在接上一個3x3大小的卷積層。這和直接使用一個6x6大小的卷積層等效。
在Neck部分的變化還是相對較大的,首先是將SPP換成成了SPPF,兩者的作用是一樣的,但后者效率更高。SPP結(jié)構(gòu)如下圖所示,是將輸入并行通過多個不同大小的MaxPool,然后做進一步融合,能在一定程度上解決目標多尺度問題。
而
SPPF
結(jié)構(gòu)是將輸入串行通過多個5x5
大小的MaxPool
層,這里需要注意的是串行兩個5x5
大小的MaxPool
層是和一個9x9
大小的MaxPool
層計算結(jié)果是一樣的,串行三個5x5
大小的MaxPool
層是和一個13x13
大小的MaxPool
層計算結(jié)果是一樣的。
2 數(shù)據(jù)增強
在YOLOv5代碼里,關(guān)于數(shù)據(jù)增強策略還是挺多的,這里簡單羅列部分方法:
- Mosaic,將四張圖片拼成一張圖片
- Copy paste,將部分目標隨機的粘貼到圖片中,前提是數(shù)據(jù)要有
segments
數(shù)據(jù)才行,即每個目標的實例分割信息。下面是Copy paste
原論文中的示意圖。
- MixUp,就是將兩張圖片按照一定的透明度融合在一起,具體有沒有用不太清楚,畢竟沒有論文,、也沒有消融實驗。代碼中只有較大的模型才使用到了
MixUp
,而且每次只有10%的概率會使用到。Albumentations,主要是做些濾波、直方圖均衡化以及改變圖片質(zhì)量等等
Augment HSV(Hue, Saturation, Value),隨機調(diào)整色度,飽和度以及明度。
Random horizontal flip,隨機水平翻轉(zhuǎn)
3 訓(xùn)練策略
在YOLOv5源碼中使用到了很多訓(xùn)練的策略,這里簡單總結(jié)幾個我注意到的點,還有些沒注意到的請大家自己看下源碼:
- Multi-scale training(0.5~1.5x),多尺度訓(xùn)練,假設(shè)設(shè)置輸入圖片的大小為640 × 640,訓(xùn)練時采用尺寸是在0.5 × 640 ~ 1.5 × 640之間隨機取值,注意取值時取得都是32的整數(shù)倍(因為網(wǎng)絡(luò)會最大下采樣32倍)。
- AutoAnchor(For training custom data),訓(xùn)練自己數(shù)據(jù)集時可以根據(jù)自己數(shù)據(jù)集里的目標進行重新聚類生成Anchors模板。
- Warmup and Cosine LR scheduler,訓(xùn)練前先進行Warmup熱身,然后在采用Cosine學(xué)習(xí)率下降策略。
- EMA(Exponential Moving Average),可以理解為給訓(xùn)練的參數(shù)加了一個動量,讓它更新過程更加平滑。
- Mixed precision,混合精度訓(xùn)練,能夠減少顯存的占用并且加快訓(xùn)練速度,前提是GPU硬件支持。
- Evolve hyper-parameters,超參數(shù)優(yōu)化,沒有煉丹經(jīng)驗的人勿碰,保持默認就好。
4 損失計算
YOLOv5的損失主要由三個部分組成:文章來源:http://www.zghlxwxcb.cn/news/detail-725600.html
- Classes loss,分類損失,采用的是BCE loss,注意只計算正樣本的分類損失。
- Objectness loss,obj損失,采用的依然是BCE loss,注意這里的obj指的是網(wǎng)絡(luò)預(yù)測的目標邊界框與GT Box的CIoU。這里計算的是所有樣本的obj損失。
- Location loss,定位損失,采用的是CIoU loss,注意只計算正樣本的定位損失
文章來源地址http://www.zghlxwxcb.cn/news/detail-725600.html
到了這里,關(guān)于SLAM面試筆記(8) — 計算機視覺面試題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!