自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機(jī)器學(xué)習(xí)中的數(shù)學(xué)(1)-回歸和梯度下降

數(shù)據(jù)庫
這個系列主要想能夠用數(shù)學(xué)去描述機(jī)器學(xué)習(xí),想要學(xué)好機(jī)器學(xué)習(xí),首先得去理解其中的數(shù)學(xué)意義,不一定要到能夠輕松自如的推導(dǎo)中間的公式,不過至少得認(rèn)識這些式子吧,不然看一些相關(guān)的論文可就看不懂了,這個系列主要將會著重于去機(jī)器學(xué)習(xí)的數(shù)學(xué)描述這個部分,將會覆蓋但不一定局限于回歸、聚類、分類等算法。

上次寫過一篇關(guān)于貝葉斯概率論的數(shù)學(xué),最近時間比較緊,coding的任務(wù)比較重,不過還是抽空看了一些機(jī)器學(xué)習(xí)的書和視頻,其中很推薦兩個:一個是stanford的machine learning公開課,在verycd可下載,可惜沒有翻譯。不過還是可以看。另外一個是prml-pattern recognition and machine learning, Bishop的一部反響不錯的書,而且是2008年的,算是比較新的一本書了。

 

[[114688]]

前幾天還準(zhǔn)備寫一個分布式計(jì)算的系列,只寫了個開頭,又換到寫這個系列了。以后看哪邊的心得更多,就寫哪一個系列吧。最近干的事情比較雜,有跟機(jī)器學(xué)習(xí)相關(guān)的,有跟數(shù)學(xué)相關(guān)的,也有跟分布式相關(guān)的。

回歸與梯度下降:

回歸在數(shù)學(xué)上來說是給定一個點(diǎn)集,能夠用一條曲線去擬合之,如果這個曲線是一條直線,那就被稱為線性回歸,如果曲線是一條二次曲線,就被稱為二次回歸,回歸還有很多的變種,如locally weighted回歸,logistic回歸,等等,這個將在后面去講。

用一個很簡單的例子來說明回歸,這個例子來自很多的地方,也在很多的open source的軟件中看到,比如說weka。大概就是,做一個房屋價值的評估系統(tǒng),一個房屋的價值來自很多地方,比如說面積、房間的數(shù)量(幾室?guī)讖d)、地段、朝向等等,這些影響房屋價值的變量被稱為特征(feature),feature在機(jī)器學(xué)習(xí)中是一個很重要的概念,有很多的論文專門探討這個東西。在此處,為了簡單,假設(shè)我們的房屋就是一個變量影響的,就是房屋的面積。

   假設(shè)有一個房屋銷售的數(shù)據(jù)如下:

   面積(m^2)  銷售價錢(萬元)

   123            250

   150            320

   87              160

   102            220

   …               …

   這個表類似于帝都5環(huán)左右的房屋價錢,我們可以做出一個圖,x軸是房屋的面積。y軸是房屋的售價,如下:

   image

   如果來了一個新的面積,假設(shè)在銷售價錢的記錄中沒有的,我們怎么辦呢?

   我們可以用一條曲線去盡量準(zhǔn)的擬合這些數(shù)據(jù),然后如果有新的輸入過來,我們可以在將曲線上這個點(diǎn)對應(yīng)的值返回。如果用一條直線去擬合,可能是下面的樣子:

    image

   綠色的點(diǎn)就是我們想要預(yù)測的點(diǎn)。

   首先給出一些概念和常用的符號,在不同的機(jī)器學(xué)習(xí)書籍中可能有一定的差別。

   房屋銷售記錄表 - 訓(xùn)練集(training set)或者訓(xùn)練數(shù)據(jù)(training data), 是我們流程中的輸入數(shù)據(jù),一般稱為x

   房屋銷售價錢 - 輸出數(shù)據(jù),一般稱為y

   擬合的函數(shù)(或者稱為假設(shè)或者模型),一般寫做 y = h(x)

   訓(xùn)練數(shù)據(jù)的條目數(shù)(#training set), 一條訓(xùn)練數(shù)據(jù)是由一對輸入數(shù)據(jù)和輸出數(shù)據(jù)組成的

   輸入數(shù)據(jù)的維度(特征的個數(shù),#features),n

   下面是一個典型的機(jī)器學(xué)習(xí)的過程,首先給出一個輸入數(shù)據(jù),我們的算法會通過一系列的過程得到一個估計(jì)的函數(shù),這個函數(shù)有能力對沒有見過的新數(shù)據(jù)給出一個新的估計(jì),也被稱為構(gòu)建一個模型。就如同上面的線性回歸函數(shù)。

 

   image

    我們用X1,X2..Xn 去描述feature里面的分量,比如x1=房間的面積,x2=房間的朝向,等等,我們可以做出一個估計(jì)函數(shù):

image

    θ在這兒稱為參數(shù),在這兒的意思是調(diào)整feature中每個分量的影響力,就是到底是房屋的面積更重要還是房屋的地段更重要。為了如果我們令X0 = 1,就可以用向量的方式來表示了:

image

    我們程序也需要一個機(jī)制去評估我們θ是否比較好,所以說需要對我們做出的h函數(shù)進(jìn)行評估,一般這個函數(shù)稱為損失函數(shù)(loss function)或者錯誤函數(shù)(error function),描述h函數(shù)不好的程度,在下面,我們稱這個函數(shù)為J函數(shù)

    在這兒我們可以做出下面的一個錯誤函數(shù):

image 

    這個錯誤估計(jì)函數(shù)是去對x(i)的估計(jì)值與真實(shí)值y(i)差的平方和作為錯誤估計(jì)函數(shù),前面乘上的1/2是為了在求導(dǎo)的時候,這個系數(shù)就不見了。

    如何調(diào)整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一種完全是數(shù)學(xué)描述的方法,在stanford機(jī)器學(xué)習(xí)開放課***的部分會推導(dǎo)最小二乘法的公式的來源,這個來很多的機(jī)器學(xué)習(xí)和數(shù)學(xué)書上都可以找到,這里就不提最小二乘法,而談?wù)勌荻认陆捣ā?/p>

    梯度下降法是按下面的流程進(jìn)行的:

    1)首先對θ賦值,這個值可以是隨機(jī)的,也可以讓θ是一個全零的向量。

    2)改變θ的值,使得J(θ)按梯度下降的方向進(jìn)行減少。

    為了更清楚,給出下面的圖:

image    這是一個表示參數(shù)θ與誤差函數(shù)J(θ)的關(guān)系圖,紅色的部分是表示J(θ)有著比較高的取值,我們需要的是,能夠讓J(θ)的值盡量的低。也就是深藍(lán)色的部分。θ0,θ1表示θ向量的兩個維度。

    在上面提到梯度下降法的***步是給θ給一個初值,假設(shè)隨機(jī)給的初值是在圖上的十字點(diǎn)。

    然后我們將θ按照梯度下降的方向進(jìn)行調(diào)整,就會使得J(θ)往更低的方向進(jìn)行變化,如圖所示,算法的結(jié)束將是在θ下降到無法繼續(xù)下降為止。

image     當(dāng)然,可能梯度下降的最終點(diǎn)并非是全局最小點(diǎn),可能是一個局部最小點(diǎn),可能是下面的情況:

image

   上面這張圖就是描述的一個局部最小點(diǎn),這是我們重新選擇了一個初始點(diǎn)得到的,看來我們這個算法將會在很大的程度上被初始點(diǎn)的選擇影響而陷入局部最小點(diǎn)  

   下面我將用一個例子描述一下梯度減少的過程,對于我們的函數(shù)J(θ)求偏導(dǎo)J:(求導(dǎo)的過程如果不明白,可以溫習(xí)一下微積分)

  image

    下面是更新的過程,也就是θi會向著梯度最小的方向進(jìn)行減少。θi表示更新之前的值,-后面的部分表示按梯度方向減少的量,α表示步長,也就是每次按照梯度減少的方向變化多少。

image     一個很重要的地方值得注意的是,梯度是有方向的,對于一個向量θ,每一維分量θi都可以求出一個梯度的方向,我們就可以找到一個整體的方向,在變化的時候,我們就朝著下降最多的方向進(jìn)行變化就可以達(dá)到一個最小點(diǎn),不管它是局部的還是全局的。

    用更簡單的數(shù)學(xué)語言進(jìn)行描述步驟2)是這樣的:

  image    倒三角形表示梯度,按這種方式來表示,θi就不見了,看看用好向量和矩陣,真的會大大的簡化數(shù)學(xué)的描述啊。

總結(jié)與預(yù)告:

    本文中的內(nèi)容主要取自stanford的課程第二集,希望我把意思表達(dá)清楚了:)本系列的下一篇文章也將會取自stanford課程的第三集,下一次將會深入的講講回歸、logistic回歸、和Newton法,不過本系列并不希望做成stanford課程的筆記版,再往后面就不一定完全與stanford課程保持一致了。

本文由LeftNotEasy所有,發(fā)布于http://leftnoteasy.cnblogs.com。如果轉(zhuǎn)載,請注明出處,在未經(jīng)作者同意下將本文用于商業(yè)用途,將追究其法律責(zé)任。

原文鏈接:http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2017-03-22 12:25:29

機(jī)器學(xué)習(xí)梯度下降法

2017-07-25 12:59:10

機(jī)器學(xué)習(xí)梯度下降算法

2014-06-30 10:58:02

機(jī)器學(xué)習(xí)

2020-10-13 14:38:50

機(jī)器學(xué)習(xí)數(shù)據(jù)

2016-11-28 09:24:08

Python內(nèi)存技巧

2017-05-08 08:39:12

梯度算法Octave機(jī)器學(xué)習(xí)

2014-08-22 10:06:46

機(jī)器學(xué)習(xí)

2019-04-10 09:23:10

梯度下降機(jī)器學(xué)習(xí)算法

2014-07-01 09:30:54

機(jī)器學(xué)習(xí)

2018-08-05 06:48:34

2017-08-28 18:41:34

PythonLogistic回歸隨機(jī)梯度下降

2014-07-03 10:05:15

機(jī)器學(xué)習(xí)

2024-06-05 11:36:28

2014-07-09 09:29:34

機(jī)器學(xué)習(xí)

2018-07-20 14:58:16

深度學(xué)習(xí)梯度下降損失函數(shù)

2024-12-09 14:08:13

2018-11-20 15:23:30

深度學(xué)習(xí)梯度神經(jīng)網(wǎng)絡(luò)

2019-03-28 07:31:03

2014-07-14 09:41:04

機(jī)器學(xué)習(xí)

2017-02-27 14:24:12

機(jī)器學(xué)習(xí)深度學(xué)習(xí)數(shù)學(xué)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號