農林漁牧網

您現在的位置是:首頁 > 農業

如何快速get到AI工程師面試重點,這12道題必備

2023-01-25由 AI科技大本營 發表于 農業

飽和溼度是什麼的函式

作者 | JP Tech

譯者 | 劉暢

編輯 | Jane

出品 | AI科技大本營(ID:rgznai100)

【導讀】2020 年的三月春招要來了,現在想要 Get 一個演算法工程師的實習或全職機會,已經不是一件易事了。如果現在著手複習,茫茫題海不能毫無重點,我們要先抓住那些剛需必備的面試題。這次,作者收集了 12 個 AI 工程師職位的面試問題,助你攻下你心儀的 offer。

1、介紹一下 BN 層的含義

這是非常好的一個問題,因為它能顯示出候選者在使用神經網路模型時,掌握的知識面夠不夠全面。這個問題可以有不同的回答,但需要囊括以下主要的思想:

如何快速get到AI工程師面試重點,這12道題必備

BN層是一種有效的訓練神經網路模型方法。此方法的目標是將特徵(經過啟用後每一層的輸出)歸一化為標準偏差為1的零均值狀態。因此,非零均值時它是如何影響模型訓練呢:

第一,需要理解的是非零均值是指資料未分佈在0值附近,相反大多數資料具有大於零或小於零的值。結合高方差問題,資料可能變得非常大或非常小。在訓練深層的神經網路時,此問題很常見。當特徵的在固定的間隔(從小到大)內分佈的不夠穩定時,它將對網路的最佳化過程產生影響。眾所周知,最佳化神經網路需要使用導數計算。假設一個簡單的層計算公式為y =(Wx + b),則y對w的導數如下:dy = dWx。因此,x的值直接影響導數的值(當然,神經網路模型中的梯度的概念不是這麼簡單,但從理論上講,x會影響導數)。因此,如果x帶來不穩定的變化,則導數可能太大或太小,從而導致模型學習的不夠穩定。這也意味著在使用批歸一化時,我們可以在訓練時使用更大的學習率。

第二,BN層可以避免x的值經過非線性啟用函式後達到飽和的現象。因此它可以確保啟用後不會過高或者過低。這有助於減少對初始引數的依賴。

第三,BN層也可以是一種正則化方法,有助於最大程度的減少過擬合。當使用BN層,不需要使用過多的dropout層。因為當我們drop down網路時,不必擔心丟失太多的資訊。當然,仍然建議同時使用兩種技術。

2、介紹偏差和方差的含義以及它們之間的trade-off

什麼是偏差?可以理解,偏差是當前模型的平均預測與預測的實際結果之間的差異。具有高偏差的模型表明它不太關注訓練資料。這會使模型過於簡單,並且在訓練和測試過程中均無法達到良好的準確性。這種現象稱為欠擬合。

方差可以簡單地理解為模型輸出在資料點上的分佈(或聚類)。方差越大,該模型就越有可能更關注訓練資料,並且無法對未見過的資料進行泛化。結果,該模型會在訓練集上獲得非常好的結果,但是對於測試資料,結果卻非常差。這種現象稱為過擬合。

這兩個概念間的關聯如下圖所示:

如何快速get到AI工程師面試重點,這12道題必備

在上圖中,圓心是一個可以完美預測的模型。實際上,這只是理想狀態。隨著模型預測分佈離圓心越來越遠,預測結果越差。

我們可以更改模型,以便可以儘可能多地增加落入圓心的模型。這當然需要在“偏差”和“方差”值之間保持平衡。如果我們的模型過於簡單且引數很少,那麼它可能具有較高的偏差和較低的方差。

另一方面,如果我們的模型具有大量引數,那麼它將具有高方差和低偏差,這是我們在設計算法時計算模型複雜度的基礎。

如何快速get到AI工程師面試重點,這12道題必備

3、假設深度學習模型已經學到了一千萬個人臉向量,如何透過查詢最快地找到一個新人臉?

這個問題與深度學習演算法在實踐中的應用有關,這個問題的關鍵是對資料進行索引的方法。這是將One Shot Learning用於面部識別問題的最後一步,但這是將應用程式部署在實踐中最重要的一步。

基本上,對於這個問題,您應該首先介紹One Shot Learning的人臉識別方法。可以將其簡單地理解為將每張臉變成一個向量,而新的人臉識別就是找到最接近(最相似)輸入臉的向量。通常,人們將使用具有自定義損失函式(稱為三元組損失)的深度學習模型來實現此操作。

如何快速get到AI工程師面試重點,這12道題必備

但是,隨著本文開頭影象數量的增加,在每次識別中計算1000萬個向量的距離並不是一個明智的解決方案,這會使系統變慢。我們需要考慮在真實向量空間上為資料建立索引的方法,以使查詢更加方便。

這些方法的主要思想是將資料劃分為用於查詢新資料的簡單結構(可能類似於樹形結構)。當有新資料可用時,在樹中進行查詢有助於快速找到距離最近的向量。

如何快速get到AI工程師面試重點,這12道題必備

這裡提供幾種方法,如區域性敏感hash。Faiss等

4、在分類問題中,準確率指標是否完全可靠?

通常使用哪些指標來評估模型?

對於分類問題,有許多不同的評估方法。對於準確率,僅將正確預測的資料點數量除以總資料即可。這聽起來很合理,但實際上,對於不平衡的資料問題,該資料並不足夠。假設我們正在建立一個針對網路攻擊的預測模型(假設攻擊請求大約佔請求總數的1/100000)。

如果模型預測所有請求都是正常的,則準確性也高達99。9999%,該數字在分類模型中通常不可靠。上面的準確性計算通常會向我們顯示正確預測了百分之幾的資料,但沒有指出每個類別詳細的分類資訊。相反,我們可以使用混淆矩陣。基本上,混淆矩陣顯示了實際上有多少個數據點屬於一個類,並且預計會落入某類中。它具有以下形式:

如何快速get到AI工程師面試重點,這12道題必備

除了表示和定義分類每個閾值相對應的TP和FP指標變化之外,我們還有一個稱為ROC曲線的圖表。基於ROC,我們可以知道該模型是否有效。

如何快速get到AI工程師面試重點,這12道題必備

越接近左上角,結果越理想,如圖中橙線所示。即TP值高,而FP值低。

5、如何理解反向傳播?

解釋一下其作用機理。

如何快速get到AI工程師面試重點,這12道題必備

該問題屬於神經網路的基礎知識,回答時需要指明以下幾點:

1、前向計算過程是幫助模型計算每層的權重,結果計算將得出結果yp。接下來將計算損失函式的值;損失函式的值將顯示模型的好壞。如果損失函式不夠好,我們需要找到一種方法來減小損失函式的值。訓練神經網路實質上是使損失函式最小化。損失函式L(yp,yt)表示模型的輸出值yp與資料標籤的實際值yt之間的差異程度。

2、為了減少損失函式的值,我們需要使用導數。反向傳播可以幫助計算網路每一層的導數。根據每層導數的值,使用最佳化器(Adam,SGD,AdaDelta。。。)去更新網路的權重。

3、反向傳播使用鏈式規則或者導數函式來計算從最後一層到第一層,每一層的梯度值。

6、啟用函式的意義是什麼?

啟用函式的飽和點是多少?

啟用函式的意義

啟用函式的誕生是為了打破神經網路的線性。這些函式可以簡單地理解為決定資訊是否透過神經元的過濾器。在神經網路訓練期間,啟用函式在調整導數斜率中起著重要作用。在接下來的部分中將進一步討論諸如Sigmoid,Fishy或ReLU等啟用函式

但是,我們需要了解,這些非線性函式的性質使神經網路有可能學習比僅使用線性函式更復雜的函式表示形式。大多數啟用功能是連續且可區分的功能

這些函式是連續函式,也就是說,如果輸入具有較小且可微的變化(在其定義的域中的每個點都有導數),則輸出中的變化很小。當然,如上所述,導數的計算非常重要,這是我們的神經元是否可以訓練的決定性因素。

啟用函式的飽和範圍

諸如Tanh,Sigmoid和ReLU之類的非線性啟用函式均具有飽和區間。

如何快速get到AI工程師面試重點,這12道題必備

啟用函式的飽和範圍是無論輸入值如何改變,函式的輸出也不會改變的間隔。改變的間隔存在兩個問題,即在神經網路的前向上,在飽和區間內,不同的輸入將得到相同的輸出。導致整個模型中的資料流相同,這種現象是協方差shifting。第二個問題是在反向時,飽和區間的導數為零,因此網路幾乎學不到任何東西。這就是為什麼我們需要把值範圍設定在零均值的原因。

7、模型的超引數是什麼?

與模型引數有什麼不同。

什麼是模型引數?

如何快速get到AI工程師面試重點,這12道題必備

機器學習本質是需要資料,假設我們的資料是天氣資訊,例如溫度,溼度,溫度等,而機器要完成的是在上述因素與愛人是否生氣之間找到聯絡?現在假設我們使用變數y來表達我們的愛人是生氣還是不生氣?變數x1,x2,x3…表示天氣元素。我們將關係歸因於找到函式f(x),如下所示:

如何快速get到AI工程師面試重點,這12道題必備

其中的係數w1,w2,w3。。w_1,w_2,w_3 。。w1,w2,w3 。。就是所謂的模型引數。因此,當我們說找到問題的最佳模型時,是指我們已經在現有資料集上找到了最適合該問題的模型引數。

什麼是模型超引數?

如何快速get到AI工程師面試重點,這12道題必備

模型超引數其實不是模型引數。這是兩個完全不同的概念,如果從訓練資料本身對模型進行建模,則模型的超引數將完全不同。它的目的如下:

訓練過程中,幫助模型找到最合適的引數

通常是模型訓練人員親自挑選

可以基於幾種啟發式策略進行定義

超引數舉例如下:

學習率

支援向量機的C和sigma引數

KNN中的k係數

8、學習率太高或者太低會怎麼樣?

如何快速get到AI工程師面試重點,這12道題必備

當模型的學習率設定得太低時,模型訓練速度將非常慢,因為它每次對權重的更新都很小。在達到區域性最佳點之前,需要進行許多次的更新。

如果學習率設定得太高,權重每次更新變化太大,模型有可能不會收斂。在每一次權重更新的步驟中,模型容易跨過區域性最優,然後一直在區域性最優點附近波動。

9、當輸入影象大小增加一倍時,CNN的引數量增加多少倍?

為什麼?

對於面試者來說,這是一個極具誤導性的問題,因為大多數人會朝著CNN引數量將增加多少倍的方向思考。但是,讓我們看一下CNN的結構:

如何快速get到AI工程師面試重點,這12道題必備

我們可以看到,CNN模型的引數量取決於濾波器的數量和大小,而不取決於輸入影象的大小。因此,將影象輸入大小加倍並不會改變模型的引數量。

10、有哪些處理不平衡資料的方法?

這是一個測試面試者解決真實資料問題的能力。通常,實際資料每個類別的資料量方面會有很大差異。對於實際的資料集,可能會出現資料不平衡的情況。現在,我們可以考慮以下技術:

選擇正確的度量標準來評估模型:如上文所述,對於不平衡的資料集,使用準確率進行評估是不夠全面的。應該選擇合適的評價標準,例如精度,召回率,F1分數,AUC

對訓練資料集進行重取樣:除了使用不同的評價標準外,人們還可以應用技術來獲取不同的資料集。從不平衡集中建立平衡資料集的兩種方法是欠取樣和過取樣,其方法是重複,bootstrap或SMOTE。

整合許多不同的模型:建立更多資料來泛化模型在實踐中並不總是可行的。例如,你有一個包含1000個數據的稀有類,一個包含10,000個數據樣本的大類。因此,我們可以嘗試訓練10個模型,而不是去再找9000個稀有類的資料樣本進行模型訓練。每個模型都使用1000個稀有類和1000個大類進行訓練。然後使用整合技術去獲得最佳結果。

如何快速get到AI工程師面試重點,這12道題必備

重新設計模型-損失函式:使用懲罰技術嚴厲懲罰損失函式中的大類,以幫助模型本身更好地學習稀有類別的資料。使得損失函式的值在所有類別中更為全面。

如何快速get到AI工程師面試重點,這12道題必備

11、在訓練深度學習模型時,Epoch,batch和Iterration都是什麼概念?

這些是訓練神經網路時非常基本的概念,但現實是,在區分這些概念時,很多面試者感到困惑。你可以像下面這樣來回答問題:

Epoch:代表整個資料集的迭代(所有內容都包含在訓練模型中)。

Batch:由於我們無法一次將整個資料集送入神經網路,因此我們將資料集分為幾批較小的資料集。

Iteration:是執行一個epoch所需的batch數。假設我們有10,000張影象作為資料,並且批處理的大小(batch_size)為200。那麼一個epoch將包含50個Iteration(10,000除以200)。

12、資料生成器的概念是什麼?

我們什麼時候需要使用它?

在程式設計中,生成函式也很重要。資料生成函式可幫助我們直接生成資料以適合每個訓練批次中的模型。

如何快速get到AI工程師面試重點,這12道題必備

利用資料生成函式有助於訓練大資料。由於資料集並不一定總是需要全部載入到RAM中,這會浪費記憶體,而且,如果資料集太大,則可能導致記憶體溢位,並且輸入資料的處理時間會更長。

原文連結:

https://medium。com/@itchishikicomm/12-deep-learning-interview-questions-you-should-not-be-missed-part-3-47a1dbf879f1

https://medium。com/@itchishikicomm/12-deep-learning-interview-questions-you-should-not-be-missed-part-2-8f42deeb4483v

https://medium。com/@itchishikicomm/12-deep-learning-interview-questions-you-should-not-be-missed-part-3-47a1dbf879f1