58同城算法工程師一面&二面 面試題
來源:投稿 作者:LSC
編輯:學(xué)姐
一面 40min
1.Gbdt和xgboost的區(qū)別
XGBoost是對GBDT的改進(jìn)和擴(kuò)展,它提供了更高的效率、更好的性能、正則化技術(shù)、內(nèi)置特征選擇等功能。
(1)正則化:
GBDT使用基本的樹模型,并在每一輪迭代中逐漸增加樹的復(fù)雜性。它使用簡單的正則化技術(shù),如葉子節(jié)點(diǎn)的最小樣本數(shù)限制,來防止過擬合。
XGBoost引入了正則化技術(shù),包括L1和L2正則化,以減少過擬合風(fēng)險(xiǎn)。它還使用了二階導(dǎo)數(shù)信息來提高訓(xùn)練的穩(wěn)定性。
(2)高效性:
XGBoost通過多線程和分布式計(jì)算提供了更高的訓(xùn)練效率。它實(shí)現(xiàn)了高度優(yōu)化的數(shù)據(jù)存儲(chǔ)和計(jì)算,以減少內(nèi)存使用和加速訓(xùn)練過程。
GBDT通常以串行方式訓(xùn)練,訓(xùn)練時(shí)間可能較長,特別是在處理大規(guī)模數(shù)據(jù)時(shí)。
(3)缺失值處理:
XGBoost能夠自動(dòng)處理缺失值,無需手動(dòng)進(jìn)行處理。
在GBDT中,需要在數(shù)據(jù)預(yù)處理階段手動(dòng)處理缺失值,通常通過填充或刪除缺失值。
(4)內(nèi)置特征選擇:
XGBoost具有內(nèi)置的特征選擇功能,它可以估計(jì)每個(gè)特征的重要性,并根據(jù)其重要性進(jìn)行特征選擇。GBDT通常需要手動(dòng)進(jìn)行特征選擇或依賴其他特征選擇方法。
(5)求導(dǎo)優(yōu)化:
GBDT只需要對目標(biāo)函數(shù)求一階導(dǎo),xgboost要求二階導(dǎo)。
2.Lstm的特點(diǎn)
(1)門控機(jī)制:
LSTM引入了門控機(jī)制,包括遺忘門、輸入門和輸出門,這些門控制著信息的流動(dòng)和保存。遺忘門決定哪些信息應(yīng)該被遺忘,輸入門控制哪些信息應(yīng)該被添加到記憶單元,輸出門控制什么信息應(yīng)該傳遞到下一個(gè)時(shí)間步。這種機(jī)制有助于控制信息的流動(dòng),提高了模型的訓(xùn)練效率。
(2)長期記憶:
LSTM的主要特點(diǎn)是能夠捕捉和維護(hù)長期依賴關(guān)系,它在處理序列數(shù)據(jù)中表現(xiàn)出色。傳統(tǒng)的RNN存在梯度消失問題,導(dǎo)致難以學(xué)習(xí)長序列的依賴關(guān)系,而LSTM通過設(shè)計(jì)具有記憶單元的結(jié)構(gòu)來解決這個(gè)問題,允許信息在長時(shí)間內(nèi)保持不變。
(3)平行化訓(xùn)練:
LSTM具有良好的并行性,可以加速訓(xùn)練過程,特別是在GPU上進(jìn)行訓(xùn)練。這有助于處理大規(guī)模數(shù)據(jù)和加速深度學(xué)習(xí)模型的訓(xùn)練。
3.Transformer的最重要的特點(diǎn),對比CNN的效果
最重要的特點(diǎn)是自注意力機(jī)制。
對比CNN,transformer更注重全局特征,特征之間能并行計(jì)算,CNN更注重局部特征,圖像分類領(lǐng)域中,在圖像數(shù)量充足的情況下,tranformer的效果通常比CNN好。
4.ReLU激活函數(shù)的優(yōu)缺點(diǎn),怎么改進(jìn)
優(yōu)點(diǎn):
(1) 當(dāng)特征值大于0時(shí),可以避免梯度消失
(2)計(jì)算簡單
缺點(diǎn):
(1) 非零均值
(2)當(dāng)特征值大量小于0時(shí),可能引起梯度消失
(3)當(dāng)特征值大于0時(shí),非線性擬合能力可能下降
改進(jìn):改用Leaky ReLU函數(shù)
5.Sort ?Linux命令的使用
7.了解隱碼模型和CRF嗎?介紹一下
8.簡單介紹一下Mapreduce
它用于處理海量數(shù)據(jù),其核心思想是將大規(guī)模數(shù)據(jù)集分為多個(gè)小的子集,然后并行處理這些子集,最后將結(jié)果進(jìn)行合并。
9.C++的指針和引用的區(qū)別
(1)引用訪問一個(gè)變量是直接訪問,而指針是間接訪問。
(2)引用是一個(gè)變量的別名,不額外占用內(nèi)存空間,而指針是一個(gè)變量,有自己的內(nèi)存空間。
(3)引用定義的時(shí)候必須賦值,并且賦值之后不可以改變,指針定義的時(shí)候可以不賦值,賦值后可以改變其所指的值。
(4)引用不可以為空,但是指針可以指向空值。
(5)引用是類型安全的,一般不會(huì)引起內(nèi)存泄露的問題,指針可能會(huì),一般盡可能用引用代替指針。
二面 30min
1.聊項(xiàng)目
2.介紹自己最熟悉的幾個(gè)模型
我介紹了resnet,inceptionnet, yolo模型等
3.介紹Yolo模型,主要是3-5
4.樣本不均衡的處理方法
(1)欠采樣
(2)過采樣
(3)平衡讀取數(shù)據(jù)
(4)設(shè)置權(quán)重,對樣本較少的數(shù)據(jù)設(shè)置較高的訓(xùn)練權(quán)重
(5)使用平衡損失函數(shù),比如focal loss等
(6)數(shù)據(jù)增強(qiáng)
5.介紹Focal loss
Focal Loss 最初由物體檢測領(lǐng)域的研究者提出,其主要目標(biāo)是減輕模型在訓(xùn)練過程中對大多數(shù)背景類別的關(guān)注,從而更好地處理少數(shù)類別的樣本。這種損失函數(shù)有助于提高模型對罕見類別的檢測性能。
Focal Loss 的主要特點(diǎn)如下:
關(guān)注難分樣本: Focal Loss 通過調(diào)整樣本的權(quán)重,更加關(guān)注難以分類的樣本。通常情況下,容易分類的樣本(大多數(shù)屬于背景類別)會(huì)降低其權(quán)重,而難分類的樣本(屬于少數(shù)類別)會(huì)增加其權(quán)重。
降低易分類樣本的權(quán)重: 通過調(diào)整損失函數(shù),F(xiàn)ocal Loss 能夠有效地降低容易分類的樣本(背景類別、樣本數(shù)量多的類別)的權(quán)重,這樣模型將更加關(guān)注罕見類別,從而提高了模型在罕見類別的檢測能力。
Focal Loss 的引入有助于提高目標(biāo)檢測模型對于罕見目標(biāo)的檢測性能,減輕了類別不平衡問題對模型訓(xùn)練的影響。
6.二叉搜索樹和二叉堆的區(qū)別
二叉搜索樹的左子樹的結(jié)點(diǎn)的值都比根結(jié)點(diǎn)小,右子樹結(jié)點(diǎn)的值都比根結(jié)點(diǎn)大。一般情況下,插入刪除搜索的時(shí)間復(fù)雜度是O(logn),最壞情況下是O(n)。
二叉堆分為最大堆、最小堆。如果是最大堆,只要保證根結(jié)點(diǎn)的值大于左右子樹的結(jié)點(diǎn)的值。插入刪除排序的時(shí)間復(fù)雜度是O(nlogn)
關(guān)注“學(xué)姐帶你玩AI”公眾號
回復(fù)“簡歷”免費(fèi)領(lǐng)取300+簡歷模板&算法工程師萬能簡歷公式!