CV算法崗面試常見問題

面試考的都是深度學(xué)習(xí)很基本的知識(shí)點(diǎn),但是都理解的不透徹,借著這個(gè)機(jī)會(huì)查漏補(bǔ)缺。

1. 有哪些數(shù)據(jù)增強(qiáng)的方法

空間幾何變換:裁剪,翻轉(zhuǎn),旋轉(zhuǎn),縮放,仿射變換,視覺變換(四點(diǎn)透視變換)
像素顏色變換:噪聲,模糊,HSV對(duì)比度變換,RGB顏色擾動(dòng),隨機(jī)擦除,超像素法,轉(zhuǎn)換,邊界檢測(cè),銳化與浮雕
多樣本合成類
SMOTE(Synthetic Minority Over-sampling Technique),通過人工合成新樣本來(lái)處理樣本不平衡問題,提升分類器性能。
SamplePairing方法,從訓(xùn)練集中隨機(jī)抽取兩張圖片分別經(jīng)過基礎(chǔ)數(shù)據(jù)增強(qiáng)操作(如隨機(jī)翻轉(zhuǎn)等)處理后經(jīng)像素取平均值的形式疊加合成一個(gè)新的樣本,標(biāo)簽為原樣本標(biāo)簽中的一種。
mixup是基于鄰域風(fēng)險(xiǎn)最小化(VRM)原則的數(shù)據(jù)增強(qiáng)方法,使用線性插值得到新樣本數(shù)據(jù)。

mixup

總結(jié):mixup、SMOTE、SamplePairing三者思路上有相同之處,都是試圖將離散樣本點(diǎn)連續(xù)化來(lái)擬合真實(shí)樣本分布,但所增加的樣本點(diǎn)在特征空間中仍位于已知小樣本點(diǎn)所圍成的區(qū)域內(nèi)。

2. 如何解決樣本不平衡問題

數(shù)據(jù)層面:數(shù)據(jù)重采樣和產(chǎn)生新數(shù)據(jù)型(SMOTE)。
模型層面
代價(jià)敏感學(xué)習(xí),為少數(shù)類樣本賦予更大的權(quán)值
組合集成方法,將多數(shù)類數(shù)據(jù)隨機(jī)分成少數(shù)類數(shù)據(jù)的量N份,每一份與全部的少數(shù)類數(shù)據(jù)一起訓(xùn)練成為一個(gè)分類器,最后再組合。
評(píng)價(jià)指標(biāo):F值,G-Mean,ROC曲線和AUC

3. 還有什么方式可以解決梯度消失問題(BN,LSTM)

BN層解決梯度消失:隨著網(wǎng)絡(luò)加深,數(shù)據(jù)整體分布逐漸往激活函數(shù)的取值區(qū)間的上下限兩端靠近(sigmoid的飽和區(qū)域),導(dǎo)致后向傳播時(shí)低層神經(jīng)網(wǎng)絡(luò)的梯度消失。而BN把越來(lái)越偏的分布強(qiáng)制拉回比較標(biāo)準(zhǔn)的分布,這樣使得激活輸入值落在非飽和區(qū)。

4. Dropout的原理和倒置隨機(jī)失活

讓某個(gè)神經(jīng)元以概率p,停止工作。比如dropout比率選擇0.4,那么這一層神經(jīng)元經(jīng)過drop后,1000個(gè)神經(jīng)元中會(huì)有大約400個(gè)的值被置為0。
經(jīng)過上面屏蔽掉某些神經(jīng)元,使其激活值為0以后,我們還需要對(duì)余下的神經(jīng)元輸出進(jìn)行rescale(擴(kuò)大倍數(shù)),也就是乘以1/(1-p)。(如果你在訓(xùn)練的時(shí)候,經(jīng)過置0后,沒有進(jìn)行rescale,那么你在測(cè)試的時(shí)候,就需要對(duì)權(quán)重進(jìn)行rescale。)
在訓(xùn)練的時(shí)候直接將dropout后留下的權(quán)重?cái)U(kuò)大 1/1-p 倍,稱為inverted dropout,該操作可以使結(jié)果的scale保持不變,而在預(yù)測(cè)的時(shí)候也不用做額外的操作了,更方便一些。

5. Relu永久死亡神經(jīng)單元

它在輸入為負(fù)的區(qū)段導(dǎo)數(shù)恒為零,而使得它對(duì)異常值特別敏感。這種異常值會(huì)產(chǎn)生很大的梯度,使得參數(shù)更新之后導(dǎo)致 ReLU 永久關(guān)閉,而殺死神經(jīng)元。

6. 用softmax做分類函數(shù)

假如現(xiàn)在要對(duì)1w甚至10w類做分類會(huì)出現(xiàn)什么問題?-過擬合,怎么解決,面試官讓自己想(不能使用softmax,使用三元組損失)
假如不用交叉熵函數(shù),改用MSE會(huì)有什么問題呢?MSE不會(huì)收斂。第一、交叉熵函數(shù)計(jì)算loss是一個(gè)凸優(yōu)化問題,MSE計(jì)算loss輸出曲線是波動(dòng)的,有很多局部極值點(diǎn),變成一個(gè)非凸優(yōu)化問題,不好收斂;第二、sigmod激活函數(shù)和mse一起使用時(shí)會(huì)出現(xiàn)梯度消失

7. 計(jì)算卷積/反卷積的感受野

7.1 感受野計(jì)算

*最后一層(卷積層或池化層)輸出特征圖感受野的大小等于卷積核的大小。
*第i層卷積層的感受野


感受野.png

7.2 空洞卷積感受野

stride=1時(shí),相鄰的神經(jīng)元其感受野重合度很高,如果卷積核連續(xù)的遍歷,就有了冗余。相比之下,空洞卷積,每隔幾個(gè)選一個(gè)參與卷積運(yùn)算,保證了各個(gè)感受野交集的最小化。
空洞卷積核的dialate屬性定義為卷積核的元素間距,如dialate=2 是每隔一個(gè)像素位置應(yīng)用一個(gè)卷積元素,dialate=1就是普通的無(wú)孔卷積。
對(duì)于stride=k,dialate=d的空洞卷積,計(jì)算等價(jià)卷積作用大小,代入感受野計(jì)算公式。

空洞卷積等價(jià)卷積核大小

空洞卷積的優(yōu)點(diǎn)在于不增加參數(shù)的情況下加大感受野。

7. 3 反卷積感受野

網(wǎng)上沒有找到詳細(xì)的資料。這個(gè)有點(diǎn)作用https://blog.csdn.net/jiachen0212/article/details/78548667。把反卷積看成stride<1的卷積。

8. 分類損失函數(shù)

二分類交叉熵?fù)p失.png
多分類交叉熵?fù)p失softmax_cross_entropy.png
focal loss.png
KL散度.png
合頁(yè)損失hinge_loss.png

9. 分割模型

9.1 DeepLab系列

9.2 FPN

FPN提出了一種可有效在單一圖片視圖下生成對(duì)其的多維度特征表達(dá)的方法,從而實(shí)現(xiàn)對(duì)不同尺寸目標(biāo)的檢測(cè)。


FPN.JPG

9.3 DenseNet

DenseNet則是通過特征圖重用的方式來(lái)探索網(wǎng)絡(luò)的潛能。讓網(wǎng)絡(luò)的每一層的輸入變成所有前面層的疊加(concat),然后把它的特征圖傳遞給所有接下來(lái)的網(wǎng)絡(luò)層。傳統(tǒng)的CNN如果有L層則有L個(gè)連接,而DenseNet如果有L層,則有1/2 L(L+1)個(gè)連接。


DenseNet.png

10. CRFs

層層上采樣部分,直接用bilinear interpolation(雙線性插值)恢復(fù)到原狀,(因?yàn)閐econv逆置卷積沒什么卵用),然后進(jìn)行CRFs通過鄰域之間的銳化,得到最終分割結(jié)果。


CRFs.jpeg

11. Kmeans的改進(jìn)

  • Kmeans++:對(duì)Kmeans聚類中心的隨機(jī)初始化做改進(jìn)?;谝延械膎個(gè)聚類中心選擇第n+1個(gè)聚類中心。使的距離前n個(gè)中心更遠(yuǎn)的點(diǎn)有更高概率成為新的中心。
  • ISODATA:聚類中心數(shù)目k改進(jìn)為非固定。當(dāng)屬于某個(gè)類別的樣本數(shù)過少時(shí)把這個(gè)類別去除,當(dāng)屬于某個(gè)類別的樣本數(shù)過多、分散程度較大時(shí)把這個(gè)類別分為兩個(gè)子類別。
    ISODATA有分裂與合并兩個(gè)操作。當(dāng)某一類所屬樣本數(shù)目過多或者樣本分散程度較大時(shí),進(jìn)行分裂操作。當(dāng)兩個(gè)類中心距離接近時(shí),進(jìn)行合并操作。

12. Python中深拷貝,淺拷貝和賦值

賦值:建立對(duì)象的引用,而不改變對(duì)象本身(存儲(chǔ)位置)
淺拷貝:只復(fù)制最外層

淺拷貝.png

深拷貝:全部復(fù)制
深拷貝.png

一個(gè)不太恰當(dāng)?shù)谋扔?,兩兄?code>a,b和1000家產(chǎn)value。
賦值:a=value,b=a,兄弟還沒分家,這1000屬于共同財(cái)產(chǎn)。無(wú)論任何一方花錢或者賺錢,都會(huì)使另一方受到影響。
淺拷貝:a=value,b=copy.copy(a),半分家狀態(tài),兄弟各有300私房錢,剩下400為共同財(cái)產(chǎn)。私房錢部分各自獨(dú)立,二者互不干擾。
深拷貝:a=value,b=copy.deepcopy(a),完全分家,各有500??赡芤粋€(gè)成為窮光蛋,一個(gè)成為富翁。

可變對(duì)象和不可變對(duì)象
不可變對(duì)象(值的不可變)包括int,float,long,str,tuple等。對(duì)于不可變類型的變量,如果要更改變量,則會(huì)創(chuàng)建一個(gè)新值,把變量綁定到新值上,而舊值如果沒有被引用就等待垃圾回收。另外,不可變的類型可以計(jì)算hash值,作為字典的key。
可變對(duì)象包括list,set,dict等??勺冾愋蛿?shù)據(jù)對(duì)對(duì)象操作的時(shí)候,不需要再在其他地方申請(qǐng)內(nèi)存,只需要在此對(duì)象后面連續(xù)申請(qǐng)(+/-)即可,也就是它的內(nèi)存地址會(huì)保持不變,但區(qū)域會(huì)變長(zhǎng)或者變短。

其他鏈接:從存儲(chǔ)位置理解深拷貝淺拷貝

13. Python中0.35/0.05等于多少

十進(jìn)制轉(zhuǎn)二進(jìn)制:整數(shù)部分用除2取余,小數(shù)部分乘2取整,直到小數(shù)部分為0。
發(fā)現(xiàn)0.05轉(zhuǎn)二進(jìn)制后是一個(gè)循環(huán)小數(shù),沒辦法保存,最后的結(jié)果為6.9999。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容