CS229 課程筆記一

監督學習

一個很典型的例子就是已知房子的面積估計房子的價格。當然前提是要統計大量的房價與房子面積的數據。
下面就是一個例子:

面積 ( feet2 ) 價格(1000$s)
2014 400
1600 330
2400 369
1416 232

在座標系中畫出這些數據爲:
這裏寫圖片描述
那我們如何通過以上的數據,通過房子的面積來估計房子的價格呢?


建立符號系統
x(i) :輸入變量,也叫做輸入特徵。
y(i) : 輸出,也叫目標變量。
x(i),y(i) :訓練樣本
{(x(i),y(i));i=1,...,m} :訓練集
上標 (i) 是訓練集中的index
χ :表示輸入樣本空間
Y :表示輸出空間
在監督學習中,我們的目標是:對於給定的訓練集,學習得到一個函數 hχY
這個函數我們叫做假設函數(hypothesis),這個過程用框圖可以表示爲:
這裏寫圖片描述


迴歸與分類
目標值爲連續值時,這樣的學習問題叫做迴歸問題。當目標值爲離散的時,我們把這類學習問題叫做迴歸問題。

線性迴歸

爲了讓我們的房子價格預測更加有趣和貼近實際,我們在添加一個房子信息(房間數目)
這裏寫圖片描述
這裏 x 是一個二維向量 x(i)1 表示訓練集中的第 i 個樣本的房間的面積, x(i)2 表示訓練集中的第 i 個樣本的房間的臥室的數目。

爲了訓練函數 h 我們首先得確定函數的形式,我們選擇線性函數作爲最初的選擇。即:
hθ(x)=θ0+θ1x1+θ2x2
這裏 θi 是參數(也叫做權重)
通常我們會將 hθ(x) 簡寫爲 h(x) ,爲了進一步簡化我們的符號表達,按照一般的慣例,我們令 x0=1 所以有:

h(x)=Σni=0θixi=θTx

θx 是向量, n 是訓練樣本特徵的個數(不包括 x0

如何通過學習得到訓練參數

一個合理的做法是讓 h(x) 儘可能的接近 y .至少對於訓練樣本來說要儘可能的接近。爲了度量這個接近程度我們定義損失函數(cost function):

J(θ)=12i=1m(hθ(x(i))y(i))2

這個函數實際上是最小二乘的損失函數

LMS(least squares regression model)算法

我們想選擇合適的 θ 使得 J(θ) 最小,爲了達到這個目標,我們假定從一個隨機初始化的 θ 開始進行搜索。當然了,這裏的搜索也不是瞎搜索,這裏通過梯度下降法讓 θ 不斷逼近我們想要的值最終收斂到我們想要的那個值使得 J(θ) 最小。這裏採用的策略是梯度下降法,爲什麼要選用梯度下降呢?因爲函數值沿梯度方向變化最快,這樣可以更快的收斂。這裏用的是負梯度因爲是下降嘛!梯度下降的更新公式爲:

θj:=θjαθjJ(θ)

這個更新是同時對所有的 θj;j=1,2,,n 進行更新的。這裏 α 學習率。.

爲了實現這個算法,我們首先得計算出等式右邊的偏微分。我們先考慮只有一個訓練樣本 x,y 的情形,這樣我們就可以忽略原 J(θ) 定義中的求和公式了。因此有:

θjJ(θ)=θj12(hθ(x)y)2=212(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(Σni=0θixiy)=hθ(x)yxj

所以對於只有一個訓練樣本來說,更新公式爲:
θj:=θj+α(yhθ(x))xj

其中 j=0,,n 爲樣本中特徵的個數。我們稱這個規則爲 LMS(least mean squares)規則,也被稱作 Widrow-Hoff學習規則。這個規則很符合我們的直觀感受,因爲對於一個預測值和真實值很相近的訓練樣本來說,我們只需要對參數做細微的更改而對於預測值和真實值相差很遠的訓練樣本我們要對參數做較大的更改。
以上的更新公式只針對只有一個訓練樣本的情況,對於有很多訓練樣本的情況,這裏有兩種處理方式。

方式一:批梯度下降法(batch gradient descent)

在一次更新時將所有訓練樣本的誤差都計算出來並累加起來。
批梯度下降更新公式:
重複以下公式直到收斂
{

θj:=θj+αi=1m(y(i)hθ(x(i)))x(i)jj

}
m 指的是樣本的個數
注意:梯度下降法很可能得到一個局部最優的結果,但是我們這裏的最優化線性迴歸問題只有一個全局最優結果(因爲 J(θ) 是一個二次凸函數),沒有其他的局部最優。下面是一個利用梯度下降法求解二次方程最下值的一個例子:
梯度下降例子

方式二:隨機梯度下降法

( stochastic gradient descent (also incremental gradient descent). )
每次更新都是針對一個訓練樣本。
更新公式:
Loop
{
  for i=1 to m
  {
    θj:=θj+α(y(i)hθ(x(i)))x(i)j  (for every j)
  }
}
批梯度下降法和隨機梯度下降法的主要區別:
批梯度下降法要訪問所有的訓練樣本,當訓練樣本數十分大時將十分耗時。通常,隨機梯度下降法會更快的收斂到我們所要的最小值,但是隨機梯度下降法可能永遠不會收斂到最小值,而在最小值周圍震盪。

標準方程

梯度下降法是最小化損失函數 J(θ) 的方法之一。接下來我們討論另外一種方法,在這種方法中我們將不再求助於迭代算法,我們直接對 θj 進行處理。爲了在接下來的內容中不是長篇的矩陣公式的推導,我們先介紹一些矩陣的基礎知識。

矩陣求導

對於一個函數 f:Rm×nR 將一個 m×n 的矩陣映射到實數域,我們定義 f 關於A的導數爲:

Af(A)=fA11fAm1fA1nfAmn

梯度 Af(A) 本身也是一個 m×n 的矩陣,它的第 i,j 個元素爲 f/Aij 。舉個例子:
假定一個矩陣
A=[A11A21A12A22]

以及 f(A)=32A11+5A212+A21A22

對矩陣A求梯度有:

Af(A)=32A2210A12A21

矩陣的跡(trace)
對於一個 n×n 的矩陣A,它的跡定義爲其對角元素之和:
trA=i=1nAii

矩陣跡的性質:
對於方陣A,B,實數a 有
trAB=trBAtrABC=trCAB=trBCAtrABCD=trDABC=trCDAB=trBCDAtrA=trATtr(A+B)=trA+trBtraA=atrA

接下來是矩陣導數的一些等式:
AtrAB=BTATf(A)=(Af(A))TAtrABATC=CAB+CTABTA|A|=|A|(A1)T

這裏寫圖片描述

最小二乘法回顧

有了矩陣求導的工具之後,我們將 J(θ) 重寫爲矩陣形式。給定一個決策矩陣 Xmn (實際上應該爲 m×n+1 因爲要加上截距元素也就是 x0 )假定訓練樣本是按行放置,則:

X=(x(1)T)(x(2)T)(x(m)T)

假定 y⃗  是一個包含所有訓練樣本目標值的 m 維的向量:
y⃗ =y(1)y(1)y(m)

由於 hθ(x(i))=(x(i))Tθ ,所以我們可以得到:
Xθy⃗ =(x(1)Tθ)(x(1)Tθ)(x(m)Tθ)y(1)y(2)y(m)=hθ(x(1))y(1)hθ(x(2))y(1)hθ(x(m))y(1)

對於一個向量 z ,我們有 zTz=Σiz2i ,所以:
12(Xθy⃗ )T(Xθy⃗ )=12i=1m(hθ(x(i))y(i))2=J(θ)

爲了最小化 J ,我們求其關於 θ 的導數:
由:
ATf(A)=(Af(A))TAtrABATC=CAB+CTABT

可以推導出:
ATtrABATC=BTATCT+BATC

因此:
θJ(θ)=θ12(Xθy⃗ )T(Xθy⃗ )=12θ(θTXTXθθTXTy⃗ y⃗ TXθ+y⃗ Ty⃗ )=12θtr(θTXTXθθTXTy⃗ y⃗ TXθ+y⃗ Ty⃗ )=12θ(trθTXTXθ2try⃗ TXθ)=12(XTXθ+XTXθ2XTy⃗ )=XTXθXTy⃗ 

第三步是基於這樣一個事實:一個數實數的跡就是這個實數,第四步: trA=trAT ,第五步:利用了式子 ATtrABATC=BTATCT+BATC   AT=θ,B=BT=XTX and C=I 所以我們得到:
XTXθ=XTy⃗ 

所以:
θ=(XTX)1XTy⃗ 

概率解釋

當我們面對一個迴歸問題時,爲什麼線性迴歸或者更精確一點說最小二乘得到的損失函數 J 是一個合理的選擇。在本節中,我們將做一系列概率假設,這將使得我們很自然的推導出最小二乘迴歸得到的解。
我們假定目標值和輸入之間的聯繫由以下方程決定:
y(i)=θTx(i)+ϵ(i)
其中: ϵ(i) 是錯誤項用於表示我們建模時沒有考慮的影響因素以及干擾因素。我們在做進一步的假設,假設 ϵ(i) 滿足獨立同分布(IID),且爲均值爲0方差爲 σ2 的高斯分佈(也叫做正態分佈)記作: ϵ(i)N(0,σ2) 。所以: ϵ(i) 的概率密度函數爲:

p(ϵ(i))=12πσexp((ϵ(i))22σ2)

這意味着:
p(y(i)|x(i);θ)=12πσexp((y(i)θTx(i))22σ2)

p(y(i)|x(i);θ) 表示在給定 x(i) 和參數 θ y(i) 的分佈。由於 θ 不是一個隨機變量,因此我們不能假定它的分佈情況。我們可以將上面的分佈函數簡記爲: y(i)|x(i);θN(θTx(i),σ2)
給定決策矩陣 X (包含所有的 y(i) )以及 θ  , y(i) 的分佈是怎樣的呢?對於給定的數據,有 p(y⃗ |X;θ) 這個函數通常看作是 y⃗  或是 X 的函數,但是現在我們要把它看做是 θ 的函數,並把它叫做似然函數(likelihood function):
L(θ)=L(θ;X,y⃗ )=p(y⃗ |X;θ)

由於 ϵ(i) 的獨立性假設, L(θ) 可以寫作:
L(θ)=i=1mp(y(i)|x(i);θ)=i=1m12πσexp((y(i)θTx(i))22σ2)

現在我們得到了與 y(i) x(i) 相關的概率模型,那該如何去選擇最佳的參數 θ 呢? 最大似然規則告訴我們,我們應該選擇使似然函數 L(θ) 最大的參數 θ 。由於這裏的 L(θ) 全是乘法操作,我們通過將其進行轉換,這裏採用的是 log 操作,由於 log 函數是嚴格單調遞增的所以不會影響我們之後的分析。所以我們得到 log 似然函數( log likelihood ) (θ) :
(θ)=logL(θ)=logi=1m12πσexp((y(i)θTx(i))22σ2)=i=1mlog12πσexp((y(i)θTx(i))22σ2)=mlog12πσ1σ212i=1m(y(i)θTx(i))2

因此最大化 (θ) 等價於最小化:
12i=1m(y(i)θTx(i))2

這就是最小二乘得到的損失函數 J(θ)
這裏寫圖片描述

局部加權線性迴歸

假定我們通過 x 來預測 y 的值,下圖中的左圖使用函數 y=θ0+θ1x1 對數據集的擬合結果,我們可以看到數據集中的數實際上並不是在一條直線上,因此擬合效果並不是很好。
這裏寫圖片描述
但是如果我們增加一個額外的特徵 x2 ,以及用函數 y=θ0+θ1x1+θ2x2 對數據進行擬合,我們可以得到更好的擬合效果(如中間那副圖像所示)。簡單的看,我們可能會覺得添加添加更多的特徵會得到更好的擬合效果。但是最右邊的圖就要打臉了,右圖是使用5階多項式 y=5i=0θjxj 對數據進行擬合的結果,我們可以看到所有的數據點都完美的落到了擬合曲線上,但是這並不是一個好的預測器。我們把左圖所示的情況叫做欠擬合把右圖所示的情況叫做過擬合
正如我們之前討論的,特徵的選擇在很大程度上會影響學習算法的性能。(在討論模型選擇時,我們會看到自動選擇好的特徵的算法)。在這節,我們簡要的介紹一下局部加權線性迴歸(LWR),假定我們有足夠多的訓練數據,這讓特徵選擇不那麼嚴格。接下來的處理很簡單。
在原始的線性迴歸算法,爲了預測一個未知點 x 的值,會有一下幾步:
1.選擇合適的 θ 使 i(y(i)θTx(i))2 最小
2.輸出預測值 θTx
相應的,LWR做了一下兩步:
1.選擇合適的 θ 使 iw(i)(y(i)θTx(i))2 最小
2.輸出預測值 θTx
這裏 w(i) 是一個非負的權重值,直觀開來,對於某個樣本 i 如果 w(i) 很大的話,我們就會盡力選擇一個合適的 θ 來使 (y(i)θTx(i))2 儘量小,但是當 w(i) 很小時,誤差項 (y(i)θTx(i))2 就不用考慮太多了。通常我們使用下面的公式的值來選擇權重值:

w(i)=exp((x(i)x)22τ2)ifxisvectorthen:w(i)=exp((x(i)x)TΣ1(x(i)x)2τ2)

從上式中我們可以看到, w(i) 的值取決於我們要預測的 x 的值,更確切的來說:如果 |x(i)x| 很小的話那麼 w(i) 的值將趨近於1,但是當 |x(i)x| 很大時 w(i) 的值將趨近於0.也就是說對於和 x 相近的訓練樣本我們在訓練時會看的更重,對於遠離 x 的訓練樣本我們就會盡可能的忽略。參數 τ 被稱作 帶寬,它決定了我們選擇的訓練樣本到 x 的距離。

局部加權線性迴歸算法使我們接觸的第一個非參數算法(每次預測都要使用訓練樣本),之前的線性迴歸算法是典型的參數算法(有限的參數,訓練完後訓練數據就可以不需要了)

分類和邏輯迴歸

接下來我們將討論分類問題,分類問題和迴歸問題很像,除了 y 只取幾個離散的值。在初期,我們只考慮二值分類問題, y 只取0和1.比方說,我們想把郵件分爲垃圾郵件和正常郵件,那麼 x(i) 表示郵件的一些特徵, y d的可能取值爲1(垃圾郵件)和0(正常郵件)。對於給定的訓練樣本 x(i) y(i) 稱作其標籤。

邏輯迴歸

我們可以忽略 y 的取值爲離散值這個事實,而直接將之前的老的線性迴歸算法用於預測 y 值。但是顯然 hθ(x) 的取值很可能大於1,小於0,但是 y{0,1} 。爲了糾正這個問題,我們改變了假設函數 hθ(x) 的形式:

hθ(x)=g(θTx)=11+eθTx

其中:
g(z)=11+ez

這個函數被稱爲 邏輯函數(ogistic function)或者 sigmoid function下圖是它的函數圖像。
這裏寫圖片描述
我們可以看到,當 zg(z)1;zg(z)0 ;所以 g(z) 也就是 h(z) 都被限定在 01
從現在起,函數 g 爲我們選定的sigmoid函數(也可以選用其它在(0,1)之間連續遞增的函數)。這裏的g函數的導數有一個很好的特性:
g(z)=ddz11+ez=1(1+ez)2(ez)=g(z)(1g(z))

那麼對於給定的邏輯迴歸模型,我們如何確定 θ 呢?由之前的學習我們基於一系列的假設,通過最大似然估計推導出了最小二乘迴歸。接下來,我們也將通過一系列的概率假設,利用最大似然推導出擬合參數 θ
首先,假設:
p(y=1|x;θ)=hθ(x)p(y=0|x;θ)=1hθ(x)

上式可以寫成一個緊湊的式子:
p(y|x;θ)=(hθ(x))y(1hθ(x))1y

假定 m 個訓練樣本是獨立的,所以,關於 θ 的似然函數爲:
L(θ)=p(y⃗ |X;θ)=i=1mp(y(i)|x(i);θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

由此很容易得到log似然函數:
(θ)=logL(θ)=i=1my(i)logh(x(i))+(1y(i))log(1h(x(i)))

接下來要考慮的問題是如何最大化似然函數呢?與我們在線性迴歸中的做法相似,使用梯度下降法。寫成矩陣形式的話,更新公式爲: θ:=θ+αθ(θ) (注意,更新公式是加號而不是減號,因爲我們求的是最大值)。同樣我們先考慮只有一個訓練樣本的情況,然後再推導出隨機梯度下降法:
θj(θ)=(y1g(θTx)(1y)11g(θTx))θjg(θTx)=(y1g(θTx)(1y)11g(θTx))g(θTx)(1g(θTx))θjθTx=(y(1g(θTx))(1y)g(θTx))xj=(yg(θTx))xj=(yhθ(x))xj

因此得到隨機梯度下降的規則爲:
θj:=θj+α(y(i)hθ(x(i)))x(i)j

對比最小二乘的更新規則,可以發現這兩者是如此的一致。但是這兩者並不是同一個算法,因爲在這裏 hθ(x(i)) θTx(i) 的非線性函數。

感知器學習算法

在邏輯迴歸方法中,我們強行輸出0或1,我們可能會很自然的將函數 g(z) 換成閾值函數:

g(z)={01if z0if z<0

若我們令 hθ(x)=g(θx) ,我們將得到感知學習算法的更新規則:
θj:=θj+α(y(i)hθ(x(i)))x(i)j

感知器算法很從概率學給出一個合理的解釋。

另外一個最大化 (θ) 的算法(牛頓法)

重新回到 g(z) 爲sigmoid函數的的邏輯迴歸,我們現在考慮另外一個最大化 (θ) 的算法。首先我們考慮牛頓法來尋找一個函數的零點,假定我們有一個函數 f:RR ,我們希望找到一個 θ 值使得 f(θ)=0 這裏 θR 是一個實數。牛頓算法的更新規則爲:

θ:=θf(θ)f(θ)

牛頓法的思想就是不斷的用直線來擬合原函數,用擬合直線函數方程算出其零點,然後不斷更新知道擬合的直線方程與原函數有相同的零點。下圖展示了這一過程:
這裏寫圖片描述
牛頓法提供了一種計算函數零點的方法,那麼我們應該如何使用它,來使函數 的值最大呢?使 最大的點對應着 (θ) 的零點。所以我們可以讓 f(θ)=(θ) 所以得到如下的更新規則:
θ:=θ(θ)′′(θ)

在我們的邏輯迴歸算法中, θ 是一個向量,將牛頓法擴展到向量的情形之下,有:
θ:=θH1θ(θ)

這裏 H 是海森(Hessian)矩陣,它的元素可以由下式得到:
Hij=2(θ)θiθj

當n(特徵數目)不是很大時,牛頓法總體來說還是很快的。當牛頓法運用於最大化邏輯迴歸的log似然函數 (θ) 時,我們稱這種方法爲 Fisher scoring。

廣義線性模型(Generalized Linear Models)

至此,我們已經看到了迴歸和分類的例子。在分類的例子中,我們有 y|x;θN(μ,σ2) ,對於分類問題, y|x;θBernoulli(ϕ) ,其中 μ ϕ 是關於 x θ 的函數。在本節中,我們將看到以上兩個模型是一個模型家族中的兩個特例,這個模型家族我們稱爲廣義線性模型。我們也將看到廣義線性模型家族的其他模型是如何推導出來的以及如何應用到其它的分類和迴歸問題當中。

指數家族(The exponential family)

爲了進行我們的GLMs的研究,我們首先要定義指數族分佈。當分佈滿足下式時我們把這類分佈叫做指數族分佈:

p(y;η)=b(y)exp(ηTT(y)a(η))

其中, η 叫做分佈的自然參數(natural parameter)也叫做典範參數(canonical parameter); T(y) 叫做分佈的充分統計量(sufficient statistic ,對於我們考慮的類型,通常有 T(y)=y ); a(η) 稱作log配分函數(log partition function),式子 ea(η) 通常用作爲歸一化常量,這讓分佈 p(y;η) 關於y的累加和或是積分的值爲1.
固定的 T,ab 使得我們定義了一族以 η 爲參數的分佈族,對於不同的 η ,我們得到這個族中不同的一個分佈。
現在我們來看一下這個族中的兩個例子:伯努利分佈(Bernoulli )和高斯分佈(Gaussian )。對於均值爲 ϕ 的伯努利分佈記作Bernoulli( ϕ );特別的,對於一個 y{0,1} 的伯努利分佈有: p(y=1;ϕ)=ϕ;p(y=0;ϕ)=1ϕ ,那麼Bernoulli( ϕ )分佈的指數族形式的 T,a.b 是多少呢?我們把伯努利分佈重寫爲:
p(y;ϕ)=ϕy(1ϕ)1y=exp(ylogϕ+(1y)log(1ϕ))=exp((log(ϕ1ϕ))y+log(1ϕ))

p(y;η)=b(y)exp(ηTT(y)a(η))

對比兩者可得:自然參數 η=log(ϕ/(1ϕ)) ,如果我們將 ϕ 表示爲 η 的函數有: ϕ=1/(1+eη) ,這就是我們熟悉的sigmoid函數(震驚),爲了完整的將伯努利分佈表示爲指數族分佈的公式有:
T(y)a(η)b(y)=y=log(1ϕ)=log(1+eη)=1

接下來我們在看一下高斯分佈的情況,回想一下,我們在推導線性迴歸的時候, σ2 的值對我們最終選擇的 θhθ(x) 並沒有影響。因此我們可以給 σ2 賦予一個任意值,這裏我們令 σ2=1 。我們有:
p(y;μ)=12πexp(12(yμ)2)=12πexp(12y2)exp(μy12μ2)

因此,我們可以看到高斯分佈是指數族中的一員,以及有:
ηT(y)a(η)b(y)=μ=y=η2/2=η/2=(1/2π)exp(y2/2)

常見的指數族分佈:多項式分佈(multinomial );泊松分佈;伽馬分佈;貝塔分佈;狄立克雷分佈。

構建GLMs

假定你將要構建一個模型用於預測在任意給定時間訪問你商店的顧客人數,對於給定的特徵x(商店的促銷情況,現在的廣告情況,天氣狀況,禮拜幾等等)。我們知道泊松分佈可以很好的預測訪問人數,知道這些後,我們該如何構建模型來解決我們的問題呢?幸運的是,泊松分佈是指數分佈族的一員,因此我們可以應用廣義線性模型。在本節中我們將介紹對於此類問題構建廣義線性模型的方法。
在考慮一個迴歸或者分類問題時,我們通常把要預測的隨機變量看成是x的函數。爲了推導GLM,我們將做一下三個假設:
1. y|x;θ ExponentialFamily(η) .也就是說,給定 xθ y 將服從以 η 爲參數的指數分佈族總的某一個。
2.對於給定 x 我們希望預測T(y)的期望值。在大多數的例子中,通常有: T(y)=y ,這意味着預測值 h(x) 滿足 h(x)=E[y|x]. (在邏輯迴歸中: hθ(x)=p(y=1|x;θ)=0p(y=0|x;θ)+1p(y=1|x;θ)=E[y|x;θ] )
3.自然參數 η 是線性相關: η=θTx (如果 η 是向量那麼 ηi=θTix )
第三個假設可能是以上三個假設中最不可能成立的,我們最好將這想成使我們故意設計好的結果而不是作爲一個假設。這三個假設/人爲設計將使得我們推導出一些優雅的學習算法也就是GLMs,這些算法由有很多我們想要的特性:比方說易於學習。除此之外,由此產生出的模型可以很高效的對 y 的不同分佈類型進行建模:我們之前已經簡要的介紹了邏輯迴歸和傳統的最小二乘都可以從GLMs推導得到。

傳統的最小二乘

爲了展示傳統的最小二乘法是GLM家族中的一個特例,考慮在目標變量 y (也叫做因變量)是連續值的情況,我們假定給定的 x 時, y 的條件分佈服從高斯分佈 N(μ,σ2) ,這裏的 μ 可能由x決定。因此,正如之前看到的,我們可以將高斯分佈寫成指數族的形式,且有 μ=η

hθ(x)=E[y|x;θ]=μ=η=θTx.

第一個等式滿足假設2,第二個等式滿足這樣一個事實: y|x;θN(μ,σ2) ,因此期望值爲 μ 第三個等式 滿足假設1(我們之前的推導表明 μ=η ),最後一個等式由假設3推導得到。

邏輯迴歸

現在我們再來看看邏輯迴歸,這裏我們只關注二分類問題,因此 y{0,1} ,這讓我們很自然的想到用伯努利分佈來作爲給定 x y 的條件分佈。將伯努利分佈寫成指數形式有: ϕ=1/(1+eη) ,而且,當 y|x;θBernoulli(ϕ) 時有: E[y|x;θ]=ϕ .因此與傳統的最小二乘的推導類似,有:

hθ(x)=E[y|x;θ]=ϕ=1/(1+eη)=1/(1+eθTx).

這告訴了我們假設函數的形式爲: hθ(x)=1/(1+eθTx) ,這給出了爲什麼sigmoid函數的形式是 1/(1+ez) .
一些術語的簡單介紹:函數 g 滿足 g(η)=E[T(y);η] 叫做規範響應函數,它的逆, g1 叫做規範鏈接函數。

Softmax 迴歸

我們在考慮這樣一個分類問題,響應變量 y k 個不同的取值情況 y{1,2,,k} .這裏響應變量 y 仍然是一個離散值,但是有超過兩個的可能取值,這讓我們很容易想到多項式分佈。
在對這類數據進行建模之前,我們先得將多項式分佈表示成指數族的形式。爲了將有 k 個輸出的多項式進行參數表達。通常用 k 個參數 ϕ1,,ϕk 表示每個輸出可能的概率,但是其實這樣表示是很冗餘的(比如,我們只要知道任意的 k1 ϕi 那麼最後一個結果的可能性我們是知道的因爲我們有 ki=1ϕi=1 ),因此我們可以只用 k1 個參數來表示多項式分佈 ϕi,,ϕki 另外也有 ϕk=1k1i=1ϕi 但是記住它不是參數。
首先我們定義: T(y)Rk1 :

T(1)=1000,T(2)=0100,,T(k1)=0001,T(k)=0000.

和我們之前看到的例子不一樣,這裏 T(y)y,T(y 現在是一個 k1 維的向量 。我們用 (T(y))i 表示向量 T(y) 中的第 i 個元素。我們再引入一個有用的記號, 指示函數 1{} ,當大括號內給定的論據爲真時輸出爲1,否則爲零。即: 1{Ture}=1,1{False} ,比如: 1{2=3}=0 。因此 T(y)
相關文章
相關標籤/搜索