日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

计算机视觉面试常见问题(含解答)

發布時間:2025/5/22 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机视觉面试常见问题(含解答) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近忙著找實習,對計算機視覺中常見的問題做了簡單梳理,會不定時更新。
CNN
CNN在圖像上表現好的原因

直接將圖像數據作為輸入,不僅無需人工對圖像進行預處理和額外的特征抽取等復雜操作,而且以其特有的細粒度特征提取方式,使得對圖像的處理達到了幾近人力的水平。
參數和計算量的計算

卷積輸入為W×H×C
W×H×C,卷積核K×K×NK×K×N,輸出W1×H1×C1

W1?×H1?×C1?

??? 計算量: W1×H1×C1×K×K×C

W1?×H1?×C1?×K×K×C
參數量:C1×K×K×C?

??? C1?×K×K×C?

調試、修改模型的經驗

??? 數據層面
??? 獲取更多的數據、數據擴增或生成、對數據進行歸一化或者標準化、重新進行特征選擇

??? 算法層面

??? 對算法進行抽樣調查。選取性能最好的算法,然后通過進一步的調參和數據準備來提升。
??? 重采樣方法??梢韵仍谛祿贤瓿赡P瓦x擇和參數調優,然后再將最終的方法擴展到全部數據集上。

??? 調參

??? 診斷。在每個周期, 評估模型在訓練集和驗證集上的表現, 并作出圖表;
??? 權重初始化。嘗試所有不同的初始化方法,考察是否有一種方法在其他情況不變的情況下(效果)更優;
??? 學習率。嘗試隨周期遞減的學習率或增加動量項;
??? 激活函數。嘗試常見的激活函數,并且重縮放你的數據以滿足激活函數的邊界;
??? Batch size和周期。嘗試不同的批次 batch size 和周期數,batch size 大小會決定最后的梯度, 以及更新權重的頻度。
??? 正則化。嘗試不同的正則化方式,權重衰減(Weight decay) 去懲罰大的權重、激活約束(Activation constraint) 去懲罰大的激活值、分別在輸入, 隱藏層和輸出層中試驗 dropout 方法或者使用L1、L2正則化。
??? 優化算法和損失函數。嘗試不同的優化算法(SGD、ADAM、RMSprop、、、)。要被優化的損失函數與你要解決的問題高度相關,也得適當調整。
??? Early Stopping/早停法。一旦訓練過程中出現(驗證集)性能開始下降, 你可以停止訓練與學習,是避免模型在訓練數據上的過擬合的正則化方式。

??? 通過嵌套模型提升性能
??? 通過組合多個“足夠好的”模型來得到優秀的預測能力, 而不是通過組合多個高度調參的(脆弱的)模型。

簡述 Inception v1-v4區別、改進
V1

??? 采用不同大小的卷積核意味著不同大小的感受野,最后拼接意味著不同尺度特征的融合;
??? 將CNN中常用的卷積(1x1,3x3,5x5)、池化操作(3x3)堆疊在一起(卷積、池化后的尺寸相同,將通道相加),一方面增加了網絡的寬度,另一方面也增加了網絡對尺度的適應性;
??? 為了減少計算量,增加了1x1卷積。

V2

??? 卷積分解,將單個的5x5卷積層用2個連續的3x3卷積層組成的小網絡來代替,在保持感受野范圍的同時又減少了參數量,也加深了網絡。
??? 提出了著名的Batch Normalization (BN) 方法。BN會對每一個mini-batch數據的內部進行標準化(normalization),使輸出規范到N(0,1)的正態分布,加快了網絡的訓練速度,還可以增大學習率。
??? BN某種意義上起到了正則化的作用,所以可以減少或者取消dropout,簡化網絡結構。V2在訓練達到V1準確率時快了14倍,最后收斂的準確率也比V1高。

V3

??? 考慮了nx1卷積核,將一個較大的二維卷積拆成兩個較小的一維卷積(7x7拆成了7x1和1x7,3x3拆成了1x3和3x1),一方面節約了大量參數,加速運算并減輕了過擬合),同時網絡深度進一步增加,增加了網絡的非線性。
??? 優化了Inception Module的結構。

V4

利用殘差連接(Residual Connection)來改進V3結構。
Inception v1中的inception結構怎么設計的

??? 采用不同大小的卷積核意味著不同大小的感受野,最后拼接意味著不同尺度特征的融合;
??? 該結構將CNN中常用的卷積(1x1,3x3,5x5)、池化操作(3x3)堆疊在一起(卷積、池化后的尺寸相同,將通道相加),一方面增加了網絡的寬度,另一方面也增加了網絡對尺度的適應性。

然而上面這個Inception原始版本,所有的卷積核都在上一層的所有輸出上來做,而那個5x5的卷積核所需的計算量就太大了,約需要1.2億次的計算量,造成了特征圖的厚度很大。
3. 為了避免這種情況,在3x3前、5x5前、max pooling后分別加上了1x1的卷積核,以起到了降低特征圖厚度的作用,這也就形成了Inception v1的網絡結構,如下圖所示:

為什么使用1x1卷積核

??? 1x1卷積的主要目的是為了減少維度,還用于修正線性激活(ReLU)。比如上一層的輸出為100x100x128,經過具有256個通道的5x5卷積層之后(stride=1,pad=2),輸出數據為100x100x256,其中,卷積層的參數為128x5x5x256= 819200。而假如上一層輸出先經過具有32個通道的1x1卷積層,再經過具有256個輸出的5x5卷積層,那么輸出數據仍為為100x100x256,但卷積參數量已經減少為128x1x1x32 + 32x5x5x256= 204800,大約減少了4倍。
??? 加深了網絡的層次,同時也增強了網絡的非線性。

簡述 CNN 的演變

??? LeNet:2個卷積3個全連接,最早用于數字識別
??? AlexNet:12年ImageNet冠軍,5個卷積3個全連接,多個小卷積代替單一大卷積;使用ReLU激活函數,解決梯度小數問題;引入dropout避免模型過擬合;最大池化。
??? ZF-Net:13年ImageNet冠軍,只用了一塊 GPU 的稠密連接結構;將AlexNet第一層卷積核由11變成7,步長由4變為2。
??? VGG-Nets:14年ImageNet分類第二名,更深的網絡,卷積層使用更小的filter尺寸和間隔;多個小卷積讓網絡有更多的非線性,更少的參數。
??? GoogLeNet:14年ImageNet分類第一名。引入Inception模塊,采用不同大小的卷積核意味著不同大小的感受野,最后拼接意味著不同尺度特征的融合;采用了average pooling來代替全連接層;避免梯度消失,網絡額外增加了2個輔助的softmax用于向前傳導梯度。
??? ResNet:引入殘差單元,簡化學習目標和難度,加快訓練速度,模型加深時,不會產生退化問題;能夠有效解決訓練過程中梯度消失和梯度爆炸問題。
??? DenseNet:密集連接;加強特征傳播,鼓勵特征復用,極大的減少了參數量。

講一下CNN,每個層,及作用

CNN的特征檢測層通過訓練數據進行學習

??? 所以在使用CNN時,避免了顯示的特征抽取,而隱式地從訓練數據中進行學習;
??? 由于同一特征映射面上的神經元權值相同,所以網絡可以并行學習,這也是卷積網絡相對于神經元彼此相連網絡的一大優勢。
??? 卷積神經網絡以其局部權值共享的特殊結構在語音識別和圖像處理方面有著獨特的優越性。權值共享降低了網絡的復雜性,特別是多維輸入向量的圖像可以直接輸入網絡這一特點避免了特征提取和分類過程中數據重建的復雜度。

卷積神經網絡(CNN)主要由卷積層、激活函數、池化層、全連接層組成。

??? 卷積層(Conv):使用卷積核進行特征提取和特征映射
??? 激活函數(Activation):由于卷積也是一種線性運算,因此需要增加非線性映射
??? 池化層(Pool):對輸入的特征圖進行壓縮,一方面使特征圖變小,簡化網絡計算復雜度;一方面進行特征壓縮,提取主要特征
??? 全連接層(FC):連接所有的特征,將輸出值送給分類器

Pooling層怎么反向傳播

CNN網絡中另外一個不可導的環節就是Pooling池化操作,因為Pooling操作使得feature map的尺寸變化,假如做2×2的池化(步長也為2),假設那么第l+1層的feature map有16個梯度,那么第l層就會有64個梯度,這使得梯度無法對位的進行傳播下去。其實解決這個問題的思想也很簡單,就是把1個像素的梯度傳遞給4個像素,但是需要保證傳遞的loss(或者梯度)總和不變。根據這條原則,mean pooling和max pooling的反向傳播也是不同的

??? mean pooling
??? mean pooling的前向傳播就是把一個patch中的值求取平均來做pooling,那么反向傳播的過程也就是把某個元素的梯度等分為n份分配給前一層,這樣就保證池化前后的梯度(殘差)之和保持不變,圖示如下 :

??? max pooling
??? max pooling也要滿足梯度之和不變的原則,max pooling的前向傳播是把patch中最大的值傳遞給后一層,而其他像素的值直接被舍棄掉。那么反向傳播也就是把梯度直接傳給前一層某一個像素,而其他像素不接受梯度,也就是為0。所以max pooling操作和mean pooling操作不同點在于需要記錄下池化操作時到底哪個像素的值是最大,也就是max id,這個變量就是記錄最大值所在位置的,因為在反向傳播中要用到,那么假設前向傳播和反向傳播的過程就如下圖所示 :

解釋 ResNet 流行的原因

從上面兩個圖可以看出,在網絡很深的時候(56層相比20層),模型效果卻越來越差了(誤差率越高),并不是網絡越深越好。
ResNet創造性的引入了殘差單元,很好的解決了這個問題。

??? 引入殘差單元,簡化學習目標和難度,加快訓練速度,模型加深時,不會產生退化問題
??? 引入殘差單元,能夠有效解決訓練過程中梯度消失和梯度爆炸問題

Resnet第二個版本做了哪些改進

ResNet_v2與v1的最大區別就是v2的BN和ReLU是在卷積之前使用的,好處:

??? 反向傳播基本符合假設,信息傳遞無阻礙;
??? BN層作為pre-activation,起到了正則化的作用;

mobileNet、shuffleNet知道嗎?

??? MobileNet是為移動和嵌入式設備提出的高效模型。MobileNets基于流線型架構(streamlined),使用深度可分離卷積(即Xception變體結構)來構建輕量級深度神經網絡。寬度因子α用于控制輸入和輸出的通道數,分辨率因子ρ控制輸入的分辨率。
??? 例如,對于深度分離卷積,把標準卷積(4,4,3,5)分解為:

??? 深度卷積部分:大小為(4,4,1,3),作用在輸入的每個通道上,輸出特征映射為(3,3,3)
??? 逐點卷積部分:大小為(1,1,3,5),作用在深度卷積的輸出特征映射上,得到最終輸出為(3,3,5)

??? shuffleNet專門應用于計算力受限的移動設備,主要包含2個操作:逐點群卷積(降低計算復雜度)和通道混洗(幫助信息流通)。

講一下pooling的作用, 為什么max pooling要更常用?哪些情況下,average pooling比max pooling更合適?

??? 作用:對輸入的特征圖進行壓縮,一方面使特征圖變小,簡化網絡計算復雜度;一方面進行特征壓縮,提取主要特征。
??? 通常來講,max-pooling的效果更好,雖然max-pooling和average-pooling都對數據做了下采樣,但是max-pooling感覺更像是做了特征選擇,選出了分類辨識度更好的特征,提供了非線性。 pooling的主要作用一方面是去掉冗余信息,一方面要保留feature map的特征信息,在分類問題中,我們需要知道的是這張圖像有什么object,而不大關心這個object位置在哪,在這種情況下顯然max pooling比average pooling更合適。在網絡比較深的地方,特征已經稀疏了,從一塊區域里選出最大的,比起這片區域的平均值來,更能把稀疏的特征傳遞下去。
??? average-pooling更強調對整體特征信息進行一層下采樣,在減少參數維度的貢獻上更大一點,更多的體現在信息的完整傳遞這個維度上,在一個很大很有代表性的模型中,比如說DenseNet中的模塊之間的連接大多采用average-pooling,在減少維度的同時,更有利信息傳遞到下一個模塊進行特征提取。
??? average-pooling在全局平均池化操作中應用也比較廣,在ResNet和Inception結構中最后一層都使用了平均池化。有的時候在模型接近分類器的末端使用全局平均池化還可以代替Flatten操作,使輸入數據變成一位向量。

哪些領域(數據集)不能使用深度學習?

??? 數據集太小,數據樣本不足時,深度學習相對其它機器學習算法,沒有明顯優勢
??? 數據集沒有局部相關特性,目前深度學習表現比較好的領域主要是圖像/語音/自然語言處理等領域,這些領域的一個共性是局部相關性。圖像中像素組成物體,語音信號中音位組合成單詞,文本數據中單詞組合成句子,這些特征元素的組合一旦被打亂,表示的含義同時也被改變。對于沒有這樣的局部相關性的數據集,不適于使用深度學習算法進行處理。舉個例子:預測一個人的健康狀況,相關的參數會有年齡、職業、收入、家庭狀況等各種元素,將這些元素打亂,并不會影響相關的結果。

細粒度分類
LSTM&RNN
解釋LSTM結構(相對于RNN)的好處
RNN的梯度消失原因和解決辦法
Object Detection
Unet的介紹
FCN和Unet的區別
RCNN系列的算法流程和區別
Fast RCNN中 bbox 回歸的損失函數什么
解釋 ROI Pooling 和 ROI Align
Mask RCNN中 mask branch 如何接入 Faster RCNN中
解釋 FPN
解釋 ROI Align
簡述 YOLO 和 SSD
簡述 Hough 直線檢測、Sobel 邊緣檢測算法流程
Mask RCNN中的anchors如何判定為正負樣本
簡述 NMS 算法流程
attention起源是用在哪里?pixel還是frame,是soft還是hard
anchor的正負樣本比是多少
算法和激活函數等
BN的原理和作用
BN層反向傳播,怎么求導
BN 的作用和缺陷,以及針對batch_size小的情況的改進(GN)
BN層,先加BN還是激活,有什么區別
手推BP
優化算法舉例和他們的區別(SGD、SGDM、RMSprop、Adam)
隨機梯度下降和梯度下降
訓練不收斂的原因有哪些
簡述 SVM 流程、核函數尋參及常見的核函數舉例
batch_size 和 learning rate 的關系(怎么平衡和調整二者)
解釋過擬合和欠擬合,以及解決方法
激活函數有哪些,各自區別
損失函數有哪些
Sigmoid 和 ReLu 對比(各自優缺點)
為什么不用sigmoid而用relu?做出了哪些改進?
梯度消失和梯度爆炸的原因和解決方法
Precision 和 Recall 的定義
精確率高、召回率低是為什么
SVM,線性回歸和邏輯回歸的原理及區別
PCA原理,PCA和SVD的區別和聯系
正則化怎么選擇,有哪些方式
L1、L2范數,區別
boost、Adaboost
dropout和batch normalization
講一下決策樹和隨機森林
講一下GBDT的細節,寫出GBDT的目標函數。 GBDT和Adaboost的區別與聯系
偏差、方差
距離度量公式哪些,區別
多標簽識別怎么做
data argumentation怎么處理的
數據不均衡怎么處理、只有少量帶標簽怎么處理
權重初始化方法都有哪些
權值衰減這個參數怎么設置
分類問題有哪些評價指標?每種的適用場景。
無監督學習了解哪些
圖像處理Opencv
邊緣檢測算子有哪些
霍夫變換
直方圖是什么
canny算子是怎么做的
圖像的特征提取有哪些算法,適用范圍、優缺點
————————————————
原文鏈接:https://blog.csdn.net/bluesliuf/article/details/89389117

總結

以上是生活随笔為你收集整理的计算机视觉面试常见问题(含解答)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。