深度學習面試100題(第6-10題)
1.CNN的卷積核是單層的還是多層的?
解析:
一般而言,深度卷積網路是一層又一層的。層的本質是特徵圖, 存貯輸入資料或其中間表示值。一組卷積核則是聯絡前後兩層的網路參數列達體, 訓練的目標就是每個卷積核的權重引數組。
描述網路模型中某層的厚度,通常用名詞通道channel數或者特徵圖feature map數。不過人們更習慣把作為資料輸入的前層的厚度稱之為通道數(比如RGB三色圖層稱為輸入通道數為3),把作為卷積輸出的後層的厚度稱之為特徵圖數。
卷積核(filter)一般是3D多層的,除了面積引數, 比如3x3之外, 還有厚度引數H(2D的視為厚度1). 還有一個屬性是卷積核的個數N。
卷積核的厚度H, 一般等於前層厚度M(輸入通道數或feature map數). 特殊情況M > H。
卷積核的個數N, 一般等於後層厚度(後層feature maps數,因為相等所以也用N表示)。
卷積核通常從屬於後層,為後層提供了各種檢視前層特徵的視角,這個視角是自動形成的。
卷積核厚度等於1時為2D卷積,對應平面點相乘然後把結果加起來,相當於點積運算;
卷積核厚度大於1時為3D卷積,每片分別平面點求卷積,然後把每片結果加起來,作為3D卷積結果;1x1卷積屬於3D卷積的一個特例,有厚度無面積, 直接把每片單個點乘以權重再相加。
歸納之,卷積的意思就是把一個區域,不管是一維線段,二維方陣,還是三維長方塊,全部按照卷積核的維度形狀,對應逐點相乘再求和,濃縮成一個標量值也就是降到零維度,作為下一層的一個feature map的一個點的值!
可以比喻一群漁夫坐一個漁船撒網打魚,魚塘是多層水域,每層魚兒不同。
船每次移位一個stride到一個地方,每個漁夫撒一網,得到收穫,然後換一個距離stride再撒,如此重複直到遍歷魚塘。
A漁夫盯著魚的品種,遍歷魚塘後該漁夫描繪了魚塘的魚品種分佈;
B漁夫盯著魚的重量,遍歷魚塘後該漁夫描繪了魚塘的魚重量分佈;
還有N-2個漁夫,各自興趣各幹各的;
最後得到N個特徵圖,描述了魚塘的一切!
2D卷積表示漁夫的網就是帶一圈浮標的漁網,只打上面一層水體的魚;
3D卷積表示漁夫的網是多層巢狀的漁網,上中下層水體的魚兒都跑不掉;
1x1卷積可以視為每次移位stride,甩鉤釣魚代替了撒網;
下面解釋一下特殊情況的 M > H:
實際上,除了輸入資料的通道數比較少之外,中間層的feature map數很多,這樣中間層算卷積會累死計算機(魚塘太深,每層魚都打,需要的魚網太重了)。所以很多深度卷積網路把全部通道/特徵圖劃分一下,每個卷積核只看其中一部分(漁夫A的漁網只打撈深水段,漁夫B的漁網只打撈淺水段)。這樣整個深度網路架構是橫向開始分道揚鑣了,到最後才又融合。這樣看來,很多網路模型的架構不完全是突發奇想,而是是被引數計算量逼得。特別是現在需要在移動裝置上進行AI應用計算(也叫推斷), 模型引數規模必須更小, 所以出現很多減少握手規模的卷積形式, 現在主流網路架構大都如此。
2.什麼是卷積?
解析:
對影象(不同的資料視窗資料)和濾波矩陣(一組固定的權重:因為每個神經元的多個權重固定,所以又可以看做一個恆定的濾波器filter)做內積(逐個元素相乘再求和)的操作就是所謂的『卷積』操作,也是卷積神經網路的名字來源。
非嚴格意義上來講,下圖中紅框框起來的部分便可以理解為一個濾波器,即帶著一組固定權重的神經元。多個濾波器疊加便成了卷積層。
OK,舉個具體的例子。比如下圖中,圖中左邊部分是原始輸入資料,圖中中間部分是濾波器filter,圖中右邊是輸出的新的二維資料。
中間濾波器filter與資料視窗做內積,其具體計算過程則是:4*0 + 0*0 + 0*0 + 0*0 + 0*1 + 0*1 + 0*0 + 0*1 + -4*2 = -8
3.什麼是CNN的池化pool層?
解析:
池化,簡言之,即取區域平均或最大,如下圖所示(圖引自cs231n)
上圖所展示的是取區域最大,即上圖左邊部分中 左上角2x2的矩陣中6最大,右上角2x2的矩陣中8最大,左下角2x2的矩陣中3最大,右下角2x2的矩陣中4最大,所以得到上圖右邊部分的結果:6 8 3 4。
4.簡述下什麼是生成對抗網路。
解析:
GAN之所以是對抗的,是因為GAN的內部是競爭關係,一方叫generator,它的主要工作是生成圖片,並且儘量使得其看上去是來自於訓練樣本的。另一方是discriminator,其目標是判斷輸入圖片是否屬於真實訓練樣本。
更直白的講,將generator想象成假幣制造商,而discriminator是警察。generator目的是儘可能把假幣造的跟真的一樣,從而能夠騙過discriminator,即生成樣本並使它看上去好像來自於真實訓練樣本一樣。
如下圖中的左右兩個場景:
更多請參見此課程:《生成對抗網路班》(連結:https://www.julyedu.com/course/getDetail/83)
5.學梵高作畫的原理是什麼?
解析:
這裡有篇如何做梵高風格畫的實驗教程《教你從頭到尾利用DL學梵高作畫:GTX 1070 cuda 8.0 tensorflow gpu版》(連結:http://blog.csdn.net/v_july_v/article/details/52658965),至於其原理請看這個視訊:NeuralStyle藝術化圖片(學梵高作畫背後的原理)(連結:http://www.julyedu.com/video/play/42/523)。
為了幫助大家更好的學習和理解深度學習,我們特意推出了“深度學習第四期”課程,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題(第21-25題)深度學習面試
- 深度學習面試100題(第26-30題)深度學習面試
- 深度學習面試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面試題集----我要好好學習面試題
- PL/SQL經典學習筆記(6-10)SQL筆記
- 資料結構面試100題資料結構面試
- 宅家學習第N天,我終於整理出了高階面試題合集!面試題
- 【深度學習】深度學習md筆記總結第1篇:深度學習課程,要求【附程式碼文件】深度學習筆記
- TensorFlow系列專題(三):深度學習簡介深度學習
- 100家IT 名企面試必考面試題java系列面試題Java
- 【Java面試題】之CAS原理深度分析Java面試題
- Python經典程式設計習題100例:第3例Python程式設計
- Python經典程式設計習題100例:第42例:學習使用auto定義變數Python程式設計變數