一些常見的機器學(xué)習(xí)面試題(不定時更新)。
激活函數(shù)的作用?
激活函數(shù)為神經(jīng)網(wǎng)絡(luò)提供了非線性。如果不使用激活函數(shù),每一層的輸入都相當(dāng)于是上一層輸入的線性組合,無論網(wǎng)絡(luò)有多少層,最終都能寫成只有一層的線性組合。激活函數(shù)作為非線性函數(shù),使神經(jīng)網(wǎng)絡(luò)能夠逼近任意一個函數(shù),提高了網(wǎng)絡(luò)的近似能力。常見的激活函數(shù)?
- sigmoid:
sigmoid與神經(jīng)元的功能類似,并且可微,但缺點就是在輸入值特別大或者特別小時,對應(yīng)的梯度會接近于0,會導(dǎo)致梯度爆炸;不是關(guān)于原點對稱的,會導(dǎo)致在訓(xùn)練過程中輸入的分布發(fā)生變化。 - tanh:
tanh解決了關(guān)于原點對稱的問題,但是梯度爆炸的問題依舊存在。 - ReLU:
ReLU很好的解決了梯度爆炸的問題,收斂速度更快,但是不關(guān)于原點對稱,并且在負(fù)半部分輸出會一直為0,導(dǎo)致神經(jīng)元死亡。
-Leaky ReLU
在負(fù)數(shù)部分使用了一個斜率很小的線性函數(shù),解決了dead ReLU的問題。
- 激活函數(shù)有什么性質(zhì)?
- 非線性,為神經(jīng)網(wǎng)絡(luò)提供非線性映射;
- 可微性,梯度傳播;
- 單調(diào)性,保證萬能逼近定理;
- 輸出值有范圍
softmax函數(shù)是做什么的?
讓多分類的神將網(wǎng)絡(luò)輸成為一個和為1的概率分布。
反向傳播是什么?
信息通過網(wǎng)絡(luò)從輸入流行輸出被稱為前向傳播。訓(xùn)練中,前向傳播會產(chǎn)生一個代價函數(shù)。反向傳播算法允許代價函數(shù)的信息通過網(wǎng)絡(luò)向后流動,一邊計算梯度。梯度下降使用該梯度進(jìn)行學(xué)習(xí)。反向傳播算法可以由計算圖來描述。計算圖中每一個節(jié)點都表示變量,包括標(biāo)量,向量,矩陣等。如果y是由一個操作計算在x上得到的,就畫一條從x到y(tǒng)的有向邊,上面標(biāo)著操作。靜態(tài)圖和動態(tài)圖的區(qū)別?
神經(jīng)網(wǎng)絡(luò)框架分為靜態(tài)圖框架和動態(tài)圖框架。Tensorfolw使用靜態(tài)圖,每次運行之前都要先定義好計算圖,,再把具體的數(shù)字放入其中,靜態(tài)圖運行時不需要重新構(gòu)建計算圖,所以運算更快。Pytorch是動態(tài)圖,每次都會重新構(gòu)建一個新的計算圖。動態(tài)圖比較直觀,方便debug,但是效率相對的不高。動態(tài)圖中只有葉子節(jié)點的梯度會被保留下來,使用.retain_grad()可以保留任意非葉子節(jié)點的梯度。什么是梯度下降?
梯度下降是一種優(yōu)化算法,目的是找到函數(shù)的局部的極值,如果要找的是局部最小值,需要向函數(shù)當(dāng)前點的梯度的反方向上以一定步長進(jìn)行迭代探索;如果要找到是最大值,則是以梯度方向探索。迭代的公式為:
,其中是學(xué)習(xí)率,
參數(shù),
是要求極小值的函數(shù)。
梯度下降的方法?
- BGD:每個迭代計算整個數(shù)據(jù)集的所有樣本的梯度
- SGD:每次迭代只計算一個樣本的梯度
- min-batch GD: 每次迭代計算一個batch的樣本的梯度
- momentum:在SGD的基礎(chǔ)上加上了一個動量以減小震蕩。
- ...
什么是梯度消失和梯度爆炸?解決梯度消失和梯度爆炸的方案都有哪些?
在神經(jīng)網(wǎng)絡(luò)里,隨著層數(shù)的增多,梯度的值也在不斷累積。如果梯度大于1,層數(shù)增多的時候,最終的求出的梯度更新將以指數(shù)形式增加,即發(fā)生梯度爆炸,如果小于1,那么隨著層數(shù)增多,求出的梯度更新信息將會以指數(shù)形式衰減,即發(fā)生了梯度消失。
解決梯度爆炸可以使用正則化,對權(quán)重進(jìn)行正則化限制過擬合,防止梯度爆炸。
使用ReLU作為激活函數(shù),也可以減少梯度爆炸、梯度消失的問題。
還有一個是使用batch normalization,規(guī)范每一層的輸出,消除權(quán)重放大縮小帶來的影響,進(jìn)而解決梯度爆炸或者消失的問題。
LSTM使用長時記憶,解決了梯度爆炸的問題。
面試題—梯度消失于梯度爆炸什么過擬合和欠擬合,如何避免?
過擬合指的是經(jīng)過訓(xùn)練的模型,在訓(xùn)練集上表現(xiàn)得十分出色,但是在測試集上表現(xiàn)得很差的情況??赡艿脑蛴杏?xùn)練數(shù)據(jù)太少,訓(xùn)練次數(shù)太多,模型太過復(fù)雜等,使模型只會“背答案”,面對沒有見過的題型不知所措。
欠擬合則相反,是因為模型沒有充分訓(xùn)練,以至于對數(shù)據(jù)認(rèn)識不足,在訓(xùn)練集和測試集表現(xiàn)性能都很差。原因可能是模型太簡單,訓(xùn)練次數(shù)太少,數(shù)據(jù)沒有清洗等。
更多關(guān)于過擬合、欠擬合、恰好擬合的處理方法。Dropout的作用是什么?
在前向過程中讓神經(jīng)元以一定的概率被停止工作,可以減少相鄰神經(jīng)元之間的依賴,減少過擬合,提高泛化能力。-
算法分類問題的評價標(biāo)準(zhǔn)有哪些?ROC和AUC分別指是什么, 其中圖坐標(biāo)(橫坐標(biāo)和縱坐標(biāo))的意義是?
先介紹一下混淆矩陣
混淆矩陣 (https://blog.csdn.net/quiet_girl/article/details/70830796)
true postive: 正確分類,真實數(shù)據(jù)為正,預(yù)測為正
true negetive: 正確分類,真實數(shù)據(jù)為負(fù),樣本為負(fù)
false positive: 錯誤分類, 真實樣本為負(fù),預(yù)測為正
false negative: 錯誤分類,真實樣本為正,預(yù)測為負(fù)
算法分類的指標(biāo)有:
準(zhǔn)確率 accuracy:正確分類的樣本占所有樣本的比例
召回率 recall:預(yù)測為正且正確的樣本占真實樣本的比例
精確率 precision:預(yù)測為正且正確的樣本占所有預(yù)測為正的樣本的比例
f1 score: Precison 和 Recall的結(jié)合
ROC曲線:橫軸為false positive rate,縱軸為true positive rate,曲線越貼近左上角,說明表現(xiàn)越好
AUC:ROC曲線下的面積,越接近1說明越好
機器學(xué)習(xí):準(zhǔn)確率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲線、PR曲線:https://blog.csdn.net/quiet_girl/article/details/70830796 常見的循環(huán)神經(jīng)網(wǎng)絡(luò)都有哪些?他們的優(yōu)缺點及應(yīng)用場景?詳細(xì)描述之前其中一種網(wǎng)絡(luò)結(jié)構(gòu)及其推導(dǎo)過程.
LSTM:長短期記憶模型,在RNN的基礎(chǔ)上加上了遺忘門和記憶單元。
GRU:門控循環(huán)單元,LSTM 簡化得來的。
應(yīng)用:文本生成,機器翻譯,語音識別等。LSTM和GRU的區(qū)別是什么?
從結(jié)構(gòu)上來說,GRU只有兩個門(update和reset),LSTM有三個門(forget,input,output),GRU直接將hidden state 傳給下一個單元,而LSTM則把hidden state 包裝起來。GRU 參數(shù)更少因此更容易收斂,但是數(shù)據(jù)集很大的情況下,LSTM表達(dá)性能更好。LSTM為什么能解決梯度爆炸/消失的問題?
LSTM使用的gate選擇讓一部分的信息通過,gate是由一個sigmoid和一個點乘組成,當(dāng)gate打開時,梯度接近于1,梯度不會消失;梯度也不會超過1,因此不會梯度爆炸。
https://www.zhihu.com/question/44895610CNN的平移不變性是什么?
平移不變性指的是CNN對于同一特征以及平移之后的版本都能輸出相同的結(jié)果,由卷積核池化實現(xiàn)的。卷積核能夠檢測到在任意位置的相同特征。池化操作對應(yīng)的感受野中,如果最大值(對于最大池化)被移動了,但仍在感受野范圍內(nèi),那么池化依舊輸出相同的輸出。擴大感受野的方法?
增加網(wǎng)絡(luò)深度,池化,空洞卷積有哪些調(diào)參技巧?
https://www.notion.so/a30db4067c00479aaa0d71fe1785cb0c#fa2c11ce51d84f25a67323e49f78c704目標(biāo)檢測里如何解決前景少背景多的問題?
- 硬數(shù)據(jù)挖掘
- 類平衡思路改進(jìn)過的損失函數(shù)
- ROIPooling和 ROIAlign的區(qū)別
- ROIPool的候選區(qū)相對較大
- ROI采用直接擬合的方式進(jìn)行候選區(qū)域求取
- SVM與LR的區(qū)別
LR:logistic regression是基于概率論的方法,通過極大似然估計得到參數(shù)的值。每個點都會參與決策。
SVM:最大化間隔,只考慮在分類間隔上的點。SVM可以使用核函數(shù)。
