1. 程式人生 > >Machine Learning —— By Andrew Ng(機器學習 聽後自己做的筆記 記錄重點內容)

Machine Learning —— By Andrew Ng(機器學習 聽後自己做的筆記 記錄重點內容)

MachineLearning

——byAndrew Ng , Stanford

第一講:機器學習的動機與應用

一、監督學習:

1、  迴歸問題: 房價預測

2、  分類問題:腫瘤為良性還是惡性

二、無監督模型:

三、區分聲源的例子的思考(雞尾酒會問題):

無監督演算法發現資料內部的隱含結構,告訴我們不同型別的資料結構是什麼樣的。可為監督模型的資料結構做學習的參考。

四、無監督學習演算法很複雜?Matlab只有一行程式碼!用CJava你會付出慘痛的代價。

五、強化學習

飛機的飛行控制程式利用強化學習演算法進行學習,正確的決策會得到獎勵,壞的決策進行懲罰,以此不斷地進行強化。其根本在於:回報函式。

為機器人編寫控制程式會非常難,但通過學習型演算法,可以寫一個簡單的多的程式,卻讓機器人做很多神奇的事情。

第二講監督學習應用.梯度下降

綱要:

監督學習演算法:

以房價預測例子,講解Linear Regression(線性迴歸)

(迴歸性學習演算法應用:機動車的自動駕駛)

以及講解求引數的兩種方法:

Gradient Descent(梯度下降)——神經網路的核心演算法

Normal Equations(正規方程組)——詳細見講義

回講房價預測的例子:

Andrew Ng:利用訓練集合選擇或學習,得到合適的引數值是學習演算法的任務!(哈哈跟我講的一樣)

使函式的值最小化有很多不同演算法。搜尋演算法:我們先給引數向量一個初始值θ(初始值可設為0

然後不斷改變引數向量,使得目標函式不斷減小。

向下降最快的方向走一步,這個方向正是梯度的方向。到達一個新位置後,再向下降最快的方向走一步,直到達到一個區域性最小值:

若換一個初始點:

注意區分兩個概念:擬合函式(如y=ax+b

違約函式(又稱成本函式,如J(θ)=1/2[(axi+b) –yi]2

注:擬合函式為線性函式,則為線性迴歸;反之,則為各種別的函式的迴歸。

線性規約問題或者規約函式為二次函式規約由於規約函式形狀類似碗狀,所以只有一個區域性局最小值,區域性最小值即是全域性最小值。

注:此外由於越接近最小值,梯度下降的每一步否會自動變得越來越小,在迭代的過程中由於是減去梯度(嚴格的說是學習速度α乘以梯度),所以越靠近最優值,速度會越來越慢。在最優點處,梯度為0

以上演算法由於每迭代一步都要遍歷所有樣本集合(所以稱作Batch gradient descent)。所以在大樣本的情況下,收斂速度會非常慢。將其演算法進行改進:

每次收斂只參考一個樣本。其演算法稱為隨機梯度下降演算法stochastic gradient descent )或稱為增量梯度下降演算法 incremental gradient descent

(注意j表達一個方向的θ,每一步環視一週就是計算每一個θ分量,選擇最陡峭的方向走一步;然後在走後的當前位置再環視一週,如此反覆進行前進收斂。。。)

這種方法不會得到精確的收斂值,但會在很接近最優值周圍直接進行徘徊。(犧牲了一點精確度換來更快的收斂速度)

NormalEquations(正規方程組)——詳細見講義

其中J為梯度向量,不用每次對一個分量進行求偏導。

詳看講義:

第三講欠擬合與過度擬合的概念

綱要:

欠擬合與過度擬合的概念

Linear Regression(線性迴歸)的變種locally weighted regression(區域性加權迴歸)

perceptron algorithm(感知器演算法)

Newton’s method(牛頓方法)——對logistic迴歸進行擬合的演算法

過度擬合:

圖一由於特徵集合過小,則擬合模型過於簡單。——欠擬合

圖三由於使用了過大的特徵集合,是的模型過於複雜。——過度擬合

特徵選擇演算法有一類自動化的演算法,可以在迴歸問題中選擇要用到的特徵(含有特徵的樣本)。

Non-parametric learning algorithm(非引數學習方法)——可以緩解對特徵選取的需求(特徵選取過多則過擬合,過少則欠擬合)——而之前的學習就是為了求參就是典型的引數學習演算法(有固定的引數集合θ)。

其定義為:隨著訓練集合的增加,引數的數目會線性增長。(Number of parameters grows with m. -- m為引數的數目。)

(小知識補充:引數統計,基於某種分佈的,比如正態分佈指數分佈,進行引數估計檢驗區間預測等等;非引數方法,主要用於那些分佈並不服從某一個已知的分佈,也不知道他們的引數,不針對引數的求算進行的統計分析。非引數迴歸模型完全由資料驅動。LK:非引數方法並不是求解過程中不涉及引數,只是引數的意義不一樣——如下面講到的區域性加權迴歸演算法中,我們求得參是區域性擬合直線的引數,並不是真正樣本集擬合的全域性曲線的函式的引數)

一種特定的非引數學習方法——locally weightedregression(區域性加權迴歸):

待測樣本區域性的樣本點進行線性擬合(區域性的線性迴歸),以預測出直線估計的待測點的值:

注意圖中w(i)的位置。

其演算法對於特徵的選擇(或稱引數數目的選擇,注意這裡的特徵不是指特徵屬性,而是帶有特徵的樣本點)有自優化的過程。

通過區域性加權迴歸擬合出一組引數向量,其加權規則為:(注意此分佈跟高斯分佈沒有關係)

(數字2後面的τ(tow),此引數稱作波長函式,它控制了權值隨距離下降的速率—— τ小則下面的函式影象表現為高瘦,遠處的點的權值或下降很快;反之則矮胖。)

其表達的意思為,離當前查詢點(待測點)近的樣本點的權值w接近1,遠離當前點的權值w接近0。以此來對臨近點的精確擬合。同時忽略離得很遠的點的貢獻。其權值分佈的影象大致如下:在當前點即中心位置的點的權值高,遠處權值低。——此方法可以很大程度改善過度擬合和欠擬合問題,但是不能完全避免(τ的影響,這個波長引數也有一定的演算法來選取它)

注:每次對一個待測樣本進行預測就需要重新根據巨大的資料集合來擬合出一條直線。每對一個待測點進行預測,實際上每次你都在改變你的假設(即改變對樣本的擬合函式)

如果沿著x軸的每個點都進行區域性直線擬合,那麼你會發現對於這個資料集合來說,區域性加權的預測結果,能夠最終跟蹤這條非線性的曲線

線性迴歸模型的概率解釋(得到規約函式為什麼是二次函式(也稱最小二乘迴歸))

思考:我們為什麼要用最小二乘的指標作為規約函式?為什麼不是絕對值或四次方?(最後經過證明你會發現,這個不是人為定的,違約函式是可以被推匯出來的)

回到預測房價的例子:

其中,上圖建立的擬合函式中,誤差值ε服從高斯分佈N(0,σ2);(大數定律)

LKε服從高斯分佈,由於θTX(i)是一個已知實值,則y(i)也服從高斯分佈,且方差也是σ2

注意符號的表示:P(y(i)|X(i); θ)表示:

θ為給定的引數的情況下,概率y(i) X(i)為隨機變數的概率分佈,注意X(i)為隨機變數,而θ不是隨機變數。

ε(i)s是獨立的同分布(IIDindependentlyidentically distribution

建立以θ為變數的似然函式。(Andrew:似然性和概率性在很大程度上一樣的意思。)

現在來估計引數:採用極大似然估計推導後,即求下圖中式子的極小值。(即:其實最小二規約本質上也是最大似然原則推導而來的。

至此,證明了線性迴歸的概率解釋。注意:用極大似然估計推導最小二乘規約函式的引數時,引數σ對於最小二乘演算法沒有影響。所以下面GMLs中,可設σ = 1

logistic迴歸——一種分類演算法

先來看看二分類若用線性函式進行擬合:

很明顯在分類問題中,這個簡單的例子示意了迴歸模型有時候不能很好地給分類問題建立合適的模型。

所以,建立以新的擬合函式來建立新的模型:

首先來看一個函式的表示式:

此函式稱為Sigmoid functionlogisticfunction

將兩個概率模型統一表達在一個式子中。

然後建立最大似然函式:

可採用梯度下降演算法求解θ。注意這裡是求最大值而不是最小值,所以更新θ採用加號。(實質為梯度上升演算法)

注意區分概念:根據最小二乘規則(本質也是最大似然),規約函式越小線性擬合越好。擬合函式為線性函式或其他函式。根據最大似然原則,似然函式越大越擬合。這裡擬合函式為logistic函式。

兩種方法中,求參都可採用的梯度下降(上升)演算法。

神奇的是根據最小二乘規則或根據最大似然原則,採用梯度下降演算法,最後求得了一樣的形式!如下:

但其內涵不一樣,之前例子中的擬合函式為線性函式,這裡的擬合函式為logistic函式

即使它們表面上很相似,但相對於上一次基於最小二乘迴歸推出的下降規則,實際上是完全不同的學習演算法。這看這是一種我們之後將會看到的,最為優雅的通用的學習模型,即使我們使用不同的模型,實際上是會以一種看起來相同的學習演算法結束,這並不是巧合。

(建議下去之後詳看講義上的推導,自己將推導)

Perceptronalgorithm(感知器演算法)

感知器演算法的定義:

引數學習演算法的結果依然很像,但其背後的理論(Andrew:它是一類非常不同的學習規則)是完全不一樣的,因為函式生成的值只有01。——因為其值只有01這個演算法非常簡便。

第四講

綱要:

Newton’s method(牛頓方法)

Exponential family(指數分佈族)

Generalized linear models(廣義線性模型GLMs

——將傳統的最小二乘迴歸和logistic迴歸進行推廣後的模型

回到logstic迴歸,用牛頓方法來求解引數代替梯度下降演算法,來對最大似然估計的模型進行擬合。

若求θ,使得f(θ)=0.

注意fl

牛頓方法的收斂速度非常快,又是稱為二次收斂。一般沒迭代一步為數量級的收斂。

牛頓方法擴充套件到多維:

對多維的運算及矩陣的求導,詳見note1和複習筆記1.pdf

注意矩陣n*n表示樣本數(特徵數?)

我明白了(LK):一個θ是一個樣本的多維特徵,要是考慮多個樣本的話,就成了矩陣形式(其意思就跟在原始的梯度下降演算法中,每次迭代是參照所有的樣本,而不只是一個樣本)。

小結:兩種演算法模型

最小二乘法的線性迴歸——適合迴歸問題建模預測

最大似然法的logistic迴歸——適合分類問題建模預測

Generalizedlinear models(廣義線性模型GLMs

——將傳統的最小二乘迴歸和logistic迴歸進行推廣

下面考慮兩個分佈:Bernoulli分佈和Gaussian分佈

Bernoulli分佈中Ф指定了y=1的概率,改變了Ф值,得到了不同的關於 y=1這一事件的概率。不要將其看成一個固定的概率分佈。將其視為一類或者一組概率分佈。(都服從某一類的分佈,只是引數不一樣)

同理於Bernoulli Gaussian分佈都是Exponentialfamily的特例。

Exponential family(指數分佈族)的定義詳見note1.P23, 24

改變Ф值 → 一組Bernoulli分佈→ 改變T、a、b → 一組指數分佈族的子集

(改變Ф值相當於固定T、a、b,改變a的變數Ф

反過來表達的意思為:

指數分佈族 → 固定T、a、b → 決定是什麼分佈 (某一類的分佈)→

→ 若為Bernoulli分佈→ 固定Ф值(對應GLMs中引數η) → 特定的Bernoulli分佈

若為Gaussian分佈 → 固定μ(假定σ= 1)值(同上) → 特定的Gaussian分佈

(特別注意自然引數η,同時它是分佈a的隨機變數,η可為一個標量、向量、矩陣)

本科的統計書上的絕大部分分佈函式都可以寫成指數分佈族的形式:

Bernoulli分佈、Gaussian分佈、多項式分佈,泊松分佈等很多分佈的廣義線性模型就是 指數分佈族。

應用指數分佈族:

如何Constructing  GLMs構造(生成)廣義線性模型)?

為什麼要推廣廣義線性模型:如有有一個新的機器學習問題,並且嘗試預測一個變數的值y,可以根據y的變數分分佈確定T、a、b來建立模型,推廣後建模十分便利。

廣義線性模型的三個假設,以及推導、例舉,詳見note1 P25.26

利用廣義線性模型推導的logistic迴歸舉例:

在推廣GMLs前,我們需要做一個工作:當我們把伯努利分佈(同理於其他分佈)寫成指數分佈的形式的時候,我們得到了Ф(伯努利分佈)與η(指數分佈)的關係,記得到也預測值y與η的關係。又由於假設中η與θ的線性關係,有:

以上就是根據GMLs推導logistic迴歸演算法的過程(因為演算法結束後發現,迴歸函式即擬合函式就是logistic函式的形式啊),該演算法中,由於預測值y只有兩個值,所以演算法建模的過程中用伯努利分佈(同理,根據y的分佈模型選擇Guassian分佈,泊松分佈(商店裡今天會有多少顧客來,今天遇到紅綠燈的數目))對其進行建模。

——就這個選擇預測值的分佈是人為的,別的建模過程都是計算機來完成。

注意在logistic迴歸中,θ的計算方法可為最大似然估計,梯度下降演算法或牛頓方法。

 y = θx + εLKε 服從高斯分佈,於是y也服從高斯分佈。

以上是在建立線性迴歸模型中,是預測值y服從高斯分佈的推導。

多項式分佈(對分類問題)——一個較複雜,技巧性很強的GMLs的例子

由於公式較多較複雜,詳見note1.P27-

最後推匯出的迴歸我們將其命名為Softmax迴歸(k類),它是logistic迴歸(兩類)的推廣。    —— Softmax迴歸的引數選擇仍採用最大似然估計獲得。