深度學習面試100題(第36-40題)

七月線上實驗室發表於2018-07-17

36、簡單說下sigmoid啟用函式

解析:

常用的非線性啟用函式有sigmoid、tanh、relu等等,前兩者sigmoid/tanh比較常見於全連線層,後者relu常見於卷積層。這裡先簡要介紹下最基礎的sigmoid函式(btw,在本部落格中SVM那篇文章開頭有提過)。

    sigmoid的函式表示式如下

640?wx_fmt=png

    其中z是一個線性組合,比如z可以等於:b + w1*x1 + w2*x2。通過代入很大的正數或很小的負數到g(z)函式中可知,其結果趨近於0或1。


    因此,sigmoid函式g(z)的圖形表示如下( 橫軸表示定義域z,縱軸表示值域g(z) ):

 

640?wx_fmt=png


    也就是說,sigmoid函式的功能是相當於把一個實數壓縮至0到1之間。當z是非常大的正數時,g(z)會趨近於1,而z是非常小的負數時,則g(z)會趨近於0。


    壓縮至0到1有何用處呢?用處是這樣一來便可以把啟用函式看作一種“分類的概率”,比如啟用函式的輸出為0.9的話便可以解釋為90%的概率為正樣本。


    舉個例子,如下圖(圖引自Stanford機器學習公開課)

 

640?wx_fmt=png


    z = b + w1*x1 + w2*x2,其中b為偏置項 假定取-30,w1、w2都取為20

 

640?wx_fmt=png


如果x1 = 0,x2 = 0,則z = -30,g(z) = 1/( 1 + e^-z )趨近於0。此外,從上圖sigmoid函式的圖形上也可以看出,當z=-30的時候,g(z)的值趨近於0

如果x1 = 0,x2 = 1,或x1 =1,x2 = 0,則z = b + w1*x1 + w2*x2 = -30 + 20 = -10,同樣,g(z)的值趨近於0

如果x1 = 1,x2 = 1,則z = b + w1*x1 + w2*x2 = -30 + 20*1 + 20*1 = 10,此時,g(z)趨近於1。


    換言之,只有x1和x2都取1的時候,g(z)→1,判定為正樣本;而當只要x1或x2有一個取0的時候,g(z)→0,判定為負樣本,如此達到分類的目的。


綜上,sigmod函式,是邏輯斯蒂迴歸的壓縮函式,它的性質是可以把分隔平面壓縮到[0,1]區間一個數(向量),線上性分割平面值為0時候正好對應sigmod值為0.5,大於0對應sigmod值大於0.5、小於0對應sigmod值小於0.5;0.5可以作為分類的閥值;exp的形式最值求解時候比較方便,用相乘形式作為logistic損失函式,使得損失函式是凸函式;不足之處是sigmod函式在y趨於0或1時候有死區,控制不好在bp形式傳遞loss時候容易造成梯度彌撒。


37、rcnn、fast-rcnn和faster-rcnn三者的區別是什麼

解析:

首先膜拜RBG(Ross B. Girshick)大神,不僅學術牛,工程也牛,程式碼健壯,文件詳細,clone下來就能跑。斷斷續續接觸detection幾個月,將自己所知做個大致梳理,業餘級新手,理解不對的地方還請指正。


傳統的detection主流方法是DPM(Deformable parts models), 在VOC2007上能到43%的mAP,雖然DPM和CNN看起來差別很大,但RBG大神說“Deformable Part Models are Convolutional Neural Networks”(http://arxiv.org/abs/1409.5403)。


CNN流行之後,Szegedy做過將detection問題作為迴歸問題的嘗試(Deep Neural Networks for Object Detection),但是效果差強人意,在VOC2007上mAP只有30.5%。既然迴歸方法效果不好,而CNN在分類問題上效果很好,那麼為什麼不把detection問題轉化為分類問題呢?


RBG的RCNN使用region proposal(具體用的是Selective Search  Koen van de Sande: Segmentation as Selective Search for Object Recognition)來得到有可能得到是object的若干(大概10^3量級)影象區域性區域,然後把這些區域分別輸入到CNN中,得到區域的feature,再在feature上加上分類器,判斷feature對應的區域是屬於具體某類object還是背景。當然,RBG還用了區域對應的feature做了針對boundingbox的迴歸,用來修正預測的boundingbox的位置。


RCNN在VOC2007上的mAP是58%左右。RCNN存在著重複計算的問題(proposal的region有幾千個,多數都是互相重疊,重疊部分會被多次重複提取feature),於是RBG借鑑Kaiming He的SPP-net的思路單槍匹馬搞出了Fast-RCNN,跟RCNN最大區別就是Fast-RCNN將proposal的region對映到CNN的最後一層conv layer的feature map上,這樣一張圖片只需要提取一次feature,大大提高了速度,也由於流程的整合以及其他原因,在VOC2007上的mAP也提高到了68%。


探索是無止境的。Fast-RCNN的速度瓶頸在Region proposal上,於是RBG和Kaiming He一幫人將Region proposal也交給CNN來做,提出了Faster-RCNN。Fater-RCNN中的region proposal netwrok實質是一個Fast-RCNN,這個Fast-RCNN輸入的region proposal的是固定的(把一張圖片劃分成n*n個區域,每個區域給出9個不同ratio和scale的proposal),輸出的是對輸入的固定proposal是屬於背景還是前景的判斷和對齊位置的修正(regression)。Region proposal network的輸出再輸入第二個Fast-RCNN做更精細的分類和Boundingbox的位置修正。


Fater-RCNN速度更快了,而且用VGG net作為feature extractor時在VOC2007上mAP能到73%。個人覺得制約RCNN框架內的方法精度提升的瓶頸是將dectection問題轉化成了對圖片區域性區域的分類問題後,不能充分利用圖片區域性object在整個圖片中的context資訊。


可能RBG也意識到了這一點,所以他最新的一篇文章YOLO(http://arxiv.org/abs/1506.02640)又回到了regression的方法下,這個方法效果很好,在VOC2007上mAP能到63.4%,而且速度非常快,能達到對視訊的實時處理(油管視訊:https://www.youtube.com/channel/UC7ev3hNVkx4DzZ3LO19oebg),雖然不如Fast-RCNN,但是比傳統的實時方法精度提升了太多,而且我覺得還有提升空間。


38、在神經網路中,有哪些辦法防止過擬合?

解析:

緩解過擬合:

① Dropout

② 加L1/L2正則化

③ BatchNormalization

④ 網路bagging


39、CNN是什麼,CNN關鍵的層有哪些?

解析:

CNN是卷積神經網路,具體詳見此文:https://blog.csdn.net/v_july_v/article/details/51812459。


其關鍵層有:

① 輸入層,對資料去均值,做data augmentation等工作

② 卷積層,區域性關聯抽取feature

③ 啟用層,非線性變化

④ 池化層,下采樣

⑤ 全連線層,增加模型非線性

⑥ 高速通道,快速連線

⑦ BN層,緩解梯度彌散


40、GRU是什麼?GRU對LSTM做了哪些改動?

解析:

GRU是Gated Recurrent Units,是迴圈神經網路的一種。

GRU只有兩個門(update和reset),LSTM有三個門(forget,input,output),GRU直接將hidden state 傳給下一個單元,而LSTM用memory cell 把hidden state 包裝起來。


題目來源:

七月線上官網(https://www.julyedu.com/)——面試題庫——面試大題——深度學習 第32,37-40題。

640?wx_fmt=gif

深度學習是機器學習的一個分支深度學習除了可以學習特徵和任務之間的關聯以外,還能自動從簡單特徵中提取更加複雜的特徵。深度學習演算法可以從資料中學習更加複雜的特徵表達,使得最後一步權重學習變得更加簡單且有效。


為了幫助大家系統地學習機器學習課程的相關知識,我們特意推出了機器學習集訓營系列課程。迄今為止,「機器學習集訓營」已經舉辦了四期,每一期都湧現出了不少優秀offer,特別是上一期很多同學從Java、Android、iOS等傳統IT行業成功轉行轉型轉崗AI拿到年薪三四十萬,部分甚至超過四十萬拿到五十萬。


本第五期,在第四期的基礎上,除了繼續維持“入學測評、直播答疑、佈置作業、階段考試、畢業考核、一對一批改、線上線下結合、CPU&GPU雙雲平臺、組織比賽、面試輔導、就業推薦”十一位一體的教學模式,本期特地推出機器學習工程師聯合認證。且線下在北京、上海、深圳、廣州、杭州、瀋陽、濟南、鄭州、成都的基礎上,新增武漢、西安兩個線下點,十一城同步開營


此外,本期依然沿用前四期線上線下相結合的授課方式,加強專案實訓的同時引入線下BAT專家面對面、手把手的教學方式;突出BAT級工業專案實戰輔導 + 一對一面試求職輔導,並提供一年GPU雲實驗平臺免費使用,精講面試考點。讓每一位學員不用再為遇到問題沒人解答,缺乏實戰經驗以及簡歷上沒有專案經驗,面試屢屢遭拒而發愁。


本期限150個名額,歷時3個月,10多個BAT級工業專案,保障每一位學員所學更多、效率更高、收穫更大。


機器學習集訓營 第五期 課程詳情可點選文末閱讀原文進行檢視,或者加微信客服:julyedukefu_02進行諮詢。

掃碼加客服微信

640?wx_fmt=jpeg

640?wx_fmt=jpeg

相關文章