AI涉及到數學的一些面試題匯總


 [LeetCode] Maximum Product Subarray的4種解法

leetcode每日解題思路 221 Maximal Square

LeetCode:Subsets I II

(2)數學題或者"智力"題。

如果一個女生說,她集齊了十二個星座的前男友,我們應該如何估計她前男友的數量?

如何理解矩陣的「秩」?:

  • 「秩」是圖像經過矩陣變換之后的空間維度
  • 「秩」是列空間的維度

矩陣低秩的意義?:低秩表征着一種冗余程度。
秩越低表示數據冗余性越大,因為用很少幾個基就可以表達所有數據了。相反,秩越大表示數據冗余性越小。

一個m*n的矩陣,如果秩很低(秩r遠小於m,n),則它可以拆成一個m*r矩陣和一個r*n矩陣之積(類似於SVD分解)。后面這兩個矩陣所占用的存儲空間比原來的m*n矩陣小得多。

如何理解矩陣特征值?:

VD的效果就是..用一個規模更小的矩陣去近似原矩陣...
A_{m\times n} \approx U_{m\times r} \Sigma_{r\times r} V_{r\times n}
這里A就是代表圖像的原矩陣..其中的\Sigma_{r\times r}尤其值得關注,它是由A的特征值從大到小放到對角線上的..也就是說,我們可以選擇其中的某些具有“代表性”的特征值去近似原矩陣!

 

為什么梯度反方向是函數值下降最快的方向?

導數的幾何意義可能很多人都比較熟悉: 當函數定義域和取值都在實數域中的時候,導數可以表示函數曲線上的切線斜率。 除了切線的斜率,導數還表示函數在該點的變化率。

 

將上面的公式轉化為下面圖像為:

(3)機器學習基礎

邏輯回歸SVM決策樹

邏輯回歸和SVM的區別是什么?各適用於解決什么問題?

這兩種算法都是基於回歸的概念。

邏輯回歸相對容易理解,就是通過Sigmoid函數將線性方程ax+b對應到一個隱狀態P,P=S(ax+b),然后根據發生概率(p)與沒有發生概率(1-p)的大小決定因變量的取值,0或者1。具體操作就是p除以1-p再取對數,這個變換增加了取值區間的范圍;改變了函數值與自變量間的曲線關系,根據大量實驗數據,這個變換往往能使函數值和自變量之間呈線性關系。

SVM則是通過一個非線性映射p,把樣本空間映射到一個高維乃至無窮維的特征空間中(Hilbert空間),使得在原來的樣本空間中非線性可分的問題轉化為在特征空間中的線性可分的問題.簡單地說,就是升維和線性化。作為分類、回歸等問題來說,很可能在低維樣本空間無法線性處理的樣本集,在高維特征空間中卻可以通過一個線性超平面實現線性划分(或回歸)。一般的升維都會帶來計算的復雜化,但SVM方法巧妙地應用核函數的展開定理簡化了計算,不需要知道非線性映射的顯式表達式

。簡單來說,SVM是在高維特征空間中建立線性學習機,幾乎不增加計算的復雜性,並且在某種程度上避免了“維數災難”,這一切要歸功於核函數的展開和計算理論.

綜上所述,邏輯回歸和SVM都可以用於分類問題的解決,其主要區別就在於映射函數選擇上的不同,邏輯回歸常用於處理大數據,而SVM則正好相反。

SVM的處理方法是只考慮support vectors,也就是和分類最相關的少數點,去學習分類器。

而邏輯回歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重,兩者的根本目的都是一樣的。

svm考慮局部(支持向量),而logistic回歸考慮全局

1.損失函數不一樣,邏輯回歸的損失函數是log loss,svm的損失函數是hinge loss
2.損失函數的優化方法不一樣,邏輯回歸用剃度下降法優化,svm用smo方法進行優化
3.邏輯回歸側重於所有點,svm側重於超平面邊緣的點
4.svm的基本思想是在樣本點中找到一個最好的超平面

Linear SVM 和 LR 有什么異同?

相同點:

1,LR和SVM都是分類算法。
2,如果不考慮核函數,LR和SVM都是線性分類算法,即分類決策面都是線性的。
3,LR和SVM都是監督學習算法。

不同點:

1,本質上是其loss function不同。
2,支持向量機只考慮局部的邊界線附近的點,而邏輯回歸考慮全局(遠離的點對邊界線的確定也起作用)。
線性SVM不直接依賴於數據分布,分類平面不受一類點影響;LR則受所有數據點的影響,如果數據不同類別strongly unbalance,一般需要先對數據做balancing。
3,在解決非線性問題時,支持向量機采用核函數的機制,而LR通常不采用核函數的方法。
​這個問題理解起來非常簡單。分類模型的結果就是計算決策面,模型訓練的過程就是決策面的計算過程。通過上面的第二點不同點可以了解,在計算決策面時,SVM算法里只有少數幾個代表支持向量的樣本參與了計算,也就是只有少數幾個樣本需要參與核計算(即kernal machine解的系數是稀疏的)。然而,LR算法里,每個樣本點都必須參與決策面的計算過程,也就是說,假設我們在LR里也運用核函數的原理,那么每個樣本點都必須參與核計算,這帶來的計算復雜度是相當高的。所以,在具體應用時,LR很少運用核函數機制。​
4,​線性SVM依賴數據表達的距離測度,所以需要對數據先做normalization,LR不受其影響。
5,SVM的損失函數就自帶正則!!!(損失函數中的1/2||w||^2項),這就是為什么SVM是結構風險最小化算法的原因!!!而LR必須另外在損失函數上添加正則項!!!

本節來自算法比較-SVM和logistic回歸,該博客里有些寫的並不准確,具有參考價值。

在Andrew NG的課里講到過:
1. 如果Feature的數量很大,跟樣本數量差不多,這時候選用LR或者是Linear Kernel的SVM
2. 如果Feature的數量比較小,樣本數量一般,不算大也不算小,選用SVM+Gaussian Kernel
3. 如果Feature的數量比較小,而樣本數量很多,需要手工添加一些feature變成第一種情況

SVM(支持向量機)屬於神經網絡范疇嗎?

可以說神經網絡是通過多個感知器(Perceptron)的組合疊加來解決非線性的分類問題. 而SVM通過核函數視圖非線性的問題的數據集轉變為核空間中一個線性可分的數據集.
另外, 神經網絡非常依賴參數. 比如學習率, 隱含層的結構與節點個數. 參數的好壞會極大影響神經網絡的分類效果. 而SVM是基於最大邊緣的思想, 只有少量的參數需要調整.

如何理解決策樹的損失函數?

各種機器學習的應用場景分別是什么?例如,k近鄰,貝葉斯,決策樹,svm,邏輯斯蒂回歸和最大熵模型。

主成分分析,奇異值分解

SVD 降維體現在什么地方?

為什么PCA不被推薦用來避免過擬合?:

PCA是一種無監督學習,其存在的假設是:方差越大信息量越多。但是信息(方差)小的特征並不代表表對於分類沒有意義,可能正是某些方差小的特征直接決定了分類結果,而PCA在降維過程中完全不考慮目標變量的做法會導致一些關鍵但方差小的分類信息被過濾掉。

隨機森林,GBDT, 集成學習

為什么說bagging是減少variance,而boosting是減少bias?

基於樹的adaboost和Gradient Tree Boosting區別?

機器學習算法中GBDT和XGBOOST的區別有哪些?

為什么在實際的 kaggle 比賽中 gbdt 和 random forest 效果非常好?

過擬合

機器學習中用來防止過擬合的方法有哪些?

1 獲取更多數據,2 數據增強&噪聲數據3 簡化模型.

提前終止,L1和L2正則化 

正則化的一個最強大最知名的特性就是能向損失函數增加“懲罰項”(penalty)。所謂『懲罰』是指對損失函數中的某些參數做一些限制。最常見的懲罰項是L1和L2:

  • L1懲罰項的目的是將權重的絕對值最小化
  • L2懲罰項的目的是將權重的平方值最小化

Dropout-深度學習

機器學習中使用「正則化來防止過擬合」到底是一個什么原理?為什么正則化項就可以防止過擬合?

 

(4)深度學習基礎

 

卷積神經網絡,循環神經網絡,LSTM與GRU,梯度消失與梯度爆炸,激活函數,防止過擬合的方法,dropout,batch normalization,各類經典的網絡結構,各類優化方法

卷積神經網絡工作原理直觀的解釋?

卷積神經網絡的復雜度分析:時間和空間,以及影響。

CNN(卷積神經網絡)、RNN(循環神經網絡)、DNN(深度神經網絡)的內部網絡結構有什么區別?

bp算法中為什么會產生梯度消失?

梯度下降法是萬能的模型訓練算法嗎?

LSTM如何來避免梯度彌散和梯度爆炸?

sgd有多種改進的形式(rmsprop,adadelta等),為什么大多數論文中仍然用sgd?

你有哪些deep learning(rnn、cnn)調參的經驗?

Adam那么棒,為什么還對SGD念念不忘 (1)

Adam那么棒,為什么還對SGD念念不忘 (2)

全連接層的作用是什么?

深度學習中 Batch Normalization為什么效果好?

為什么現在的CNN模型都是在GoogleNet、VGGNet或者AlexNet上調整的?

Krizhevsky等人是怎么想到在CNN里用Dropout和ReLu的?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM