1。 自我介紹?

主要介紹了本科的成績和幾個比賽獲獎情況、保研時轉專業到計算機、現在實驗室的研究方向以及實習的目的。

2。 計算機基礎課程學過沒有?

我說只接觸過計算機網路、資料結構和演算法、微機原理,沒有再深入問下去。

3。 程式語言主要使用哪個?

簡歷上寫了 C/C++、Python,我說本科主要學了 C 語言,後來用各種微控制器,因此用 C 語言最多,C++ 基礎知識也都知道, Python 是接觸深度學習之後才開始用,沒有再問語言細節。

4。 以前主要用什麼微控制器, arm、FPGA瞭解嗎?

我說以前用過 51 和 arm 系列微控制器,FPGA 在學習數電課程的時候瞭解過。

5。 數學基礎怎麼樣?

我說本科數學成績挺好,後來進入實驗室後導師也非常注重數學基礎,讓我們深入學習線性代數、矩陣論、最最佳化方法,我去年又重新學習了麻省理工的線性代數公開課,收穫很大,現在也一直還在學習,面試官沒有再具體考證。

6。 簡單介紹一下 PCA,為什麼會有主要特徵?

我說 PCA 透過對資料的協方差矩陣進行奇異值分解,然後可以提取出資料的主要特徵對資料進行降維。資料之間的相關性可能會導致資料冗餘,因此資料就會有主要特徵。(面試的時候答成了 PCA 是怎麼保證提取出主要特徵的,講了一堆降維後資料損失很小的內容)

7。 Batch Normalization 怎麼實現?

我說 Batch Normalization 就是對神經網路中的資料進行歸一化,使得資料的均值為 0 ,方差為 1。在資料變化範圍比較大的情況下可以對資料進行一下縮放,增強系統對輸入資料的魯棒性,加快神經網路的收斂速度,同時還可能會有一點正則化的效果。然後面試官舉了個例子,給定 H

*W*

C 的資料,具體怎麼實現 BN。我說針對每個 channel 的資料分別求均值和方差,然後再帶入相應公式。

8。 正則化方法有哪些,具體怎麼實現?

L1、L2 正則化,是透過在損失函式中新增一項對權重的約束來實現正則化的,L1 是求權重的絕對值之和,L2 是求權重的平方和; dropout 是透過設定 keep_prob 引數隨機讓部分神經元在訓練過程中不起作用來實現正則化的;早停是透過比較驗證集損失和測試集損失在適當時候提前停止訓練神經網路來實現正則化的;資料擴增是在影象處理領域透過對輸入圖片進行裁剪、旋轉等方法增大訓練資料集來實現正則化的。

9。 知道那些啟用函式?

sigmoid, tanh, relu, leaky relu。

10。 Momentum 最佳化演算法原理,為什麼要用?

我說 Momentum 實際上就是指數加權平均,每次更新引數值時透過對最新的數值和以往的數值分配一定權重來實現更新過程,可以讓引數平滑更新,某些情況下能夠加快訓練速度。

11。 讀過那些論文,瞭解過計算機視覺哪些領域哪些方法?

剛好最近讀過物體檢測的幾篇論文,我就說看過 YOLO 三個版本、R-CNN 系列、Group Normalization、本徵影象分解等的論文。

12。 簡介 TensorFlow 怎麼使用?

我說 TensorFlow 透過定義一系列操作來構成一個圖模型,然後構建一個會話執行這個圖模型,透過自動的反向傳播來訓練神經網路,並透過 TensorBoard 視覺化工具來輔助除錯。

13。 熟悉卷積神經網路中用於影象分類的常見網路結構嗎?

AlexNet、VGG、GoogLeNet、ResNet、Inception。

14。 反捲積、group convolution、dilated convolution?

我說反捲積可以理解為卷積的逆過程,最開始是為了視覺化卷積過程,現在多用來生成圖片;dilated convolution 叫做空洞卷積,是在卷積過程中引入空洞,可以增大感受野;說 group convolution 的時候當時我有點懵,還以為是一種新的卷積方式,後來一查才發現原來是將卷積過程分散到多個 GPU 上去運算,最後再把計算結果進行合併。

15。 知道 RNN 嗎?

我說學習過吳恩達的深度學習系列課程,其中第五門課專門講解 RNN,沒有再問下去。

16。 為什麼用 Linux,Linux 命令:wc、grep、cat、重定向?

我說 Ubuntu 下方便配置深度學習框架的環境,又問了我使用的程式設計工具,我說用 PyCharm、Clion 和 Code:Blocks。

wc: 統計指定檔案中的位元組數、字數、行數,並將統計結果顯示輸出(這個沒用過,當時沒答上來)

grep: 正則化匹配

cat: 輸出檔案內容

重定向:預設的標準輸入裝置是鍵盤,輸出裝置是終端,重定向就是在輸入輸出的時候重新配置輸入裝置和輸出裝置,比如輸入時從檔案讀入和輸出時寫入檔案。

17。 實習時間?

我說可以保證 7、8 兩個月,預計 6 月中旬本科畢業。

18。 接下來面試官問我有什麼問題,我問如果能去實習的話會主要負責什麼?

面試官說主要應該是蒐集計算機視覺領域相關的論文然後用商湯自己的框架來複現這些方法;另一方面就是研究現有框架的底層。

19。 後續是否還有面試環節?

面試官說實習生應該就這一輪電話面試,讓我後續等通知就行。

20。 總結

整體上來說考察的都是最基本的知識,應該是針對我簡歷上列出的主要技能來展開的,專案經歷倒是沒有被問到。遇到不會的問題還是主動說自己沒有深入研究過這方面,未來繼續加強學習。另外由於是電話面試,難免會有時候聽不太清楚問題,一定要再次詢問得到正確的問題,或者重複一遍讓面試官確認,這點我認為很重要。

最後,祝大家都能早日去到自己心儀的公司實習!