您現在的位置是:首頁 > 運動

BAT大廠深度學習演算法最強面試經驗!果斷收藏

由 大資料之眸 發表于 運動2022-03-22
簡介ResNet原理及與DenseNet對比ResNet是何凱明大神在2015年提出的一種網路結構,ResNet又名殘差神經網路,指的是在傳統卷積神經網路中加入殘差學習(residual learning)的思想,解決了深層網路中梯度彌散和精度

怎樣分段直線擬合

深度學習同機器學習相似,注重原理理解、演算法對比及多場景實戰,同時知識迭代更加迅速,相對於機器學習更加前沿。以下試題為作者日常整理的通用高頻面經,包含題目,答案與參考文章,歡迎糾正與補充。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

01

反向傳播主要思想及推導

反向傳播演算法(Backpropagation)

是目前用來訓練

人工神經網路

(Artificial Neural Network,ANN)的最常用且最有效的演算法。其主要思想是:

將訓練集資料輸入到ANN的

輸入層

,經過

隱藏層

,最後達到

輸出層

並輸出結果,這是ANN的前向傳播過程;

由於ANN的輸出結果與實際結果有誤差,則計算估計值與實際值之間的誤差,並將該誤差

從輸出層向隱藏層反向傳播

,直至傳播到輸入層;

在反向傳播的過程中,根據

誤差

調整各種引數的值;不斷

迭代

上述過程,直至收斂。

02

2。簡要概述HMM、CRF、EM、GMM

HMM

隱含馬爾科夫模型(hidden Markov model, HMM), 可以用於標註問題的統計學習模型,由隱藏的馬爾科夫鏈,隨機生成觀測序列的過程,屬於生成模型。HMM的三個基本問題為機率計算問題、學習問題、預測問題。

CRF

條件隨機場(Conditional Random Field, CRF),僅討論在標註問題中的應用,這裡主要是線性鏈(linear chain)條件隨機場。CRF模型實際上是定義在時序資料上的對數線性模型。學習方法包括極大似然估計、正則化的極大似然估計。最佳化方法有:改進的迭代尺度法、梯度下降法、擬牛頓法。

EM

最大期望演算法(Expectation-Maximizationalgorithm, EM)是用於含有隱變數(hidden variable)的機率模型引數的極大似然估計、或極大後驗機率估計。EM 是一種迭代演算法 每次迭代分兩步:E步,求期望;M步, 求極大值。機率模型, 有時含有 觀測變數(observablevariable), 也可能含有隱變數(hidden variable), 或者潛在變數(latent variable)。都是觀測變數的話,給定資料,可以直接用極大似然估計法,或貝葉斯估計法估計模型引數,含有隱變數的話,就要用EM。

GMM

高斯混合模型(Gaussian Mixed Model, GMM),指的是多個高斯分佈函式的線性組合,理論上GMM可以擬合任意型別的分佈。通常用於解決,同一集合下的資料包含多個不同分佈的情況(或同一分佈,但引數不一樣,或不同型別分佈)給定一組輸入隨機變數條件下,另一組輸出隨機變數條件下,的條件機率模型。假設輸出隨機變數構成馬爾可夫隨機場。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

03

3。衡量分類器好壞指標

首先透過下圖(混淆矩陣圖)瞭解

TP、TN、FP、FN

概念:

BAT大廠深度學習演算法最強面試經驗!果斷收藏

準確率(Accuracy)

。顧名思義,就是所有的預測正確(正類負類)的佔總的比重。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

精確率(Precision)

,查準率。即正確預測為正的佔全部預測為正的比例。個人理解:真正正確的佔所有預測為正的比例。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

召回率(Recall)

,查全率。即正確預測為正的佔全部實際為正的比例。個人理解:真正正確的佔所有實際為正的比例。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

F1

值(H-mean值)

。F1值為算數平均數除以幾何平均數,且越大越好,將Precision和Recall的上述公式帶入會發現,當F1值小時,True Positive相對增加,而false相對減少,即Precision和Recall都相對增加,即F1對Precision和Recall都進行了加權。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

公式轉化之後為:

BAT大廠深度學習演算法最強面試經驗!果斷收藏

ROC

曲線

。接收者操作特徵曲線(receiver operatingcharacteristic curve),是反映敏感性和特異性連續變數的綜合指標,ROC曲線上每個點反映著對同一訊號刺激的感受性。真正的理想情況,TPR應接近1,FPR接近0,即圖中的(0,1)點。ROC曲線越靠攏(0,1)點,越偏離45度對角線越好。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

AUC

。AUC (Area Under Curve) 被定義為ROC曲線下的面積,AUC = 1,是完美分類器,絕大多數預測的場合,不存在完美分類器。0。5 < AUC < 1,優於隨機猜測。AUC = 0。5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。AUC < 0。5,比隨機猜測還差;但只要總是反預測而行,就優於隨機猜測。總的來說,AUC值越大的分類器,正確率越高。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

04

4。正負樣本不平衡的解決辦法

取樣

:取樣方法是透過對訓練集進行處理使其從不平衡的資料集變成平衡的資料集,在大部分情況下會對最終的結果帶來提升。取樣分為上取樣(Oversampling)和下采樣(Undersampling),上取樣是把小眾類複製多份,下采樣是從大眾類中剔除一些樣本,或者說只從大眾類中選取部分樣本。

資料合成

:資料合成方法是利用已有樣本生成更多樣本(無中生有),這類方法在小資料場景下有很多成功案例,比如醫學影象分析等。SMOTE演算法為每個小眾樣本合成相同數量的新樣本,這帶來一些潛在的問題:一方面是增加了類之間重疊的可能性,另一方面是生成一些沒有提供有益資訊的樣本。為了解決這個問題,出現兩種方法:Borderline-SMOTE與ADASYN。

加權

:基於加權矩陣,橫向是真實分類情況,縱向是預測分類情況,C(i,j)是把真實類別為j的樣本預測為i時的損失,我們需要根據實際情況來設定它的值。這種方法的難點在於設定合理的權重,實際應用中一般讓各個分類間的加權損失值近似相等。當然這並不是通用法則,還是需要具體問題具體分析。

一分類

:對於正負樣本極不平衡的場景,我們可以換一個完全不同的角度來看待問題:把它看做一分類(One Class Learning)或異常檢測(Novelty Detection)問題。這類方法的重點不在於捕捉類間的差別,而是為其中一類進行建模,經典的工作包括One-class SVM等。

05

5。常用啟用函式

Sigmoid:可解釋,比如將0-1之間的取值解釋成一個神經元的啟用率(firing rate),缺陷是有飽和區域,是軟飽和,在大的正數和負數作為輸入的時候,梯度就會變成零,使得神經元基本不能更新。只有正數輸出(不是zero-centered)。啟用函式公式及圖象如下:

BAT大廠深度學習演算法最強面試經驗!果斷收藏

tanh:tanh和sigmoid函式是具有一定的關係的,可以從公式中看出,它們的形狀是一樣的,只是尺度和範圍不同。tanh是zero-centered,但是還是會飽和。啟用函式公式及圖象如下:

BAT大廠深度學習演算法最強面試經驗!果斷收藏

ReLU:CNN中常用。對正數原樣輸出,負數直接置零。在正數不飽和,在負數硬飽和。relu計算上比sigmoid或者tanh更省計算量,因為不用exp,因而收斂較快。但是還是非zero-centered。relu在負數區域被kill的現象叫做dead relu,這樣的情況下,有人透過初始化的時候用一個稍微大於零的數比如0。01來初始化神經元,從而使得relu更偏向於啟用而不是死掉,但是這個方法是否有效有爭議。啟用函式公式及圖象如下:

BAT大廠深度學習演算法最強面試經驗!果斷收藏

LeakyReLU:為了解決上述的dead ReLU現象。這裡選擇一個數,讓負數區域不在飽和死掉。這裡的斜率都是確定的。啟用函式公式及圖象如下:

BAT大廠深度學習演算法最強面試經驗!果斷收藏

ELU:具有relu的優勢,且輸出均值接近零,實際上prelu和LeakyReLU都有這一優點。有負數飽和區域,從而對噪聲有一些魯棒性。可以看做是介於relu和LeakyReLU之間的一個東西。當然,這個函式也需要計算exp,從而計算量上更大一些。啟用函式公式及圖象如下:

BAT大廠深度學習演算法最強面試經驗!果斷收藏

maxout:maxout是透過分段線性函式來擬合所有可能的凸函式來作為啟用函式的,但是由於線性函式是可學習,所以實際上是可以學出來的啟用函式。具體操作是對所有線性取最大,也就是把若干直線的交點作為分段的界,然後每一段取最大。maxout可以看成是relu家族的一個推廣。缺點在於增加了引數量。

06

6。Tensorflow的工作原理

TensorFlow計算模型一一計算圖:TensorFlow 的名字中己經說明了它最重要的兩個概念一一Tensor和Flow。Tensor就是張量,張量可以被簡單地理解為多維陣列。Flow則體現了它的計算模型。Flow翻譯成中文就是“流”,它直觀地表達了張量之間透過計算相互轉化的過程。TensorFlow中的每一個計算都是計算圖上的一個節點,而節點之間的邊描述了計算之間的依賴關係。TensorFlow 程式一般可以分為兩個階段。在第一個階段需要定義計算圖中所有的計算;第二個階段為執行計算。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

TensorFlow資料模型——張量:在 TensorFlow程式中,所有的資料都透過張量的形式來表示,從功能的角度上看,張量可以被簡單理解為多維陣列。張量中並沒有儲存真正的數字,而是儲存張量的結構。一個張量中主要儲存了三個屬性 : 名字( name )、維度( shape )和型別( type )。

TensorFlow執行模型——會話:TensorFlow中的會話(session)來執行定義好的運算。會話擁有並管理 TensorFlow 程式執行時的所有資源。所有計算完成之後需要關閉會話來幫助系統回收資源,否則就可能出現資源洩漏的問題。

07

7。深度學習框架對比

BAT大廠深度學習演算法最強面試經驗!果斷收藏

08

8。ResNet原理及與DenseNet對比

ResNet是何凱明大神在2015年提出的一種網路結構,ResNet又名殘差神經網路,指的是在傳統卷積神經網路中加入殘差學習(residual learning)的思想,解決了深層網路中

梯度彌散和精度下降

(訓練集)的問題,使網路能夠越來越深,既保證了精度,又控制了速度。出發點在於隨著網路的加深,梯度彌散問題會越來越嚴重,導致網路很難收斂甚至無法收斂。ResNet中則設計了一種skip connection結構,使得網路具有更強的

identity mapping

的能力,從而拓展了網路的深度,同時也提升了網路的效能。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

Dense Block,它包括輸入層在內共有5層,H是BN+ReLU+3x3Conv的操作,並不改變feature map的大小。對於每一層來說,前面所有層的feature map都被直接拿來作為這一層的輸入。growth rate就是除了輸入層之外,每一層feature map的個數。它的目的是,使得block中的任意兩層都能夠直接”溝通“。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

該架構與ResNet相比,在將特性傳遞到層之前,沒有透過求和來組合特性,而是透過連線它們的方式來組合特性。因此第x層(輸入層不算在內)將有x個輸入,這些輸入是之前所有層提取出的特徵資訊。因為它的密集連線特性,研究人員將其稱為Dense Convolutional Network (DenseNet)

09

9。BatchNormalization思想及作用

思想

:Batch Normalization透過一定的規範化手段,把每層神經網路輸入值的分佈強行拉回到

均值為0方差為1

的標準正態分佈。(糾偏回正過程)使得分佈回到非線性函式對輸入比較敏感的區域,使得損失函式能發生較大的變化(梯度變大),避免梯度消失問題。同時梯度變大能加快模型收斂速度,提高訓練速度。

作用

:在深度神經網路訓練過程,使得每一層神經網路的輸入保持相同分佈。神經網路隨著深度加深,訓練變得困難。relu啟用函式, 殘差網路都是解決梯度消失等由於深度帶來的問題。BN同樣也是為了解決

深度

帶來的問題。

10

10。卷積層和池化層有什麼區別?

CNN網路一共有5個層級結構:

輸入層、卷積層、啟用層、池化層、全連線FC層。

卷積層用於區域性感知:人的大腦識別圖片的過程中,並不是一下子整張圖同時識別,而是對於圖片中的每一個特徵首先區域性感知,然後更高層次對區域性進行綜合操作,從而得到全域性資訊。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

池化(Pooling)

也稱為欠取樣或下采樣。

主要用於特徵降維

,壓縮資料和引數的數量,減小過擬合,同時提高模型的容錯性。主要有最大池化和平均池化。

BAT大廠深度學習演算法最強面試經驗!果斷收藏

推薦文章