1. 程式人生 > >機器學習 周志華筆記

機器學習 周志華筆記

已經發布部落格

 

************************************************************

周志華教授

機器學習教材總結

資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已

問題總結:

生成式模型和判別式模型區別概念分別是什麼。

bias偏差 和 variance方差 概念的。

模型可以理解為基函式(一個函式的固定形式,也就是函式只會在這個函式的基礎上變化而不會丟掉的函式)和權重的組合即一類問題的演算法。引數就是演算法學習的結果,

就像決策樹學習產生的從根節點通往葉節點的路徑q和每個葉節點上面的期望權重w,改變引數(q,w)就是改變已有模型。

優化目標函式需要實現兩個目的:第一:儘量讓預測值接近真實值;第二:保證模型的泛化能力(GeneralizationAbility)。為達到第一點,我們可以最小化損失函式,

對於第二點,我們可以最小化損失函式過程中加上控制模型複雜度的懲罰項,也可稱為正則化項,如L1,L2損失。我們優化目標函式以達到誤差和複雜度綜合最優。

 

通常機器學習每一個演算法中都會有一個目標函式,演算法的求解過程是通過對這個目標函式優化的過程。在分類或者回歸問題中,通常使用損失函式(代價函式)作為其目標函式。

損失函式用來評價模型的預測值和真實值不一樣的程度,損失函式越好,通常模型的效能越好。不同的演算法使用的損失函式不一樣。

 損失函式分為經驗風險損失函式和結構風險損失函式。經驗風險損失函式指預測結果和實際結果的差別,結構風險損失函式是指經驗風險損失函式加上正則項。

 

“非凸”函式的問題,簡單一點說就是這個函式有很多個區域性最低點,如下圖所示:而我們希望我們的代價函式是一個如下圖所示,碗狀結構的凸函式,

這樣我們演算法求解到區域性最低點,就一定是全域性最小值點

所謂的代價函式Cost Function,其實是一種衡量我們在這組引數下預估的結果和實際結果差距的函式,比如說線性迴歸的代價函式定義為:

下面我們說說梯度下降,梯度下降演算法是調整引數θ使得代價函式J(θ)取得最小值的最基本方法之一。從直觀上理解,就是我們在碗狀結構的凸函式上取一個初始值,然後挪動這個值一步步靠近最低點的過程,如下圖所示:

從數學上理解,我們為了找到最小值點,就應該朝著下降速度最快的方向(導函式/偏導方向)邁進,每次邁進一小步,再看看此時的下降最快方向是哪,再朝著這個方向邁進,直至最低點。

 

L1 正則化偏向於稀疏,它會自動進行特徵選擇,去掉一些沒用的特徵,也就是將這些特徵對應的權重置為 0.

L2 正則化主要功能是為了防止過擬合,當要求引數越小時,說明模型越簡單,而模型越簡單則,越趨向於平

滑,從而防止過擬合。

範數:

L0範數是指向量中非0的元素的個數。

L1範數是指向量中各個元素絕對值之和                 

當 p = 2 時,L 2 範數被稱為歐幾里得範數(Euclidean norm)。它表示從原點

出發到向量 x 確定的點的歐幾里得距離。

當機器學習問題中零和非零元素之間的差異非常重要時,通常會使用 L 1 範數

199. 隱馬爾可夫。機器學習 ML 模型 易

隱馬爾可夫模型三個基本問題以及相應的演算法說法正確的是( )

A.評估—前向後向演算法

B.解碼—維特比演算法

C.學習—Baum-Welch 演算法

D.學習—前向後向演算法

正確答案:ABC

解析:評估問題,可以使用前向演算法、後向演算法、前向後向演算法。

 

 

先說三個相關資料標記:①樣本的真實標記 ②樣本在訓練集中的標記(可能含噪聲)③樣本在訓練時每次得到的輸出標記

 

噪聲(noise):訓練集的標記與真實標記的誤差平方的均值,即②-①的平方的均值。

 

偏置(bias):訓練模型的時候,每一次訓練得到的訓練集預測標籤與原始真實標籤的偏離程度(即③與①的差),如果此偏離程度過小,則會導致過擬合的發生,因為可能將訓練集中的噪聲也學習了。

所以說偏置刻畫了學習演算法本身的擬合能力,如果擬合能力不好,偏置較大,出現欠擬合;反之擬合能力過好,偏置較小,容易出現過擬合。在訓練的時候可以發現這個bias理論上應該是逐漸變小的,

表明我們的模型正在不斷學習有用的東西。【當然這是針對只有一個訓練集的情況下,如果有多個訓練集,就計算出每一個樣本在各個訓練集下的預測值的均值,

然後計算此均值與真實值的誤差即為偏差】

 

方差(variance):同樣是針對訓練模型時每一次得到的訓練集預測標籤,但是此時是最終一次訓練以後得到的所有標籤之間的方差且與真實標籤無關(即③本身的方差),

即計算這些預測標籤的均值,再計算(每一個標籤-均值)的平方和。可以想象,剛開始方差肯定是很小的,因為剛開始學習,啥都不會,即使對於有或者無噪聲的資料,

我們都無法做出精準判斷,然而隨著學習的進行,有些我們會越學越好,但是會越來越多地受到噪聲資料的干擾,方差也會越來越大。

 

誤差(error):預測標記與訓練集中標記的誤差(③和②的差)。

 

 

什麼是bias?

 

偏置單元(bias unit),在有些資料裡也稱為偏置項(bias term)或者截距項(intercept term),它其實就是函式的截距,

與線性方程 y=wx+b 中的 b 的意義是一致的。在 y=wx+b中,b表示函式在y軸上的截距,控制著函式偏離原點的距離,

其實在神經網路中的偏置單元也是類似的作用。 

因此,神經網路的引數也可以表示為:(W, b),其中W表示引數矩陣,b表示偏置項或截距項。

 

************************************************************

第一章 緒論

1.1引言

1.2 基本術語

資料集:資料記錄的集合。

示例/樣本:每條記錄是關於一個物件的描述。,

屬性/特徵:物件的性質,比如西瓜的色澤,根蒂,敲聲

屬性值:屬性的取值,比如:西瓜的青綠色,烏黑色

樣本空間/輸入空間/屬性空間:屬性張成的空間

特徵向量:每一個示例都是一個特徵向量。

訓練/學習:從資料學得模型的過程

訓練資料

訓練樣本

訓練集

假設

學習器:模型

標記:

樣例:有標記的示例

分類:離散值的預測

迴歸:連續之的預測

二分類:正類,反類。

多分類:

測試:用學習得到的模型進行預測

測試樣本

聚類:把訓練集中的西瓜分成若干組

簇:每一個小組

有監督學習:分類和迴歸

 

無監督學習:聚類

泛化:學習模型適用於新樣本的能力

1.3 假設空間

歸納:特殊到一般的泛化過程,從具體事實總結規律,適用到更廣闊的範圍

演繹:從一般到特殊的過程

1.4 歸納偏好

學習得到的模型對應了假設空間中的一個假設。同一個資料集會產生幾個模型,會輸出不同的結果。

歸納偏好:演算法學習過程中對某種型別假設的偏好。

奧卡姆剃刀:選擇最簡單的原則

圖1.4 沒有免費的午餐:顯示圖b中彎曲複雜的曲線效果比簡單光滑的曲線效果好。也就是總誤差和學習演算法好壞無關

考慮所有潛在問題,所有演算法都一樣,但是通常情況,針對具體的問題,我們只會考慮我們關注的某些點

********************************************************************

 

第二章 模型評估與選擇 

2.1 經驗誤差與過擬合 

經驗誤差:學習器在訓練集上的誤差。也叫訓練誤差,誤差越小越好

泛化:模型適用於新樣本的能力。預測和實際符合的程度,泛化越好,擬合越好。

過擬合:訓練樣本誤差很小,但是測試樣本誤差很大,也就是泛化效能不好

欠擬合:對新舊資料表現不好

模型選擇:選擇泛化誤差最小的模型

2.2 評估方法

用測試集測試學習器對新樣本的判別能力,用測試誤差作為泛化誤差的近似

對資料集D進行處理,產生訓練集S和測試集T。方法有:留出法,交叉驗證法,自助法,

2.2.1 留出法

資料集簡單劃分為兩個互斥的集合訓練集和測試集。

2.2.2 交叉驗證法

把集合D劃分為K個大小相似的互斥子集,每個子集保持資料分佈的一致性。每次用k-1個做訓練集,餘下最後一個做測試集。這樣得到k個測試結果。

 

2.2.3 自助法

有放回取樣,得到新的資料集。結果有重複資料,約有3成沒有出現。把沒有出現的資料作為測試集。適合資料集較小的情況。缺點是產生估計偏差。

2.2.4 調參和最終模型

不同的引數對同一個演算法學習得到的模型會產生顯著的影響。

對候選引數指定範圍和步長決定幾個特定的引數進行選擇。

訓練集,驗證集,測試集。

2.3 效能度量                                     

效能度量:衡量模型泛化能力的評價標準。

模型的好壞取決於演算法和資料還有任務需求

迴歸任務用的效能度量是均方誤差

2.3.1 錯誤率和精度

 

2.3.2 查準率P,查全率R與F1

比如:搜尋網站給使用者的結果中有多少比例是使用者感興趣的,使用者感興趣的有多少比例被搜尋出來了。

查準率和查全率是矛盾的。只能一高一低。

平衡點:查準率=查全率 

商品推薦,查準率更重要,抓捕罪犯,查全率更重要。

F1基於查準率和查全率的調和平均。

F貝塔是加權調和平均。表達對P和R不同的偏好。

P-R曲線與平衡點示意圖

2.3.3 ROC 和 AUC

ROC:receiver operating characteristic受試者工作特徵

2.3.4 代價敏感錯誤率和代價曲線 

錯誤的代價/後果不同,比如醫生判斷病情。給錯誤賦予“非均等代價”。

這種情況我們不是強調最小化錯誤次數,而是強調最小化“總體代價”

代價曲線反映出學習器期望的總體代價。橫軸是正例概率代價,縱軸是歸一化代價。

歸一化/規範化:把不同變化範圍的值對映到固定範圍中。

 

********************************************************************

第三章:線性模型 監督學習

3.2 線性迴歸 

 

最小二乘法:基於均方誤差最小化來進行模型求解的方法(均方誤差對應了歐氏距離)

(修改:均方差和歐氏距離沒有關係2018-06-19 391508 June Tuesday the 25 week, the 170 day SZ),書上寫的是有關係的。

也就是試圖找到一條直線,使所有樣本到直線的歐式距離之和最短。

數值優化演算法:梯度下降gradient descent,牛頓法newton method.

3.3 對數機率迴歸(邏輯迴歸)LR/邏輯斯地迴歸logistics regression

寒小陽老師的部落格,講的真好。https://blog.csdn.net/han_xiaoyang/article/details/49123419

我學了一年機器學習,大腦裡面都是糊塗的,不知道邏輯迴歸講啥東西,看了他的部落格,瞬間懂了,也忘不掉了,書上寫的看過很快就忘了。

 

邏輯迴歸始於輸出結果為有實際意義的連續值的線性迴歸,但是線性迴歸對於分類的問題沒有辦法準確而又具備魯棒性地分割,因此我們設計出了邏輯迴歸這樣一個演算法,

它的輸出結果表徵了某個樣本屬於某類別的概率。

 

邏輯迴歸的成功之處在於,將原本輸出結果範圍可以非常大的θTX 通過sigmoid函式對映到(0,1),從而完成概率的估測。

 

而直觀地在二維空間理解邏輯迴歸,是sigmoid函式的特性,使得判定的閾值能夠對映為平面的一條判定邊界,當然隨著特徵的複雜化,判定邊界可能是多種多樣的樣貌,

但是它能夠較好地把兩類樣本點分隔開,解決分類問題。

 

 

求解邏輯迴歸引數的傳統方法是梯度下降,構造為凸函式的代價函式後,每次沿著偏導方向(下降速度最快方向)邁進一小部分,直至N次迭代後到達最低點。

3.4 LDA 

Linear Discriminant Analysis線性判別分析:把樣例投射到一條直線上,讓同類樣例儘可能接近,異類樣例儘可能遠。對新的樣例,根據投影點的位置決定新樣本的分類。主要用於二分類

********************************************************************

 

第四章 決策樹 decision tree  二分類與迴歸,屬於監督學習

決策樹

 

決策樹分為兩大類,分類樹和迴歸樹。分類樹是我們比較熟悉的決策樹,比如C4.5分類決策樹。分類樹用於分類標籤值,如晴天/陰天、使用者性別、網頁是否是垃圾頁面。而回歸樹用於預測實數值,如明天的溫度、使用者的年齡、網頁的相關程度。也就是分類樹的輸出是定性的,而回歸樹的輸出是定量的。

 

4.2.1 資訊增益 

資訊熵度量樣本純度,熵越小,純度越高。(可以把熵想成雜質)

資訊增益越大,純度提升越大,用來進行決策樹的劃分屬性選擇。(權重最大,最重要的參考依據),對取值數目屬性多的不準確。

4.2.2 增益率/比  gain ratio

C4.5 決策樹演算法採用增益率選擇最優屬性,對取值數目少的屬性有所偏好

 

第六章:

SVM支援向量機:一般用於二分類,用一個超平面把資料分為兩個部分。屬於監督學習

支援向量:距離超平面最近的樣本點

核函式:把原始樣本空間對映到高維,然後才能順利把樣本分開,也就是把非線性學習擴充套件為線性學習。各種核函式統稱核方法。

2018-05-21 14:42:43 May Monday the 21 week, the 141 day SZ

第七章 貝葉斯分類器 

 

7.2 極大似然估計

 

7.3 樸素貝葉斯分類器

樸素的原因是因為天真的假設所有特徵相互獨立,換言之,每個屬性獨立的對分類結果產生影響。

7.6 EM 演算法 Expectation maximization期望最大化

EM 演算法是用於含有隱變數模型的極大似然估計或者極大後驗估計,有兩步組成:E 步,求期望(expectation);

M 步,求極大(maxmization)。本質上 EM 演算法還是一個迭代演算法,通過不斷用上一代引數對隱變數的估計來對當

前變數進行計算,直到收斂。

注意:EM 演算法是對初值敏感的,而且 EM 是不斷求解下界的極大化逼近求解對數似然函式的極大化的演算法,也

就是說 EM 演算法不能保證找到全域性最優值。對於 EM 的匯出方法也應該掌握。

 

 

隱變數:訓練樣本不全,比如瓜蒂掉落,無法判斷是蜷縮還是硬挺。

EM演算法估計引數隱變數的方法。

兩步走策略:

E 步:選取一組引數,求出在該引數下隱含變數的條件概率值;

M 步:結合 E 步求出的隱含變數條件概率,求出似然函式下界函式(本質上是某個期望函式)的最大值。

重複上面 2 步直至收斂。

第八章:整合學習 ensemble learning

8.1 個體與整合

結合多個學習器獲得比單一學習器更好的泛化效能。分為同質(相同種類)和異質學習器(不同種類的學習器)

根據個體學習器生成方式,整合學習器分為序列生成的序列化方法(個體間存在強依賴關係)比如Boosting和同時生成的並行化方法(不存在強依賴關係),比如:Bagging和隨機森林。

8.2 Boosting演算法 

把弱學習器變成強學習器。工作原理是:先訓練一個基學習器,然後增大誤差樣本的權重,重複訓練T個不同的學習器,然後T個基學習器加權結合。(重賦權值法,重取樣法)

AdaBoost是最有名的Boosting演算法,是英文"Adaptive Boosting"(自適應增強)的縮寫.演算法原理:基學習器的線性組合來最小化指數損失函式。

如果指數損失函式最小,則分類錯誤率也會最小。但是AdaBoost只適合二分類任務

 

 

Boosting 的本質實際上是一個加法模型,通過改變訓練樣本權重學習多個分類器並進行一些線性組合。而

Adaboost 就是加法模型+指數損失函式+前項分佈演算法。Adaboost 就是從弱分類器出發反覆訓練,在其中不斷調整數

據權重或者是概率分佈,同時提高前一輪被弱分類器誤分的樣本的權值。最後用分類器進行投票表決(但是分類器的

重要性不同

 

3)Boosting 之 GBDT

將基分類器變成二叉樹,迴歸用二叉迴歸樹,分類用二叉分類樹。和上面的 Adaboost 相比,迴歸樹的損失函式

為平方損失,同樣可以用指數損失函式定義分類問題。但是對於一般損失函式怎麼計算呢?GBDT(梯度提升決策樹)

是為了解決一般損失函式的優化問題,方法是用損失函式的負梯度在當前模型的值來模擬迴歸問題中殘差的近似值。

注:由於 GBDT 很容易出現過擬合的問題,所以推薦的 GBDT 深度不要超過 6,而隨機森林可以在 15 以上。

 

Xgboost

這個工具主要有以下幾個特點:

0.  支援線性分類器

1.  可以自定義損失函式,並且可以用二階偏導

2.  加入了正則化項:葉節點數、每個葉節點輸出 score 的 L2-norm

3.  支援特徵抽樣

4.  在一定情況下支援並行,只有在建樹的階段才會用到,每個節點可以並行的尋找分裂特徵。

 

 

8.3 Bagging與隨機森林

8.3.1 Bagging 

基本思路:基於自主取樣法(拿出,放回,重複操作),得出T個含有m個樣本的取樣集,每個取樣集訓練一個學習器,然後組合學習器。

(簡單投票法(分類),簡單平均法(迴歸))

8.3.2隨機森林

RF是Bagging的擴充套件變體。

隨機森林 Random Forest 是一個包含多個決策樹的分類器

第十四章 概率圖模型 

概率模型把學習任務歸結為計算變數的概率分佈。生成式模型考慮聯合概率分佈,判別式模型考慮條件分佈。

概率圖模型用圖表達變數關係的概率模型。

14.1 隱馬爾科夫模型

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

觀測概率矩陣 B。稱為馬爾科夫模型的三要素。

馬爾科夫三個基本問題:

0.  概率計算問題:給定模型和觀測序列,計算模型下觀測序列輸出的概率。–》前向後向演算法

1.  學習問題:已知觀測序列,估計模型引數,即用極大似然估計來估計引數。–》Baum-Welch(也就是 EM 演算法)和極大

似然估計。

2.  預測問題:已知模型和觀測序列,求解對應的狀態序列。–》近似演算法(貪心演算法)和維位元演算法(動態規劃求最優

路徑)

14.2 馬爾科夫隨機場

 

14.3 條件隨機場

給定一組輸入隨機變數的條件下另一組輸出隨機變數的條件概率分佈密度。條件隨機場假設輸出變數構成馬爾

科夫隨機場,而我們平時看到的大多是線性鏈條隨機場,也就是由輸入對輸出進行預測的判別模型。求解方法為極大

似然估計或正則化的極大似然估計。

14.6 話題模型 

是一種生成式的有向圖模型,主要用於文字處理中,典型代表就是LDA:latent Dirichlet Allocation隱狄利克雷分佈。幾個概念,詞,文件,話題

 

認識你是我們的緣分,同學,等等,學習人工智慧,記得關注我。

 

微信掃一掃
關注該公眾號

《灣區人工智慧》