101.深度學習(CNN RNN Attention)解決大規模文本分類問題。
用深度學習(CNN RNN Attention)解決大規模文本分類問題 - 綜述和實踐
102.如何解決RNN梯度爆炸和彌散的問題的?
深度學習與自然語言處理(7)_斯坦福cs224d 語言模型,RNN,LSTM與GRU
103.如何提高深度學習的性能?
104.RNN、LSTM、GRU區別?
@我愛大泡泡,本題解析來源:
105.當機器學習性能遭遇瓶頸時,你會如何優化的?
可以從這4個方面進行嘗試:基于數據、借助算法、用算法調參、借助模型融合。當然能談多細多深入就看你的經驗心得了。
這里有一份參考清單:機器學習系列(20)_機器學習性能改善備忘單
106.做過什么樣的機器學習項目?比如如何從零構建一個推薦系統?
推薦系統的公開課http://www.julyedu.com/video/play/18/148,另,再推薦一個課程:機器學習項目班 [10次純項目講解,100%純實戰](https://www.julyedu.com/course/getDetail/48)。
107.什么樣的資料集不適合用深度學習?
@抽象猴,來源:
108.廣義線性模型是怎被應用在深度學習中?
@許韓,來源:
109.準備機器學習面試應該了解哪些理論知識?
110.標準化與歸一化的區別?
簡單來說,標準化是依照特征矩陣的列處理數據,其通過求z-score的方法,將樣本的特征值轉換到同一量綱下。歸一化是依照特征矩陣的行處理數據,其目的在于樣本向量在點乘運算或其他核函數計算相似性時,擁有統一的標準,也就是說都轉化為“單位向量”。規則為L2的歸一化公式如下:
特征向量的缺失值處理:
1.缺失值較多.直接將該特征舍棄掉,否則可能反倒會帶入較大的noise,對結果造成不良影響。
2.缺失值較少,其余的特征缺失值都在10%以內,我們可以采取很多的方式來處理:
- 把NaN直接作為一個特征,假設用0表示;
- 用均值填充;
- 用隨機森林等算法預測填充
111.隨機森林如何處理缺失值。
方法一(na.roughfix)簡單粗暴,對于訓練集,同一個class下的數據,如果是分類變量缺失,用眾數補上,如果是連續型變量缺失,用中位數補。
方法二(rfImpute)這個方法計算量大,至于比方法一好壞?不好判斷。先用na.roughfix補上缺失值,然后構建森林并計算proximity matrix,再回頭看缺失值,如果是分類變量,則用沒有陣進行加權平均的方法補缺失值。然后迭代4-6次,這個補缺失值的思想和KNN有些類似1缺失的觀測實例的proximity中的權重進行投票。如果是連續型變量,則用proximity矩2。
112.隨機森林如何評估特征重要性。
衡量變量重要性的方法有兩種,Decrease GINI 和 Decrease Accuracy:
- Decrease GINI: 對于回歸問題,直接使用argmax(VarVarLeftVarRight)作為評判標準,即當前節點訓練集的方差Var減去左節點的方差VarLeft和右節點的方差VarRight。
- 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這三個激活函數有什么缺點或不足,有沒改進的激活函數?
@我愛大泡泡,來源:
122.怎么理解決策樹、xgboost能處理缺失值?而有的模型(svm)對缺失值比較敏感?
123.為什么引入非線性激勵函數?
@Begin Again,來源:
如果不用激勵函數(其實相當于激勵函數是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數,很容易驗證,無論你神經網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了。
正因為上面的原因,我們決定引入非線性函數作為激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。最早的想法是Sigmoid函數或者Tanh函數,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋)。
124.請問人工神經網絡中為什么ReLu要好過于Tanh和Sigmoid function?
@Begin Again,來源:
125.為什么LSTM模型中既存在Sigmoid又存在Tanh兩種激活函數?
本題解析來源:知乎解答
@beanfrog:二者目的不一樣:sigmoid 用在了各種gate上,產生0~1之間的值,這個一般只有sigmoid最直接了。tanh 用在了狀態和輸出上,是對數據的處理,這個用其他激活函數或許也可以。
@hhhh:另可參見A Critical Review of Recurrent Neural Networks for Sequence Learning的section4.1,說了那兩個tanh都可以替換成別的。
126.衡量分類器的好壞。
@我愛大泡泡,來源:
這里首先要知道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的物理意義是什么?
128.觀察增益gain, alpha和gamma越大,增益越小?
@AntZ:XGBoost尋找分割點的標準是最大化gain. 考慮傳統的枚舉每個特征的所有可能分割點的貪心法效率太低,XGBoost實現了一種近似的算法。大致的思想是根據百分位法列舉幾個可能成為分割點的候選者,然后從候選者中計算Gain按最大值找出最佳的分割點。它的計算公式分為四項, 可以由正則化項參數調整(lamda為葉子權重平方和的系數, gama為葉子數量):
第一項是假設分割的左孩子的權重分數, 第二項為右孩子, 第三項為不分割總體分數, 最后一項為引入一個節點的復雜度損失。
由公式可知, gama越大gain越小, lamda越大, gain可能小也可能大。
原問題是alpha而不是lambda, 這里paper上沒有提到, XGBoost實現上有這個參數. 上面是我從paper上理解的答案,下面是搜索到的:
129.什么造成梯度消失問題? 推導一下。
@許韓,來源:
神經網絡的訓練中,通過改變神經元的權重,使網絡的輸出值盡可能逼近標簽以降低誤差值,訓練普遍使用BP算法,核心思想是,計算出輸出與標簽間的損失函數值,然后計算其相對于每個神經元的梯度,進行權值的迭代。
梯度消失會造成權值更新緩慢,模型訓練難度增加。造成梯度消失的一個原因是,許多激活函數將輸出值擠壓在很小的區間內,在激活函數兩端較大范圍的定義域內梯度為0,造成學習停止。
130.什么是梯度消失和梯度爆炸?
@寒小陽,反向傳播中鏈式法則帶來的連乘,如果有數很小趨于0,結果就會特別小(梯度消失);如果數都比較大,可能結果會很大(梯度爆炸)。
@單車
131.如何解決梯度消失和梯度膨脹?
(1)梯度消失:
??根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小于1的話,那么即使這個結果是0.99,在經過足夠多層傳播之后,誤差對輸入層的偏導會趨于0,可以采用ReLU激活函數有效的解決梯度消失的情況。
(2)梯度膨脹
??根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大于1的話,在經過足夠多層傳播之后,誤差對輸入層的偏導會趨于無窮大,可以通過激活函數來解決。
132.推導下反向傳播Backpropagation。
@我愛大泡泡,來源:
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,來源:
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)的梯度下降的經典例子。另,本題來源于:題目來源
152.下圖顯示了訓練過的3層卷積神經網絡準確度,與參數數量(特征核的數量)的關系。
從圖中趨勢可見,如果增加神經網絡的寬度,精確度會增加到一個特定閾值后,便開始降低。造成這一現象的可能原因是什么?(C)
A. 即使增加卷積核的數量,只有少部分的核會被用作預測
B. 當卷積核數量增加時,神經網絡的預測能力(Power)會降低
C. 當卷積核數量增加時,它們之間的相關性增加(correlate),導致過擬合
D. 以上都不正確
答案:(C)
如C選項指出的那樣,可能的原因是核之間的相關性。
153.假設我們有一個如下圖所示的隱藏層。隱藏層在這個網絡中起到了一定的降維作用。假如現在我們用另一種維度下降的方法,比如說主成分分析法(PCA)來替代這個隱藏層。那么,這兩者的輸出效果是一樣的嗎?
答案:不同,因為PCA用于相關特征而隱層用于有預測能力的特征。
154.神經網絡能組成函數($y=\frac{1}{x}$)嗎?
答案:可以,因為激活函數可以是互反函數。
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。本題解析來源:
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),將所有樣本投影到一條遠點出發的直線,使得同類樣本距離盡可能小,不同類樣本距離盡可能大,具體為最大化“廣義瑞利商”。
根據兩類樣本一般類內密集,類間分離的特點,尋找線性分類器最佳的法線向量方向,使兩類樣本在該方向上的投影滿足類內盡可能密集,類間盡可能分開。這種度量通過類內離散矩陣$S_{w}$和類間離散矩陣$S_{b}$實現。
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<n<p<q,以下計算順序效率最高的是(A)
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的矩陣 AB ,而 A?B的每個元素需要 n 次乘法和 n-1 次加法,忽略加法,共需要 m?n?p次乘法運算。同樣情況分析 AB 之后再乘以 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<m?n?q,m?p?q<n?p?q,顯然 A 運算次數更少,故選 A 。
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. 分類間隔為$\frac{1}{||w||}$,||w||代表向量的模
D. 當參數C越小時,分類間隔越大,分類錯誤越多,趨于欠學習
正確答案:(C)
@劉炫320
A正確。考慮加入正則化項的原因:想象一個完美的數據集,y>1是正類,y<-1是負類,決策面y=0,加入一個y=-30的正類噪聲樣本,那么決策面將會變“歪”很多,分類間隔變小,泛化能力減小。加入正則項之后,對噪聲樣本的容錯能力增強,前面提到的例子里面,決策面就會沒那么“歪”了,使得分類間隔變大,提高了泛化能力。
B正確。
C錯誤。間隔應該是$\frac{2}{||w||}$才對,后半句應該沒錯,向量的模通常指的就是其二范數。
D正確。考慮軟間隔的時候,C對優化問題的影響就在于把a的范圍從[0,+inf]限制到了[0,C]。C越小,那么a就會越小,目標函數拉格朗日函數導數為0可以求出$w=\sum_{i}^{ }a_{i}y_{i}x_{i}$,a變小使得w變小,因此間隔$\frac{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=X_{1}+X_{2}$為例,假設$X_{1}$和$X_{1}$具有很強的關聯,如果用L1正則化,不論學到的模型是$Y=X_{1}+X_{2}$還是$Y=2X_{1}$,懲罰都是一樣的,都是$2\alpha $。但是對于L2來說,第一個模型的懲罰項是$2\alpha $,但第二個模型的是$4\alpha $。可以看出,系數之和為常數時,各系數相等時懲罰是最小的,所以才有了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.特征比數據量還大時,選擇什么樣的分類器?
答案:線性分類器,因為維度高的時候,數據一般在維度空間里面會比較稀疏,很有可能線性可分。