深度學習面試100題(第21-25題)
1.廣義線性模型是怎被應用在深度學習中?
解析:
A Statistical View of Deep Learning (I): Recursive GLMs
深度學習從統計學角度,可以看做遞迴的廣義線性模型。
廣義線性模型相對於經典的線性模型(y=wx+b),核心在於引入了連線函式g(.),形式變為:y=g−1(wx+b)。
深度學習時遞迴的廣義線性模型,神經元的啟用函式,即為廣義線性模型的連結函式。邏輯迴歸(廣義線性模型的一種)的Logistic函式即為神經元啟用函式中的Sigmoid函式,很多類似的方法在統計學和神經網路中的名稱不一樣,容易引起初學者(這裡主要指我)的困惑。
下圖是一個對照表:
2.如何解決梯度消失和梯度膨脹?
解析:
(1)梯度消失:
根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小於1的話,那麼即使這個結果是0.99,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於0
可以採用ReLU啟用函式有效的解決梯度消失的情況,也可以用Batch Normalization解決這個問題。關於深度學習中 Batch Normalization為什麼效果好?
(2)梯度膨脹
根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大於1的話,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於無窮大
可以通過啟用函式來解決,或用Batch Normalization解決這個問題。
3.簡述神經網路的發展歷史。
解析:
1949年Hebb提出了神經心理學學習正規化——Hebbian學習理論
1952年,IBM的Arthur Samuel寫出了西洋棋程式
1957年,Rosenblatt的感知器演算法是第二個有著神經系統科學背景的機器學習模型.
3年之後,Widrow因發明Delta學習規則而載入ML史冊,該規則馬上就很好的應用到了感知器的訓練中
感知器的熱度在1969被Minskey一盆冷水潑滅了。他提出了著名的XOR問題,論證了感知器在類似XOR問題的線性不可分資料的無力。
儘管BP的思想在70年代就被Linnainmaa以“自動微分的翻轉模式”被提出來,但直到1981年才被Werbos應用到多層感知器(MLP)中,NN新的大繁榮。
1991年的Hochreiter和2001年的Hochreiter的工作,都表明在使用BP演算法時,NN單元飽和之後會發生梯度損失。又發生停滯。
時間終於走到了當下,隨著計算資源的增長和資料量的增長。一個新的NN領域——深度學習出現了。
簡言之,MP模型+sgn—->單層感知機(只能線性)+sgn— Minsky 低谷 —>多層感知機+BP+sigmoid—- (低谷) —>深度學習+pre-training+ReLU/sigmoid
4.深度學習常用方法。
解析:
全連線DNN(相鄰層相互連線、層內無連線):
AutoEncoder(儘可能還原輸入)、Sparse Coding(在AE上加入L1規範)、RBM(解決概率問題)—–>特徵探測器——>棧式疊加 貪心訓練
RBM—->DBN
解決全連線DNN的全連線問題—–>CNN
解決全連線DNN的無法對時間序列上變化進行建模的問題—–>RNN—解決時間軸上的梯度消失問題——->LSTM
DNN是傳統的全連線網路,可以用於廣告點選率預估,推薦等。其使用embedding的方式將很多離散的特徵編碼到神經網路中,可以很大的提升結果。
CNN主要用於計算機視覺(Computer Vision)領域,CNN的出現主要解決了DNN在影象領域中引數過多的問題。同時,CNN特有的卷積、池化、batch normalization、Inception、ResNet、DeepNet等一系列的發展也使得在分類、物體檢測、人臉識別、影象分割等眾多領域有了長足的進步。同時,CNN不僅在影象上應用很多,在自然語言處理上也頗有進展,現在已經有基於CNN的語言模型能夠達到比LSTM更好的效果。在最新的AlphaZero中,CNN中的ResNet也是兩種基本演算法之一。
GAN是一種應用在生成模型的訓練方法,現在有很多在CV方面的應用,例如影象翻譯,影象超清化、影象修復等等。
RNN主要用於自然語言處理(Natural Language Processing)領域,用於處理序列到序列的問題。普通RNN會遇到梯度爆炸和梯度消失的問題。所以現在在NLP領域,一般會使用LSTM模型。在最近的機器翻譯領域,Attention作為一種新的手段,也被引入進來。
除了DNN、RNN和CNN外, 自動編碼器(AutoEncoder)、稀疏編碼(Sparse Coding)、深度信念網路(DBM)、限制玻爾茲曼機(RBM)也都有相應的研究。
5.請簡述神經網路的發展史。
解析:
sigmoid會飽和,造成梯度消失。於是有了ReLU。
ReLU負半軸是死區,造成梯度變0。於是有了LeakyReLU,PReLU。
強調梯度和權值分佈的穩定性,由此有了ELU,以及較新的SELU。
太深了,梯度傳不下去,於是有了highway。
乾脆連highway的引數都不要,直接變殘差,於是有了ResNet。
強行穩定引數的均值和方差,於是有了BatchNorm。
在梯度流中增加噪聲,於是有了 Dropout。
RNN梯度不穩定,於是加幾個通路和門控,於是有了LSTM。
LSTM簡化一下,有了GRU。
GAN的JS散度有問題,會導致梯度消失或無效,於是有了WGAN。
WGAN對梯度的clip有問題,於是有了WGAN-GP。
參考資料:
1.許韓,https://www.zhihu.com/question/41233373/answer/145404190;
2.https://www.zhihu.com/question/38102762;
3.SmallisBig,http://blog.csdn.net/u010496169/article/details/73550487;
4.張雨石,現在在應用領域應用的做多的是DNN,CNN和RNN;
5.SIY.Z,https://zhuanlan.zhihu.com/p/29435406。
題目來源:
七月線上官網(https://www.julyedu.com/)——面試題庫——面試大題——深度學習 第16-20題。
為了幫助大家更好的學習和理解深度學習,我們特意推出了“深度學習第四期”課程,7月31日開課,每週二週四晚上8~10點直播上課,每次課至少2小時,共10次課;本課程提供以下服務:直播答疑、課後回放、佈置作業且解答、畢業考試且批改、面試輔導。課程詳情可點選文末“閱讀原文”進行檢視,或者加微信客服:julyedukefu_02進行諮詢。
相關文章
- 深度學習面試100題(第46-50題)深度學習面試
- 深度學習面試100題(第51-55題)深度學習面試
- 深度學習面試100題(第56-60題)深度學習面試
- 深度學習面試100題(第31-35題)深度學習面試
- 深度學習面試100題(第36-40題)深度學習面試
- 深度學習面試100題(第41-45題)深度學習面試
- 深度學習面試100題(第61-65題)深度學習面試
- 深度學習面試100題(第16-20題)深度學習面試
- 深度學習面試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面試