深度學習面試100題(第36-40題)
36、簡單說下sigmoid啟用函式
解析:
常用的非線性啟用函式有sigmoid、tanh、relu等等,前兩者sigmoid/tanh比較常見於全連線層,後者relu常見於卷積層。這裡先簡要介紹下最基礎的sigmoid函式(btw,在本部落格中SVM那篇文章開頭有提過)。
sigmoid的函式表示式如下
其中z是一個線性組合,比如z可以等於:b + w1*x1 + w2*x2。通過代入很大的正數或很小的負數到g(z)函式中可知,其結果趨近於0或1。
因此,sigmoid函式g(z)的圖形表示如下( 橫軸表示定義域z,縱軸表示值域g(z) ):
也就是說,sigmoid函式的功能是相當於把一個實數壓縮至0到1之間。當z是非常大的正數時,g(z)會趨近於1,而z是非常小的負數時,則g(z)會趨近於0。
壓縮至0到1有何用處呢?用處是這樣一來便可以把啟用函式看作一種“分類的概率”,比如啟用函式的輸出為0.9的話便可以解釋為90%的概率為正樣本。
舉個例子,如下圖(圖引自Stanford機器學習公開課)
z = b + w1*x1 + w2*x2,其中b為偏置項 假定取-30,w1、w2都取為20
如果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題。
深度學習是機器學習的一個分支。深度學習除了可以學習特徵和任務之間的關聯以外,還能自動從簡單特徵中提取更加複雜的特徵。深度學習演算法可以從資料中學習更加複雜的特徵表達,使得最後一步權重學習變得更加簡單且有效。
為了幫助大家系統地學習機器學習課程的相關知識,我們特意推出了機器學習集訓營系列課程。迄今為止,「機器學習集訓營」已經舉辦了四期,每一期都湧現出了不少優秀offer,特別是上一期很多同學從Java、Android、iOS等傳統IT行業成功轉行轉型轉崗AI拿到年薪三四十萬,部分甚至超過四十萬拿到五十萬。
本第五期,在第四期的基礎上,除了繼續維持“入學測評、直播答疑、佈置作業、階段考試、畢業考核、一對一批改、線上線下結合、CPU&GPU雙雲平臺、組織比賽、面試輔導、就業推薦”十一位一體的教學模式,本期特地推出機器學習工程師聯合認證。且線下在北京、上海、深圳、廣州、杭州、瀋陽、濟南、鄭州、成都的基礎上,新增武漢、西安兩個線下點,十一城同步開營。
此外,本期依然沿用前四期線上線下相結合的授課方式,加強專案實訓的同時引入線下BAT專家面對面、手把手的教學方式;突出BAT級工業專案實戰輔導 + 一對一面試求職輔導,並提供一年GPU雲實驗平臺免費使用,精講面試考點。讓每一位學員不用再為遇到問題沒人解答,缺乏實戰經驗以及簡歷上沒有專案經驗,面試屢屢遭拒而發愁。
本期限150個名額,歷時3個月,10多個BAT級工業專案,保障每一位學員所學更多、效率更高、收穫更大。
機器學習集訓營 第五期課程詳情可點選文末“閱讀原文”進行檢視,或者加微信客服:julyedukefu_02進行諮詢。
掃碼加客服微信