1. 程式人生 > >2018深度學習演算法面經小記

2018深度學習演算法面經小記

前言

面的公司不多,基本都是提前批(找工作主要還是依靠提前批,坑多人少)。大多數時間都是在問簡歷相關的問題,基礎知識和程式設計也涉及到一些,簡單總結一下,也算回顧面試過程了。

面試題

基礎知識

  1. 求空間中兩異面直線的距離
  2. SVM的原理、推導
  3. SVM與決策樹的比較
  4. 各種熵、KL散度、JS散度
  5. 解釋梯度消失、梯度爆炸,以及為什麼
  6. 解釋過擬合,如何解決

程式設計

  1. 手寫快排,快排的時間複雜度(為什麼是O(nlogn)),比快排更快的演算法實現
  2. 手寫歸併排序
  3. 求逆序對個數
  4. 手寫maxpooling實現
  5. 計算IOU的實現
  6. 判斷連結串列有環

深度學習相關

  1. 卷積網路中引數量、運算量的計算
  2. BN層的原理、應用,訓練和測試時的設定
  3. Dropout 層的原理、應用
  4. 各種優化演算法的比較
  5. 如何計算感受野
  6. 描述GAN,包括流程、Loss函式、生成器和判別器的結構
  7. GAN與之前方法(如VAE)的比較
  8. GAN的引申,描述一下比如DCGAN,WGAN(因為我說看過WGAN,所以讓我講了一下WGAN解決的兩個問題以及如何解決的)
  9. 講一下MobileNet,如何減少模型引數量

專案相關

因為這塊會根據每個人的專案有很大的差異,所以簡單根據我的某個專案(遷移學習相關)介紹一下面試官會注意到的地方

  1. 為什麼要用遷移學習
  2. 講一下遷移學習的應用場景
  3. 遷移學習和深度學習結合的方式、種類
  4. 2018的best paper講一下(遷移學習相關)
  5. 用到的損失函式,以及與其他損失函式的比較(比如MMD和KL散度的比較)
  6. 遷移學習在專案中的作用體現在什麼地方,如何評價

開放性問題

有時候除了基礎知識,面試官會設定一個場景,問一些開放性的問題。

  1. 如何根據資料量選擇用哪個模型
  2. 如何處理資料不平衡問題
  3. 如何調參,按照什麼思路調參?(比如先判斷是否過擬合,損失函式和優化函式的調整,權重初始化,資料歸一化等等調參手段)
  4. 改過框架的原始碼嗎

hr面試

HR面試一般就比較輕鬆了,基本就是聊人生聊夢想

  1. 為什麼來這,對公司有什麼瞭解
  2. 之前科研/實習經歷有什麼收穫
  3. 遇到壓力/困難如何處理
  4. 遇到和別人意見不一致時怎麼處理
  5. 說一下自身的優點和缺點
  6. 看論文/寫程式碼的頻率
  7. 聊男/女朋友,是否支援你來
  8. 有沒有其他offer