日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习笔试面试超详细总结(四)

發布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习笔试面试超详细总结(四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • 151、Ridge回歸、Lasso回歸(坐標下降法求解)
      • 152、電影推薦系統是以下哪些的應用實例
      • 153、決策樹是否可以用來聚類——可以
      • 154、什么方法最適合于在n維空間做異常點檢測
      • 155、邏輯回歸和多元回歸分析的不同
      • 156、k折交叉驗證中k的選擇
      • 157、回歸模型存在多重共線性,在不損失過多信息的情況下,可以進行什么操作
      • 158、評估模型之后,得出模型存在偏差,如何解決
      • 159、一個SVM存在欠擬合問題,如何提高模型性能
      • 159、模型對數據不平衡問題訓練準確率很高,則要重新建一個模型
      • 160、反向傳播思想
      • 162、無監督逐層訓練
      • 163、DNN
      • 164、面試篇:
      • 165、KNN進行圖像分類
      • 167、嶺回歸和Lasso回歸和正則化
      • 168、歸一化方法
      • 169、標準化
      • 170、欠擬合和過擬合詳細解釋
      • 171、集成學習
      • 172、SVM核函數的選擇
      • 173、MAE和MSE的區別
      • 174、機器學習經典算法網上總結
      • 175、等頻劃分和等距劃分
      • 176、截斷均值
      • 177、機器學習算法鏈接
      • 178、面試問題鏈接
      • 179、softmax激活函數和sigmoid的聯系

151、Ridge回歸、Lasso回歸(坐標下降法求解)

1. Ridge回歸(嶺回歸)

可以看成是對最小二乘法的一種補充,嶺回歸通過對系數的大小施加懲罰來解決普通最小二乘法的一些問題。 它和一般線性回歸的區別是在損失函數上增加了一個L2正則化的項,和一個調節線性回歸項和正則化項權重的系數α 。損失函數表達式如下:

其中α 為常數系數,需要進行調優。$||θ|| _2 $為L2范數。

Ridge回歸的解法和一般線性回歸大同小異。如果采用梯度下降法,則每一輪θ 迭代的表達式是:

其中β 為步長。 如果用最小二乘法,則θ 的結果是:

其中E為單位矩陣。
??
Ridge回歸在不拋棄任何一個變量的情況下,縮小了回歸系數,使得模型相對而言比較的穩定,但這會使得模型的變量特別多,模型解釋性差。有沒有折中一點的辦法呢?即又可以防止過擬合,同時克服Ridge回歸模型變量多的缺點呢?有,這就是下面說的Lasso回歸。

示例1:

假設用一個復雜回歸模型擬合一個數據集,使用帶固定參數lambda的Ridge回歸來減小它的復雜度,下列哪項描述了偏差和方差與lambda的關系?

解析:

  • 對于非常大的lambda,偏差很大,方差很小;

  • Lambda很大表示模型沒有那么復雜,這種情況下偏差大,方差小

  • Lambda很小表示模型復雜,這種情況下偏差小,方差大,模型會過擬合數據

  • lambda為0時,模型作用類似于線性回歸模型,得到了最小的最小二乘解

  • 當lambda趨向無窮,會得到非常小,趨近0的相關系數

2. Lasso回歸

Lasso回歸有時也叫做線性回歸的L1正則化,和Ridge回歸的主要區別就是在正則化項,Ridge回歸用的是L2正則化,而Lasso回歸用的是L1正則化。Lasso回歸的損失函數表達式如下:

其中n為樣本個數,α 為常數系數,需要進行調優。||θ|| 1 為L1范數。

Lasso回歸使得一些系數變小,甚至還是一些絕對值較小的系數直接變為0,因此特別適用于參數數目縮減與參數的選擇,因而用來估計稀疏參數的線性模型。

但是Lasso回歸有一個很大的問題,導致我們需要把它單獨拎出來講,就是它的損失函數不是連續可導的,由于L1范數用的是絕對值之和,導致損失函數有不可導的點。也就是說,我們的最小二乘法,梯度下降法,牛頓法與擬牛頓法對它統統失效了。那我們怎么才能求有這個L1范數的損失函數極小值呢?

Lasso不允許閉式解,L1-penalty使解為非線性的,所以需要近似解。

用坐標軸下降法求解Lasso回歸:

求解步驟:

1.給定初始點(x 1 ,x 2 ,…,x n x1,x2,…,xn)

2.固定除xi以外其他維度的點,以x i 為自變量獲取最小值

3.換個維度,重復2

可以看出,坐標下降法在每次迭代中在當前點處沿一個坐標方向進行一維搜索,固定其他的坐標方向,找到一個函數的局部極小值。

坐標下降優化方法是一種非梯度優化算法。在整個過程中依次循環使用不同的坐標方向進行迭代,一個周期的一維搜索迭代過程相當于一個梯度迭代。

gradient descent 方法是利用目標函數的導數(梯度)來確定搜索方向的,該梯度方向可能不與任何坐標軸平行。而coordinate descent方法是利用當前坐標方向進行搜索,不需要求目標函數的導數,只按照某一坐標方向進行搜索最小值,兩者都是迭代方法,且每一輪迭代,都需要O(mn)的計算量(m為樣本數,n為系數向量的維度)。

152、電影推薦系統是以下哪些的應用實例

1 分類 (√)
2 聚類 (√)
3 強化學習 (√)
4 回歸 (×)

解析:

一般來說,電影推薦系統會基于用戶過往的活動和資料,將用戶聚集在有限數量的相似組中。然后,從根本上來說,對同一集群的用戶進行相似的推薦。

在某些情況下,電影推薦系統也可以歸為分類問題,將最適當的某類電影分配給特定用戶組的用戶。與此同時,電影推薦系統也可以視為增強學習問題,即通過先前的推薦來改進以后的電影推薦。

153、決策樹是否可以用來聚類——可以

決策樹還可以用在數據中的聚類分析,但是聚類常常生成自然集群,并且不依賴于任何目標函數。

154、什么方法最適合于在n維空間做異常點檢測

馬氏距離

馬氏距離是是一種有效的計算兩個未知樣本集的相似度的多元計量方法,以卡方分布為基礎,表示數據的協方差距離。

與歐氏距離不同的是它考慮到各種特性之間的聯系(例如:一條關于身高的信息會帶來一條關于體重的信息,因為兩者是關聯的)。因此馬氏距離常用于多元異常值檢測。

155、邏輯回歸和多元回歸分析的不同

A. logistic回歸預測某事件發生的概率
B. logistic回歸有較高的擬合效果
C. logistic回歸回歸系數的評估

解析:

邏輯回歸是用于分類問題,我們能計算出一個事件/樣本的概率;

一般來說,邏輯回歸對測試數據有著較好的擬合效果;

建立邏輯回歸模型后,我們可以觀察回歸系數類標簽(正類和負類)與獨立變量間的關系。

156、k折交叉驗證中k的選擇

  • 較大的K并不總是好的,選擇較大的K可能需要較長的時間來評估你的結果

  • 相對于期望誤差來說,選擇較大的K會導致低偏差(因為訓練folds會變得與整個數據集相似)

  • 在交叉驗證中通過最小化方差法來選擇K值

解析:

較大的K意味著更小的偏差(因為訓練folds的大小接近整個dataset)和更多的運行時間(極限情況是:留一交叉驗證)。當選取K值的時候,我們需要考慮到k-folds 準確度的方差。

157、回歸模型存在多重共線性,在不損失過多信息的情況下,可以進行什么操作

  • 移除共線的兩個變量其中一個

  • 我們可以計算方差膨脹因子(variance inflation factor)來檢查存在的多重共線性并采取相應的措施。

為了檢查多重共線性,可以創建相關系數矩陣來辨別和移除相關系數大于75%的變量;

也可以使用VIF的方法來檢查當前存在的共線變量,VIF<=4表明沒有多種共線,VIF>=10表明有著嚴重的多重共線性。

最后,也可以使用公差(tolerance)作為評估指標。

  • 移除相關變量可能會導致信息的丟失,為了保留這些變量,我們可以使用嶺回歸(ridge)或lasso等回歸方法對模型進行懲罰

158、評估模型之后,得出模型存在偏差,如何解決

向模型中增加更多的特征

高偏差意味這模型不夠復雜(欠擬合),為了模型更加的強大,我們需要向特征空間中增加特征。增加樣本能夠降低方差。

159、一個SVM存在欠擬合問題,如何提高模型性能

增大懲罰參數C

C >0稱為懲罰參數,是調和二者的系數,C值大時對誤差分類的懲罰增大,當C越大,趨近無窮的時候,表示不允許分類誤差的存在,margin越小,容易過擬合。

C值小時對誤差分類的懲罰減小,當C趨于0時,表示我們不再關注分類是否正確,只要求margin越大,容易欠擬合。

159、模型對數據不平衡問題訓練準確率很高,則要重新建一個模型

點擊率的預測是一個數據比例不平衡問題(比如訓練集中樣本呈陰性的比例為99%,陽性的比例是1%),如果我們用這種數據建立模型并使得訓練集的準確率高達99%。我們可以得出結論是:模型不好,我們應建一個更好的模型

解析:

對于失衡數據,模型的準確率不能作為衡量模型效果的標準。因為我們需要探索的是少數1%的數據,為更好的評估模型效果,可以用靈敏度、特異度、F measure來判斷,如果樣本數少的類別表現非常弱,我們會采取更多措施。

160、反向傳播思想

計算出輸出與標簽間的損失函數值,然后計算其相對于每個神經元的梯度,根據梯度方向更新權值。

(1)將訓練集數據輸入到ANN的輸入層,經過隱藏層,最后達到輸出層并輸出結果,這是ANN的前向傳播過程;
(2)由于ANN的輸出結果與實際結果有誤差,則計算估計值與實際值之間的誤差,并將該誤差從輸出層向隱藏層反向傳播,直至傳播到輸入層;
(3)在反向傳播的過程中,根據誤差調整各種參數的值;不斷迭代上述過程,直至收斂。

162、無監督逐層訓練

預訓練:每次訓練一層隱結點。訓練時將上一層隱結點的輸出作為輸入,而本層隱結點的輸出作為下一層隱結點的輸入。在預訓練結束后,再對整個網絡進行微調訓練。

163、DNN

指深度神經網絡,與RNN循環神經網絡、CNN卷積神經網絡的區別就是,DNN特指全連接的神經元結構,并不包含卷積單元或時間上的關聯。

一、DBN:(預訓練+微調)

**思想:**整個網絡看成是多個RBM的堆疊,在使用無監督逐層訓練時,首先訓練第一層,然后將第一層預訓練好的隱結點視為第二層的輸入節點,對第二層進行預訓練,各層預訓練完成后,再用BP算法對整個網絡進行訓練。

**整體解釋:**預訓練+微調 的做法可視為將大量參數分組,對每組先找到局部看起來比較好的位置,然后再基于這些局部較優的結果聯合起來進行全局尋優。

**好處:**利用了模型大量參數所提供的自由度,有效的節省了訓練開銷。

**補充:**是一個概率生成模型,與傳統的判別神經網絡不同的是,生成模型建立了觀察數據和標簽之間的聯合分布,而判別模型只評估了條件概率。

**DBN遇到的問題:**需要為訓練提供一個有標簽的樣本集;學習過程較慢;不適當的參數選擇導致學習收斂于局部最優解。

二、CNN:

局部感知+權共享機制:讓一組神經元使用相同的連接權

**提出:**全連接的結構下會引起參數數量的膨脹,容易過擬合且局部最優。圖像中有固有的局部模式可以利用,所以,提出了CNN,并不是所有上下層神經元都能直接相連,而是通過“卷積核”作為中介。同一個卷積核在所有圖像內都是共享的,圖像通過卷積操作后仍然保留原來的位置關系。

復合多個“卷積層”和“采樣層”對輸入信號進行加工,然后再連接層實現與輸出目標之間的映射。

**多層的目的:**一層卷積學到的特征往往是局部的,層數越高,學到的特征就越全局化。

CNN兩大神器:

**1、局部感知:**一般認為圖像的空間聯系是局部的像素聯系比較密切,而距離較遠的像素相關性較弱,因此,每個神經元沒必要對全局圖像進行感知,只要對局部進行感知,然后在更高層將局部的信息綜合起來得到全局信息。

利用卷積層實現:(特征映射,每個特征映射是一個神經元陣列):從上一層通過局部卷積濾波器提取局部特征。卷積層緊跟著一個用來求局部平均與二次提取的計算層,這種二次特征提取結構減少了特征分辨率。

**2、參數共享:**在局部連接中,每個神經元的參數都是一樣的,即:同一個卷積核在圖像中都是共享的。(理解:卷積操作實際是在提取一個個局部信息,而局部信息的一些統計特性和其他部分是一樣的,也就意味著這部分學到的特征也可以用到另一部分上。所以對圖像上的所有位置,都能使用同樣的學習特征。)

卷積核共享有個問題:提取特征不充分,可以通過增加多個卷積核來彌補,可以學習多種特征。

**3、采樣(池化)層:**在通過卷積得到特征后,希望利用這些特征進行分類。基于局部相關性原理進行亞采樣,在減少數據量的同時保留有用信息。

(壓縮數據和參數的量,減少過擬合)(max-polling 和average-polling)

可用BP算法訓練,訓練中,無論是卷積層還是采樣層,每一組神經元都是用相同的連接權。

優點:限制了參數的個數并挖掘了局部結構的這個特點,減少了復雜度。

CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由于CNN的特征檢測層通過訓練數據進行學習,所以在使用CNN時,避免了顯示的特征抽取,而隱式地從訓練數據中進行學習;

再者由于同一特征映射面上的神經元權值相同,所以網絡可以并行學習,這也是卷積網絡相對于神經元彼此相連網絡的一大優勢。卷積神經網絡以其局部權值共享的特殊結構在語音識別和圖像處理方面有著獨特的優越性,其布局更接近于實際的生物神經網絡,權值共享降低了網絡的復雜性,特別是多維輸入向量的圖像可以直接輸入網絡這一特點避免了特征提取和分類過程中數據重建的復雜度。

三、DBN與CNN兩者異同:

異:

DBN:全連接,有pre-train過程;
CNN:局部連接,沒有預訓練過程,但加了卷積。

同:

無論是DBN還是CNN,這種多隱層堆疊,每層對上一層的輸出進行處理的機制,可看作是在對輸入信號進行逐層加工,從而把初始的、與輸出目標之間聯系不大的輸入表示,轉化成與輸出目標聯系密切的表示。

即:通過多層處理,逐漸將初始的低層特征表示轉化成高層的特征表示后,用“簡單模型”就可以完成復雜的分類等學習任務。

四、RNN:

提出:

DNN存在一個缺陷:無法對時間序列上的變化進行建模,然而,樣本出現的時間順序對于自然語言處理、語音識別等應用很重要;

RNN解決了樣本的處理在各個時刻獨立的問題,可以對時間序列上的變化進行建模,深度是時間上的長度。神經元的輸出可以在下一個時間戳直接作用到自身。即,某一層某一時刻神經元的輸入,除了上一層神經元在該時刻的輸出外,還有本身在上一時刻的輸出。

缺點:時間軸上的“梯度消失”,為解決這個問題——>長短時記憶單元LSTM:通過門的開關實現時間上記憶功能,防止梯度消失。

五、LSTM:

**核心:**模仿一種細胞狀態,類似傳送帶思想,直接在整個鏈上運行,只有一些少量的線性交互,信息在上面保持不變。利用一種“門”的結構來去除或增加信息到細胞狀態的能力,有三個門。門:讓信息選擇通過的方法,包括sigmoid神經網絡層和一個點乘操作。

**第一步:**忘記門層:決定從細胞狀態中丟棄什么信息。讀取本層的輸入和上一層的輸出,輸出一個0到1之間的數值給每個細胞狀態。
**第二步:**確定什么樣的信息被存放在細胞狀態中,包含兩個部分:1)sigmoid“輸入門層”,決定什么值將要更新。2)tanh層,創建一個新的候選值向量。會被加到狀態中。
**第三步:**更新細胞狀態。基于細胞狀態確定輸出什么值

164、面試篇:

深度學習整體解釋:
1)自下而上的非監督學習
2)自頂向下的監督學習

理解它們各自的參數代表什么,比較好的初始參數,BP的計算,以及常見超參數的調整策略。

如何優化模型 : 加速收斂, 避免overfit, 提升精度 …
– batch size effect;- learning rate effect;- weight initialization effect;- batch normalization
– drop-out;- model average;- fine-tuning;- data augmentation

CNN最成功的應用是在CV,那為什么NLP和Speech的很多問題也可以用CNN解出來?為什么AlphaGo里也用了CNN?這幾個不相關的問題的相似性在哪里?CNN通過什么手段抓住了這個共性?

幾個不相關的問題的相關性在于,都存在局部與整體的關系,由低層次的特征經過組合,組成高層次的特征,并且得到不同特征之間的空間相關性。

CNN通過:局部感知、權值共享、池化操作、多層次結構抓住了這個共性。局部感知使網絡可以提取數據的局部特征;權值共享大大降低了網絡的訓練難度;池化操作和多層次結構一起,實現了數據的降維,將低層次的特征組合成高層次的特征。

什么時候用local-conv?什么時候用全卷積(每一個點用同一個filter)?

當數據集具有全局的局部特征分布時,也就是說局部特征之間有較強的相關性,適合用全卷積。在不同的區域有不同的特征分布時,適合用local-Conv。

什么樣的資料不適合用深度學習?

1)數據集太小,因為神經網絡有效的關鍵就是大量的數據,有大量的參數需要訓練,少量的數據不能充分訓練參數。

2)數據集沒有局部相關性。目前深度學習應用的領域主要是圖像、語音、自然語言處理,這些領域的共性就是局部相關性。例如:圖像中的像素組成物體,語音中的音位組成單詞,文本數據中的單詞組成句子,而深度學習的本質就是學習局部低層次的特征,然后組合低層次的特征成高層次的特征,得到不同特征之間的空間相關性。

何為共線性, 跟過擬合有啥關聯?

共線性:多變量線性回歸中,變量之間由于存在高度相關關系而使回歸估計不準確。

共線性會造成冗余,導致過擬合。

解決方法:排除變量的相關性/加入權重正則。

為什么引入非線性激勵函數?

因為如果不用非線性激勵函數,每一層都是上一層的線性函數,無論神經網絡多少層,輸出都是輸入的線性組合,與只有一個隱藏層效果一樣。相當于多層感知機了。所以引入非線性激勵函數,深層網絡就變得有意義了,可以逼近任意函數。

什么造成梯度消失?推導?

許多激活函數將輸出值擠壓在很小的區間內,在激活函數兩端較大范圍的定義域內梯度為0,導致權重更新的緩慢訓練難度增加,造成學習停止。(前面層上的梯度是來自后面的層上項的乘積,當層數過多時,隨著乘積的累積,將越來越小。)

CNN常見的問題

1、梯度消失問題:過多的層數會導致梯度消失,解決手段:減少層數;增大學習率;用Relu代替sigmoid。
2、權重衰減:CNN的權重共享相當于自帶某種正則項,所以代價函數里可不加正則
3、隨機梯度下降的參數選擇:
參考:
http://blog.csdn.net/fuwenyan/ … 14371

batch的選擇決定了下降的方向:

如果數據集比較小,可以采用全數據集的形式,好處:全數據集確定的方向能夠更好的代表樣本總體;不同權重的梯度值差別巨大,因此選一個全局的學習率很困難,使用全數據集可以只基于梯度符號并且針對性單獨更新各權值。

如果數據集比較大,全數據集不可行,內存限制;

由于各個batch采樣的差異性,各次梯度修正值相互抵消,無法修正。另一個極端每次只訓練一個樣本,batch=1,每次修正方向以各自樣本的梯度方向修正,難以達到收斂。

選擇適中的batch? 批梯度下降法,

常用的激勵函數:
http://blog.csdn.net/u01314674 … 86575

1)sigmoid:將輸出實值壓縮到0-1之間。 缺點:(輸入非常大或非常小的時候)容易梯度消失;sigmoid函數是非0均值的,下一層的神經元將從上一層神經元得到的非0 均值的信號作為輸入,再結合w計算梯度,始終都是正的。(可根據batch調節)

2)Tanh:是0均值的。

3)Relu(修正線性單元):好處:收斂快,求梯度簡單。具有稀疏特性。
(相比于sigmoid:sigmoid反向傳播求誤差梯度時,求導計算量很大,而relu求導簡單;對于深層網絡,sigmoid反向傳播時,在sigmoid接近飽和區時,變換太緩慢,導數趨0,從而無法完成深層網絡的訓練;Relu會使一部分神經元的輸出為0,造成了網絡的稀疏性,并且減少了參數的相互依存關系,緩解了過擬合問題。)

缺點:訓練的時候很脆弱,一個非常大的梯度流過一個Relu神經元后,不會對其他數據有激活現象了,設置較小的學習率,這種情況會不那么頻繁。

卷積計算層:

參數共享機制、一組固定的權重和不同窗口內數據做內積:卷積

CNN優缺點:

優點:共享卷積核、減少了網絡自由參數的個數,對高維數據處理無壓力;無需手動選取特征,訓練好權重,即得特征。降低神經網絡的復雜性。這種網絡結構在有監督的方式下學習到了一些良好的性能:對平移、比例縮放、傾斜或其他形式的變形具有高度不變性。

缺點:需要調參,需要大量樣本;

神經網絡優勢:

可以利用神經網絡中某一層的輸出當做是數據的另一種表達,從而可以將其認為是經過神經網絡學習到的特征,基于這一特征,可以進行進一步的相似度比較等操作。

有效的關鍵是大規模的數據,每個DL都有眾多的參數,少量數據無法將參數訓練充分。

發展缺陷:

隨著網絡層數的加深,優化函數越來越容易陷入局部最優解,并且這個“陷阱”越來越偏離真正的全局最優,利用有限數據訓練的深層網絡,性能還不如淺層網絡。

隨著網絡層數增加,梯度消失現象越來越嚴重,(一般指sigmoid函數,反向傳播時,每傳遞一層,梯度衰減為原來的1/4。層數一多,梯度指數衰減后,底層基本接收不到有效的訓練信號。

165、KNN進行圖像分類

KNN在解決這個問題的時候,雖然實現起來非常簡單,但是有很大的弊端:

  • 分類器必須記住全部的訓練數據(因為要遍歷找近鄰啊!!),而在任何實際的圖像訓練集上,數據量很可能非常大,那么一次性載入內存,不管是速度還是對硬件的要求,都是一個極大的挑戰。

  • 分類的時候要遍歷所有的訓練圖片,這是一個相當相當相當耗時的過程。

167、嶺回歸和Lasso回歸和正則化

168、歸一化方法

這里寫鏈接內容

169、標準化

**標準化 standardization :**對列做處理,對價格一列,統計價格的均值和方差,進行變化

該種歸一化方式要求原始數據的分布可以近似為高斯分布,否標準化的效果會變得很糟糕。它們可以通過現有樣本進行估計。在已有樣本足夠多的情況下比較穩定,適合現代嘈雜大數據場景。

標準化的原理比較復雜,它表示的是原始值與均值之間差多少個標準差,是一個相對值,所以也有去除量綱的功效。同時,它還帶來兩個附加的好處:均值為0,標準差為1。

均值為0有什么好處呢?它可以使數據以0為中心左右分布(這不是廢話嘛),而數據以0為中心左右分布會帶來很多便利。比如在去中心化的數據上做SVD分解等價于在原始數據上做PCA;機器學習中很多函數如Sigmoid、Tanh、Softmax等都以0為中心左右分布(不一定對稱)。

**歸一化 normalization:**對行做處理,即對整行的x 的平方和相加,開根號,作為分母,再去對數據處理。

其中max為樣本數據的最大值,min為樣本數據的最小值。這種方法有個缺陷就是當有新數據加入時,可能導致max和min的變化,需要重新定義。另外,最大值與最小值非常容易受異常點影響,所以這種方法魯棒性較差,只適合傳統精確小數據場景。

歸一化的依據非常簡單,不同變量往往量綱不同,歸一化可以消除量綱對最終結果的影響,使不同變量具有可比性。比如兩個人體重差10KG,身高差0.02M,在衡量兩個人的差別時體重的差距會把身高的差距完全掩蓋,歸一化之后就不會有這樣的問題。

以上為兩種比較普通但是常用的歸一化技術,那這兩種歸一化的應用場景是怎么樣的呢?什么時候第一種方法比較好、什么時候第二種方法比較好呢?下面做一個簡要的分析概括:

1、在分類、聚類算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維的時候,第二種方法(Z-score standardization)表現更好。

2、在不涉及距離度量、協方差計算、數據不符合正太分布的時候,可以使用第一種方法或其他歸一化方法。比如圖像處理中,將RGB圖像轉換為灰度圖像后將其值限定在[0 255]的范圍。

博客描述

170、欠擬合和過擬合詳細解釋

簡單來說,欠擬合是指模型在訓練集、驗證集和測試集上均表現不佳的情況;過擬合是指模型在訓練集上表現很好,到了驗證和測試階段就大不如意了,即模型的泛化能力很差。欠擬合和過擬合一直是機器學習訓練中的難題,在進行模型訓練的時候往往要對這二者進行權衡,使得模型不僅在訓練集上表現良好,在驗證集以及測試集上也要有出色的預測能力。下面對解決欠擬合和過擬合的一般方法作一總結,說明大致的處理方向,具體應用還得結合實際的任務、數據和算法模型等。

解決欠擬合(高偏差)的方法:

  • 模型復雜化
  • 對同一個算法復雜化。例如回歸模型添加更多的高次項,增加決策樹的深度,增加神經網絡的隱藏層數和隱藏單元數等
    棄用原來的算法,使用一個更加復雜的算法或模型。例如用神經網絡來替代線性回歸,用隨機森林來代替決策樹等

  • 增加更多的特征,使輸入數據具有更強的表達能力
  • 特征挖掘十分重要,尤其是具有強表達能力的特征,往往可以抵過大量的弱表達能力的特征
    特征的數量往往并非重點,質量才是,總之強特最重要
    能否挖掘出強特,還在于對數據本身以及具體應用場景的深刻理解,往往依賴于經驗

  • 調整參數和超參數
  • 超參數包括:神經網絡中的學習率、隱藏層數、隱藏層的單元數,隨機森林的樹數量,k-means中的cluster數,正則化參數(\lambda)等

  • 增加訓練數據往往沒有用
  • 欠擬合本來就是模型的學習能力不足,增加再多的數據給它訓練它也沒能力學習好

  • 降低正則化約束
  • 正則化約束是為了防止模型過擬合,如果模型壓根不存在過擬合而是欠擬合了,那么就考慮是否降低正則化參數(\lambda)或者直接去除正則化項

    解決過擬合(高方差)的方法:

  • 增加訓練數據數
  • 發生過擬合最常見的現象就是數據量太少而模型太復雜
    過擬合是由于模型學習到了數據的一些噪聲特征導致,增加訓練數據的量能夠減少噪聲的影響,讓模型更多地學習數據的一般特征
    增加數據量有時可能不是那么容易,需要花費一定的時間和精力去搜集處理數據
    利用現有數據進行擴充或許也是一個好辦法。例如在圖像識別中,如果沒有足夠的圖片訓練,可以把已有的圖片進行旋轉,拉伸,鏡像,對稱等,這樣就可以把數據量擴大好幾倍而不需要額外補充數據
    注意保證訓練數據的分布和測試數據的分布要保持一致,二者要是分布完全不同,那模型預測真可謂是對牛彈琴了

  • 使用正則化約束
  • 在代價函數后面添加正則化項,可以避免訓練出來的參數過大從而使模型過擬合。使用正則化緩解過擬合的手段廣泛應用,不論是在線性回歸還是在神經網絡的梯度下降計算過程中,都應用到了正則化的方法。常用的正則化有(l1)正則和(l2)正則,具體使用哪個視具體情況而定,一般(l2)正則應用比較多

  • 減少特征數
  • 欠擬合需要增加特征數,那么過擬合自然就要減少特征數。去除那些非共性特征,可以提高模型的泛化能力

  • 調整參數和超參數
  • 不論什么情況,調參是必須的

  • 降低模型的復雜度
  • 欠擬合要增加模型的復雜度,那么過擬合正好反過來

  • 使用Dropout
  • 這一方法只適用于神經網絡中,即按一定的比例去除隱藏層的神經單元,使神經網絡的結構簡單化

  • 提前結束訓練
  • 即early stopping,在模型迭代訓練時候記錄訓練精度(或損失)和驗證精度(或損失),倘若模型訓練的效果不再提高,比如訓練誤差一直在降低但是驗證誤差卻不再降低甚至上升,這時候便可以結束模型訓練了

    171、集成學習

    一、 集成學習的分類

    1、Bagging


    隨機采樣m個子樣本集,每個樣本集會重復(有放回),利用T組不同的子集訓練T個弱學習器,利用投票的策略,統計哪個票數多,將它分為對應的類別

    T個弱學習器之間是否有關?——彼此之間沒有關系

    2、Boosting

    從上到下,從左到右進行

    通過模型訓練之后,對正負樣本進行分類

    第一步左下:將一個正的分為負的,兩個負的分為了正的

    每個樣本初始化的時候都會賦予一個權值,將分錯的樣本的權重增大,分對的額樣本的權重進行減小,對權值進行均衡,中上就是權值改變程度

    第二步中下:將三個負的分錯了

    增大這三個負樣本的權值

    迭代完成直到分類準確

    每個學習器都有依賴于上一個學習器的結果進行權重的更新,也是boosting和bagging的最大的不同。

    bagging和boosting區別

    • bagging的T個分類器之間無聯系,可以以并行的方式同時進行

    • boosting的分類器之間是相關的,迭代完成

    3、stacking(堆疊)

    根據原始的數據訓練m個分類器,未進行抽取,訓練都用的是原始的數據集,加上一些新的數據進行預測,最終達到一個較好的分類結果。

    二、隨機森林(Random Forest)

    兩個關鍵詞:隨機+森林

    基學習器:決策樹

    多個決策樹的集合,構成森林。

    得到m個模型,進行投票統計,m個模型中投票為第k類的個數最多,則確定為第k類。

    二分類問題,每個樹都有自己的判斷,判斷為老鼠的樹多于判斷為松鼠的樹多,則將其分為老鼠。

    總結:

    三、算法的評價

    決策樹:準確率分別為0.90/0.72/0.95

    隨機森林:準確率分別為0.95/0.78/0.97

    優點:

    缺點:

    172、SVM核函數的選擇

    SVM核函數的選擇對于其性能的表現有至關重要的作用,尤其是針對那些線性不可分的數據,因此核函數的選擇在SVM算法中就顯得至關重要。對于核技巧我們知道,其目的是希望通過將輸入空間內線性不可分的數據映射到一個高緯的特征空間內使得數據在特征空間內是可分的,我們定義這種映射為$?(x) $,那么我們就可以把求解約束最優化問題變為

    但是由于從輸入空間到特征空間的這種映射會使得維度發生爆炸式的增長,因此上述約束問題中內積$?_i ??_j $
    的運算會非常的大以至于無法承受,因此通常我們會構造一個核函數
    κ(xi,xj)=?(xi)??(xj)κ(x_i,x_j)=?(x_i)??(x_j)κ(xi?,xj?)=?(xi?)??(xj?)
    從而避免了在特征空間內的運算,只需要在輸入空間內就可以進行特征空間的內積運算。通過上面的描述我們知道要想構造核函數κ ,我們首先要確定輸入空間到特征空間的映射,但是如果想要知道輸入空間到映射空間的映射,我們需要明確輸入空間內數據的分布情況,但大多數情況下,我們并不知道自己所處理的數據的具體分布,故一般很難構造出完全符合輸入空間的核函數,因此我們常用如下幾種常用的核函數來代替自己構造核函數:

    • 線性核函數
      k(x,xi)=x?xik(x,x _i )=x?x _i k(x,xi?)=x?xi?
      線性核,主要用于線性可分的情況,我們可以看到特征空間到輸入空間的維度是一樣的,其參數少速度快,對于線性可分數據,其分類效果很理想,因此我們通常首先嘗試用線性核函數來做分類,看看效果如何,如果不行再換別的

    • 多項式核函數
      k(x,xi)=((x?xi)+1)dk(x,x_i)=((x?x_i)+1)dk(x,xi?)=((x?xi?)+1)d

    多項式核函數可以實現將低維的輸入空間映射到高緯的特征空間,但是多項式核函數的參數多,當多項式的階數比較高的時候,核矩陣的元素值將趨于無窮大或者無窮小,計算復雜度會大到無法計算。

    • 高斯(RBF)核函數

    k(x,xi)=exp(?∣∣x?xi∣∣δ2)k(x,xi)=exp(\frac{?||x?x_i||}{δ^2})k(x,xi)=exp(δ2?x?xi??)
    高斯徑向基函數是一種局部性強的核函數,其可以將一個樣本映射到一個更高維的空間內,該核函數是應用最廣的一個,無論大樣本還是小樣本都有比較好的性能,而且其相對于多項式核函數參數要少,因此大多數情況下在不知道用什么核函數的時候,優先使用高斯核函數。

    • sigmoid核函數

    k(x,xi)=tanh(η&lt;x,xi&gt;+θ)k(x,xi)=tanh(η&lt;x,xi&gt;+θ)k(x,xi)=tanh(η<x,xi>+θ)

    采用sigmoid核函數,支持向量機實現的就是一種多層神經網絡。

    因此,在選用核函數的時候,如果我們對我們的數據有一定的先驗知識,就利用先驗來選擇符合數據分布的核函數;如果不知道的話,通常使用交叉驗證的方法,來試用不同的核函數,誤差最下的即為效果最好的核函數,或者也可以將多個核函數結合起來,形成混合核函數。在吳恩達的課上,也曾經給出過一系列的選擇核函數的方法:

    • 如果特征的數量大,樣本數量較少,則選用LR或者線性核的SVM;

    樣本少,但是特征數目大,表示特征空間維度很高,一般認為是線性可分的

    • 如果特征的數量小,樣本的數量正常,則選用SVM+高斯核函數;

    特征少則疼我特征空間維度較低,可以用高斯核將其映射到高維空間

    • 如果特征的數量小,而樣本的數量很大,則需要手工添加一些特征從而變成第一種情況。

    交叉驗證:先拿出來小的數據集應用不同的核來驗證哪個核比較好,然后再應用在大數據集上去。

    173、MAE和MSE的區別

    MSE對離群點更敏感,

    什么叫做離群點:和整體分布距離較遠的點,不過沒有絕對的數值定義,是一個概念,沒有明確的定義說可以完全去掉離群點,不可能數據很干凈,

    174、機器學習經典算法網上總結

    LR、SVM、決策樹等
    LR/SVM等
    鏈接3

    175、等頻劃分和等距劃分

    等頻劃分:把觀察點均分為n等份,每份內包含的觀察點數相同

    3 5 6 8 9 11 24 46 57 $\implies$3 5 6 / 8 9 11 / 24 46 57

    等距/等寬劃分:把觀察點均勻分成n等份,每份的間距相等。

    1 2 3 5 6 11$\implies$1 2 3 5 / 6 11

    176、截斷均值

    指定0和100之間的百分數p,丟棄高端和低端(p/2)%的數據,然后用常規的方法計算均值,所得的結果就是截斷均值.

    考慮值集{1、2、3、4、5、90},其截斷均值(p=20%)是 (3.5)

    按照公式,(p/2)%=20%,8*20%=1.6約等于2,那么應該截掉前兩個數和后兩個數,剩下{3,4},所以截斷均值為(3+4)/2=3.5。

    177、機器學習算法鏈接

    LR/SVM等

    178、面試問題鏈接

    面試問題博客

    鏈接2

    連接3

    179、softmax激活函數和sigmoid的聯系

    博客地址

    總結

    以上是生活随笔為你收集整理的机器学习笔试面试超详细总结(四)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。