自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

不容錯過的12個深度學(xué)習(xí)面試問題

人工智能 深度學(xué)習(xí)
這12個問題是當前面試中最熱門的問題,既是非?;A(chǔ)的問題,也能看出面試者的水平,具有區(qū)分度。無論是面試官還是求職者都可以看看。

 導(dǎo)讀

這12個問題是當前面試中最熱門的問題,既是非常基礎(chǔ)的問題,也能看出面試者的水平,具有區(qū)分度。無論是面試官還是求職者都可以看看。

 

不容錯過的12個深度學(xué)習(xí)面試問題

 

這些是我在面試人工智能工程師職位時經(jīng)常問的問題。事實上,并不是所有的面試都需要使用所有這些問題,因為這取決于應(yīng)聘者以前的經(jīng)驗和項目。通過大量的面試,特別是與學(xué)生的面試,我收集了 12 個在深度學(xué)習(xí)中最熱門的面試問題,今天將在這篇文章中與大家分享。我希望能收到你的許多意見。好了,別再啰嗦了,我們開始吧。

1. 介紹 Batch Normalization 的意義

這是一個非常好的問題,因為它涵蓋了候選人在使用神經(jīng)網(wǎng)絡(luò)模型時需要知道的大部分知識。你可以用不同的方式回答,但需要闡明以下主要觀點:

 

不容錯過的12個深度學(xué)習(xí)面試問題

 

Batch Normalization 是訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的一種有效方法。該方法的目標是將特征(每層激活后的輸出)歸一化為均值為 0,標準差為 1。所以問題在于非零的均值是如何影響模型訓(xùn)練的:

  • 首先,可以理解為非零均值是指數(shù)據(jù)不圍繞 0 值分布,但數(shù)據(jù)中大多數(shù)值大于零或小于零。結(jié)合高方差問題,數(shù)據(jù)變得非常大或非常小。這個問題在訓(xùn)練層數(shù)很多的神經(jīng)網(wǎng)絡(luò)時很常見。特征沒有在穩(wěn)定區(qū)間內(nèi)分布(由小到大),這將影響網(wǎng)絡(luò)的優(yōu)化過程。眾所周知,優(yōu)化神經(jīng)網(wǎng)絡(luò)需要使用導(dǎo)數(shù)計算。假設(shè)一個簡單的層計算公式是 y = (Wx + b), y 對 w 的導(dǎo)數(shù)是:dy = dWx。因此,x 的取值直接影響導(dǎo)數(shù)的取值(當然,神經(jīng)網(wǎng)絡(luò)模型中梯度的概念并不是那么簡單,但從理論上講,x 會影響導(dǎo)數(shù))。因此,如果 x 帶來不穩(wěn)定的變化,其導(dǎo)數(shù)可能太大,也可能太小,導(dǎo)致學(xué)習(xí)模型不穩(wěn)定。這也意味著當使用 Batch Normalization 時我們可以在訓(xùn)練中使用更高的學(xué)習(xí)率。
  • Batch Normalization 可以避免 x 值經(jīng)過非線性激活函數(shù)后趨于飽和的現(xiàn)象。因此,它確保激活值不會過高或過低。這有助于權(quán)重的學(xué)習(xí),當不使用時有些權(quán)重可能永遠無法進行學(xué)習(xí),而用了之后,基本上都可以學(xué)習(xí)到。這有助于我們減少對參數(shù)初始值的依賴。
  • Batch Normalization 也是一種正則化形式,有助于最小化過擬合。使用 Batch Normalization,我們不需要使用太多的 dropput,這是有意義的,因為我們不需要擔心丟失太多的信息,當我們實際使用的時候,仍然建議結(jié)合使用這兩種技術(shù)。

2. 解釋 bias 和 Variance 之間的權(quán)衡關(guān)系

什么是bias?可以理解,bias是當前模型的平均預(yù)測與我們需要預(yù)測的實際結(jié)果之間的差異。一個高 bias 的模型表明它對訓(xùn)練數(shù)據(jù)的關(guān)注較少。這使得模型過于簡單,在訓(xùn)練和測試中都沒有達到很好的準確性。這種現(xiàn)象也被稱為欠擬合。

Variance 可以簡單理解為模型輸出在一個數(shù)據(jù)點上的分布。Variance 越大,模型越有可能密切關(guān)注訓(xùn)練數(shù)據(jù),而不提供從未遇到過的數(shù)據(jù)的泛化。因此,該模型在訓(xùn)練數(shù)據(jù)集上取得了非常好的結(jié)果,但是與測試數(shù)據(jù)集相比,結(jié)果非常差,這就是過擬合的現(xiàn)象。

這兩個概念之間的關(guān)系可以從下圖中看出:

不容錯過的12個深度學(xué)習(xí)面試問題

在上圖中,圓的中心是一個模型,它完美地預(yù)測了精確的值。事實上,你從來沒有發(fā)現(xiàn)過這么好的模型。當我們離圓的中心越來越遠,我們的預(yù)測就越來越糟。

我們可以改變模型,這樣我們就可以盡可能地增加落入圓中心的模型猜測的數(shù)量。需要在偏差值和方差值之間取得平衡。如果我們的模型過于簡單,參數(shù)很少,那么它可能有高偏差和低方差。

另一方面,如果我們的模型有大量的參數(shù),那么它就會有高方差和低偏差。這是我們在設(shè)計算法時計算模型復(fù)雜度的基礎(chǔ)。

不容錯過的12個深度學(xué)習(xí)面試問題

3. 假如深度學(xué)習(xí)模型已經(jīng)有了 1000 萬個人臉向量,如何通過查詢來找到新的人臉?

這個問題是關(guān)于深度學(xué)習(xí)算法在實踐中的應(yīng)用,這個問題的關(guān)鍵是數(shù)據(jù)的索引方法。這是將 One Shot learning 應(yīng)用于人臉識別問題的最后一步,但這一步是在實踐中進行部署的最重要的一步。

基本上,回答這個問題,你應(yīng)該先描述一下 One Shot learning 來進行人臉識別的方法一般性方法。它可以簡單地理解為將每個人臉轉(zhuǎn)換成一個向量,而新的人臉識別是尋找與輸入人臉最接近(最相似)的向量。通常,人們會使用 triplet loss 損失函數(shù)的深度學(xué)習(xí)模型來實現(xiàn)這一點。

不容錯過的12個深度學(xué)習(xí)面試問題

然而,隨著圖像數(shù)量的增加,在每次識別中計算到 1000 萬個向量的距離并不是一個明智的解決方案,這使得系統(tǒng)的速度慢了很多。為了使查詢更加方便,我們需要考慮在實向量空間上索引數(shù)據(jù)的方法。

這些方法的主要思想是將數(shù)據(jù)劃分為便于查詢新數(shù)據(jù)的結(jié)構(gòu)(可能類似于樹結(jié)構(gòu))。當有新數(shù)據(jù)可用時,在樹中進行查詢有助于快速找到距離最近的向量。

不容錯過的12個深度學(xué)習(xí)面試問題

有好幾種方法可以用于這種目的,比如Locality Sensitive Hashing—LSH,Approximate Nearest Neighbors — Annoy Indexing等等。

4. 對于分類問題,精度指標是否完全可靠?你通常使用哪些度量來評估你的模型?

對于一個類問題,有許多不同的評估方法。在準確性方面,該公式簡單地用正確預(yù)測數(shù)據(jù)點的個數(shù)除以總數(shù)據(jù)。這聽起來很合理,但在現(xiàn)實中,對于不平衡的數(shù)據(jù)問題,這個數(shù)量還不夠顯著。假設(shè)我們正在構(gòu)建一個網(wǎng)絡(luò)攻擊的預(yù)測模型(假設(shè)攻擊請求占請求總數(shù)的 1/100000)。

如果模型預(yù)測所有請求都是正常的,那么準確率也達到 99.9999%,而這個數(shù)字在分類模型中通常是不可靠的。上面的精度計算通常向我們展示了有多少百分比的數(shù)據(jù)是正確預(yù)測的,但并沒有詳細說明如何對每個類進行分類。相反,我們可以使用混淆矩陣?;旧希煜仃囷@示了有多少數(shù)據(jù)點實際上屬于一個類,并且被預(yù)測屬于一個類。其形式如下:

不容錯過的12個深度學(xué)習(xí)面試問題

除了表示真陽性和假陽性指標對應(yīng)于定義分類的每個閾值的變化外,我們還有一個 ROC 圖。根據(jù) ROC 曲線,我們可以知道模型是否有效。

不容錯過的12個深度學(xué)習(xí)面試問題

理想的 ROC 曲線是最接近左上角的橙色線。真陽性比較高,假陽性比較低。

5. 如何理解反向傳播?解釋其作用機制?

不容錯過的12個深度學(xué)習(xí)面試問題

這個問題旨在檢測你對于神經(jīng)網(wǎng)絡(luò)如何工作的知識。你需要講清楚以下幾點:

  • 前向過程(前向計算)是一個幫助模型計算每一層權(quán)重的過程,其結(jié)果計算將產(chǎn)生一個yp結(jié)果。此時將計算損失函數(shù)的值,損失函數(shù)的值將顯示模型的好壞。如果損失函數(shù)不夠好,我們需要找到一種方法來降低損失函數(shù)的值。訓(xùn)練神經(jīng)網(wǎng)絡(luò)本質(zhì)上是最小化損失函數(shù)。損失函數(shù) L (yp, yt)表示yp模型的輸出值與yt數(shù)據(jù)標簽的實際值的差別程度。
  • 為了降低損失函數(shù)的值,我們需要使用導(dǎo)數(shù)。反向傳播幫助我們計算網(wǎng)絡(luò)每一層的導(dǎo)數(shù)。根據(jù)每個層上的導(dǎo)數(shù)值,優(yōu)化器(Adam、SGD、AdaDelta…)應(yīng)用梯度下降更新網(wǎng)絡(luò)的權(quán)重。
  • 反向傳播使用鏈式規(guī)則或?qū)?shù)函數(shù)計算每一層從最后一層到第一層的梯度值。

6. 激活函數(shù)是什么意思?激活函數(shù)的飽和區(qū)間是多少?

激活函數(shù)的意義

激活函數(shù)的產(chǎn)生是為了打破神經(jīng)網(wǎng)絡(luò)的線性特性。這些函數(shù)可以簡單地理解為用一個濾波器來決定信息是否通過神經(jīng)元。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,激活函數(shù)在調(diào)節(jié)導(dǎo)數(shù)斜率中起著重要的作用。一些激活函數(shù),如 sigmoid、fishy 或 ReLU,將在下面幾節(jié)中進一步討論。

然而,我們需要理解的是,這些非線性函數(shù)的性質(zhì)使得神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)比僅僅使用線性函數(shù)更復(fù)雜的函數(shù)的表示。大多數(shù)激活函數(shù)是連續(xù)可微函數(shù)。

這些函數(shù)是連續(xù)函數(shù),也就是說,如果輸入的變量很小且可微(在其定義域內(nèi)的每一點都有導(dǎo)數(shù)),那么輸出就會有一個小的變化。當然,如上所述,導(dǎo)數(shù)的計算是非常重要的,它是決定我們的神經(jīng)元能否被訓(xùn)練的決定性因素。提幾個常用的激活函數(shù),如 Sigmoid, Softmax, ReLU。

激活函數(shù)的飽和區(qū)間

Tanh、Sigmoid、ReLU 等非線性激活函數(shù)都有飽和區(qū)間。

不容錯過的12個深度學(xué)習(xí)面試問題

可以很容易理解的是,觸發(fā)函數(shù)的飽和范圍是指即使輸入值改變,函數(shù)的輸出值也不改變的區(qū)間。變化區(qū)間存在兩個問題,即在神經(jīng)網(wǎng)絡(luò)的正向傳播中,該層的數(shù)值逐漸落入激活函數(shù)的飽和區(qū)間,將逐漸出現(xiàn)多個相同的輸出。

這將在整個模型中產(chǎn)生相同的數(shù)據(jù)流。這種現(xiàn)象就是協(xié)方差移位現(xiàn)象。第二個問題是,在反向傳播中,導(dǎo)數(shù)在飽和區(qū)域為零,因此網(wǎng)絡(luò)幾乎什么都學(xué)不到。這就是我們需要將值范圍設(shè)置為均值為 0 的原因,如 Batch 歸一化一節(jié)中所述。

7. 模型的超參數(shù)是什么?它和參數(shù)有什么不同?

模型的參數(shù)是什么?

不容錯過的12個深度學(xué)習(xí)面試問題

回到機器學(xué)習(xí)的本質(zhì)上來,關(guān)于機器學(xué)習(xí)我們需要一個數(shù)據(jù)集,沒有數(shù)據(jù)我們?nèi)绾螌W(xué)習(xí)?一旦數(shù)據(jù)可用,機器需要在數(shù)據(jù)堆中找到輸入和輸出的聯(lián)系。

假設(shè)我們的數(shù)據(jù)是溫度、濕度、溫度等天氣信息,要求機器做的是找出上述因素與你老婆是否生氣之間的聯(lián)系。這聽起來毫無關(guān)聯(lián),但機器學(xué)習(xí)在做的時候是相當愚蠢的?,F(xiàn)在假設(shè)我們用變量y來表示我們的老婆是否生氣了,變量 x1、x2、x3…代表天氣元素。我們把求函數(shù) f (x)歸結(jié)為如下關(guān)系:

不容錯過的12個深度學(xué)習(xí)面試問題

看到系數(shù) w1 w2 w3 了嗎。w_1, w_2, w_3 ..w1, w2, w3 ..?這就是我們要求的數(shù)據(jù)和元素之間的關(guān)系,也就是所謂的模型參數(shù)。因此,我們可以定義模型參數(shù)如下:

模型參數(shù)是由訓(xùn)練數(shù)據(jù)生成的模型值,用于幫助顯示數(shù)據(jù)中數(shù)量之間的關(guān)系。

因此,當我們說找到問題的優(yōu)秀模型時,應(yīng)該意味著我們已經(jīng)在現(xiàn)有的數(shù)據(jù)集上找到了最適合問題的模型參數(shù)。它具有以下幾個特征:

  • 用于預(yù)測新數(shù)據(jù)
  • 它顯示了我們使用的模型的能力。通常用準確性來表示,我們稱之為準確率。
  • 直接從訓(xùn)練數(shù)據(jù)集學(xué)習(xí)
  • 通常不需要人工設(shè)置

模型參數(shù)有多種形式,如神經(jīng)網(wǎng)絡(luò)權(quán)值、支持向量機中的支持向量、線性回歸或邏輯回歸算法中的系數(shù)。

什么是模型的超參數(shù)?

不容錯過的12個深度學(xué)習(xí)面試問題

我們經(jīng)常假設(shè)模型超參數(shù)看起來像一個模型參數(shù),但它不是真的。實際上這兩個概念是完全分開的。如果模型參數(shù)是由訓(xùn)練數(shù)據(jù)集本身建模的,則模型超參數(shù)是完全不同的。它完全在模型之外,不依賴于訓(xùn)練數(shù)據(jù)。它的目的是什么?實際上,他們有以下幾個任務(wù):

  • 用于訓(xùn)練過程中,幫助模型找到最合適的參數(shù)
  • 它通常是由模型訓(xùn)練的參與者手工挑選的
  • 它可以基于幾種啟發(fā)式策略來定義

對于一個特定的問題,我們完全不知道什么是比較好的模型超參數(shù)。因此,在現(xiàn)實中,我們需要使用一些技術(shù)來估計合適的取值范圍(例如 k 近鄰模型中的k系數(shù)),如網(wǎng)格搜索。這里我想舉幾個模型超參數(shù)的例子:

  • 訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)時的學(xué)習(xí)率
  • 訓(xùn)練支持向量機時的C和sigma參數(shù)
  • 最近鄰模型中的k系數(shù)

8. 當學(xué)習(xí)率太高或太低時會怎么樣?

不容錯過的12個深度學(xué)習(xí)面試問題

當模型的學(xué)習(xí)率被設(shè)置得太低時,模型訓(xùn)練將會進行得非常慢,因為它對權(quán)重進行非常小的更新。在到達局部最優(yōu)點之前需要多次更新。

如果設(shè)定的學(xué)習(xí)率過高,則由于權(quán)值更新過大,模型可能會不收斂。有可能在一個更新權(quán)值的步驟中,模型跳出了局部優(yōu)化,使得模型以后很難更新到最優(yōu)點,而是在在局部優(yōu)化點附近跳來跳去。

9. 當圖像尺寸變?yōu)?2 倍,CNN 的參數(shù)數(shù)量變?yōu)閹妆?為什么?

對于候選人來說,這是一個非常誤導(dǎo)人的問題,因為大多數(shù)人會把注意力放在 CNN 參數(shù)的數(shù)量會增加多少倍的問題上。然而,讓我們來看看 CNN 的架構(gòu):

不容錯過的12個深度學(xué)習(xí)面試問題

我們可以看到,CNN 模型的參數(shù)數(shù)量取決于濾波器的數(shù)量和大小,而不是輸入圖像。因此,將圖像的大小加倍并不會改變模型的參數(shù)數(shù)量。

10. 如何處理不平衡數(shù)據(jù)?

這是一個測試候選人處理真實數(shù)據(jù)問題的方法的問題。通常,實際數(shù)據(jù)和標準數(shù)據(jù)集在數(shù)據(jù)集的屬性和數(shù)據(jù)量方面差異很大(標準數(shù)據(jù)集不需要調(diào)整)。對于實際的數(shù)據(jù)集,可能會出現(xiàn)數(shù)據(jù)不平衡的情況,即類之間的數(shù)據(jù)不平衡。我們現(xiàn)在可以考慮以下技術(shù):

  • 選擇正確的度量來評估模型:對于不平衡的數(shù)據(jù)集,使用準確性來評估是一項非常危險的工作,如上面幾節(jié)所述。應(yīng)選擇精度、召回、F1 分數(shù)、AUC等合適的評價量。
  • 重新采樣訓(xùn)練數(shù)據(jù)集:除了使用不同的評估標準,人們還可以使用一些技術(shù)來獲得不同的數(shù)據(jù)集。從一個不平衡的數(shù)據(jù)集中創(chuàng)建一個平衡的數(shù)據(jù)集有兩種方法,即欠采樣和過采樣,具體技術(shù)包括重復(fù)、bootstrapping 或 hits(綜合少數(shù)過采樣技術(shù))等方法。
  • 許多不同模型的集成:通過創(chuàng)建更多的數(shù)據(jù)來概括模型在實踐中并不總是可行的。例如,你有兩個層,一個擁有 1000 個數(shù)據(jù)的罕見類,一個包含 10,000 個數(shù)據(jù)樣本的大型類。因此,我們可以考慮一個 10 個模型的訓(xùn)練解決方案,而不是試圖從一個罕見的類中找到 9000 個數(shù)據(jù)樣本來進行模型訓(xùn)練。每個模型由 1000 個稀有類和 1000 個大規(guī)模類訓(xùn)練而成。然后使用集成技術(shù)獲得優(yōu)秀結(jié)果。
不容錯過的12個深度學(xué)習(xí)面試問題
  • 重新設(shè)計模型 — 損失函數(shù):使用懲罰技術(shù)對代價函數(shù)中的多數(shù)類進行嚴厲懲罰,幫助模型本身更好地學(xué)習(xí)稀有類的數(shù)據(jù)。這使得損失函數(shù)的值在類中更全面。
不容錯過的12個深度學(xué)習(xí)面試問題

11. 當訓(xùn)練深度學(xué)習(xí)模型時,Epoch、Batch 和 Iteration 概念是什么意思?

這些是訓(xùn)練神經(jīng)網(wǎng)絡(luò)時非?;镜母拍睿聦嵤呛芏嗪蜻x人在區(qū)分這些概念時都很困惑。具體來說,你應(yīng)該回答以下問題:

  • Epoch:表示整個數(shù)據(jù)集的迭代(所有內(nèi)容都包含在訓(xùn)練模型中)。
  • Batch:是指當我們不能一次將整個數(shù)據(jù)集放到神經(jīng)網(wǎng)絡(luò)中時,我們將數(shù)據(jù)集分割成幾批較小的數(shù)據(jù)集。
  • 迭代:是運行 epoch 所需的批數(shù)。假設(shè)有 10,000 個圖像作為數(shù)據(jù),批處理的大小(batch_size)為 200。然后一個 epoch 將包含 50 個迭代(10,000 除以 200)。

12. 數(shù)據(jù)生成器的概念是什么?我們什么時候需要使用它?

數(shù)據(jù)生成器在寫代碼中很重要,數(shù)據(jù)生成函數(shù)幫助我們直接生成數(shù)據(jù),然后送到模型中進行每個 batch 的訓(xùn)練。

不容錯過的12個深度學(xué)習(xí)面試問題

利用生成函數(shù)對訓(xùn)練大數(shù)據(jù)有很大幫助。因為數(shù)據(jù)集并不總是需要全部加載到 RAM 中,這是一種內(nèi)存的浪費,而且如果數(shù)據(jù)集太大,會導(dǎo)致內(nèi)存溢出,輸入數(shù)據(jù)的處理時間會變長。

總結(jié)

以上是我在面試過程中經(jīng)常問應(yīng)聘者的 12 個關(guān)于深度學(xué)習(xí)的面試問題。然而,根據(jù)每個候選人的不同,提問的方式也會不同,或者還有一些問題是隨機從候選人的問題中提出的。

雖然這篇文章是關(guān)于技術(shù)問題的,但是與面試相關(guān),并且基于我個人的觀點,態(tài)度決定了面試成功的 50%。所以,除了積累自己的知識和技能,總是用真誠、進步、謙虛的態(tài)度來表達自己,你一定會在任何對話中取得成功。我希望你早日實現(xiàn)你的愿望。

 

責任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2018-04-10 10:44:37

華為云

2022-02-07 10:37:20

Vue UI組件庫框架

2022-09-22 16:17:12

css編程語言開發(fā)

2023-06-29 17:53:00

VSCode插件程序

2019-08-09 18:08:13

程序員技能開發(fā)者

2016-02-29 15:00:48

RSA/信息安全

2019-07-02 10:05:11

Linux 開源操作系統(tǒng)

2011-03-01 09:17:34

Linux命令行

2024-01-18 00:00:00

開發(fā)框架Port

2024-01-25 18:08:57

CSSHTML文件

2018-01-12 08:29:11

持續(xù)集成工具

2014-07-10 10:56:21

jQuery

2019-10-29 09:00:00

AIOps人工智能

2018-08-01 14:57:57

數(shù)據(jù)科學(xué)機器學(xué)習(xí)社區(qū)

2011-07-12 08:54:35

項目

2015-09-17 17:37:57

工具程序開源

2016-07-21 10:24:42

GitHub編程Java

2022-06-16 07:32:38

VSCodePython插件

2020-05-08 09:13:48

前端開發(fā)

2024-01-31 11:55:16

數(shù)據(jù)分析數(shù)據(jù)計算收支
點贊
收藏

51CTO技術(shù)棧公眾號