頭條面經(同學二)

同學二:

一面:

1.focal loss的形式,原理

focal loss提出的目的是:希望one-stage detector可以達到two-stage detector的準確率,同時不影響原有的速度。

作者認爲one stage的準確率不如two stage的原因在於:樣本的類別不均衡;負樣本數量太大,佔總的loss的大部分,而且多是容易分類的,因此使得模型的優化方向並不是我們所希望的那樣。OHEM(online hard example mining)雖然增加了錯分類樣本的權重,但是OHEM算法忽略了容易分類的樣本。focal loss:標準交叉熵損失基礎上修改得到的。這個函數可以通過減少易分類樣本的權重,使得模型在訓練時更專注於難分類的樣本。

爲了驗證focal loss ,作者設計了RetinaNet,實驗證明RetinaNet不僅可以達到one-stage detector的速度,也能有two-stage detector的準確率。

1、當一個樣本被分錯的時候,pt是很小的(請結合公式2,比如當y=1時,p要小於0.5纔是錯分類,此時pt就比較小,反之亦然),因此調製係數就趨於1,也就是說相比原來的loss是沒有什麼大的改變的。當pt趨於1的時候(此時分類正確而且是易分類樣本),調製係數趨於0,也就是對於總的loss的貢獻很小。2、當γ=0的時候,focal loss就是傳統的交叉熵損失,當γ增加的時候,調製係數也會增加。
 

阿爾法t是爲了解決正負樣本均衡的問題。一般對於正樣本取0.75, 副樣本取0.25(正負樣本是1:3的比例),阿爾法t必須在0-1之間

2.怎麼解決目標檢測中樣本不均衡問題

3.怎麼解決目標檢測中難難樣本問題

4.介紹一下轉置卷積及其原理

 

5.利用神經網絡擬合arcsin

6.五局三勝的概率題

7.計算IOU

二面:

1.L1和L2正則化的區別

2.L1正則函數有什麼缺陷?爲什麼要使用smooth L1

 

3.IN,BN,IBN,GN有什麼區別

常用的Normalization方法主要有:Batch Normalization(BN,2015年)、Layer Normalization(LN,2016年)、Instance Normalization(IN,2017年)、Group Normalization(GN,2018年)。它們都是從激活函數的輸入來考慮、做文章的,以不同的方式對激活函數的輸入進行 Norm 的。

我們將輸入的 feature map shape 記爲[N, C, H, W],其中N表示batch size,即N個樣本;C表示通道數;H、W分別表示特徵圖的高度、寬度。這幾個方法主要的區別就是在:

(1) BN是在batch上,對N、H、W做歸一化,而保留通道 C 的維度。BN對較小的batch size效果不好。BN適用於固定深度的前向神經網絡,如CNN,不適用於RNN;

(2)LN在通道方向上,對C、H、W歸一化,主要對RNN效果明顯;

(3)IN在圖像像素上,對H、W做歸一化,用在風格化遷移;

(4)GN將channel分組,然後再做歸一化。

如果把特徵圖比喻成一摞書,這摞書總共有 N 本,每本有 C 頁,每頁有 H 行,每行 有W 個字符.

a. BN 求均值時,相當於把這些書按頁碼一一對應地加起來(例如第1本書第36頁,第2本書第36頁......),再除以每個頁碼下的字符總數:N×H×W,因此可以把 BN 看成求“平均書”的操作(注意這個“平均書”每頁只有一個字),求標準差時也是同理。

b LN 求均值時,相當於把每一本書的所有字加起來,再除以這本書的字符總數:C×H×W,即求整本書的“平均字”,求標準差時也是同理。

c. IN 求均值時,相當於把一頁書中所有字加起來,再除以該頁的總字數:H×W,即求每頁書的“平均字”,求標準差時也是同理。

d GN 相當於把一本 C 頁的書平均分成 G 份,每份成爲有 C/G 頁的小冊子,求每個小冊子的“平均字”和字的“標準差”。

BN存在的問題:

(1)每次是在一個batch上計算均值、方差,如果batch size太小,則計算的均值、方差不足以代表整個數據分佈。

(2)batch size太大:會超過內存容量;需要跑更多的epoch,導致總訓練時間變長;會直接固定梯度下降的方向,導致很難更新。

LN優勢:針對BN不適用於深度不固定的網絡(sequence長度不一致,如RNN),LN對深度網絡的某一層的所有神經元的輸入按以下公式進行normalization操作;不需要批訓練,在單條數據內部就能歸一化。LN不依賴於batch size和輸入sequence的長度,因此可以用於batch size爲1和RNN中。LN用於RNN效果比較明顯,但是在CNN上,效果不如BN。

IN:針對圖像像素做normalization,最初用於圖像的風格化遷移。在圖像風格化中,生成結果主要依賴於某個圖像實例,feature map 的各個 channel 的均值和方差會影響到最終生成圖像的風格。所以對整個batch歸一化不適合圖像風格化中,因而對H、W做歸一化。可以加速模型收斂,並且保持每個圖像實例之間的獨立。

GN:爲了解決BN對較小的mini-batch size效果差的問題。GN適用於佔用顯存比較大的任務,例如圖像分割。對這類任務,可能 batch size 只能是個位數,再大顯存就不夠用了。而當 batch size 是個位數時,BN 的表現很差,因爲沒辦法通過幾個樣本的數據量,來近似總體的均值和標準差。GN 也是獨立於 batch 的,它是 LN 和 IN 的折中。

參考:https://zhuanlan.zhihu.com/p/72589565

 

 

 

4.RCNN Fast RCNN 的發展歷程

5.機器學習哪些可以預測概率,哪些不能,LR公式問什麼可以預測概率

6.編程題計算數據流的中位數

三面:

1.訓練一個模型使其可以按照美觀程度將照片排序

2.對很多圖片的1024維特徵進行檢索,有什麼壓縮方法嗎?

3.多個文件,每個文件大於2G,存儲的是一堆浮點數,要求使用不大於2G的內存對其進行排序

4.檢測中bounding box 迴歸推導

5.gan的損失函數

6.prototype 的作用,原理

7.OHEM(online hard example mining)是什麼,有什麼作用。

(1) 訓練過程需要進行參數的空間搜索

(2) 簡單樣本與難分辨樣本之間的類別不平衡是亟需解決的問題

(3) 自動地選擇難分辨樣本來進行訓練不僅效率高而且性能好

(4) 提出了OHEM算法,不僅效率高而且性能好,在各種數據集上表現優越

當數據集增大,算法可以在原來基礎上提升更大。對於數據的類別不平衡問題不需要採用設置正負樣本比例的方式來解決,這種在線選擇方式針對性更強;當我們遇到數據集少,且目標檢測positive proposal少時,一般實驗效果會不如人意,咱們可以試試OHEM這個trick,也許可以帶來不錯的效果。

參考博客:https://blog.csdn.net/u014380165/article/details/73148073

hard negative mining:逐漸地增加分辨錯誤的樣本。這個算法需要迭代地交替訓練,用樣本集更新模型,然後再固定模型 來選擇分辨錯的目標框並加入到樣本集中。

hard negative mining:優化SVMs時,維持一個工作樣本集。交替訓練,先訓練模型收斂於當前的 工作集,然後固定模型,去除簡單樣本(能夠輕易區分的),添加困難樣本(不 能夠區分的),這樣的訓練方式 能使模型達到全局最優

OHEM除了優化SVMs類的模型,也優化非SVMs類的模型,例如淺層神經網絡和提升決策樹;

OHEM是在Fast RCNN的基礎上進行展開的,具體流程:在第t次迭代時,輸入圖片到卷積網絡中得到特徵圖,然後 把特徵圖和所有的RoIs輸入到RoI網絡中並計算所有RoIs的損失,把損 失從高到低排序,然後選擇B/N個RoIs。這裏有個小問題,位置上相鄰 的RoIs通過RoI網絡後會輸出相近的損失,這樣損失就翻倍。作者爲了 解決這個問題,使用了NMS(非最大值抑制)算法,先把損失按高到低排 序,然後選擇最高的損失,並計算其他RoI這個RoI的IoU(交叉比),移 除IoU大於一定閾值的RoI,然後反覆上述流程直到選擇了B/N個RoIs。

https://zhuanlan.zhihu.com/p/58162337

8.FPN的網絡結構和原理。

feature pyramid networks for object detection :多數的object detection算法都是隻採用頂層特徵做預測,但我們知道低層的特徵語義信息比較少,但是目標位置準確;高層的特徵語義信息比較豐富,但是目標位置比較粗略。另外雖然也有些算法採用多尺度特徵融合的方式,但是一般是採用融合後的特徵做預測,而本文不一樣的地方在於預測是在不同特徵層獨立進行的。

4種形式的圖像金字塔:

參考:https://blog.csdn.net/u014380165/article/details/72890275

9.矩估計,最大似然估計和樸素貝葉斯和半樸素貝葉斯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章