深度學習面試100題(第56-60題)
點選藍字關注我們,小七等你好久嘍
深度學習
面試大題第56-60題
56題
什麼是邊框迴歸Bounding-Box regression,以及為什麼要做、怎麼做
解析:
這個問題可以牽扯出不少問題,比如
為什麼要邊框迴歸?
什麼是邊框迴歸?
邊框迴歸怎麼做的?
邊框迴歸為什麼寬高,座標會設計這種形式?
為什麼邊框迴歸只能微調,在離真實值Ground Truth近的時候才能生效?
如圖1所示,綠色的框表示真實值Ground Truth, 紅色的框為Selective Search提取的候選區域/框Region Proposal。那麼即便紅色的框被分類器識別為飛機,但是由於紅色的框定位不準(IoU<0.5), 這張圖也相當於沒有正確的檢測出飛機。
如果我們能對紅色的框進行微調fine-tuning,使得經過微調後的視窗跟Ground Truth 更接近, 這樣豈不是定位會更準確。 而Bounding-box regression 就是用來微調這個視窗的。
邊框迴歸是什麼?
對於視窗一般使用四維向量(x,y,w,h)(x,y,w,h) 來表示, 分別表示視窗的中心點座標和寬高。 對於圖2, 紅色的框 P 代表原始的Proposal, 綠色的框 G 代表目標的 Ground Truth, 我們的目標是尋找一種關係使得輸入原始的視窗 P 經過對映得到一個跟真實視窗 G 更接近的迴歸視窗G^。
所以,邊框迴歸的目的即是:給定(Px,Py,Pw,Ph)尋找一種對映f, 使得f(Px,Py,Pw,Ph)=(Gx^,Gy^,Gw^,Gh^)並且(Gx^,Gy^,Gw^,Gh^)≈(Gx,Gy,Gw,Gh)
邊框迴歸怎麼做的?
那麼經過何種變換才能從圖2中的視窗 P 變為視窗G^呢? 比較簡單的思路就是: 平移+尺度放縮
先做平移(Δx,Δy),Δx=Pwdx(P),Δy=Phdy(P)這是R-CNN論文的:
G^x=Pwdx(P)+Px,(1)
G^y=Phdy(P)+Py,(2)
然後再做尺度縮放(Sw,Sh), Sw=exp(dw(P)),Sh=exp(dh(P)),對應論文中:
G^w=Pwexp(dw(P)),(3)
G^h=Phexp(dh(P)),(4)
觀察(1)-(4)我們發現, 邊框迴歸學習就是dx(P),dy(P),dw(P),dh(P)這四個變換。
下一步就是設計演算法那得到這四個對映。
線性迴歸就是給定輸入的特徵向量 X, 學習一組引數 W, 使得經過線性迴歸後的值跟真實值 Y(Ground Truth)非常接近. 即Y≈WX。 那麼 Bounding-box 中我們的輸入以及輸出分別是什麼呢?
Input:
RegionProposal→P=(Px,Py,Pw,Ph)這個是什麼? 輸入就是這四個數值嗎?其實真正的輸入是這個視窗對應的 CNN 特徵,也就是 R-CNN 中的 Pool5 feature(特徵向量)。 (注:訓練階段輸入還包括 Ground Truth, 也就是下邊提到的t∗=(tx,ty,tw,th))
Output:
需要進行的平移變換和尺度縮放 dx(P),dy(P),dw(P),dh(P),或者說是Δx,Δy,Sw,Sh。我們的最終輸出不應該是 Ground Truth 嗎? 是的, 但是有了這四個變換我們就可以直接得到 Ground Truth。
這裡還有個問題, 根據(1)~(4)我們可以知道, P 經過 dx(P),dy(P),dw(P),dh(P)得到的並不是真實值 G,而是預測值G^。的確,這四個值應該是經過 Ground Truth 和 Proposal 計算得到的真正需要的平移量(tx,ty)和尺度縮放(tw,th)。
這也就是 R-CNN 中的(6)~(9):
tx=(Gx−Px)/Pw,(6)
ty=(Gy−Py)/Ph,(7)
tw=log(Gw/Pw),(8)
th=log(Gh/Ph),(9)
那麼目標函式可以表示為 d∗(P)=wT∗Φ5(P),Φ5(P)是輸入 Proposal 的特徵向量,w∗是要學習的引數(*表示 x,y,w,h, 也就是每一個變換對應一個目標函式) , d∗(P) 是得到的預測值。
我們要讓預測值跟真實值t∗=(tx,ty,tw,th)差距最小, 得到損失函式為:
Loss=∑iN(ti∗−w^T∗ϕ5(Pi))2
函式優化目標為:
W∗=argminw∗∑iN(ti∗−w^T∗ϕ5(Pi))2+λ||w^∗||2
利用梯度下降法或者最小二乘法就可以得到 w∗。
57題
請闡述下Selective Search的主要思想
解析:
1 使用一種過分割手段,將影象分割成小區域 (1k~2k 個)
2 檢視現有小區域,按照合併規則合併可能性最高的相鄰兩個區域。重複直到整張影象合併成一個區域位置
3 輸出所有曾經存在過的區域,所謂候選區域
其中合併規則如下: 優先合併以下四種區域:
①顏色(顏色直方圖)相近的
②紋理(梯度直方圖)相近的
③合併後總面積小的: 保證合併操作的尺度較為均勻,避免一個大區域陸續“吃掉”其他小區域 (例:設有區域a-b-④c-d-e-f-g-h。較好的合併方式是:ab-cd-ef-gh -> abcd-efgh -> abcdefgh。 不好的合併方法是:ab-c-d-e-f-g-h ->abcd-e-f-g-h ->abcdef-gh -> abcdefgh)
合併後,總面積在其BBOX中所佔比例大的: 保證合併後形狀規則。
上述四條規則只涉及區域的顏色直方圖、梯度直方圖、面積和位置。合併後的區域特徵可以直接由子區域特徵計算而來,速度較快。
58題
什麼是非極大值抑制(NMS)?
解析:
R-CNN會從一張圖片中找出n個可能是物體的矩形框,然後為每個矩形框為做類別分類概率:
就像上面的圖片一樣,定位一個車輛,最後演算法就找出了一堆的方框,我們需要判別哪些矩形框是沒用的。非極大值抑制的方法是:先假設有6個矩形框,根據分類器的類別分類概率做排序,假設從小到大屬於車輛的概率 分別為A、B、C、D、E、F。
(1)從最大概率矩形框F開始,分別判斷A~E與F的重疊度IOU是否大於某個設定的閾值;
(2)假設B、D與F的重疊度超過閾值,那麼就扔掉B、D;並標記第一個矩形框F,是我們保留下來的。
(3)從剩下的矩形框A、C、E中,選擇概率最大的E,然後判斷E與A、C的重疊度,重疊度大於一定的閾值,那麼就扔掉;並標記E是我們保留下來的第二個矩形框。
就這樣一直重複,找到所有被保留下來的矩形框。
非極大值抑制(NMS)顧名思義就是抑制不是極大值的元素,搜尋區域性的極大值。這個區域性代表的是一個鄰域,鄰域有兩個引數可變,一是鄰域的維數,二是鄰域的大小。這裡不討論通用的NMS演算法,而是用於在目標檢測中用於提取分數最高的視窗的。
例如在行人檢測中,滑動視窗經提取特徵,經分類器分類識別後,每個視窗都會得到一個分數。但是滑動視窗會導致很多視窗與其他視窗存在包含或者大部分交叉的情況。這時就需要用到NMS來選取那些鄰域裡分數最高(是行人的概率最大),並且抑制那些分數低的視窗。
59題
什麼是深度學習中的anchor?
解析:
當我們使用一個3*3的卷積核,在最後一個feature map上滑動,當滑動到特徵圖的某一個位置時,以當前滑動視窗中心為中心對映回原圖的一個區域(注意 feature map 上的一個點是可以對映到原圖的一個區域的,相當於感受野起的作用),以原圖上這個區域的中心對應一個尺度和長寬比,就是一個anchor了。
fast rcnn 使用3種尺度和3種長寬比(1:1;1:2;2:1),則在每一個滑動位置就有 3*3 = 9 個anchor。
60題
CNN的特點以及優勢
解析:
CNN使用範圍是具有區域性空間相關性的資料,比如影象,自然語言,語音
區域性連線:可以提取區域性特徵。
權值共享:減少引數數量,因此降低訓練難度(空間、時間消耗都少了)。可以完全共享,也可以區域性共享(比如對人臉,眼睛鼻子嘴由於位置和樣式相對固定,可以用和臉部不一樣的卷積核)
降維:通過池化或卷積stride實現。
多層次結構:將低層次的區域性特徵組合成為較高層次的特徵。不同層級的特徵可以對應不同任務。
福利時刻:為了幫助大家更多的學習課程的相關知識,我們特意推出了深度學習系列課程。
分享一哈:之前公司三週年慶活動,推出新人大禮包的活動,註冊即送免費課程,此活動還在繼續,此活動有超6千人報名了,現在免費,免費,免費送嘍,親們抓緊時間噢,掃碼檢視詳情~~
長按二維碼檢視
更多資訊
請戳一戳
點選“閱讀原文”,可線上報名
相關文章
- 深度學習面試100題(第46-50題)深度學習面試
- 深度學習面試100題(第51-55題)深度學習面試
- 深度學習面試100題(第31-35題)深度學習面試
- 深度學習面試100題(第36-40題)深度學習面試
- 深度學習面試100題(第41-45題)深度學習面試
- 深度學習面試100題(第61-65題)深度學習面試
- 深度學習面試100題(第16-20題)深度學習面試
- 深度學習面試100題(第21-25題)深度學習面試
- 深度學習面試100題(第26-30題)深度學習面試
- 深度學習面試100題(第6-10題)深度學習面試
- 深度學習面試100題(第11-15題)深度學習面試
- 深度學習面試100題(第1-5題):經典常考點CNN深度學習面試CNN
- A-深度學習面試題深度學習面試題
- 10道機器學習、深度學習必會面試題機器學習深度學習面試題
- 機器學習及深度學習的知識點及面試題總結機器學習深度學習面試題
- 微軟面試100題微軟面試
- 淺談深度學習落地問題深度學習
- 常見面試題學習(4)面試題
- 學習面試題Day09面試題
- 【SQL 學習】一個面試題SQL面試題
- 100道JAVA面試題+JAVA面試題參考答案Java面試題
- 《統計學習方法》第11章習題
- 淺談深度學習的落地問題深度學習
- 深度學習 V.S. 謎題遊戲深度學習遊戲
- Java面試題全集學習筆記Java面試題筆記
- 100個前端面試題前端面試題
- Java最大棧深度有多大?-從一道面試題開始學習JVMJava面試題JVM
- 深度學習之新聞多分類問題深度學習
- DBA面試題集----我要好好學習面試題
- 資料結構面試100題資料結構面試
- 宅家學習第N天,我終於整理出了高階面試題合集!面試題
- 【深度學習】深度學習md筆記總結第1篇:深度學習課程,要求【附程式碼文件】深度學習筆記
- TensorFlow系列專題(三):深度學習簡介深度學習
- 100家IT 名企面試必考面試題java系列面試題Java
- 【Java面試題】之CAS原理深度分析Java面試題
- Python經典程式設計習題100例:第3例Python程式設計
- Python經典程式設計習題100例:第42例:學習使用auto定義變數Python程式設計變數
- mysql面試練習題MySql面試