刷題,是面試前的必備環節。本文作者便總結了往年BAT機器學習面試題,干貨滿滿,值得收藏。
想要入職大廠可謂是千軍萬馬過獨木橋。
為了通過層層考驗,刷題肯定是必不可少的。本文作者根據網絡在線發布的BAT機器學習面試1000題系列,整理了一份面試刷題寶典。
1.請簡要介紹下SVM。
SVM,全稱是support vector machine,中文名叫支持向量機。SVM是一個面向數據的分類算法,它的目標是為確定一個分類超平面,從而將不同的數據分隔開。
擴展:
支持向量機學習方法包括構建由簡至繁的模型:線性可分支持向量機、線性支持向量機及非線性支持向量機。當訓練數據線性可分時,通過硬間隔最大化,學習一個線性的分類器,即線性可分支持向量機,又稱為硬間隔支持向量機;當訓練數據近似線性可分時,通過軟間隔最大化,也學習一個線性的分類器,即線性支持向量機,又稱為軟間隔支持向量機;當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。
支持向量機通俗導論(理解SVM的三層境界)
https://www.cnblogs.com/v-July-v/archive/2012/06/01/2539022.html
機器學習之深入理解SVM
http://blog.csdn.net/sinat_35512245/article/details/54984251
2.請簡要介紹下Tensorflow的計算圖。
@寒小陽:Tensorflow是一個通過計算圖的形式來表述計算的編程系統,計算圖也叫數據流圖,可以把計算圖看做是一種有向圖,Tensorflow中的每一個計算都是計算圖上的一個節點,而節點之間的邊描述了計算之間的依賴關系。
3.請問GBDT和XGBoost的區別是什么?
@Xijun LI:XGBoost類似于GBDT的優化版,不論是精度還是效率上都有了提升。與GBDT相比,具體的優點有:
損失函數是用泰勒展式二項逼近,而不是像GBDT里的就是一階導數;
對樹的結構進行了正則化約束,防止模型過度復雜,降低了過擬合的可能性;
節點分裂的方式不同,GBDT是用的基尼系數,XGBoost是經過優化推導后的。
知識點鏈接:集成學習的總結
https://xijunlee.github.io/2017/06/03/%E9%9B%86%E6%88%90%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/
4.在k-means或kNN,我們是用歐氏距離來計算最近的鄰居之間的距離。為什么不用曼哈頓距離?
曼哈頓距離只計算水平或垂直距離,有維度的限制。另一方面,歐氏距離可用于任何空間的距離計算問題。因為,數據點可以存在于任何空間,歐氏距離是更可行的選擇。例如:想象一下國際象棋棋盤,象或車所做的移動是由曼哈頓距離計算的,因為它們是在各自的水平和垂直方向做的運動。
5.百度2015校招機器學習筆試題。
知識點鏈接:百度2015校招機器學習筆試題
http://www.itmian4.com/thread-7042-1-1.html
6.簡單說說特征工程。
7.關于LR。
@rickjin:把LR從頭到腳都給講一遍。建模,現場數學推導,每種解法的原理,正則化,LR和maxent模型啥關系,LR為啥比線性回歸好。有不少會背答案的人,問邏輯細節就糊涂了。原理都會? 那就問工程,并行化怎么做,有幾種并行化方式,讀過哪些開源的實現。還會,那就準備收了吧,順便逼問LR模型發展歷史。
知識點鏈接:機器學習之Logistic回歸(邏輯蒂斯回歸)
http://blog.csdn.net/sinat_35512245/article/details/54881672
8.overfitting怎么解決?
dropout、regularization、batch normalizatin
9.LR和SVM的聯系與區別?
@朝陽在望,聯系:
1、LR和SVM都可以處理分類問題,且一般都用于處理線性二分類問題(在改進的情況下可以處理多分類問題)
2、兩個方法都可以增加不同的正則化項,如L1、L2等等。所以在很多實驗中,兩種算法的結果是很接近的。
區別:
1、LR是參數模型,SVM是非參數模型。
2、從目標函數來看,區別在于邏輯回歸采用的是Logistical Loss,SVM采用的是hinge loss.這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關系較小的數據點的權重。
3、SVM的處理方法是只考慮Support Vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯回歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重。
4、邏輯回歸相對來說模型更簡單,好理解,特別是大規模線性分類時比較方便。而SVM的理解和優化相對來說復雜一些,SVM轉化為對偶問題后,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算。
5、Logic 能做的 SVM能做,但可能在準確率上有問題,SVM能做的Logic有的做不了。
答案來源:機器學習常見面試問題(一)
http://blog.csdn.net/timcompp/article/details/62237986
10.LR與線性回歸的區別與聯系?
@nishizhen
個人感覺邏輯回歸和線性回歸首先都是廣義的線性回歸,
其次經典線性模型的優化目標函數是最小二乘,而邏輯回歸則是似然函數,
另外線性回歸在整個實數域范圍內進行預測,敏感度一致,而分類范圍,需要在[0,1]。邏輯回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,因而對于這類問題來說,邏輯回歸的魯棒性比線性回歸的要好。
@乖乖癩皮狗:邏輯回歸的模型本質上是一個線性回歸模型,邏輯回歸都是以線性回歸為理論支持的。但線性回歸模型無法做到sigmoid的非線性形式,sigmoid可以輕松處理0/1分類問題。
11.為什么XGBoost要用泰勒展開,優勢在哪里?
@AntZ:XGBoost使用了一階和二階偏導, 二階導數有利于梯度下降的更快更準. 使用泰勒展開取得二階倒數形式, 可以在不選定損失函數具體形式的情況下用于算法優化分析.本質上也就把損失函數的選取和模型算法優化/參數選擇分開了. 這種去耦合增加了XGBoost的適用性。
12.XGBoost如何尋找最優特征?是又放回還是無放回的呢?
@AntZ:XGBoost在訓練的過程中給出各個特征的評分,從而表明每個特征對模型訓練的重要性.。XGBoost利用梯度優化模型算法, 樣本是不放回的(想象一個樣本連續重復抽出,梯度來回踏步會不會高興)。但XGBoost支持子采樣, 也就是每輪計算可以不使用全部樣本。
13.談談判別式模型和生成式模型?
判別方法:由數據直接學習決策函數 Y = f(X),或者由條件分布概率 P(Y|X)作為預測模型,即判別模型。
生成方法:由數據學習聯合概率密度分布函數 P(X,Y),然后求出條件概率分布P(Y|X)作為預測的模型,即生成模型。
由生成模型可以得到判別模型,但由判別模型得不到生成模型。
常見的判別模型有:K近鄰、SVM、決策樹、感知機、線性判別分析(LDA)、線性回歸、傳統的神經網絡、邏輯斯蒂回歸、boosting、條件隨機場
常見的生成模型有:樸素貝葉斯、隱馬爾可夫模型、高斯混合模型、文檔主題生成模型(LDA)、限制玻爾茲曼機
14.L1和L2的區別。
L1范數(L1 norm)是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規則算子”(Lasso regularization)。
比如 向量A=[1,-1,3], 那么A的L1范數為 |1|+|-1|+|3|.
簡單總結一下就是:
L1范數: 為x向量各個元素絕對值之和。
L2范數: 為x向量各個元素平方和的1/2次方,L2范數又稱Euclidean范數或Frobenius范數
Lp范數: 為x向量各個元素絕對值p次方和的1/p次方.
在支持向量機學習過程中,L1范數實際是一種對于成本函數求解最優的過程,因此,L1范數正則化通過向成本函數中添加L1范數,使得學習得到的結果滿足稀疏化,從而方便人類提取特征。
L1范數可以使權值稀疏,方便特征提取。
L2范數可以防止過擬合,提升模型的泛化能力。
15.L1和L2正則先驗分別服從什么分布 ?
@齊同學:面試中遇到的,L1和L2正則先驗分別服從什么分布,L1是拉普拉斯分布,L2是高斯分布。
16.CNN最成功的應用是在CV,那為什么NLP和Speech的很多問題也可以用CNN解出來?為什么AlphaGo里也用了CNN?這幾個不相關的問題的相似性在哪里?CNN通過什么手段抓住了這個共性?
@許韓
知識點鏈接(答案解析):深度學習崗位面試問題整理筆記
https://zhuanlan.zhihu.com/p/25005808
17.說一下Adaboost,權值更新公式。當弱分類器是Gm時,每個樣本的的權重是w1,w2…,請寫出最終的決策公式。
答案解析
http://www.360doc.com/content/14/1109/12/20290918_423780183.shtml
18.LSTM結構推導,為什么比RNN好?
推導forget gate,input gate,cell state, hidden information等的變化;因為LSTM有進有出且當前的cell informaton是通過input gate控制之后疊加的,RNN是疊乘,因此LSTM可以防止梯度消失或者爆炸。
19.經常在網上搜索東西的朋友知道,當你不小心輸入一個不存在的單詞時,搜索引擎會提示你是不是要輸入某一個正確的單詞,比如當你在Google中輸入“Julw”時,系統會猜測你的意圖:是不是要搜索“July”,如下圖所示:
這叫做拼寫檢查。根據谷歌一員工寫的文章How to Write a Spelling Corrector顯示,Google的拼寫檢查基于貝葉斯方法。請說說的你的理解,具體Google是怎么利用貝葉斯方法,實現”拼寫檢查”的功能。
用戶輸入一個單詞時,可能拼寫正確,也可能拼寫錯誤。如果把拼寫正確的情況記做c(代表correct),拼寫錯誤的情況記做w(代表wrong),那么”拼寫檢查”要做的事情就是:在發生w的情況下,試圖推斷出c。換言之:已知w,然后在若干個備選方案中,找出可能性最大的那個c,也就是求P(c|w)P(c|w)的最大值。而根據貝葉斯定理,有:
由于對于所有備選的c來說,對應的都是同一個w,所以它們的P(w)是相同的,因此我們只要最大化P(w|c)P(c)即可。其中:
P(c)表示某個正確的詞的出現”概率”,它可以用”頻率”代替。如果我們有一個足夠大的文本庫,那么這個文本庫中每個單詞的出現頻率,就相當于它的發生概率。某個詞的出現頻率越高,P(c)就越大。比如在你輸入一個錯誤的詞“Julw”時,系統更傾向于去猜測你可能想輸入的詞是“July”,而不是“Jult”,因為“July”更常見。
P(w|c)表示在試圖拼寫c的情況下,出現拼寫錯誤w的概率。為了簡化問題,假定兩個單詞在字形上越接近,就有越可能拼錯,P(w|c)就越大。舉例來說,相差一個字母的拼法,就比相差兩個字母的拼法,發生概率更高。你想拼寫單詞July,那么錯誤拼成Julw(相差一個字母)的可能性,就比拼成Jullw高(相差兩個字母)。值得一提的是,一般把這種問題稱為“編輯距離”,參見程序員編程藝術第二十八~二十九章:最大連續乘積子串、字符串編輯距離。
http://blog.csdn.net/v_july_v/article/details/8701148#t4
所以,我們比較所有拼寫相近的詞在文本庫中的出現頻率,再從中挑出出現頻率最高的一個,即是用戶最想輸入的那個詞。具體的計算過程及此方法的缺陷請參見How to Write a Spelling Corrector。
http://norvig.com/spell-correct.html
20.為什么樸素貝葉斯如此“樸素”?
因為它假定所有的特征在數據集中的作用是同樣重要和獨立的。正如我們所知,這個假設在現實世界中是很不真實的,因此,說樸素貝葉斯真的很“樸素”。
21.機器學習中,為何要經常對數據做歸一化?
@zhanlijun
本題解析來源:為什么一些機器學習模型需要對數據進行歸一化?
http://www.cnblogs.com/LBSer/p/4440590.html
22.談談深度學習中的歸一化問題。
詳情參見此視頻:深度學習中的歸一化
http://www.julyedu.com/video/play/69/686
23.請簡要說說一個完整機器學習項目的流程。
1 抽象成數學問題
明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。
這里的抽象成數學問題,指的我們明確我們可以獲得什么樣的數據,目標是一個分類還是回歸或者是聚類的問題,如果都不是的話,如果劃歸為其中的某類問題。
2 獲取數據
數據決定了機器學習結果的上限,而算法只是盡可能逼近這個上限。
數據要有代表性,否則必然會過擬合。
而且對于分類問題,數據偏斜不能過于嚴重,不同類別的數據數量不要有數個數量級的差距。
而且還要對數據的量級有一個評估,多少個樣本,多少個特征,可以估算出其對內存的消耗程度,判斷訓練過程中內存是否能夠放得下。如果放不下就得考慮改進算法或者使用一些降維的技巧了。如果數據量實在太大,那就要考慮分布式了。
3 特征預處理與特征選擇
良好的數據要能夠提取出良好的特征才能真正發揮效力。
特征預處理、數據清洗是很關鍵的步驟,往往能夠使得算法的效果和性能得到顯著提高。歸一化、離散化、因子化、缺失值處理、去除共線性等,數據挖掘過程中很多時間就花在它們上面。這些工作簡單可復制,收益穩定可預期,是機器學習的基礎必備步驟。
篩選出顯著特征、摒棄非顯著特征,需要機器學習工程師反復理解業務。這對很多結果有決定性的影響。特征選擇好了,非常簡單的算法也能得出良好、穩定的結果。這需要運用特征有效性分析的相關技術,如相關系數、卡方檢驗、平均互信息、條件熵、后驗概率、邏輯回歸權重等方法。
4 訓練模型與調優
直到這一步才用到我們上面說的算法進行訓練。現在很多算法都能夠封裝成黑盒供人使用。但是真正考驗水平的是調整這些算法的(超)參數,使得結果變得更加優良。這需要我們對算法的原理有深入的理解。理解越深入,就越能發現問題的癥結,提出良好的調優方案。
5 模型診斷
如何確定模型調優的方向與思路呢?這就需要對模型進行診斷的技術。
過擬合、欠擬合 判斷是模型診斷中至關重要的一步。常見的方法如交叉驗證,繪制學習曲線等。過擬合的基本調優思路是增加數據量,降低模型復雜度。欠擬合的基本調優思路是提高特征數量和質量,增加模型復雜度。
誤差分析 也是機器學習至關重要的步驟。通過觀察誤差樣本,全面分析誤差產生誤差的原因:是參數的問題還是算法選擇的問題,是特征的問題還是數據本身的問題……
診斷后的模型需要進行調優,調優后的新模型需要重新進行診斷,這是一個反復迭代不斷逼近的過程,需要不斷地嘗試, 進而達到最優狀態。
6 模型融合
一般來說,模型融合后都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法準確度的方法是分別在模型的前端(特征清洗和預處理,不同的采樣模式)與后端(模型融合)上下功夫。因為他們比較標準可復制,效果比較穩定。而直接調參的工作不會很多,畢竟大量數據訓練起來太慢了,而且效果難以保證。
7 上線運行
這一部分內容主要跟工程實現的相關性比較大。工程上是結果導向,模型在線上運行的效果直接決定模型的成敗。 不單純包括其準確程度、誤差等情況,還包括其運行的速度(時間復雜度)、資源消耗程度(空間復雜度)、穩定性是否可接受。
這些工作流程主要是工程實踐上總結出的一些經驗。并不是每個項目都包含完整的一個流程。這里的部分只是一個指導性的說明,只有大家自己多實踐,多積累項目經驗,才會有自己更深刻的認識。
故,基于此,七月在線每一期ML算法班都特此增加特征工程、模型調優等相關課。比如,這里有個公開課視頻《特征處理與特征選擇》。
24.new 和 malloc的區別?
知識點鏈接:new 和 malloc的區別
https://www.cnblogs.com/fly1988happy/archive/2012/04/26/2470542.html
25.hash 沖突及解決辦法?
@Sommer_Xia
關鍵字值不同的元素可能會映象到哈希表的同一地址上就會發生哈希沖突。解決辦法:
1)開放定址法:當沖突發生時,使用某種探查(亦稱探測)技術在散列表中形成一個探查(測)序列。沿此序列逐個單元地查找,直到找到給定 的關鍵字,或者碰到一個開放的地址(即該地址單元為空)為止(若要插入,在探查到開放的地址,則可將待插入的新結點存人該地址單元)。查找時探查到開放的 地址則表明表中無待查的關鍵字,即查找失敗。
2) 再哈希法:同時構造多個不同的哈希函數。
3)鏈地址法:將所有哈希地址為i的元素構成一個稱為同義詞鏈的單鏈表,并將單鏈表的頭指針存在哈希表的第i個單元中,因而查找、插入和刪除主要在同義詞鏈中進行。鏈地址法適用于經常進行插入和刪除的情況。
4)建立公共溢出區:將哈希表分為基本表和溢出表兩部分,凡是和基本表發生沖突的元素,一律填入溢出表。
26.如何解決梯度消失和梯度膨脹?
(1)梯度消失:
根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小于1的話,那么即使這個結果是0.99,在經過足夠多層傳播之后,誤差對輸入層的偏導會趨于0。
可以采用ReLU激活函數有效的解決梯度消失的情況。
(2)梯度膨脹:
根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大于1的話,在經過足夠多層傳播之后,誤差對輸入層的偏導會趨于無窮大。
可以通過激活函數來解決。
27.下列哪個不屬于CRF模型對于HMM和MEMM模型的優勢( )
A. 特征靈活
B. 速度快
C. 可容納較多上下文信息
D. 全局最優
解答:首先,CRF,HMM(隱馬模型),MEMM(最大熵隱馬模型)都常用來做序列標注的建模。
隱馬模型一個最大的缺點就是由于其輸出獨立性假設,導致其不能考慮上下文的特征,限制了特征的選擇。
最大熵隱馬模型則解決了隱馬的問題,可以任意選擇特征,但由于其在每一節點都要進行歸一化,所以只能找到局部的最優值,同時也帶來了標記偏見的問題,即凡是訓練語料中未出現的情況全都忽略掉。
條件隨機場則很好的解決了這一問題,他并不在每一個節點進行歸一化,而是所有特征進行全局歸一化,因此可以求得全局的最優值。
答案為B。
28.簡單說下有監督學習和無監督學習的區別?
有監督學習:對具有標記的訓練樣本進行學習,以盡可能對訓練樣本集外的數據進行分類預測。(LR,SVM,BP,RF,GBDT)
無監督學習:對未標記的樣本進行訓練學習,比發現這些樣本中的結構知識。(KMeans,DL)
29.了解正則化么?
正則化是針對過擬合而提出的,以為在求解模型最優的是一般優化最小的經驗風險,現在在該經驗風險上加入模型復雜度這一項(正則化項是模型參數向量的范數),并使用一個rate比率來權衡模型復雜度與以往經驗風險的權重,如果模型復雜度越高,結構化的經驗風險會越大,現在的目標就變為了結構經驗風險的最優化,可以防止模型訓練過度復雜,有效的降低過擬合的風險。
奧卡姆剃刀原理,能夠很好的解釋已知數據并且十分簡單才是最好的模型。
30.協方差和相關性有什么區別?
相關性是協方差的標準化格式。協方差本身很難做比較。例如:如果我們計算工資($)和年齡(歲)的協方差,因為這兩個變量有不同的度量,所以我們會得到不能做比較的不同的協方差。為了解決這個問題,我們計算相關性來得到一個介于-1和1之間的值,就可以忽略它們各自不同的度量。
31.線性分類器與非線性分類器的區別以及優劣。
如果模型是參數的線性函數,并且存在線性分類面,那么就是線性分類器,否則不是。
常見的線性分類器有:LR,貝葉斯分類,單層感知機、線性回歸。
常見的非線性分類器:決策樹、RF、GBDT、多層感知機。
SVM兩種都有(看線性核還是高斯核)。
線性分類器速度快、編程方便,但是可能擬合效果不會很好。
非線性分類器編程復雜,但是效果擬合能力強。
32.數據的邏輯存儲結構(如數組,隊列,樹等)對于軟件開發具有十分重要的影響,試對你所了解的各種存儲結構從運行速度、存儲效率和適用場合等方面進行簡要地分析。
33.什么是分布式數據庫?
分布式數據庫系統是在集中式數據庫系統成熟技術的基礎上發展起來的,但不是簡單地把集中式數據庫分散地實現,它具有自己的性質和特征。集中式數據庫系統的許多概念和技術,如數據獨立性、數據共享和減少冗余度、并發控制、完整性、安全性和恢復等在分布式數據庫系統中都有了不同的、更加豐富的內容。
34.簡單說說貝葉斯定理。
在引出貝葉斯定理之前,先學習幾個定義:
條件概率(又稱后驗概率)就是事件A在另外一個事件B已經發生條件下的發生概率。條件概率表示為P(A|B),讀作“在B條件下A的概率”。
比如,在同一個樣本空間Ω中的事件或者子集A與B,如果隨機從Ω中選出的一個元素屬于B,那么這個隨機選擇的元素還屬于A的概率就定義為在B的前提下A的條件概率,所以:P(A|B) = |A∩B|/|B|,接著分子、分母都除以|Ω|得到:
聯合概率表示兩個事件共同發生的概率。A與B的聯合概率表示為P(A∩B)或者P(A,B)。
邊緣概率(又稱先驗概率)是某個事件發生的概率。邊緣概率是這樣得到的:在聯合概率中,把最終結果中那些不需要的事件通過合并成它們的全概率,而消去它們(對離散隨機變量用求和得全概率,對連續隨機變量用積分得全概率),這稱為邊緣化(marginalization),比如A的邊緣概率表示為P(A),B的邊緣概率表示為P(B)。
接著,考慮一個問題:P(A|B)是在B發生的情況下A發生的可能性。
1)首先,事件B發生之前,我們對事件A的發生有一個基本的概率判斷,稱為A的先驗概率,用P(A)表示;
2)其次,事件B發生之后,我們對事件A的發生概率重新評估,稱為A的后驗概率,用P(A|B)表示;
3)類似的,事件A發生之前,我們對事件B的發生有一個基本的概率判斷,稱為B的先驗概率,用P(B)表示;
4)同樣,事件A發生之后,我們對事件B的發生概率重新評估,稱為B的后驗概率,用P(B|A)表示。
貝葉斯定理的公式表達式:
35.#include
知識點鏈接:#include
http://blog.csdn.net/u010339647/article/details/77825788
36.某超市研究銷售紀錄數據后發現,買啤酒的人很大概率也會購買尿布,這種屬于數據挖掘的哪類問題?(A)
A. 關聯規則發現 B. 聚類 C. 分類 D. 自然語言處理
37.將原始數據進行集成、變換、維度規約、數值規約是在以下哪個步驟的任務?(C)
A. 頻繁模式挖掘 B. 分類和預測 C. 數據預處理 D. 數據流挖掘
38.下面哪種不屬于數據預處理的方法?(D)
A變量代換 B離散化 C 聚集 D 估計遺漏值
39.什么是KDD?(A)
A. 數據挖掘與知識發現 B. 領域知識發現C. 文檔知識發現 D. 動態知識發現
40.當不知道數據所帶標簽時,可以使用哪種技術促使帶同類標簽的數據與帶其他標簽的數據相分離?(B)
A. 分類 B. 聚類 C. 關聯分析 D. 隱馬爾可夫鏈
41.建立一個模型,通過這個模型根據已知的變量值來預測其他某個變量值屬于數據挖掘的哪一類任務?(C)
A. 根據內容檢索 B. 建模描述
C. 預測建模 D. 尋找模式和規則
42.以下哪種方法不屬于特征選擇的標準方法?(D)
A嵌入 B 過濾 C 包裝 D 抽樣
43.請用python編寫函數find_string,從文本中搜索并打印內容,要求支持通配符星號和問號。
1find_string('hello\nworld\n','wor') 2['wor'] 3find_string('hello\nworld\n','l*d') 4['ld'] 5find_string('hello\nworld\n','o.') 6['or'] 7答案 8deffind_string(str,pat): 9importre10returnre.findall(pat,str,re.I)11---------------------12作者:qinjianhuang13來源:CSDN14原文:https://huangqinjian.blog.csdn.net/article/details/7879632815版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
44.說下紅黑樹的五個性質。
教你初步了解紅黑樹
http://blog.csdn.net/v_july_v/article/details/6105630
45.簡單說下sigmoid激活函數。
常用的非線性激活函數有sigmoid、tanh、relu等等,前兩者sigmoid/tanh比較常見于全連接層,后者relu常見于卷積層。這里先簡要介紹下最基礎的sigmoid函數(btw,在本博客中SVM那篇文章開頭有提過)。
Sigmoid的函數表達式如下:
也就是說,Sigmoid函數的功能是相當于把一個實數壓縮至0到1之間。當z是非常大的正數時,g(z)會趨近于1,而z是非常小的負數時,則g(z)會趨近于0。
壓縮至0到1有何用處呢?用處是這樣一來便可以把激活函數看作一種“分類的概率”,比如激活函數的輸出為0.9的話便可以解釋為90%的概率為正樣本。
舉個例子,如下圖(圖引自Stanford機器學習公開課):
46.什么是卷積?
對圖像(不同的數據窗口數據)和濾波矩陣(一組固定的權重:因為每個神經元的多個權重固定,所以又可以看做一個恒定的濾波器filter)做內積(逐個元素相乘再求和)的操作就是所謂的『卷積』操作,也是卷積神經網絡的名字來源。
非嚴格意義上來講,下圖中紅框框起來的部分便可以理解為一個濾波器,即帶著一組固定權重的神經元。多個濾波器疊加便成了卷積層。
OK,舉個具體的例子。比如下圖中,圖中左邊部分是原始輸入數據,圖中中間部分是濾波器filter,圖中右邊是輸出的新的二維數據。
分解下上圖
47.什么是CNN的池化pool層?
池化,簡言之,即取區域平均或最大,如下圖所示(圖引自cs231n):
上圖所展示的是取區域最大,即上圖左邊部分中 左上角2x2的矩陣中6最大,右上角2x2的矩陣中8最大,左下角2x2的矩陣中3最大,右下角2x2的矩陣中4最大,所以得到上圖右邊部分的結果:6 8 3 4。很簡單不是?
48.簡述下什么是生成對抗網絡。
GAN之所以是對抗的,是因為GAN的內部是競爭關系,一方叫generator,它的主要工作是生成圖片,并且盡量使得其看上去是來自于訓練樣本的。另一方是discriminator,其目標是判斷輸入圖片是否屬于真實訓練樣本。
更直白的講,將generator想象成假幣制造商,而discriminator是警察。generator目的是盡可能把假幣造的跟真的一樣,從而能夠騙過discriminator,即生成樣本并使它看上去好像來自于真實訓練樣本一樣。
如下圖中的左右兩個場景:
更多請參見此課程:生成對抗網絡
https://www.julyedu.com/course/getDetail/83
49.學梵高作畫的原理是啥?
這里有篇如何做梵高風格畫的實驗教程 教你從頭到尾利用DL學梵高作畫:GTX 1070 cuda 8.0 tensorflow gpu版,至于其原理請看這個視頻:NeuralStyle藝術化圖片(學梵高作畫背后的原理)。
http://blog.csdn.net/v_july_v/article/details/52658965
http://www.julyedu.com/video/play/42/523
50.現在有 a 到 z 26 個元素, 編寫程序打印 a 到 z 中任取 3 個元素的組合(比如 打印 a b c ,d y z等)。
一道百度機器學習工程師職位的面試題
http://blog.csdn.net/lvonve/article/details/53320680
51.哪些機器學習算法不需要做歸一化處理?
概率模型不需要歸一化,因為它們不關心變量的值,而是關心變量的分布和變量之間的條件概率,如決策樹、RF。而像Adaboost、GBDT、XGBoost、SVM、LR、KNN、KMeans之類的最優化問題就需要歸一化。
52.說說梯度下降法。
@LeftNotEasy
機器學習中的數學(1)-回歸(regression)、梯度下降(gradient descent)
http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html
53.梯度下降法找到的一定是下降最快的方向么?
梯度下降法并不是下降最快的方向,它只是目標函數在當前的點的切平面(當然高維問題不能叫平面)上下降最快的方向。在Practical Implementation中,牛頓方向(考慮海森矩陣)才一般被認為是下降最快的方向,可以達到Superlinear的收斂速度。梯度下降類的算法的收斂速度一般是Linear甚至Sublinear的(在某些帶復雜約束的問題)。
知識點鏈接:一文清晰講解機器學習中梯度下降算法(包括其變式算法)
http://blog.csdn.net/wemedia/details.html?id=45460
54.牛頓法和梯度下降法有什么不同?
@wtq1993
知識點鏈接:機器學習中常見的最優化算法
http://blog.csdn.net/wtq1993/article/details/51607040
55.什么是擬牛頓法(Quasi-Newton Methods)?
@wtq1993
機器學習中常見的最優化算法
56.請說說隨機梯度下降法的問題和挑戰?
57.說說共軛梯度法?
@wtq1993
機器學習中常見的最優化算法
http://blog.csdn.net/wtq1993/article/details/51607040
58.對所有優化問題來說, 有沒有可能找到比現在已知算法更好的算法?
答案鏈接
https://www.zhihu.com/question/41233373/answer/145404190
59、什么最小二乘法?
我們口頭中經常說:一般來說,平均來說。如平均來說,不吸煙的健康優于吸煙者,之所以要加“平均”二字,是因為凡事皆有例外,總存在某個特別的人他吸煙但由于經常鍛煉所以他的健康狀況可能會優于他身邊不吸煙的朋友。而最小二乘法的一個最簡單的例子便是算術平均。
最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,并使得這些求得的數據與實際數據之間誤差的平方和為最小。用函數表示為:
由于算術平均是一個歷經考驗的方法,而以上的推理說明,算術平均是最小二乘的一個特例,所以從另一個角度說明了最小二乘方法的優良性,使我們對最小二乘法更加有信心。
最小二乘法發表之后很快得到了大家的認可接受,并迅速的在數據分析實踐中被廣泛使用。不過歷史上又有人把最小二乘法的發明歸功于高斯,這又是怎么一回事呢。高斯在1809年也發表了最小二乘法,并且聲稱自己已經使用這個方法多年。高斯發明了小行星定位的數學方法,并在數據分析中使用最小二乘方法進行計算,準確的預測了谷神星的位置。
對了,最小二乘法跟SVM有什么聯系呢?請參見支持向量機通俗導論(理解SVM的三層境界)。
http://blog.csdn.net/v_july_v/article/details/7624837
60、看你T恤上印著:人生苦短,我用Python,你可否說說Python到底是什么樣的語言?你可以比較其他技術或者語言來回答你的問題。
15個重要Python面試題 測測你適不適合做Python?
http://nooverfit.com/wp/15%E4%B8%AA%E9%87%8D%E8%A6%81python%E9%9D%A2%E8%AF%95%E9%A2%98-%E6%B5%8B%E6%B5%8B%E4%BD%A0%E9%80%82%E4%B8%8D%E9%80%82%E5%90%88%E5%81%9Apython%EF%BC%9F/
61.Python是如何進行內存管理的?
2017 Python最新面試題及答案16道題
http://www.cnblogs.com/tom-gao/p/6645859.html
62.請寫出一段Python代碼實現刪除一個list里面的重復元素。
1、使用set函數,set(list);
2、使用字典函數:
1a=[1,2,4,2,4,5,6,5,7,8,9,0]2b={}3b=b.fromkeys(a)4c=list(b.keys())5c
63.編程用sort進行排序,然后從最后一個元素開始判斷。
1a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]23a.sort()4last=a[-1]5foriinrange(len(a)-2,-1,-1):6iflast==a[i]:7dela[i]8else:last=a[i]9print(a)
64.Python里面如何生成隨機數?
@Tom_junsong
random模塊
隨機整數:random.randint(a,b):返回隨機整數x,a<=x<=b?
random.randrange(start,stop,[,step]):返回一個范圍在(start,stop,step)之間的隨機整數,不包括結束值。
隨機實數:random.random( ):返回0到1之間的浮點數
random.uniform(a,b):返回指定范圍內的浮點數。
65.說說常見的損失函數。
對于給定的輸入X,由f(X)給出相應的輸出Y,這個輸出的預測值f(X)與真實值Y可能一致也可能不一致(要知道,有時損失或誤差是不可避免的),用一個損失函數來度量預測錯誤的程度。損失函數記為L(Y, f(X))。
常用的損失函數有以下幾種(基本引用自《統計學習方法》):
66.簡單介紹下Logistics回歸。
Logistic回歸目的是從特征學習出一個0/1分類模型,而這個模型是將特性的線性組合作為自變量,由于自變量的取值范圍是負無窮到正無窮。因此,使用logistic函數(或稱作sigmoid函數)將自變量映射到(0,1)上,映射后的值被認為是屬于y=1的概率。
假設函數:
其中x是n維特征向量,函數g就是Logistic函數。而:g(z)=11+e?zg(z)=11+e?z的圖像是:
可以看到,將無窮映射到了(0,1)。而假設函數就是特征屬于y=1的概率。
67.看你是搞視覺的,熟悉哪些CV框架,順帶聊聊CV最近五年的發展史如何?
答案解析https://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&mid=2651986617&idx=1&sn=fddebd0f2968d66b7f424d6a435c84af&scene=0#wechat_redirect
68.深度學習在視覺領域有何前沿進展?
@元峰
本題解析來源:深度學習在計算機視覺領域的前沿進展
https://zhuanlan.zhihu.com/p/24699780
69.HashMap與HashTable區別?
HashMap與Hashtable的區別
http://oznyang.iteye.com/blog/30690
70.在分類問題中,我們經常會遇到正負樣本數據量不等的情況,比如正樣本為10w條數據,負樣本只有1w條數據,以下最合適的處理方法是( )
A、將負樣本重復10次,生成10w樣本量,打亂順序參與分類
B、直接進行分類,可以最大限度利用數據
C、從10w正樣本中隨機抽取1w參與分類
D、將負樣本每個權重設置為10,正樣本權重為1,參與訓練過程
@管博士:準確的說,其實選項中的這些方法各有優缺點,需要具體問題具體分析,有篇文章對各種方法的優缺點進行了分析,講的不錯 感興趣的同學可以參考一下:
How to handle Imbalanced Classification Problems in machine learning?
https://www.analyticsvidhya.com/blog/2017/03/imbalanced-classification-problem/
71.深度學習是當前很熱門的機器學習算法,在深度學習中,涉及到大量的矩陣相乘,現在需要計算三個稠密矩陣A,B,C的乘積ABC,假90設三個矩陣的尺寸分別為m?n,n?p,p?q,且m
A.(AB)C
B.AC(B)
C.A(BC)
D.所以效率都相同
正確答案:A
@BlackEyes_SGC: m*n*p
72.Nave Bayes是一種特殊的Bayes分類器,特征變量是X,類別標簽是C,它的一個假定是:( C )
A.各類別的先驗概率P(C)是相等的
B.以0為均值,sqr(2)/2為標準差的正態分布
C.特征變量X的各個維度是類別條件獨立隨機變量
D.P(X|C)是高斯分布
正確答案:C
@BlackEyes_SGC:樸素貝葉斯的條件就是每個變量相互獨立。
73.關于支持向量機SVM,下列說法錯誤的是(C)
A.L2正則項,作用是最大化分類間隔,使得分類器擁有更強的泛化能力
B.Hinge 損失函數,作用是最小化經驗分類錯誤
C.分類間隔為1||w||1||w||,||w||代表向量的模
D.當參數C越小時,分類間隔越大,分類錯誤越多,趨于欠學習
正確答案:C
@BlackEyes_SGC:
A正確。考慮加入正則化項的原因:想象一個完美的數據集,y>1是正類,y<-1是負類,決策面y=0,加入一個y=-30的正類噪聲樣本,那么決策面將會變“歪”很多,分類間隔變小,泛化能力減小。加入正則項之后,對噪聲樣本的容錯能力增強,前面提到的例子里面,決策面就會沒那么“歪”了,使得分類間隔變大,提高了泛化能力。?
B正確。
C錯誤。間隔應該是2||w||2||w||才對,后半句應該沒錯,向量的模通常指的就是其二范數。
D正確。考慮軟間隔的時候,C對優化問題的影響就在于把a的范圍從[0,+inf]限制到了[0,C]。C越小,那么a就會越小,目標函數拉格朗日函數導數為0可以求出w=∑iai?yi?xiw=∑iai?yi?xi,a變小使得w變小,因此間隔2||w||2||w||變大
74.在HMM中,如果已知觀察序列和產生觀察序列的狀態序列,那么可用以下哪種方法直接進行參數估計( D )
A.EM算法
B.維特比算法
C.前向后向算法
D.極大似然估計
正確答案:D
@BlackEyes_SGC:
EM算法: 只有觀測序列,無狀態序列時來學習模型參數,即Baum-Welch算法
維特比算法: 用動態規劃解決HMM的預測問題,不是參數估計
前向后向算法:用來算概率
極大似然估計:即觀測序列和相應的狀態序列都存在時的監督學習算法,用來估計參數
注意的是在給定觀測序列和對應的狀態序列估計模型參數,可以利用極大似然發估計。如果給定觀測序列,沒有對應的狀態序列,才用EM,將狀態序列看不不可測的隱數據。
75.假定某同學使用Naive Bayesian(NB)分類模型時,不小心將訓練數據的兩個維度搞重復了,那么關于NB的說法中正確的是:(BD)
A.這個被重復的特征在模型中的決定作用會被加強
B.模型效果相比無重復特征的情況下精確度會降低
C.如果所有特征都被重復一遍,得到的模型預測結果相對于不重復的情況下的模型預測結果一樣。
D.當兩列特征高度相關時,無法用兩列特征相同時所得到的結論來分析問題
E.NB可以用來做最小二乘回歸
F.以上說法都不正確
正確答案:BD
@BlackEyes_SGC:NB的核心在于它假設向量的所有分量之間是獨立的。在貝葉斯理論系統中,都有一個重要的條件獨立性假設:假設所有特征之間相互獨立,這樣才能將聯合概率拆分。
76.以下哪些方法不可以直接來對文本分類?(A)
A、Kmeans
B、決策樹
C、支持向量機
D、KNN
正確答案: A分類不同于聚類。
@BlackEyes_SGC:A:Kmeans是聚類方法,典型的無監督學習方法。分類是監督學習方法,BCD都是常見的分類方法。
77.已知一組數據的協方差矩陣P,下面關于主分量說法錯誤的是( C )
A、主分量分析的最佳準則是對一組數據進行按一組正交基分解, 在只取相同數量分量的條件下,以均方誤差計算截尾誤差最小
B、在經主分量分解后,協方差矩陣成為對角矩陣
C、主分量分析就是K-L變換
D、主分量是通過求協方差矩陣的特征值得到
正確答案: C
@BlackEyes_SGC:K-L變換與PCA變換是不同的概念,PCA的變換矩陣是協方差矩陣,K-L變換的變換矩陣可以有很多種(二階矩陣、協方差矩陣、總類內離散度矩陣等等)。當K-L變換矩陣為協方差矩陣時,等同于PCA。
78.Kmeans的復雜度?
時間復雜度:O(tKmn),其中,t為迭代次數,K為簇的數目,m為記錄數,n為維數空間復雜度:O((m+K)n),其中,K為簇的數目,m為記錄數,n為維數。
具體參考:機器學習之深入理解K-means、與KNN算法區別及其代碼實現
http://blog.csdn.net/sinat_35512245/article/details/55051306
79.關于Logit 回歸和SVM 不正確的是(A)
A. Logit回歸本質上是一種根據樣本對權值進行極大似然估計的方法,而后驗概率正比于先驗概率和似然函數的乘積。logit僅僅是最大化似然函數,并沒有最大化后驗概率,更談不上最小化后驗概率。A錯誤
B. Logit回歸的輸出就是樣本屬于正類別的幾率,可以計算出概率,正確
C. SVM的目標是找到使得訓練數據盡可能分開且分類間隔最大的超平面,應該屬于結構風險最小化。
D. SVM可以通過正則化系數控制模型的復雜度,避免過擬合。
@BlackEyes_SGC:Logit回歸目標函數是最小化后驗概率,Logit回歸可以用于預測事件發生概率的大小,SVM目標是結構風險最小化,SVM可以有效避免模型過擬合。
80.輸入圖片大小為200×200,依次經過一層卷積(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,padding 0,stride 1),又一層卷積(kernel size 3×3,padding 1,stride 1)之后,輸出特征圖大小為:()
正確答案:97
@BlackEyes_SGC:計算尺寸不被整除只在GoogLeNet中遇到過。卷積向下取整,池化向上取整。
本題 (200-5+2*1)/2+1 為99.5,取99
(99-3)/1+1 為97
(97-3+2*1)/1+1 為97
研究過網絡的話看到stride為1的時候,當kernel為 3 padding為1或者kernel為5 padding為2 一看就是卷積前后尺寸不變。計算GoogLeNet全過程的尺寸也一樣。
81.影響聚類算法結果的主要因素有(BCD )
A.已知類別的樣本質量;
B.分類準則;
C.特征選取;
D.模式相似性測度
82.模式識別中,馬式距離較之于歐式距離的優點是(CD)
A. 平移不變性;
B. 旋轉不變性;
C. 尺度不變性;
D. 考慮了模式的分布
83.影響基本K-均值算法的主要因素有(ABD)
A. 樣本輸入順序;
B. 模式相似性測度;
C. 聚類準則;
D. 初始類中心的選取
84.在統計模式分類問題中,當先驗概率未知時,可以使用(BD)
A. 最小損失準則;
B. 最小最大損失準則;
C. 最小誤判概率準則;
D. N-P判決
85.如果以特征向量的相關系數作為模式相似性測度,則影響聚類算法結果的主要因素有(BC)
A. 已知類別樣本質量;
B. 分類準則;
C. 特征選取;
D. 量綱
86.歐式距離具有(AB );馬式距離具有(ABCD )。
A. 平移不變性;
B. 旋轉不變性;
C. 尺度縮放不變性;
D. 不受量綱影響的特性
87.你有哪些Deep Learning(RNN,CNN)調參的經驗?
答案解析,來自知乎
https://www.zhihu.com/question/41631631
88.簡單說說RNN的原理。
我們升學到高三準備高考時,此時的知識是由高二及高二之前所學的知識加上高三所學的知識合成得來,即我們的知識是由前序鋪墊,是有記憶的,好比當電影字幕上出現:“我是”時,你會很自然的聯想到:“我是中國人”。
89.什么是RNN?
@一只鳥的天空,本題解析來源:
循環神經網絡(RNN, Recurrent Neural Networks)介紹
http://blog.csdn.net/heyongluoyao8/article/details/48636251
90.RNN是怎么從單層網絡一步一步構造的的?
@何之源,本題解析來源:
完全圖解RNN、RNN變體、Seq2Seq、Attention機制
https://zhuanlan.zhihu.com/p/28054589
101.深度學習(CNN RNN Attention)解決大規模文本分類問題。
用深度學習(CNN RNN Attention)解決大規模文本分類問題 - 綜述和實踐
https://zhuanlan.zhihu.com/p/25928551
102.如何解決RNN梯度爆炸和彌散的問題的?
深度學習與自然語言處理(7)_斯坦福cs224d 語言模型,RNN,LSTM與GRU
http://blog.csdn.net/han_xiaoyang/article/details/51932536
103.如何提高深度學習的性能?
機器學習系列(10)_如何提高深度學習(和機器學習)的性能
http://blog.csdn.net/han_xiaoyang/article/details/52654879
104.RNN、LSTM、GRU區別?
@我愛大泡泡,本題解析來源:
面試筆試整理3:深度學習機器學習面試問題準備(必會)
http://blog.csdn.net/woaidapaopao/article/details/77806273
105.當機器學習性能遭遇瓶頸時,你會如何優化的?
可以從這4個方面進行嘗試:基于數據、借助算法、用算法調參、借助模型融合。當然能談多細多深入就看你的經驗心得了。
這里有一份參考清單:機器學習系列(20)_機器學習性能改善備忘單
http://blog.csdn.net/han_xiaoyang/article/details/53453145
106.做過什么樣的機器學習項目?比如如何從零構建一個推薦系統?
推薦系統的公開課http://www.julyedu.com/video/play/18/148,另,再推薦一個課程:機器學習項目班 [10次純項目講解,100%純實戰](https://www.julyedu.com/course/getDetail/48)。
107.什么樣的資料集不適合用深度學習?
@抽象猴,來源:
知乎解答
https://www.zhihu.com/question/41233373
108.廣義線性模型是怎被應用在深度學習中?
@許韓,來源:
知乎解答
https://huangqinjian.blog.csdn.net/article/details/%E5%A6%82%E6%9E%9C%E4%BD%A0%E6%98%AF%E9%9D%A2%E8%AF%95%E5%AE%98%EF%BC%8C%E4%BD%A0%E6%80%8E%E4%B9%88%E5%8E%BB%E5%88%A4%E6%96%AD%E4%B8%80%E4%B8%AA%E9%9D%A2%E8%AF%95%E8%80%85%E7%9A%84%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%B0%B4%E5%B9%B3%EF%BC%9F%20-%20%E8%AE%B8%E9%9F%A9%E7%9A%84%E5%9B%9E%E7%AD%94%20-%20%E7%9F%A5%E4%B9%8E%20https://www.zhihu.com/question/41233373/answer/145404190
109.準備機器學習面試應該了解哪些理論知識?
知乎解答
https://www.zhihu.com/question/62482926
110.標準化與歸一化的區別?
簡單來說,標準化是依照特征矩陣的列處理數據,其通過求z-score的方法,將樣本的特征值轉換到同一量綱下。歸一化是依照特征矩陣的行處理數據,其目的在于樣本向量在點乘運算或其他核函數計算相似性時,擁有統一的標準,也就是說都轉化為“單位向量”。規則為L2的歸一化公式如下:
特征向量的缺失值處理:
1.缺失值較多.直接將該特征舍棄掉,否則可能反倒會帶入較大的noise,對結果造成不良影響。
2.缺失值較少,其余的特征缺失值都在10%以內,我們可以采取很多的方式來處理:
1) 把NaN直接作為一個特征,假設用0表示;
2) 用均值填充;
3) 用隨機森林等算法預測填充
111.隨機森林如何處理缺失值。
方法一(na.roughfix)簡單粗暴,對于訓練集,同一個class下的數據,如果是分類變量缺失,用眾數補上,如果是連續型變量缺失,用中位數補。
方法二(rfImpute)這個方法計算量大,至于比方法一好壞?不好判斷。先用na.roughfix補上缺失值,然后構建森林并計算proximity matrix,再回頭看缺失值,如果是分類變量,則用沒有陣進行加權平均的方法補缺失值。然后迭代4-6次,這個補缺失值的思想和KNN有些類似1缺失的觀測實例的proximity中的權重進行投票。如果是連續型變量,則用proximity矩2。
112.隨機森林如何評估特征重要性。
衡量變量重要性的方法有兩種,Decrease GINI 和 Decrease Accuracy:
1) Decrease GINI: 對于回歸問題,直接使用argmax(VarVarLeftVarRight)作為評判標準,即當前節點訓練集的方差Var減去左節點的方差VarLeft和右節點的方差VarRight。
2) Decrease Accuracy:對于一棵樹Tb(x),我們用OOB樣本可以得到測試誤差1;然后隨機改變OOB樣本的第j列:保持其他列不變,對第j列進行隨機的上下置換,得到誤差2。至此,我們可以用誤差1-誤差2來刻畫變量j的重要性。基本思想就是,如果一個變量j足夠重要,那么改變它會極大的增加測試誤差;反之,如果改變它測試誤差沒有增大,則說明該變量不是那么的重要。
113.優化Kmeans。
使用Kd樹或者Ball Tree
將所有的觀測實例構建成一顆kd樹,之前每個聚類中心都是需要和每個觀測點做依次距離計算,現在這些聚類中心根據kd樹只需要計算附近的一個局部區域即可。
114.KMeans初始類簇中心點的選取。
K-means++算法選擇初始seeds的基本思想就是:初始的聚類中心之間的相互距離要盡可能的遠。
1.從輸入的數據點集合中隨機選擇一個點作為第一個聚類中心
2.對于數據集中的每一個點x,計算它與最近聚類中心(指已選擇的聚類中心)的距離D(x)
3.選擇一個新的數據點作為新的聚類中心,選擇的原則是:D(x)較大的點,被選取作為聚類中心的概率較大
4.重復2和3直到k個聚類中心被選出來
5.利用這k個初始的聚類中心來運行標準的k-means算法
115.解釋對偶的概念。
一個優化問題可以從兩個角度進行考察,一個是primal 問題,一個是dual 問題,就是對偶問題,一般情況下對偶問題給出主問題最優值的下界,在強對偶性成立的情況下由對偶問題可以得到主問題的最優下界,對偶問題是凸優化問題,可以進行較好的求解,SVM中就是將Primal問題轉換為dual問題進行求解,從而進一步引入核函數的思想。
116.如何進行特征選擇?
特征選擇是一個重要的數據預處理過程,主要有兩個原因:一是減少特征數量、降維,使模型泛化能力更強,減少過擬合;二是增強對特征和特征值之間的理解。
常見的特征選擇方式:
1.去除方差較小的特征。
2.正則化。1正則化能夠生成稀疏的模型。L2正則化的表現更加穩定,由于有用的特征往往對應系數非零。
3.隨機森林,對于分類問題,通常采用基尼不純度或者信息增益,對于回歸問題,通常采用的是方差或者最小二乘擬合。一般不需要feature engineering、調參等繁瑣的步驟。它的兩個主要問題,1是重要的特征有可能得分很低(關聯特征問題),2是這種方法對特征變量類別多的特征越有利(偏向問題)。
4.穩定性選擇。是一種基于二次抽樣和選擇算法相結合較新的方法,選擇算法可以是回歸、SVM或其他類似的方法。它的主要思想是在不同的數據子集和特征子集上運行特征選擇算法,不斷的重復,最終匯總特征選擇結果,比如可以統計某個特征被認為是重要特征的頻率(被選為重要特征的次數除以它所在的子集被測試的次數)。理想情況下,重要特征的得分會接近100%。稍微弱一點的特征得分會是非0的數,而最無用的特征得分將會接近于0。
117.數據預處理。
1.缺失值,填充缺失值fillna:
i. 離散:None,
ii. 連續:均值。
iii. 缺失值太多,則直接去除該列
2.連續值:離散化。有的模型(如決策樹)需要離散值
3.對定量特征二值化。核心在于設定一個閾值,大于閾值的賦值為1,小于等于閾值的賦值為0。如圖像操作
4.皮爾遜相關系數,去除高度相關的列
118.簡單說說特征工程。
119.你知道有哪些數據處理和特征工程的處理?
120.請對比下Sigmoid、Tanh、ReLu這三個激活函數?
121.Sigmoid、Tanh、ReLu這三個激活函數有什么缺點或不足,有沒改進的激活函數?
@我愛大泡泡,來源:
面試筆試整理3:深度學習機器學習面試問題準備(必會)
http://blog.csdn.net/woaidapaopao/article/details/77806273
122.怎么理解決策樹、xgboost能處理缺失值?而有的模型(svm)對缺失值比較敏感?
知乎解答
https://www.zhihu.com/question/58230411
123.為什么引入非線性激勵函數?
@Begin Again,來源:
知乎解答
https://www.zhihu.com/question/29021768
如果不用激勵函數(其實相當于激勵函數是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數,很容易驗證,無論你神經網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了。
正因為上面的原因,我們決定引入非線性函數作為激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。最早的想法是Sigmoid函數或者Tanh函數,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋)。
124.請問人工神經網絡中為什么ReLu要好過于Tanh和Sigmoid function?
@Begin Again,來源:
知乎解答
https://www.zhihu.com/question/29021768
125.為什么LSTM模型中既存在Sigmoid又存在Tanh兩種激活函數?
本題解析來源:知乎解答
https://www.zhihu.com/question/46197687
@beanfrog:二者目的不一樣:sigmoid 用在了各種gate上,產生0~1之間的值,這個一般只有sigmoid最直接了。tanh 用在了狀態和輸出上,是對數據的處理,這個用其他激活函數或許也可以。
@hhhh:另可參見A Critical Review of Recurrent Neural Networks for Sequence Learning的section4.1,說了那兩個tanh都可以替換成別的。
126.衡量分類器的好壞。
@我愛大泡泡,來源:
答案解析
http://blog.csdn.net/woaidapaopao/article/details/77806273
這里首先要知道TP、FN(真的判成假的)、FP(假的判成真)、TN四種(可以畫一個表格)。
幾種常用的指標:
精度precision = TP/(TP+FP) = TP/~P (~p為預測為真的數量)
召回率 recall = TP/(TP+FN) = TP/ P
F1值: 2/F1 = 1/recall + 1/precision
ROC曲線:ROC空間是一個以偽陽性率(FPR,false positive rate)為X軸,真陽性率(TPR, true positive rate)為Y軸的二維坐標系所代表的平面。其中真陽率TPR = TP / P = recall, 偽陽率FPR = FP / N
127.機器學習和統計里面的auc的物理意義是什么?
詳情參見機器學習和統計里面的auc怎么理解?
https://www.zhihu.com/question/39840928
128.觀察增益gain, alpha和gamma越大,增益越小?
@AntZ:XGBoost尋找分割點的標準是最大化gain. 考慮傳統的枚舉每個特征的所有可能分割點的貪心法效率太低,XGBoost實現了一種近似的算法。大致的思想是根據百分位法列舉幾個可能成為分割點的候選者,然后從候選者中計算Gain按最大值找出最佳的分割點。它的計算公式分為四項, 可以由正則化項參數調整(lamda為葉子權重平方和的系數, gama為葉子數量):
第一項是假設分割的左孩子的權重分數, 第二項為右孩子, 第三項為不分割總體分數, 最后一項為引入一個節點的復雜度損失。
由公式可知, gama越大gain越小, lamda越大, gain可能小也可能大。
原問題是alpha而不是lambda, 這里paper上沒有提到, XGBoost實現上有這個參數. 上面是我從paper上理解的答案,下面是搜索到的:
如何對XGBoost模型進行參數調優
https://zhidao.baidu.com/question/2121727290086699747.html?fr=iks&word=xgboost%20lamda&ie=gbk
129.什么造成梯度消失問題? 推導一下。
@許韓,來源:
神經網絡的訓練中,通過改變神經元的權重,使網絡的輸出值盡可能逼近標簽以降低誤差值,訓練普遍使用BP算法,核心思想是,計算出輸出與標簽間的損失函數值,然后計算其相對于每個神經元的梯度,進行權值的迭代。
梯度消失會造成權值更新緩慢,模型訓練難度增加。造成梯度消失的一個原因是,許多激活函數將輸出值擠壓在很小的區間內,在激活函數兩端較大范圍的定義域內梯度為0,造成學習停止。
130.什么是梯度消失和梯度爆炸?
@寒小陽,反向傳播中鏈式法則帶來的連乘,如果有數很小趨于0,結果就會特別小(梯度消失);如果數都比較大,可能結果會很大(梯度爆炸)。
@單車
神經網絡訓練中的梯度消失與梯度爆炸
https://zhuanlan.zhihu.com/p/25631496
131.如何解決梯度消失和梯度膨脹?
(1)梯度消失:
根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小于1的話,那么即使這個結果是0.99,在經過足夠多層傳播之后,誤差對輸入層的偏導會趨于0,可以采用ReLU激活函數有效的解決梯度消失的情況。
(2)梯度膨脹
根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大于1的話,在經過足夠多層傳播之后,誤差對輸入層的偏導會趨于無窮大,可以通過激活函數來解決。
132.推導下反向傳播Backpropagation。
@我愛大泡泡,來源:
推導過程
http://blog.csdn.net/woaidapaopao/article/details/77806273
133.SVD和PCA。
PCA的理念是使得數據投影后的方差最大,找到這樣一個投影向量,滿足方差最大的條件即可。而經過了去除均值的操作之后,就可以用SVD分解來求解這樣一個投影向量,選擇特征值最大的方向。
134.數據不平衡問題。
這主要是由于數據分布不平衡造成的。解決方法如下:
1)采樣,對小樣本加噪聲采樣,對大樣本進行下采樣
2)進行特殊的加權,如在Adaboost中或者SVM中
3)采用對不平衡數據集不敏感的算法
4)改變評價標準:用AUC/ROC來進行評價
5)采用Bagging/Boosting/Ensemble等方法
6)考慮數據的先驗分布
135.簡述神經網絡的發展。
MP模型+sgn—->單層感知機(只能線性)+sgn— Minsky 低谷 —>多層感知機+BP+Sigmoid— (低谷) —>深度學習+Pretraining+ReLU/Sigmoid
136.深度學習常用方法。
@SmallisBig,來源:
機器學習崗位面試問題匯總 之 深度學習
http://blog.csdn.net/u010496169/article/details/73550487
137.神經網絡模型(Neural Network)因受人類大腦的啟發而得名。神經網絡由許多神經元(Neuron)組成,每個神經元接受一個輸入,對輸入進行處理后給出一個輸出。請問下列關于神經元的描述中,哪一項是正確的?(E)
A.每個神經元只有一個輸入和一個輸出
B.每個神經元有多個輸入和一個輸出
C.每個神經元有一個輸入和多個輸出
D.每個神經元有多個輸入和多個輸出
E.上述都正確
答案:(E)
每個神經元可以有一個或多個輸入,和一個或多個輸出
138.下圖是一個神經元的數學表示,
139.在一個神經網絡中,知道每一個神經元的權重和偏差是最重要的一步。如果知道了神經元準確的權重和偏差,便可以近似任何函數,但怎么獲知每個神經的權重和偏移呢?(C)
A. 搜索每個可能的權重和偏差組合,直到得到最佳值
B. 賦予一個初始值,然后檢查跟最佳值的差值,不斷迭代調整權重
C. 隨機賦值,聽天由命
D. 以上都不正確的
答案:(C)
選項C是對梯度下降的描述。
140.梯度下降算法的正確步驟是什么?( D)
1.計算預測值和真實值之間的誤差
2.重復迭代,直至得到網絡權重的最佳值
3.把輸入傳入網絡,得到輸出值
4.用隨機值初始化權重和偏差
5.對每一個產生誤差的神經元,調整相應的(權重)值以減小誤差
A. 1, 2, 3, 4, 5
B. 5, 4, 3, 2, 1
C. 3, 2, 1, 5, 4
D. 4, 3, 1, 5, 2
答案:(D)
141.已知:
- 大腦是有很多個叫做神經元的東西構成,神經網絡是對大腦的簡單的數學表達。
- 每一個神經元都有輸入、處理函數和輸出。
- 神經元組合起來形成了網絡,可以擬合任何函數。
- 為了得到最佳的神經網絡,我們用梯度下降方法不斷更新模型
給定上述關于神經網絡的描述,什么情況下神經網絡模型被稱為深度學習模型?
A. 加入更多層,使神經網絡的深度增加
B. 有維度更高的數據
C. 當這是一個圖形識別的問題時
D. 以上都不正確
答案:(A)
更多層意味著網絡更深。沒有嚴格的定義多少層的模型才叫深度模型,目前如果有超過2層的隱層,那么也可以及叫做深度模型。
142.卷積神經網絡可以對一個輸入進行多種變換(旋轉、平移、縮放),這個表述正確嗎?
答案:錯誤
把數據傳入神經網絡之前需要做一系列數據預處理(也就是旋轉、平移、縮放)工作,神經網絡本身不能完成這些變換。
143.下面哪項操作能實現跟神經網絡中Dropout的類似效果?(B)
A. Boosting
B. Bagging
C. Stacking
D. Mapping
答案:B
Dropout可以認為是一種極端的Bagging,每一個模型都在單獨的數據上訓練,同時,通過和其他模型對應參數的共享,從而實現模型參數的高度正則化。
144.下列哪一項在神經網絡中引入了非線性?(B)
A. 隨機梯度下降
B. 修正線性單元(ReLU)
C. 卷積函數
D .以上都不正確
答案:(B)
修正線性單元是非線性的激活函數。
145.在訓練神經網絡時,損失函數(loss)在最初的幾個epochs時沒有下降,可能的原因是?(A)
A. 學習率(learning rate)太低
B. 正則參數太高
C. 陷入局部最小值
D. 以上都有可能
答案:(A)
146.下列哪項關于模型能力(model capacity)的描述是正確的?(指神經網絡模型能擬合復雜函數的能力)(A)
A. 隱藏層層數增加,模型能力增加
B. Dropout的比例增加,模型能力增加
C. 學習率增加,模型能力增加
D. 都不正確
答案:(A)
147.如果增加多層感知機(Multilayer Perceptron)的隱藏層層數,分類誤差便會減小。這種陳述正確還是錯誤?
答案:錯誤
并不總是正確。過擬合可能會導致錯誤增加。
148.構建一個神經網絡,將前一層的輸出和它自身作為輸入。下列哪一種架構有反饋連接?(A)
A. 循環神經網絡
B. 卷積神經網絡
C. 限制玻爾茲曼機
D. 都不是
答案:(A)
149.下列哪一項在神經網絡中引入了非線性?在感知機中(Perceptron)的任務順序是什么?
1.隨機初始化感知機的權重
2.去到數據集的下一批(batch)
3.如果預測值和輸出不一致,則調整權重
4.對一個輸入樣本,計算輸出值
答案:1 - 4 - 3 - 2
150.假設你需要調整參數來最小化代價函數(cost function),可以使用下列哪項技術?(D)
A. 窮舉搜索
B. 隨機搜索
C. Bayesian優化
D. 以上任意一種
答案:(D)
151.在下面哪種情況下,一階梯度下降不一定正確工作(可能會卡住)?(B)
答案:(B)
這是鞍點(Saddle Point)的梯度下降的經典例子。另,本題來源于:題目來源
https://www.analyticsvidhya.com/blog/2017/01/must-know-questions-deep-learning/
152.下圖顯示了訓練過的3層卷積神經網絡準確度,與參數數量(特征核的數量)的關系。
從圖中趨勢可見,如果增加神經網絡的寬度,精確度會增加到一個特定閾值后,便開始降低。造成這一現象的可能原因是什么?(C)
A. 即使增加卷積核的數量,只有少部分的核會被用作預測
B. 當卷積核數量增加時,神經網絡的預測能力(Power)會降低
C. 當卷積核數量增加時,它們之間的相關性增加(correlate),導致過擬合
D. 以上都不正確
答案:(C)
如C選項指出的那樣,可能的原因是核之間的相關性。
153.假設我們有一個如下圖所示的隱藏層。隱藏層在這個網絡中起到了一定的降維作用。假如現在我們用另一種維度下降的方法,比如說主成分分析法(PCA)來替代這個隱藏層。那么,這兩者的輸出效果是一樣的嗎?
答案:不同,因為PCA用于相關特征而隱層用于有預測能力的特征。
154.神經網絡能組成函數(y=1xy=1x)嗎?
答案:可以,因為激活函數可以是互反函數。
155.下列哪個神經網絡結構會發生權重共享?(D)
A. 卷積神經網絡
B. 循環神經網絡
C. 全連接神經網絡
D. 選項A和B
答案:(D)
156.批規范化(Batch Normalization)的好處都有啥?(A)
A. 在將所有的輸入傳遞到下一層之前對其進行歸一化(更改)
B. 它將權重的歸一化平均值和標準差
C. 它是一種非常有效的反向傳播(BP)方法
D. 這些均不是
答案:(A)
157.在一個神經網絡中,下面哪種方法可以用來處理過擬合?(D)
A. Dropout
B. 分批歸一化(Batch Normalization)
C. 正則化(regularization)
D. 都可以
答案:(D)
158.如果我們用了一個過大的學習速率會發生什么?(D)
A. 神經網絡會收斂
B. 不好說
C. 都不對
D. 神經網絡不會收斂
答案:(D)
159.下圖所示的網絡用于訓練識別字符H和T,如下所示:
網絡的輸出是什么?(D)
D.可能是A或B,取決于神經網絡的權重設置
答案:(D)
不知道神經網絡的權重和偏差是什么,則無法判定它將會給出什么樣的輸出。
160.假設我們已經在ImageNet數據集(物體識別)上訓練好了一個卷積神經網絡。然后給這張卷積神經網絡輸入一張全白的圖片。對于這個輸入的輸出結果為任何種類的物體的可能性都是一樣的,對嗎?(D)
A. 對的
B. 不知道
C. 看情況
D. 不對
答案:(D)各個神經元的反應是不一樣的
161.當在卷積神經網絡中加入池化層(pooling layer)時,變換的不變性會被保留,是嗎?(C)
A. 不知道
B. 看情況
C. 是
D. 否
答案:(C)使用池化時會導致出現不變性。
162.當數據過大以至于無法在RAM中同時處理時,哪種梯度下降方法更加有效?(A)
A. 隨機梯度下降法(Stochastic Gradient Descent)
B. 不知道
C. 整批梯度下降法(Full Batch Gradient Descent)
D. 都不是
答案:(A)
163.下圖是一個利用sigmoid函數作為激活函數的含四個隱藏層的神經網絡訓練的梯度下降圖。這個神經網絡遇到了梯度消失的問題。下面哪個敘述是正確的?(A)
A. 第一隱藏層對應D,第二隱藏層對應C,第三隱藏層對應B,第四隱藏層對應A
B. 第一隱藏層對應A,第二隱藏層對應C,第三隱藏層對應B,第四隱藏層對應D
C. 第一隱藏層對應A,第二隱藏層對應B,第三隱藏層對應C,第四隱藏層對應D
D. 第一隱藏層對應B,第二隱藏層對應D,第三隱藏層對應C,第四隱藏層對應A
答案:(A)由于反向傳播算法進入起始層,學習能力降低,這就是梯度消失。
164.對于一個分類任務,如果開始時神經網絡的權重不是隨機賦值的,二是都設成0,下面哪個敘述是正確的?(C)
A. 其他選項都不對
B. 沒啥問題,神經網絡會正常開始訓練
C. 神經網絡可以訓練,但是所有的神經元最后都會變成識別同樣的東西
D. 神經網絡不會開始訓練,因為沒有梯度改變
答案:(C)
165.下圖顯示,當開始訓練時,誤差一直很高,這是因為神經網絡在往全局最小值前進之前一直被卡在局部最小值里。為了避免這種情況,我們可以采取下面哪種策略?(A)
A. 改變學習速率,比如一開始的幾個訓練周期不斷更改學習速率
B. 一開始將學習速率減小10倍,然后用動量項(momentum)
C. 增加參數數目,這樣神經網絡就不會卡在局部最優處
D. 其他都不對
答案:(A)
選項A可以將陷于局部最小值的神經網絡提取出來。
166.對于一個圖像識別問題(在一張照片里找出一只貓),下面哪種神經網絡可以更好地解決這個問題?(D)
A. 循環神經網絡
B. 感知機
C. 多層感知機
D. 卷積神經網絡
卷積神經網絡將更好地適用于圖像相關問題,因為考慮到圖像附近位置變化的固有性質。
答案:(D)
167.假設在訓練中我們突然遇到了一個問題,在幾次循環之后,誤差瞬間降低。你認為數據有問題,于是你畫出了數據并且發現也許是數據的偏度過大造成了這個問題。
你打算怎么做來處理這個問題?(D)
A. 對數據作歸一化
B. 對數據取對數變化
C. 都不對
D. 對數據作主成分分析(PCA)和歸一化
答案:(D)
首先將相關的數據去掉,然后將其置零。
168.下面那個決策邊界是神經網絡生成的?(E)
A. A
B. D
C. C
D. B
E. 以上都有
答案:(E)
169.在下圖中,我們可以觀察到誤差出現了許多小的”漲落”。 這種情況我們應該擔心嗎?(B)
A. 需要,這也許意味著神經網絡的學習速率存在問題
B. 不需要,只要在訓練集和交叉驗證集上有累積的下降就可以了
C. 不知道
D. 不好說
答案:(B)
選項B是正確的,為了減少這些“起伏”,可以嘗試增加批尺寸(batch size)。
170.在選擇神經網絡的深度時,下面那些參數需要考慮?(C)
1 神經網絡的類型(如MLP,CNN)
2 輸入數據
3 計算能力(硬件和軟件能力決定)
4 學習速率
5 映射的輸出函數
A. 1,2,4,5
B. 2,3,4,5
C. 都需要考慮
D. 1,3,4,5
答案:(C)
所有上述因素對于選擇神經網絡模型的深度都是重要的。
171.考慮某個具體問題時,你可能只有少量數據來解決這個問題。不過幸運的是你有一個類似問題已經預先訓練好的神經網絡。可以用下面哪種方法來利用這個預先訓練好的網絡?(C)
A. 把除了最后一層外所有的層都凍住,重新訓練最后一層
B. 對新數據重新訓練整個模型
C. 只對最后幾層進行調參(fine tune)
D. 對每一層模型進行評估,選擇其中的少數來用
答案:(C)
172.增加卷積核的大小對于改進卷積神經網絡的效果是必要的嗎?
答案:不是,增加核函數的大小不一定會提高性能。這個問題在很大程度上取決于數據集。
173.請簡述神經網絡的發展史。
@SIY.Z。本題解析來源:
淺析 Hinton 最近提出的 Capsule 計劃
https://zhuanlan.zhihu.com/p/29435406
174.說說spark的性能調優。
https://tech.meituan.com/spark-tuning-basic.html
https://tech.meituan.com/spark-tuning-pro.html
175.機器學習中,有哪些特征選擇的工程方法?
數據和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已
1.計算每一個特征與響應變量的相關性:工程上常用的手段有計算皮爾遜系數和互信息系數,皮爾遜系數只能衡量線性相關性而互信息系數能夠很好地度量各種相關性,但是計算相對復雜一些,好在很多toolkit里邊都包含了這個工具(如sklearn的MINE),得到相關性之后就可以排序選擇特征了;
2.構建單個特征的模型,通過模型的準確性為特征排序,借此來選擇特征;
3.通過L1正則項來選擇特征:L1正則方法具有稀疏解的特性,因此天然具備特征選擇的特性,但是要注意,L1沒有選到的特征不代表不重要,原因是兩個具有高相關性的特征可能只保留了一個,如果要確定哪個特征重要應再通過L2正則方法交叉檢驗*;
4.訓練能夠對特征打分的預選模型:RandomForest和Logistic Regression等都能對模型的特征打分,通過打分獲得相關性后再訓練最終模型;
5.通過特征組合后再來選擇特征:如對用戶id和用戶特征最組合來獲得較大的特征集再來選擇特征,這種做法在推薦系統和廣告系統中比較常見,這也是所謂億級甚至十億級特征的主要來源,原因是用戶數據比較稀疏,組合特征能夠同時兼顧全局模型和個性化模型,這個問題有機會可以展開講。
6.通過深度學習來進行特征選擇:目前這種手段正在隨著深度學習的流行而成為一種手段,尤其是在計算機視覺領域,原因是深度學習具有自動學習特征的能力,這也是深度學習又叫unsupervised feature learning的原因。從深度學習模型中選擇某一神經層的特征后就可以用來進行最終目標模型的訓練了。
176.常見的分類算法有哪些?
SVM、神經網絡、隨機森林、邏輯回歸、KNN、貝葉斯
177.常見的監督學習算法有哪些?
感知機、SVM、人工神經網絡、決策樹、邏輯回歸
178.在其他條件不變的前提下,以下哪種做法容易引起機器學習中的過擬合問題(D)
A. 增加訓練集量
B. 減少神經網絡隱藏層節點數
C. 刪除稀疏的特征
D. SVM算法中使用高斯核/RBF核代替線性核
正確答案:(D)
@劉炫320
一般情況下,越復雜的系統,過擬合的可能性就越高,一般模型相對簡單的話泛化能力會更好一點。
B.一般認為,增加隱層數可以降低網絡誤差(也有文獻認為不一定能有效降低),提高精度,但也使網絡復雜化,從而增加了網絡的訓練時間和出現“過擬合”的傾向, svm高斯核函數比線性核函數模型更復雜,容易過擬合
D.徑向基(RBF)核函數/高斯核函數的說明,這個核函數可以將原始空間映射到無窮維空間。對于參數 ,如果選的很大,高次特征上的權重實際上衰減得非常快,實際上(數值上近似一下)相當于一個低維的子空間;反過來,如果選得很小,則可以將任意的數據映射為線性可分——當然,這并不一定是好事,因為隨之而來的可能是非常嚴重的過擬合問題。不過,總的來說,通過調整參數 ,高斯核實際上具有相當高的靈活性,也是 使用最廣泛的核函數之一。
179.下列時間序列模型中,哪一個模型可以較好地擬合波動性的分析和預測?(D)
A. AR模型
B. MA模型
C. ARMA模型
D. GARCH模型
正確答案:(D)
@劉炫320
R模型是一種線性預測,即已知N個數據,可由模型推出第N點前面或后面的數據(設推出P點),所以其本質類似于插值。
MA模型(moving average model)滑動平均模型,其中使用趨勢移動平均法建立直線趨勢的預測模型。
ARMA模型(auto regressive moving average model)自回歸滑動平均模型,模型參量法高分辨率譜分析方法之一。這種方法是研究平穩隨機過程有理譜的典型方法。它比AR模型法與MA模型法有較精確的譜估計及較優良的譜分辨率性能,但其參數估算比較繁瑣。
GARCH模型稱為廣義ARCH模型,是ARCH模型的拓展,由Bollerslev(1986)發展起來的。它是ARCH模型的推廣。GARCH(p,0)模型,相當于ARCH(p)模型。GARCH模型是一個專門針對金融數據所量體訂做的回歸模型,除去和普通回歸模型相同的之處,GARCH對誤差的方差進行了進一步的建模。特別適用于波動性的分析和預測,這樣的分析對投資者的決策能起到非常重要的指導性作用,其意義很多時候超過了對數值本身的分析和預測。
180.以下哪個屬于線性分類器最佳準則?(ACD)
A. 感知準則函數
B.貝葉斯分類
C.支持向量機
D.Fisher準則
正確答案:(ACD)
@劉炫320
線性分類器有三大類:感知器準則函數、SVM、Fisher準則,而貝葉斯分類器不是線性分類器。
感知準則函數 :準則函數以使錯分類樣本到分界面距離之和最小為原則。其優點是通過錯分類樣本提供的信息對分類器函數進行修正,這種準則是人工神經元網絡多層感知器的基礎。
支持向量機 :基本思想是在兩類線性可分條件下,所設計的分類器界面使兩類之間的間隔為最大,它的基本出發點是使期望泛化風險盡可能小。(使用核函數可解決非線性問題)
Fisher 準則 :更廣泛的稱呼是線性判別分析(LDA),將所有樣本投影到一條遠點出發的直線,使得同類樣本距離盡可能小,不同類樣本距離盡可能大,具體為最大化“廣義瑞利商”。
根據兩類樣本一般類內密集,類間分離的特點,尋找線性分類器最佳的法線向量方向,使兩類樣本在該方向上的投影滿足類內盡可能密集,類間盡可能分開。這種度量通過類內離散矩陣SwSw和類間離散矩陣SbSb實現。
181.基于二次準則函數的H-K算法較之于感知器算法的優點是(BD)?
A. 計算量小
B. 可以判別問題是否線性可分
C. 其解完全適用于非線性可分的情況
D. 其解的適應性更好
正確答案:(BD)
@劉炫320
HK算法思想很樸實,就是在最小均方誤差準則下求得權矢量。
他相對于感知器算法的優點在于,他適用于線性可分和非線性可分得情況,對于線性可分的情況,給出最優權矢量,對于非線性可分得情況,能夠判別出來,以退出迭代過程。
182.以下說法中正確的是(BD)?
A. SVM對噪聲(如來自其他分布的噪聲樣本)魯棒
B. 在AdaBoost算法中,所有被分錯的樣本的權重更新比例相同
C. Boosting和Bagging都是組合多個分類器投票的方法,二者都是根據單個分類器的正確率決定其權重
D. 給定n個數據點,如果其中一半用于訓練,一般用于測試,則訓練誤差和測試誤差之間的差別會隨著n的增加而減少
正確答案:(BD)
@劉炫320
A、SVM對噪聲(如來自其他分布的噪聲樣本)魯棒
SVM本身對噪聲具有一定的魯棒性,但實驗證明,是當噪聲率低于一定水平的噪聲對SVM沒有太大影響,但隨著噪聲率的不斷增加,分類器的識別率會降低。
B、在AdaBoost算法中所有被分錯的樣本的權重更新比例相同
AdaBoost算法中不同的訓練集是通過調整每個樣本對應的權重來實現的。開始時,每個樣本對應的權重是相同的,即其中n為樣本個數,在此樣本分布下訓練出一弱分類器。對于分類錯誤的樣本,加大其對應的權重;而對于分類正確的樣本,降低其權重,這樣分錯的樣本就被凸顯出來,從而得到一個新的樣本分布。在新的樣本分布下,再次對樣本進行訓練,得到弱分類器。以此類推,將所有的弱分類器重疊加起來,得到強分類器。
C、Boost和Bagging都是組合多個分類器投票的方法,二者均是根據單個分類器的正確率決定其權重。
Bagging與Boosting的區別:
取樣方式不同。
Bagging采用均勻取樣,而Boosting根據錯誤率取樣。
Bagging的各個預測函數沒有權重,而Boosting是有權重的。
Bagging的各個預測函數可以并行生成,而Boosing的各個預測函數只能順序生成。
183.輸入圖片大小為200×200,依次經過一層卷積(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,padding 0,stride 1),又一層卷積(kernel size 3×3,padding 1,stride 1)之后,輸出特征圖大小為(C):
A. 95
B. 96
C. 97
D. 98
正確答案:(C)
@劉炫320
首先我們應該知道卷積或者池化后大小的計算公式:
out_height=((input_height - filter_height + padding_top+padding_bottom)/stride_height )+1
out_width=((input_width - filter_width + padding_left+padding_right)/stride_width )+1
其中,padding指的是向外擴展的邊緣大小,而stride則是步長,即每次移動的長度。
這樣一來就容易多了,首先長寬一般大,所以我們只需要計算一個維度即可,這樣,經過第一次卷積后的大小為: (200-5+2)/2+1,取99;經過第一次池化后的大小為:(99-3)/1+1 為97;經過第二次卷積后的大小為: (97-3+2)/1+1 為97。
184.在SPSS的基礎分析模塊中,作用是“以行列表的形式揭示數據之間的關系”的是(C)
A. 數據描述
B. 相關
C. 交叉表
D. 多重相應
正確答案:(C )
185.一監獄人臉識別準入系統用來識別待進入人員的身份,此系統一共包括識別4種不同的人員:獄警,小偷,送餐員,其他。下面哪種學習方法最適合此種應用需求:(B)。
A. 二分類問題
B. 多分類問題
C. 層次聚類問題
D. k-中心點聚類問題
E. 回歸問題
F. 結構分析問題
正確答案:(B)
@劉炫320
二分類:每個分類器只能把樣本分為兩類。監獄里的樣本分別為獄警、小偷、送餐員、其他。二分類肯 定行不通。瓦普尼克95年提出來基礎的支持向量機就是個二分類的分類器,這個分類器學習過 程就是解一個基于正負二分類推導而來的一個最優規劃問題(對偶問題),要解決多分類問題 就要用決策樹把二分類的分類器級聯,VC維的概念就是說的這事的復雜度。
層次聚類: 創建一個層次等級以分解給定的數據集。監獄里的對象分別是獄警、小偷、送餐員、或者其 他,他們等級應該是平等的,所以不行。此方法分為自上而下(分解)和自下而上(合并)兩種操作方式。
K-中心點聚類:挑選實際對象來代表簇,每個簇使用一個代表對象。它是圍繞中心點劃分的一種規則,所以這里并不合適。
回歸分析:處理變量之間具有相關性的一種統計方法,這里的獄警、小偷、送餐員、其他之間并沒有什 么直接關系。
結構分析: 結構分析法是在統計分組的基礎上,計算各組成部分所占比重,進而分析某一總體現象的內部結構特征、總體的性質、總體內部結構依時間推移而表現出的變化規律性的統計方法。結構分析法的基本表現形式,就是計算結構指標。這里也行不通。
多分類問題: 針對不同的屬性訓練幾個不同的弱分類器,然后將它們集成為一個強分類器。這里獄警、 小偷、送餐員 以及他某某,分別根據他們的特點設定依據,然后進行區分識別。
186.關于 Logit 回歸和 SVM 不正確的是(A)。
A. Logit回歸目標函數是最小化后驗概率
B. Logit回歸可以用于預測事件發生概率的大小
C. SVM目標是結構風險最小化
D. SVM可以有效避免模型過擬合
正確答案:(A)
@劉炫320
A. Logit回歸本質上是一種根據樣本對權值進行極大似然估計的方法,而后驗概率正比于先驗概率和似然函數的乘積。logit僅僅是最大化似然函數,并沒有最大化后驗概率,更談不上最小化后驗概率。而最小化后驗概率是樸素貝葉斯算法要做的。A錯誤
B. Logit回歸的輸出就是樣本屬于正類別的幾率,可以計算出概率,正確
C. SVM的目標是找到使得訓練數據盡可能分開且分類間隔最大的超平面,應該屬于結構風險最小化。
D. SVM可以通過正則化系數控制模型的復雜度,避免過擬合。
187.有兩個樣本點,第一個點為正樣本,它的特征向量是(0,-1);第二個點為負樣本,它的特征向量是(2,3),從這兩個樣本點組成的訓練集構建一個線性SVM分類器的分類面方程是(C)
A. 2x+y=4
B. x+2y=5
C. x+2y=3
D. 2x-y=0
正確答案:(C)
解析:這道題簡化了,對于兩個點來說,最大間隔就是垂直平分線,因此求出垂直平分線即可。
188.下面有關分類算法的準確率,召回率,F1 值的描述,錯誤的是?(C)
A. 準確率是檢索出相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統的查準率
B. 召回率是指檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率,衡量的是檢索系統的查全率
C. 正確率、召回率和 F 值取值都在0和1之間,數值越接近0,查準率或查全率就越高
D. 為了解決準確率和召回率沖突問題,引入了F1分數
正確答案:(C)
解析:對于二類分類問題常用的評價指標是精準度(precision)與召回率(recall)。通常以關注的類為正類,其他類為負類,分類器在測試數據集上的預測或正確或不正確,4種情況出現的總數分別記作:
TP——將正類預測為正類數
FN——將正類預測為負類數
FP——將負類預測為正類數
TN——將負類預測為負類數
由此:
精準率定義為:P = TP / (TP + FP)
召回率定義為:R = TP / (TP + FN)
F1值定義為: F1 = 2 P R / (P + R)
精準率和召回率和F1取值都在0和1之間,精準率和召回率高,F1值也會高,不存在數值越接近0越高的說法,應該是數值越接近1越高。
189.以下幾種模型方法屬于判別式模型(Discriminative Model)的有(A)
1)混合高斯模型 2)條件隨機場模型
3)區分度訓練 4)隱馬爾科夫模型
A. 2,3
B. 3,4
C. 1,4
D. 1,2
正確答案:(A)
@劉炫320
常見的判別式模型有:Logistic Regression(Logistical 回歸)
Linear discriminant analysis(線性判別分析)
Supportvector machines(支持向量機)
Boosting(集成學習)
Conditional random fields(條件隨機場)
Linear regression(線性回歸)
Neural networks(神經網絡)
常見的生成式模型有:Gaussian mixture model and othertypes of mixture model(高斯混合及其他類型混合模型)
Hidden Markov model(隱馬爾可夫)
NaiveBayes(樸素貝葉斯)
AODE(平均單依賴估計)
Latent Dirichlet allocation(LDA主題模型)
Restricted Boltzmann Machine(限制波茲曼機)
生成式模型是根據概率乘出結果,而判別式模型是給出輸入,計算出結果。
190.SPSS中,數據整理的功能主要集中在(AD )等菜單中。
A. 數據
B. 直銷
C. 分析
D. 轉換
正確答案:(AD )
@劉炫320
解析:對數據的整理主要在數據和轉換功能菜單中。
191.深度學習是當前很熱門的機器學習算法,在深度學習中,涉及到大量的矩陣相乘,現在需要計算三個稠密矩陣A,B,C的乘積ABC,假設三個矩陣的尺寸分別為m?n,n?p,p?q,且m
A. (AB)C
B. AC(B)
C. A(BC)
D. 所以效率都相同
正確答案:(A)
@劉炫320
首先,根據簡單的矩陣知識,因為 A*B , A 的列數必須和 B 的行數相等。因此,可以排除 B 選項。
然后,再看 A 、 C 選項。在 A 選項中,m?n 的矩陣 A 和n?p的矩陣 B 的乘積,得到 m?p的矩陣 A*B ,而 A?B的每個元素需要 n 次乘法和 n-1 次加法,忽略加法,共需要 m?n?p次乘法運算。同樣情況分析 A*B 之后再乘以 C 時的情況,共需要 m?p?q次乘法運算。因此, A 選項 (AB)C 需要的乘法次數是 m?n?p+m?p?q 。同理分析, C 選項 A (BC) 需要的乘法次數是 n?p?q+m?n?q。
由于m?n?p
192.Nave Bayes是一種特殊的Bayes分類器,特征變量是X,類別標簽是C,它的一個假定是:( C )
A. 各類別的先驗概率P(C)是相等的
B. 以0為均值,sqr(2)/2為標準差的正態分布
C. 特征變量X的各個維度是類別條件獨立隨機變量
D. P(X|C)是高斯分布
正確答案:( C )
@劉炫320
樸素貝葉斯的條件就是每個變量相互獨立。
193.關于支持向量機SVM,下列說法錯誤的是(C)
A. L2正則項,作用是最大化分類間隔,使得分類器擁有更強的泛化能力
B. Hinge 損失函數,作用是最小化經驗分類錯誤
C. 分類間隔為1||w||1||w||,||w||代表向量的模
D. 當參數C越小時,分類間隔越大,分類錯誤越多,趨于欠學習
正確答案:(C)
@劉炫320
A正確。考慮加入正則化項的原因:想象一個完美的數據集,y>1是正類,y<-1是負類,決策面y=0,加入一個y=-30的正類噪聲樣本,那么決策面將會變“歪”很多,分類間隔變小,泛化能力減小。加入正則項之后,對噪聲樣本的容錯能力增強,前面提到的例子里面,決策面就會沒那么“歪”了,使得分類間隔變大,提高了泛化能力。
B正確。
C錯誤。間隔應該是2||w||2||w||才對,后半句應該沒錯,向量的模通常指的就是其二范數。
D正確。考慮軟間隔的時候,C對優化問題的影響就在于把a的范圍從[0,+inf]限制到了[0,C]。C越小,那么a就會越小,目標函數拉格朗日函數導數為0可以求出w=∑iai?yi?xiw=∑iai?yi?xi,a變小使得w變小,因此間隔2||w||2||w||變大。
194.在HMM中,如果已知觀察序列和產生觀察序列的狀態序列,那么可用以下哪種方法直接進行參數估計( D )
A. EM算法
B. 維特比算法
C. 前向后向算法
D. 極大似然估計
正確答案:( D )
@劉炫320
EM算法: 只有觀測序列,無狀態序列時來學習模型參數,即Baum-Welch算法
維特比算法: 用動態規劃解決HMM的預測問題,不是參數估計
前向后向算法:用來算概率
極大似然估計:即觀測序列和相應的狀態序列都存在時的監督學習算法,用來估計參數
注意的是在給定觀測序列和對應的狀態序列估計模型參數,可以利用極大似然發估計。如果給定觀測序列,沒有對應的狀態序列,才用EM,將狀態序列看不不可測的隱數據。
195.假定某同學使用Naive Bayesian(NB)分類模型時,不小心將訓練數據的兩個維度搞重復了,那么關于NB的說法中正確的是:(BD)
A. 這個被重復的特征在模型中的決定作用會被加強
B. 模型效果相比無重復特征的情況下精確度會降低
C. 如果所有特征都被重復一遍,得到的模型預測結果相對于不重復的情況下的模型預測結果一樣。
D. 當兩列特征高度相關時,無法用兩列特征相同時所得到的結論來分析問題
E. NB可以用來做最小二乘回歸
F. 以上說法都不正確
正確答案:(BD)
196.L1與L2范數在Logistic Regression 中,如果同時加入L1和L2范數,會產生什么效果( A )。
A. 可以做特征選擇,并在一定程度上防止過擬合
B. 能解決維度災難問題
C. 能加快計算速度
D. 可以獲得更準確的結果
正確答案:( A )
@劉炫320
L1范數具有系數解的特性,但是要注意的是,L1沒有選到的特征不代表不重要,原因是兩個高相關性的特征可能只保留一個。如果需要確定哪個特征重要,再通過交叉驗證。
在代價函數后面加上正則項,L1即是Losso回歸,L2是嶺回歸。L1范數是指向量中各個元素絕對值之和,用于特征選擇。L2范數 是指向量各元素的平方和然后求平方根,用于 防止過擬合,提升模型的泛化能力。因此選擇A。
對于機器學習中的范數規則化,也就是L0,L1,L2范數的詳細解答,請參閱范數規則化。
197.機器學習中L1正則化和L2正則化的區別是?(AD)
A. 使用L1可以得到稀疏的權值
B. 使用L1可以得到平滑的權值
C. 使用L2可以得到稀疏的權值
D. 使用L2可以得到平滑的權值
正確答案:(AD)
@劉炫320
L1正則化偏向于稀疏,它會自動進行特征選擇,去掉一些沒用的特征,也就是將這些特征對應的權重置為0。
L2主要功能是為了防止過擬合,當要求參數越小時,說明模型越簡單,而模型越簡單則,越趨向于平滑,從而防止過擬合。
L1正則化/Lasso
L1正則化將系數w的L1范數作為懲罰項加到損失函數上,由于正則項非零,這就迫使那些弱的特征所對應的系數變成0。因此L1正則化往往會使學到的模型很稀疏(系數w經常為0),這個特性使得L1正則化成為一種很好的特征選擇方法。
L2正則化/Ridge regression
L2正則化將系數向量的L2范數添加到了損失函數中。由于L2懲罰項中系數是二次方的,這使得L2和L1有著諸多差異,最明顯的一點就是,L2正則化會讓系數的取值變得平均。對于關聯特征,這意味著他們能夠獲得更相近的對應系數。還是以Y=X1+X2Y=X1+X2為例,假設X1X1和X1X1具有很強的關聯,如果用L1正則化,不論學到的模型是Y=X1+X2Y=X1+X2還是Y=2X1Y=2X1,懲罰都是一樣的,都是2α2α。但是對于L2來說,第一個模型的懲罰項是2α2α,但第二個模型的是4α4α。可以看出,系數之和為常數時,各系數相等時懲罰是最小的,所以才有了L2會讓各個系數趨于相同的特點。
可以看出,L2正則化對于特征選擇來說一種穩定的模型,不像L1正則化那樣,系數會因為細微的數據變化而波動。所以L2正則化和L1正則化提供的價值是不同的,L2正則化對于特征理解來說更加有用:表示能力強的特征對應的系數是非零。
因此,一句話總結就是:L1會趨向于產生少量的特征,而其他的特征都是0,而L2會選擇更多的特征,這些特征都會接近于0。Lasso在特征選擇時候非常有用,而Ridge就只是一種規則化而已。
198.位勢函數法的積累勢函數K(x)的作用相當于Bayes判決中的( AD )
A. 后驗概率
B. 先驗概率
C. 類概率密度
D. 類概率密度與先驗概率的乘積
正確答案: (AD)
@劉炫320
事實上,AD說的是一回事。
參考鏈接:勢函數主要用于確定分類面,其思想來源于物理。
199.隱馬爾可夫模型三個基本問題以及相應的算法說法正確的是( ABC)
A. 評估—前向后向算法
B. 解碼—維特比算法
C. 學習—Baum-Welch算法
D. 學習—前向后向算法
正確答案: ( ABC)
解析:評估問題,可以使用前向算法、后向算法、前向后向算法。
200.特征比數據量還大時,選擇什么樣的分類器?
答案:線性分類器,因為維度高的時候,數據一般在維度空間里面會比較稀疏,很有可能線性可分。
-
函數
+關注
關注
3文章
4327瀏覽量
62571 -
機器學習
+關注
關注
66文章
8406瀏覽量
132562 -
tensorflow
+關注
關注
13文章
329瀏覽量
60527
原文標題:1000面試題,BAT機器學習面試刷題寶典
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論