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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

机器学习

發(fā)布時(shí)間:2023/12/13 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 机器学习 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

多元線性回歸(Linear Regression with Multiple Variables)


多元(Multiple Features)

多元線性回歸又稱“multivariate linear regression”。

現(xiàn)在介紹一種可以表示任意輸入變量的符號(hào):

(x_j^{(i)} = j 在 i^{th} 的訓(xùn)練樣本的值。)
(x^{(i)} = 所有 i^{th} 訓(xùn)練樣本的值組成的列向量。 )
(m = 訓(xùn)練樣本的數(shù)目 )
(n = |x^{(i)}| 特性的數(shù)量。)

現(xiàn)在定義假設(shè)函數(shù)的多變量形式,包含以下各種參數(shù):

(h_ heta (x) = heta_0 + heta_1 x_1 + heta_2 x_2 + heta_3 x_3 + cdots + heta_n x_n)

為了便于理解,我們可以將 ( heta_0) 當(dāng)作房子的基本價(jià)格,( heta_1) 當(dāng)作每平方米的價(jià)格,( heta_2) 當(dāng)作每層的價(jià)格等等。則 (x_1) 代表房子的平方米數(shù),(x_2) 代表房子的層數(shù)等等。

使用矩陣乘法定義,我們的多元假設(shè)函數(shù)可以表示為:

[egin{align*}
h_ heta(x) =
egin{bmatrix}
heta_0 hspace{2em} heta_1 hspace{2em} ... hspace{2em} heta_n
end{bmatrix}
egin{bmatrix}
x_0
ewline
x_1
ewline
vdots
ewline
x_n
end{bmatrix}
= heta^T x
end{align*}
]

這是一個(gè)向量化的假設(shè)函數(shù)的一個(gè)訓(xùn)練組。

訓(xùn)練樣本逐行儲(chǔ)存在 (X) 中, 例如:

[egin{align*}
X =
egin{bmatrix}
x^{(1)}_0 & x^{(1)}_1
ewline
x^{(2)}_0 & x^{(2)}_1
ewline
x^{(3)}_0 & x^{(3)}_1
end{bmatrix}
&
, heta =
egin{bmatrix}
heta_0
ewline
heta_1
ewline
end{bmatrix}
end{align*}
]

你可以將假設(shè)作為一個(gè) ((m imes 1)) 的列向量計(jì)算:

(h_ heta(X) = X heta)

成本函數(shù)(Cost function)

(對(duì)于向量 heta ( mathbb{R}^{n+1} 或者 mathbb{R}^{(n+1) imes 1} )),成本函數(shù)為:

(J( heta) = dfrac {1}{2m} displaystyle sum_{i=1}^m left (h_ heta (x^{(i)}) - y^{(i)} ight)^2)

使用向量計(jì)算:

(J( heta) = frac{1}{2m} (X heta - vec{y})^{T} (X heta - vec{y}))

(其中 vec{y} 表示所有 y 的值。)

多元梯度下降(Gradient Desent for Mulitple Variables)

梯度下降等式和之前的形式類似,我們只需要重復(fù)計(jì)算'n'個(gè)即可:

[egin{align*}
& ext{repeat until convergence:} ; lbrace
ewline
; & heta_0 := heta_0 - alpha frac{1}{m} sumlimits_{i=1}^{m} (h_ heta(x^{(i)}) - y^{(i)}) cdot x_0^{(i)}
ewline
; & heta_1 := heta_1 - alpha frac{1}{m} sumlimits_{i=1}^{m} (h_ heta(x^{(i)}) - y^{(i)}) cdot x_1^{(i)}
ewline
; & heta_2 := heta_2 - alpha frac{1}{m} sumlimits_{i=1}^{m} (h_ heta(x^{(i)}) - y^{(i)}) cdot x_2^{(i)}
ewline
& cdots

ewline brace
end{align*}
]

也可以這么表示:

[egin{align*}
& ext{repeat until convergence:} ; lbrace
ewline
; & heta_j := heta_j - alpha frac{1}{m} sumlimits_{i=1}^{m} (h_ heta(x^{(i)}) - y^{(i)}) cdot x_j^{(i)} ; & ext{for j := 0..n}

ewline brace
end{align*}
]

矩陣符號(hào)(Matrix Notation)

梯度下降規(guī)則可以表示為:

[large
heta := heta - alpha
abla J( heta)
]

其中 (
abla J( heta)) 是列向量的表示形式:

[egin{align*}
; &frac{partial J( heta)}{partial heta_j} &=& frac{1}{m} sumlimits_{i=1}^{m} left(h_ heta(x^{(i)}) - y^{(i)} ight) cdot x_j^{(i)}
ewline
; & &=& frac{1}{m} sumlimits_{i=1}^{m} x_j^{(i)} cdot left(h_ heta(x^{(i)}) - y^{(i)} ight)
end{align*}
]

第 j 個(gè)梯度元素可以由兩部分和構(gòu)成:

[egin{align*}
; &frac{partial J( heta)}{partial heta_j} &=& frac{1}{m} sumlimits_{i=1}^{m} left(h_ heta(x^{(i)}) - y^{(i)} ight) cdot x_j^{(i)}
ewline
; & &=& frac{1}{m} sumlimits_{i=1}^{m} x_j^{(i)} cdot left(h_ heta(x^{(i)}) - y^{(i)} ight)
end{align*}
]

有時(shí),其中的兩部分可以由兩個(gè)向量表示。

(其中的,x_j^{(i)} ,for i = 1,…,m 代表第 j列 m 個(gè)元素,向量 vec{x_j} 取自訓(xùn)練組矩陣 X 。)

另一部分 (left(h_ heta(x^{(i)}) - y^{(i)} ight)是預(yù)測(cè)值 h_ heta(x^{(i)}) 和 真實(shí)值 y^{(i)} 的偏差量的向量。重寫 frac{partial J( heta)}{partial heta_j} ,我們得到:)

[egin{align*}
; &frac{partial J( heta)}{partial heta_j} &=& frac1m vec{x_j}^{T} (X heta - vec{y})
ewline

ewline

ewline
; &
abla J( heta) & = & frac 1m X^{T} (X heta - vec{y})
ewline
end{align*}
]

最后,梯度下降規(guī)則的矩陣形式(向量化)表示為:

( heta := heta - frac{alpha}{m} X^{T} (X heta - vec{y}))

數(shù)值一般化(Feature Normalization)

我們可以通過(guò)將每個(gè)輸入值粗略的控制到一個(gè)范圍加速梯度下降。其中的原理是因?yàn)?( heta) 在小的范圍內(nèi)下降速度很快,大的范圍內(nèi)下降速度很慢,因此當(dāng)數(shù)據(jù)不均勻的時(shí)候可能會(huì)一直擺動(dòng)不會(huì)降到最佳點(diǎn)。

防止這種情況發(fā)生的方法就是修正輸入變量的范圍讓他們粗略的相同:

(-1 le x_i le 1)

(-0.5 le x_i le 0.5)

這些沒(méi)有額外的需求,我們僅僅嘗試加速計(jì)算。目標(biāo)是讓所有輸入變量粗略的限制在這個(gè)范圍。

有兩種方法可以幫助我們:數(shù)值縮放(feature scaling)和均一化(mean normalization)。數(shù)值縮放通過(guò)輸入變量的范圍分割輸入值,結(jié)果是產(chǎn)生一個(gè)新的范圍為1的值。均一化則是減去輸入變量的平均值,得到一個(gè)新的為0的平均值。可以通過(guò)一下公式使用這兩種方法調(diào)整你的輸入值:

(x_i := dfrac{x_i - mu_i}{s_i})

其中 (mu_i) 是所有值的平均值,(s_i) 是范圍(最大值-最小值),或者 (s_i) 也可以是標(biāo)準(zhǔn)差(standard deviation)。

特性和多項(xiàng)式回歸(Features and Polynomial Regression)

我們可以通過(guò)兩種不同的方式改進(jìn)假設(shè)函數(shù)的特性和形式。

我們可以將多個(gè)特性組合成一個(gè)。例如,我們可以將 (x_1 和 x_2 通過(guò) x_1 cdot x_2 組合成一個(gè)新特性 x_3。)

多項(xiàng)式回歸(Polynomial Regression)

我們的假設(shè)函數(shù)不必是線性的(一條直線)如果無(wú)法與數(shù)據(jù)匹配的很好。

我們可以改變行為或通過(guò)平方,立方或者平方根函數(shù)或者其他形式繪成曲線。

例如,如果我們的假設(shè)函數(shù)為(h_ heta(x) = heta_0 + heta_1 x_1) ,我們可以根據(jù) (x_1) 創(chuàng)建一個(gè)新特性,得到二次函數(shù) (h_ heta(x) = heta_0 + heta_1 x_1 + heta_2 x_1^2) 或者三次函數(shù) (h_ heta(x) = heta_0 + heta_1 x_1 + heta_2 x_1^2 + heta_3 x_1^3)

在三次函數(shù)中,我們創(chuàng)建了新特性 (x_2 和 x_3 ,其中 x_2=x_1^2,x_3 = x_1^3)

平方根函數(shù):

(h_ heta(x) = heta_0 + heta_1 x_1 + heta_2 sqrt{x_1})

一般等式(Normal Equation)

一般等式是一種不需要迭代就可以尋找最適值的方法。

( heta = (X^T X){-1}XT y)

使用一般等式時(shí)不需要數(shù)值縮放(feature scaling)。

梯度下降和一般等式的對(duì)比:

使用一般等式計(jì)算 (mathcal{O}(n^3)) 逆矩陣會(huì)很復(fù)雜。所以如果我們由很多數(shù)量的特性時(shí),一般等式會(huì)很慢。實(shí)踐證明,n 小于 10,000 時(shí)用一般等式。

一般等式不可逆(Normal Equation Noninvertibility)

當(dāng)使用一般等式時(shí)使用 'pinv' 函數(shù),不使用 'inv'

總結(jié)

以上是生活随笔為你收集整理的机器学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。