1. 程式人生 > >數據挖掘筆試面試(9)

數據挖掘筆試面試(9)

也有 描述 布朗 near || 數據 簡單的 開始 我只

【校招面經】機器學習與數據挖掘常見面試題整理 part4

2018年07月25日 12:43:21 稻蛙 閱讀數:149

五十一、Hinge loss

Hinge loss 的叫法來源於其損失函數的圖形,為一個折線,通用的函數表達式為:

L(mi)=max(0,1−mi(w))

表示如果被正確分類,損失是0,否則損失就是 1−mi(w) 。

技術分享圖片

在機器學習中,Hing 可以用來解 間距最大化 的問題,最有代表性的就是SVM 問題,最初的SVM 優化函數如下:argminw,ζ12||w||2+C∑iζist.∀yiwTxi≥1−ζiζi≥0

五十二、HMM中涉及的算法

1. 前向、後向算法解決的是一個評估問題,即給定一個模型,求某特定觀測序列的概率,用於評估該序列最匹配的模型 2. 維特比算法解決的是給定 一個模型和某個特定的輸出序列,求最可能產生這個輸出的狀態序列。如通過海藻變化(輸出序列)來觀測天氣(狀態序列)

3. Baum-Welch算法解決的是一個模型訓練問題,即參數估計,是一種無監督的訓練方法,主要通過EM叠代實現

*1 評估問題: 前向算法

*2 解碼問題: Viterbi算法

*3 學習問題: Baum-Welch算法(向前向後算法)

*1 評估問題: 前向算法

*2 解碼問題: Viterbi算法

*3 學習問題: Baum-Welch算法(向前向後算法)

A、B:前向、後向算法解決的是一個評估問題,即給定一個模型,求某特定觀測序列的概率,用於評估該序列最匹配的模型。 C:Baum-Welch算法解決的是一個模型訓練問題,即參數估計,是一種無監督的訓練方法,主要通過EM叠代實現; D:維特比算法解決的是給定 一個模型和某個特定的輸出序列,求最可能產生這個輸出的狀態序列。如通過海藻變化(輸出序列)來觀測天氣(狀態序列),是預測問題,通信中的解碼問題。

前向、後向算法解決的是一個評估問題,即給定一個模型,求某特定觀測序列的概率,用於評估該序列最匹配的模型。

Baum-Welch算法解決的是一個模型訓練問題,即參數估計,是一種無監督的訓練方法,主要通過EM叠代實現;

維特比算法解決的是給定 一個模型和某個特定的輸出序列,求最可能產生這個輸出的狀態序列。如通過海藻變化(輸出序列)來觀測天氣(狀態序列),是預測問題,通信中的解碼問題。

來源:https://www.nowcoder.com/questionTerminal/dc4e7ad7e9634b65b56f2541a580eba0

EM算法: 只有觀測序列,無狀態序列時來學習模型參數,即Baum-Welch算法

維特比算法: 用動態規劃解決HMM的預測問題,不是參數估計

前向後向:用來算概率

極大似然估計:即觀測序列和相應的狀態序列都存在時的監督學習算法,用來估計參數v

  自然語言處理技術離不開隱馬爾可夫理論。書中幾個例子搞得我頭暈眼花了,仔細研究後把思路整理一下,畫成簡單的示意圖,希望能幫助大家理解。

  

模型實例

  假設 S 是天氣狀況的集合,分別是“晴天”、"多雲"、“下雨”,

  其初始概率分布為,

晴天

多雲

下雨

0.63

0.17

0.20

  其狀態轉移概率矩陣為:

-

0.500

0.375

0.125

0.250

0.125

0.625

0.250

0.375

0.325

  假設有一位盲人住在海邊,他不能通過直接觀察天氣的狀態來預報天氣。但他有一些水藻,因此可以利用水藻的幹濕來預報天氣。水藻的幹濕與天氣狀況之間的關系如下表:

-

幹燥

稍幹

潮濕

濕透

0.60

0.20

0.15

0.05

0.25

0.25

0.25

0.25

0.05

0.10

0.35

0.50

問題1:求解觀察序列的概率

  針對上述模型,我們求p(幹燥,潮濕,濕透)。思路很簡單:

  1. 確定隱狀態的初始概率分布,這是已知的,參見下圖第一列。
  2. 根據隱狀態到觀測結果“幹燥”的發射概率(參見下圖第一列到第二列的箭頭標註),計算得到“幹燥”這個觀測結果時,三個隱狀態的概率,參見下圖第二列。
  3. 根據隱狀態之間的轉移概率,重新確定在觀測到“幹燥”結果後的第二天,隱狀態的概率分布,參見下圖第三列。圖中,我只標註了“晴”的計算過程,其他兩天氣則省略沒畫,建議自己親自計算一下,驗證一下。

技術分享圖片

  這個時候再往下計算,方法就和第一步一樣了,不再羅嗦了。

問題2:由觀察序列確定隱狀態序列

  我們觀察到了“幹燥、潮濕、濕透”,那麽實際天氣變化的序列應該是什麽呢?會是憑直覺猜測的“晴、陰、雨”這個序列嗎?

  解決這個問題的關鍵是,如何計算p(晴陰雨|幹燥 潮濕 濕透)?我畫了一張圖,只要把黑色路徑上標註的初始概率、轉移概率、發射概率連乘起來,就得到這條路經的概率。

技術分享圖片

  ok,現在問題變成了如何從開始到結束找到一條概率最大的路徑。問題轉化成了路徑最優化問題,可以用動態規劃方法解決,我不想再啰嗦了,剩下的任務大家自行解決吧。

問題3:HMM參數估計

  假設隱馬爾可夫模型的觀測序列是“幹燥,潮濕,濕透,…”,那麽,隱馬爾可夫模型的參數A,B,π 如何設置,才能使這個觀測序列出現的概率最大?這就是所謂的隱馬爾可夫模型參數估計問題。

  參照上圖,從起點到終點共計27條路徑,把這些路徑的概率全部加起來,就是“幹燥,潮濕,濕透”發生的概率。如果圖中箭頭隨對應的概率全部為未知,可以想想,最終的結果就可以用這些參數表示。因此問題可描述為,這些參數取何值時,所求概率最大。

  

上圖中的實例, 計算觀察序列的概率應該不需要遍歷27條路徑,這樣復雜度太高了。這個問題大家自行考慮吧。

  轉移概率矩陣和發射概率矩陣在多個環節重復出現,讓我聯想起卷積神經網絡的卷積層設計,扯得有點遠。但是,這個概率網絡求解整體過程的確與神經網絡類似。

  一個不好的消息是,沒辦法用公式求解此最優化問題。一個稍好一點的消息是,可以用梯度下降法,求局部極小解,這簡直是廢話。還有一個稍好點的消息,Baum-Welch算法可以解決此問題,思路類似EM算法,思路也很簡單,

Baum-Welch算法

  比如,先假設狀態序列為已知,參見下表。呵呵,和EM算法套路一樣,如果不了解建議看看我寫的《簡析EM算法(最大期望算法)》。

t

觀察值

晴朗

多雲

下雨

1

幹燥

1

0

0

2

潮濕

0

1

0

3

濕透

1

0

0

4

潮濕

0

0

1

5

幹燥

0

1

0

6

潮濕

1

0

0

7

濕透

0

0

1

  

  狀態的出現次數為0或1,和EM算法是完全一樣的套路。如果出現100次"晴朗"

,其中對應70次“幹燥”,則可以估計“晴朗”向“幹燥”發射概率為70/100=0.7,如此類推,可以求出模型中的所有概率值。

  現在的問題是,狀態出現的次數是不知道的。依據EM算法思路,可以隨機給模型參數賦值(當然要保證數據的合理性)。比如,根據“晴朗”、“陰天”、“下雨”向“幹燥”的發射概率,把狀態出現次數1按比例分配給三個狀態。這樣就可以按照上面的方法重新計算模型的參數了。如此類推,直到模型參數收斂為止。

  狀態轉移概率,也可以統計出來。比如從上表1、2兩行可以得到“晴天”到“多雲”轉移累計計數1次。在EM算法中,這個計數可能變成了用小數表示的模糊計數,不過沒關系,一樣可以得到這個累計計數。

  初始概率計算也是同樣道理,用模糊計數方法可以幫助估計概率分布。

五十三、CRF與HMM和MEMM的比較

CRF 的優點:特征靈活,可以容納較多的上下文信息,能夠做到全局最優

CRF 的缺點:速度慢 CRF沒有HMM那樣嚴格的獨立性假設條件,因而可以容納任意的上下文信息。特征設計靈活(與ME一樣) ————與HMM比較 由於CRF計算全局最優輸出節點的條件概率,它還克服了最大熵馬爾可夫模型標記偏置(Label-bias)的缺點。 ­­————與MEMM比較 CRF是在給定需要標記的觀察序列的條件下,使用維特比算法,計算整個標記序列的聯合概率分布,而不是在給定當前狀態條件下,定義下一個狀態的狀態分布。————與ME比較

五十四、EM算法、HMM、CRF

(1)EM算法

  EM算法是用於含有隱變量模型的極大似然估計或者極大後驗估計,有兩步組成:E步,求期望(expectation);M步,求極大(maxmization)。本質上EM算法還是一個叠代算法,通過不斷用上一代參數對隱變量的估計來對當前變量進行計算,直到收斂。

  註意:EM算法是對初值敏感的,而且EM是不斷求解下界的極大化逼近求解對數似然函數的極大化的算法,也就是說EM算法不能保證找到全局最優值。對於EM的導出方法也應該掌握。

(2)HMM算法

  隱馬爾可夫模型是用於標註問題的生成模型。有幾個參數(π,A,B):初始狀態概率向量π,狀態轉移矩陣A,觀測概率矩陣B。稱為馬爾科夫模型的三要素。

馬爾科夫三個基本問題:

  • 概率計算問題:給定模型和觀測序列,計算模型下觀測序列輸出的概率。–》前向後向算法
  • 學習問題:已知觀測序列,估計模型參數,即用極大似然估計來估計參數。–》Baum-Welch(也就是EM算法)和極大似然估計。
  • 預測問題:已知模型和觀測序列,求解對應的狀態序列。–》近似算法(貪心算法)和維比特算法(動態規劃求最優路徑)

(3)條件隨機場CRF

  給定一組輸入隨機變量的條件下另一組輸出隨機變量的條件概率分布密度。條件隨機場假設輸出變量構成馬爾科夫隨機場,而我們平時看到的大多是線性鏈條隨機場,也就是由輸入對輸出進行預測的判別模型。求解方法為極大似然估計或正則化的極大似然估計。

  之所以總把HMM和CRF進行比較,主要是因為CRF和HMM都利用了圖的知識,但是CRF利用的是馬爾科夫隨機場(無向圖),而HMM的基礎是貝葉斯網絡(有向圖)。而且CRF也有:概率計算問題、學習問題和預測問題。大致計算方法和HMM類似,只不過不需要EM算法進行學習問題。

(4)HMM和CRF對比

  其根本還是在於基本的理念不同,一個是生成模型,一個是判別模型,這也就導致了求解方式的不同。

五十五、CRF與HMM

CRF就像一個反向的隱馬爾可夫模型(HMM),兩者都是用了馬爾科夫鏈作為隱含變量的概率轉移模型,只不過HMM使用隱含變量生成可觀測狀態,其生成概率有標註集統計得到,是一個生成模型;而CRF反過來通過可觀測狀態判別隱含變量,其概率亦通過標註集統計得來,是一個判別模型。由於兩者模型主幹相同,其能夠應用的領域往往是重疊的,但在命名實體、句法分析等領域CRF更勝一籌。當然你並不必須學習HMM才能讀懂CRF,但通常來說如果做自然語言處理,這兩個模型應該都有了解。

五十六、LR正則化與數據先驗分布的關系

作者:Charles Xiao

鏈接:https://www.zhihu.com/question/23536142/answer/90135994

來源:知乎

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

先拋給大家一個結論:從貝葉斯的角度來看,正則化等價於對模型參數引入 先驗分布 。

一. Linear Regression

我們先看下最原始的Linear Regression:

技術分享圖片

技術分享圖片

由最大似然估計(MLE):

技術分享圖片

取對數:

技術分享圖片

即:

技術分享圖片

這就導出了我們原始的 least-squares 損失函數,但這是在我們對參數 w 沒有加入任何先驗分布的情況下。在數據維度很高的情況下,我們的模型參數很多,模型復雜度高,容易發生過擬合。

比如我們常說的 “small n, large p problem”。(我們一般用 n 表示數據點的個數,用 p 表示變量的個數 ,即數據維度。當

技術分享圖片

的時候,不做任何其他假設或者限制的話,學習問題基本上是沒法進行的。因為如果用上所有變量的話, p 越大,通常會導致模型越復雜,但是反過來 n 又很小,於是就會出現很嚴重的 overfitting 問題。

技術分享圖片

這個時候,我們可以對參數 w 引入先驗分布,降低模型復雜度。

二. Ridge Regression

我們對參數 w 引入協方差為

技術分享圖片

的零均值高斯先驗。

技術分享圖片

取對數:

技術分享圖片

等價於:

技術分享圖片

這不就是 Ridge Regression 嗎?

技術分享圖片

看我們得到的參數,在零附近是不是很密集,老實說 ridge regression 並不具有產生稀疏解的能力,也就是說參數並不會真出現很多零。假設我們的預測結果與兩個特征相關,L2正則傾向於綜合兩者的影響,給影響大的特征賦予高的權重;而L1正則傾向於選擇影響較大的參數,而舍棄掉影響較小的那個。實際應用中 L2正則表現往往會優於 L1正則,但 L1正則會大大降低我們的計算量。

Typically ridge or ?2 penalties are **much better** for minimizing prediction error rather than ?1 penalties. The reason for this is that when two predictors are highly correlated, ?1 regularizer will simply pick one of the two predictors. In contrast, the ?2 regularizer will keep both of them and jointly shrink the corresponding coefficients a little bit. Thus, while the ?1 penalty can certainly reduce overfitting, you may also experience a loss in predictive power.

那現在我們知道了,對參數引入 高斯先驗 等價於L2正則化。

三. LASSO

上面我們對 w 引入了高斯分布,那麽拉普拉斯分布(Laplace distribution)呢?

註:LASSO - least absolute shrinkage and selection operator.

技術分享圖片

我們看下拉普拉斯分布長啥樣:

技術分享圖片

技術分享圖片

關於拉普拉斯和正態分布的淵源,大家可以參見 正態分布的前世今生。

重復之前的推導過程我們很容易得到:

技術分享圖片

該問題通常被稱為 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一個 convex optimization 問題,不具有解析解。它的優良性質是能產生稀疏性,導致 w 中許多項變成零。

再次總結下,對參數引入 拉普拉斯先驗 等價於 L1正則化。

四. Elastic Net

可能有同學會想,既然 L1和 L2正則各自都有自己的優勢,那我們能不能將他們 combine 起來?

可以,事實上,大牛早就這麽玩過了。

技術分享圖片

因為lasso在解決之前提到的“small n, large p problem”存在一定缺陷。

技術分享圖片

這個我們就直接給結果了,不推導了哈。(好麻煩的樣子。。。逃)

技術分享圖片

技術分享圖片

技術分享圖片

五. 總結

正則化參數等價於對參數引入 先驗分布,使得 模型復雜度 變小(縮小解空間),對於噪聲以及 outliers 的魯棒性增強(泛化能力)。整個最優化問題從貝葉斯觀點來看是一種貝葉斯最大後驗估計,其中 正則化項 對應後驗估計中的 先驗信息,損失函數對應後驗估計中的似然函數,兩者的乘積即對應貝葉斯最大後驗估計的形式。

[1]: Bias 和 Variance

[2]: 《A Few useful things to Know About machine Learning》讀後感

[3]: What is the difference between L1 and L2 regularization?

[4]: Bayesian Linear Regression

[5]: Bayesian statistics and regularization

[6]: 最大似然估計和最小二乘法怎麽理解? - 計算機

[7]: Sparsity and Some Basics of L1 Regularization

五十七、拉普拉斯分布

from:https://blog.csdn.net/pipisorry/article/details/39076957

在概率論與統計學中,拉普拉斯分布是以皮埃爾-西蒙·拉普拉斯的名字命名的一種連續概率分布.由於它可以看作是兩個不同位置的指數分布背靠背拼接在一起,所以它也叫作雙指數分布.兩個相互獨立同概率分布指數隨機變量之間的差別是按照指數分布的隨機時間布朗運動,所以它遵循拉普拉斯分布.

如果隨機變量的概率密度函數為

技術分享圖片

那麽它就是拉普拉斯分布.記為:

技術分享圖片

其中,

技術分享圖片

是位置參數,

技術分享圖片

是尺度參數.

技術分享圖片

它的累積分布函數為:

技術分享圖片

逆分布函數為

技術分享圖片

數字特征:

技術分享圖片

技術分享圖片

五十八、異常值(outlier)的判別與剔除

在處理實驗數據的時候,我們常常會遇到個別數據值偏離預期或大量統計數據值結果的情況,如果我們把這些數據值和正常數據值放在一起進行統計,可能會影響實驗結果的正確性,如果把這些數據值簡單地剔除,又可能忽略了重要的實驗信息。這裏重要的問題是如何判斷異常值,然後將其剔除。判斷和剔除異常值是數據處理中的一項重要任務,目前的一些方法還不是十分完善,有待進一步研究和探索。

異常值outlier:指樣本中的個別值,其數值明顯偏離它(或他們)所屬樣本的其余觀測值,也稱異常數據,離群值

目前人們對異常值的判別與剔除主要采用物理判別法和統計判別法兩種方法。

所謂物理判別法就是根據人們對客觀事物已有的認識,判別由於外界幹擾、人為誤差等原因造成實測數據值偏離正常結果,在實驗過程中隨時判斷,隨時剔除。

統計判別法是給定一個置信概率,並確定一個置信限,凡超過此限的誤差,就認為它不屬於隨機誤差範圍,將其視為異常值剔除。當物理識別不易判斷時,一般采用統計識別法。

對於多次重復測定的數據值,異常值常用的統計識別與剔除法有:

拉依達準則法(3δ):簡單,無需查表。測量次數較多或要求不高時用。是最常用的異常值判定與剔除準則。但當測量次數《=10次時,該準則失效。

如果實驗數據值的總體x是服從正態分布的,則

異常值(outlier)的判別與剔除(rejection)

式中,μ與σ分別表示正態總體的數學期望和標準差。此時,在實驗數據值中出現大於μ+3σ或小於μ—3σ數據值的概率是很小的。因此,根據上式對於大於μ+3σ或小於μ—3σ的實驗數據值作為異常值,予以剔除。具體計算方法參見http://202.121.199.249/foundrymate/lessons/data-analysis/13/131.htm

在這種情況下,異常值是指一組測定值中與平均值的偏差超過兩倍標準差的測定值。與平均值的偏差超過三倍標準差的測定值,稱為高度異常的異常值。在處理數據時,應剔除高度異常的異常值。異常值是否剔除,視具體情況而定。在統計檢驗時,指定為檢出異常值的顯著性水平α=0.05,稱為檢出水平;指定為檢出高度異常的異常值的顯著性水平α=0.01,稱為舍棄水平,又稱剔除水平(reject level)。

標準化數值(Z-score)可用來幫助識別異常值。Z分數標準化後的數據服從正態分布。因此,應用Z分數可識別異常值。我們建議將Z分數低於-3或高於3的數據看成是異常值。這些數據的準確性要復查,以決定它是否屬於該數據集。

肖維勒準則法(Chauvenet):經典方法,改善了拉依達準則,過去應用較多,但它沒有固定的概率意義,特別是當測量數據值n無窮大時失效。

狄克遜準則法(Dixon):對數據值中只存在一個異常值時,效果良好。擔當異常值不止一個且出現在同側時,檢驗效果不好。尤其同側的異常值較接近時效果更差,易遭受到屏蔽效應。

羅馬諾夫斯基(t檢驗)準則法:計算較為復雜。

格拉布斯準則法(Grubbs):和狄克遜法均給出了嚴格的結果,但存在狄克遜法同樣的缺陷。朱宏等人采用數據值的中位數取代平均值,改進得到了更為穩健的處理方法。有效消除了同側異常值的屏蔽效應。國際上常推薦采用格拉布斯準則法。

技術分享圖片

技術分享圖片

數據挖掘筆試面試(9)