日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Regression:Case Study

回歸-案例研究

問(wèn)題的導(dǎo)入:預(yù)測(cè)寶可夢(mèng)的CP值

Estimating the Combat Power(CP) of a pokemon after evolution

我們期望根據(jù)已有的寶可夢(mèng)進(jìn)化前后的信息,來(lái)預(yù)測(cè)某只寶可夢(mèng)進(jìn)化后的cp值的大小

確定Senario、Task和Model

Senario

首先根據(jù)已有的data來(lái)確定Senario,我們擁有寶可夢(mèng)進(jìn)化前后cp值的這樣一筆數(shù)據(jù),input是進(jìn)化前的寶可夢(mèng)(包括它的各種屬性),output是進(jìn)化后的寶可夢(mèng)的cp值;因此我們的data是labeled,使用的Senario是Supervised Learning

Task

然后根據(jù)我們想要function的輸出類型來(lái)確定Task,我們預(yù)期得到的是寶可夢(mèng)進(jìn)化后的cp值,是一個(gè)scalar,因此使用的Task是Regression

Model

關(guān)于Model,選擇很多,這里采用的是Non-linear Model

設(shè)定具體參數(shù)

: 表示一只寶可夢(mèng),用下標(biāo)表示該寶可夢(mèng)的某種屬性

:表示該寶可夢(mèng)進(jìn)化前的cp值

: 表示該寶可夢(mèng)是屬于哪一種物種,比如妙瓜種子、皮卡丘...

:表示該寶可夢(mèng)的hp值即生命值是多少

: 代表該寶可夢(mèng)的重重量

: 代表該寶可夢(mèng)的高度

: 表示我們要找的function

: 表示function的output,即寶可夢(mèng)進(jìn)化后的cp值,是一個(gè)scalar

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

Regression的具體過(guò)程

回顧一下machine Learning的三個(gè)步驟:

  • 定義一個(gè)model即function set
  • 定義一個(gè)goodness of function損失函數(shù)去評(píng)估該function的好壞
  • 找一個(gè)最好的function

Step1:Model (function set)

如何選擇一個(gè)function的模型呢?畢竟只有確定了模型才能調(diào)參。這里沒有明確的思路,只能憑經(jīng)驗(yàn)去一種種地試

Linear Model 線性模型

y代表進(jìn)化后的cp值,代表進(jìn)化前的cp值,w和b代表未知參數(shù),可以是任何數(shù)值

根據(jù)不同的w和b,可以確定不同的無(wú)窮無(wú)盡的function,而這個(gè)抽象出來(lái)的式子就叫做model,是以上這些具體化的function的集合,即function set

實(shí)際上這是一種Linear Model,但只考慮了寶可夢(mèng)進(jìn)化前的cp值,因而我們可以將其擴(kuò)展為:

====

x~i~: an attribute of input X ( x~i~ is also called feature,即特征值)

w~i~:weight of x~i~

b: bias

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

Step2:Goodness of Function

參數(shù)說(shuō)明

:用上標(biāo)來(lái)表示一個(gè)完整的object的編號(hào),表示第i只寶可夢(mèng)(下標(biāo)表示該object中的component)

:用表示一個(gè)實(shí)際觀察到的object輸出,上標(biāo)為i表示是第i個(gè)object

注:由于regression的輸出值是scalar,因此里面并沒有component,只是一個(gè)簡(jiǎn)單的數(shù)值;但是未來(lái)如果考慮structured Learning的時(shí)候,我們output的object可能是有structured的,所以我們還是會(huì)需要用上標(biāo)下標(biāo)來(lái)表示一個(gè)完整的output的object和它包含的component

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

Loss function 損失函數(shù)

為了衡量function set中的某個(gè)function的好壞,我們需要一個(gè)評(píng)估函數(shù),即==Loss function==,損失函數(shù),簡(jiǎn)稱L;loss function是一個(gè)function的function

input:a function;

output:how bad/good it is

由于,即f是由b和w決定的,因此input f就等價(jià)于input這個(gè)f里的b和w,因此==Loss function實(shí)際上是在衡量一組參數(shù)的好壞==

之前提到的model是由我們自主選擇的,這里的loss function也是,最常用的方法就是采用類似于方差和的形式來(lái)衡量參數(shù)的好壞,即預(yù)測(cè)值與真值差的平方和;這里真正的數(shù)值減估測(cè)數(shù)值的平方,叫做估測(cè)誤差,Estimation error,將10個(gè)估測(cè)誤差合起來(lái)就是loss function

如果越大,說(shuō)明該function表現(xiàn)得越不好;越小,說(shuō)明該function表現(xiàn)得越好

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

Loss function可視化

下圖中是loss function的可視化,該圖中的每一個(gè)點(diǎn)都代表一組(w,b),也就是對(duì)應(yīng)著一個(gè)function;而該點(diǎn)的顏色對(duì)應(yīng)著的loss function的結(jié)果L(w,b),它表示該點(diǎn)對(duì)應(yīng)function的表現(xiàn)有多糟糕,顏色越偏紅色代表Loss的數(shù)值越大,這個(gè)function的表現(xiàn)越不好,越偏藍(lán)色代表Loss的數(shù)值越小,這個(gè)function的表現(xiàn)越好

比如圖中用紅色箭頭標(biāo)注的點(diǎn)就代表了b=-180 , w=-2對(duì)應(yīng)的function,即,該點(diǎn)所在的顏色偏向于紅色區(qū)域,因此這個(gè)function的loss比較大,表現(xiàn)并不好

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

Step3:Pick the Best Function

我們已經(jīng)確定了loss function,他可以衡量我們的model里面每一個(gè)function的好壞,接下來(lái)我們要做的事情就是,從這個(gè)function set里面,挑選一個(gè)最好的function

挑選最好的function這一件事情,寫成formulation/equation的樣子如下:

,或者是

也就是那個(gè)使最小的或,就是我們要找的或(有點(diǎn)像極大似然估計(jì)的思想)

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

利用線性代數(shù)的知識(shí),可以解得這個(gè)closed-form solution,但這里采用的是一種更為普遍的方法——==gradient descent(梯度下降法)==

Gradient Descent 梯度下降

上面的例子比較簡(jiǎn)單,用線性代數(shù)的知識(shí)就可以解;但是對(duì)于更普遍的問(wèn)題來(lái)說(shuō),gradient descent的厲害之處在于,只要是可微分的,gradient descent都可以拿來(lái)處理這個(gè),找到表現(xiàn)比較好的parameters

單個(gè)參數(shù)的問(wèn)題

以只帶單個(gè)參數(shù)w的Loss Function L(w)為例,首先保證是可微

我們的目標(biāo)就是找到這個(gè)使Loss最小的,實(shí)際上就是尋找切線L斜率為0的global minima最小值點(diǎn)(注意,存在一些local minima極小值點(diǎn),其斜率也是0) 有一個(gè)暴力的方法是,窮舉所有的w值,去找到使loss最小的,但是這樣做是沒有效率的;而gradient descent就是用來(lái)解決這個(gè)效率問(wèn)題的 * 首先隨機(jī)選取一個(gè)初始的點(diǎn) (當(dāng)然也不一定要隨機(jī)選取,如果有辦法可以得到比較接近的表現(xiàn)得比較好的當(dāng)初始點(diǎn),可以有效地提高查找的效率) * 計(jì)算在的位置的微分,即,幾何意義就是切線的斜率 * 如果切線斜率是negative負(fù)的,那么就應(yīng)該使w變大,即往右踏一步;如果切線斜率是positive正的,那么就應(yīng)該使w變小,即往左踏一步,每一步的步長(zhǎng)step size就是w的改變量 w的改變量step size的大小取決于兩件事 * 一是現(xiàn)在的微分值有多大,微分值越大代表現(xiàn)在在一個(gè)越陡峭的地方,那它要移動(dòng)的距離就越大,反之就越小; * 二是一個(gè)常數(shù)項(xiàng)η,被稱為==learning rate==,即學(xué)習(xí)率,它決定了每次踏出的step size不只取決于現(xiàn)在的斜率,還取決于一個(gè)事先就定好的數(shù)值,如果learning rate比較大,那每踏出一步的時(shí)候,參數(shù)w更新的幅度就比較大,反之參數(shù)更新的幅度就比較小 如果learning rate設(shè)置的大一些,那機(jī)器學(xué)習(xí)的速度就會(huì)比較快;但是learning rate如果太大,可能就會(huì)跳過(guò)最合適的global minima的點(diǎn) * 因此每次參數(shù)更新的大小是 η,為了滿足斜率為負(fù)時(shí)w變大,斜率為正時(shí)w變小,應(yīng)當(dāng)使原來(lái)的w減去更新的數(shù)值,即 ηηηη

此時(shí)對(duì)應(yīng)的斜率為0,我們找到了一個(gè)極小值local minima,這就出現(xiàn)了一個(gè)問(wèn)題,當(dāng)微分為0的時(shí)候,參數(shù)就會(huì)一直卡在這個(gè)點(diǎn)上沒有辦法再更新了,因此通過(guò)gradient descent找出來(lái)的solution其實(shí)并不是最佳解global minima

但幸運(yùn)的是,在linear regression上,是沒有l(wèi)ocal minima的,因此可以使用這個(gè)方法

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

兩個(gè)參數(shù)的問(wèn)題

今天要解決的關(guān)于寶可夢(mèng)的問(wèn)題,是含有two parameters的問(wèn)題,即

當(dāng)然,它本質(zhì)上處理單個(gè)參數(shù)的問(wèn)題是一樣的

  • 首先,也是隨機(jī)選取兩個(gè)初始值,和
  • 然后分別計(jì)算這個(gè)點(diǎn)上,L對(duì)w和b的偏微分,即 和
  • 更新參數(shù),當(dāng)?shù)鰰r(shí),對(duì)應(yīng)著極小值點(diǎn) ηηηηηη

實(shí)際上,L 的gradient就是微積分中的那個(gè)梯度的概念,即

可視化效果如下:(三維坐標(biāo)顯示在二維圖像中,loss的值用顏色來(lái)表示)

橫坐標(biāo)是b,縱坐標(biāo)是w,顏色代表loss的值,越偏藍(lán)色表示loss越小,越偏紅色表示loss越大

每次計(jì)算得到的梯度gradient,即由和組成的vector向量,就是該等高線的法線方向(對(duì)應(yīng)圖中紅色箭頭的方向);而ηη的作用就是讓原先的朝著gradient的方向即等高線法線方向前進(jìn),其中η(learning rate)的作用是每次更新的跨度(對(duì)應(yīng)圖中紅色箭頭的長(zhǎng)度);經(jīng)過(guò)多次迭代,最終gradient達(dá)到極小值點(diǎn)

注:這里兩個(gè)方向的η(learning rate)必須保持一致,這樣每次更新坐標(biāo)的step size是等比例縮放的,保證坐標(biāo)前進(jìn)的方向始終和梯度下降的方向一致;否則坐標(biāo)前進(jìn)的方向?qū)?huì)發(fā)生偏移

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

Gradient Descent的缺點(diǎn)

gradient descent有一個(gè)令人擔(dān)心的地方,也就是我之前一直提到的,它每次迭代完畢,尋找到的梯度為0的點(diǎn)必然是極小值點(diǎn),local minima;卻不一定是最小值點(diǎn),global minima

這會(huì)造成一個(gè)問(wèn)題是說(shuō),如果loss function長(zhǎng)得比較坑坑洼洼(極小值點(diǎn)比較多),而每次初始化的取值又是隨機(jī)的,這會(huì)造成每次gradient descent停下來(lái)的位置都可能是不同的極小值點(diǎn);而且當(dāng)遇到梯度比較平緩(gradient≈0)的時(shí)候,gradient descent也可能會(huì)效率低下甚至可能會(huì)stuck卡住;也就是說(shuō)通過(guò)這個(gè)方法得到的結(jié)果,是看人品的(滑稽

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

但是!在==linear regression==里,loss function實(shí)際上是convex的,是一個(gè)凸函數(shù),是沒有l(wèi)ocal optimal局部最優(yōu)解的,他只有一個(gè)global minima,visualize出來(lái)的圖像就是從里到外一圈一圈包圍起來(lái)的橢圓形的等高線(就像前面的等高線圖),因此隨便選一個(gè)起始點(diǎn),根據(jù)gradient descent最終找出來(lái)的,都會(huì)是同一組參數(shù)

回到pokemon的問(wèn)題上來(lái)

偏微分的計(jì)算

現(xiàn)在我們來(lái)求具體的L對(duì)w和b的偏微分

How's the results?

根據(jù)gradient descent,我們得到的中最好的參數(shù)是b=-188.4, w=2.7

我們需要有一套評(píng)估系統(tǒng)來(lái)評(píng)價(jià)我們得到的最后這個(gè)function和實(shí)際值的誤差error的大小;這里我們將training data里每一只寶可夢(mèng) 進(jìn)化后的實(shí)際cp值與預(yù)測(cè)值之差的絕對(duì)值叫做,而這些誤差之和Average Error on Training Data為

What we really care about is the error on new data (testing data)

當(dāng)然我們真正關(guān)心的是generalization的case,也就是用這個(gè)model去估測(cè)新抓到的pokemon,誤差會(huì)有多少,這也就是所謂的testing data的誤差;于是又抓了10只新的pokemon,算出來(lái)的Average Error on Testing Data為;可見training data里得到的誤差一般是要比testing data要小,這也符合常識(shí)

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

How can we do better?

我們有沒有辦法做得更好呢?這時(shí)就需要我們重新去設(shè)計(jì)model;如果仔細(xì)觀察一下上圖的data,就會(huì)發(fā)現(xiàn)在原先的cp值比較大和比較小的地方,預(yù)測(cè)值是相當(dāng)不準(zhǔn)的

實(shí)際上,從結(jié)果來(lái)看,最終的function可能不是一條直線,可能是稍微更復(fù)雜一點(diǎn)的曲線

考慮的model

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

考慮的model

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

考慮的model

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

考慮的model

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

5個(gè)model的對(duì)比

這5個(gè)model的training data的表現(xiàn):隨著的高次項(xiàng)的增加,對(duì)應(yīng)的average error會(huì)不斷地減小;實(shí)際上這件事情非常容易解釋,實(shí)際上低次的式子是高次的式子的特殊情況(令高次項(xiàng)對(duì)應(yīng)的為0,高次式就轉(zhuǎn)化成低次式)

也就是說(shuō),在gradient descent可以找到best function的前提下(多次式為Non-linear model,存在local optimal局部最優(yōu)解,gradient descent不一定能找到global minima),function所包含的項(xiàng)的次數(shù)越高,越復(fù)雜,error在training data上的表現(xiàn)就會(huì)越來(lái)越小;但是,我們關(guān)心的不是model在training data上的error表現(xiàn),而是model在testing data上的error表現(xiàn)

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

在training data上,model越復(fù)雜,error就會(huì)越低;但是在testing data上,model復(fù)雜到一定程度之后,error非但不會(huì)減小,反而會(huì)暴增,在該例中,從含有項(xiàng)的model開始往后的model,testing data上的error出現(xiàn)了大幅增長(zhǎng)的現(xiàn)象,通常被稱為overfitting過(guò)擬合

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

因此model不是越復(fù)雜越好,而是選擇一個(gè)最適合的model,在本例中,包含的式子是最適合的model

進(jìn)一步討論其他參數(shù)

物種的影響

之前我們的model只考慮了寶可夢(mèng)進(jìn)化前的cp值,這顯然是不對(duì)的,除了cp值外,還受到物種的影響

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

因此我們重新設(shè)計(jì)model:

也就是根據(jù)不同的物種,設(shè)計(jì)不同的linear model(這里),那如何將上面的四個(gè)if語(yǔ)句合并成一個(gè)linear model呢?

這里引入δ條件表達(dá)式的概念,當(dāng)條件表達(dá)式為true,則δ為1;當(dāng)條件表達(dá)式為false,則δ為0,因此可以通過(guò)下圖的方式,將4個(gè)if語(yǔ)句轉(zhuǎn)化成同一個(gè)linear model

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

有了上面這個(gè)model以后,我們分別得到了在training data和testing data上測(cè)試的結(jié)果:

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

Hp值、height值、weight值的影響

考慮所有可能有影響的參數(shù),設(shè)計(jì)出這個(gè)最復(fù)雜的model:

算出的training error=1.9,但是,testing error=102.3!這么復(fù)雜的model很大概率會(huì)發(fā)生overfitting(按照我的理解,overfitting實(shí)際上是我們多使用了一些input的變量或是變量的高次項(xiàng)使曲線跟training data擬合的更好,但不幸的是這些項(xiàng)并不是實(shí)際情況下被使用的,于是這個(gè)model在testing data上會(huì)表現(xiàn)得很糟糕),overfitting就相當(dāng)于是那個(gè)范圍更大的韋恩圖,它包含了更多的函數(shù)更大的范圍,代價(jià)就是在準(zhǔn)確度上表現(xiàn)得更糟糕

regularization解決overfitting(L2正則化解決過(guò)擬合問(wèn)題)

regularization可以使曲線變得更加smooth,training data上的error變大,但是 testing data上的error變小。有關(guān)regularization的具體原理說(shuō)明詳見下一部分

原來(lái)的loss function只考慮了prediction的error,即;而regularization則是在原來(lái)的loss function的基礎(chǔ)上加上了一項(xiàng),就是把這個(gè)model里面所有的的平方和用λ加權(quán)(其中i代表遍歷n個(gè)training data,j代表遍歷model的每一項(xiàng))

也就是說(shuō),我們期待參數(shù)越小甚至接近于0的function,為什么呢?

因?yàn)閰?shù)值接近0的function,是比較平滑的;所謂的平滑的意思是,當(dāng)今天的輸入有變化的時(shí)候,output對(duì)輸入的變化是比較不敏感的

舉例來(lái)說(shuō),對(duì)這個(gè)model,當(dāng)input變化,output的變化就是,也就是說(shuō),如果越小越接近0的話,輸出對(duì)輸入就越不sensitive敏感,我們的function就是一個(gè)越平滑的function;說(shuō)到這里你會(huì)發(fā)現(xiàn),我們之前沒有把bias——b這個(gè)參數(shù)考慮進(jìn)去的原因是bias的大小跟function的平滑程度是沒有關(guān)系的,bias值的大小只是把function上下移動(dòng)而已

那為什么我們喜歡比較平滑的function呢?

如果我們有一個(gè)比較平滑的function,由于輸出對(duì)輸入是不敏感的,測(cè)試的時(shí)候,一些noises噪聲對(duì)這個(gè)平滑的function的影響就會(huì)比較小,而給我們一個(gè)比較好的結(jié)果

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

注:這里的λ需要我們手動(dòng)去調(diào)整以取得最好的值

λ值越大代表考慮smooth的那個(gè)regularization那一項(xiàng)的影響力越大,我們找到的function就越平滑

觀察下圖可知,當(dāng)我們的λ越大的時(shí)候,在training data上得到的error其實(shí)是越大的,但是這件事情是非常合理的,因?yàn)楫?dāng)λ越大的時(shí)候,我們就越傾向于考慮w的值而越少考慮error的大小;但是有趣的是,雖然在training data上得到的error越大,但是在testing data上得到的error可能會(huì)是比較小的

下圖中,當(dāng)λ從0到100變大的時(shí)候,training error不斷變大,testing error反而不斷變小;但是當(dāng)λ太大的時(shí)候(>100),在testing data上的error就會(huì)越來(lái)越大

==我們喜歡比較平滑的function,因?yàn)樗鼘?duì)noise不那么sensitive;但是我們又不喜歡太平滑的function,因?yàn)樗褪チ藢?duì)data擬合的能力;而function的平滑程度,就需要通過(guò)調(diào)整λ來(lái)決定==,就像下圖中,當(dāng)λ=100時(shí),在testing data上的error最小,因此我們選擇λ=100

注:這里的error指的是

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

conclusion總結(jié)

關(guān)于pokemon的cp值預(yù)測(cè)的流程總結(jié):

  • 根據(jù)已有的data特點(diǎn)(labeled data,包含寶可夢(mèng)及進(jìn)化后的cp值),確定使用supervised learning監(jiān)督學(xué)習(xí)
  • 根據(jù)output的特點(diǎn)(輸出的是scalar數(shù)值),確定使用regression回歸(linear or non-linear)
  • 考慮包括進(jìn)化前cp值、species、hp等各方面變量屬性以及高次項(xiàng)的影響,我們的model可以采用這些input的一次項(xiàng)和二次型之和的形式,如: 而為了保證function的平滑性,loss function應(yīng)使用regularization,即,注意bias——參數(shù)b對(duì)function平滑性無(wú)影響,因此不額外再次計(jì)入loss function(y的表達(dá)式里已包含w、b)
  • 利用gradient descent對(duì)regularization版本的loss function進(jìn)行梯度下降迭代處理,每次迭代都減去L對(duì)該參數(shù)的微分與learning rate之積,假設(shè)所有參數(shù)合成一個(gè)vector:,那么每次梯度下降的表達(dá)式如下: 梯度 當(dāng)梯度穩(wěn)定不變時(shí),即為0時(shí),gradient descent便停止,此時(shí)如果采用的model是linear的,那么vector必然落于global minima處(凸函數(shù));如果采用的model是Non-linear的,vector可能會(huì)落于local minima處(此時(shí)需要采取其他辦法獲取最佳的function) 假定我們已經(jīng)通過(guò)各種方法到達(dá)了global minima的地方,此時(shí)的vector:所確定的那個(gè)唯一的function就是在該λ下的最佳,即loss最小
  • 這里λ的最佳數(shù)值是需要通過(guò)我們不斷調(diào)整來(lái)獲取的,因此令λ等于0,10,100,1000,...不斷使用gradient descent或其他算法得到最佳的parameters:,并計(jì)算出這組參數(shù)確定的function——對(duì)training data和testing data上的error值,直到找到那個(gè)使testing data的error最小的λ,(這里一開始λ=0,就是沒有使用regularization時(shí)的loss function) 注:引入評(píng)價(jià)的error機(jī)制,令error=,分別計(jì)算該對(duì)training data和testing data(more important)的大小 先設(shè)定λ->確定loss function->找到使loss最小的->確定function->計(jì)算error->重新設(shè)定新的λ重復(fù)上述步驟->使testing data上的error最小的λ所對(duì)應(yīng)的所對(duì)應(yīng)的function就是我們能夠找到的最佳的function

本章節(jié)總結(jié):

  • Pokémon: Original CP and species almost decide the CP after evolution
  • There are probably other hidden factors
  • Gradient descent More theory and tips in the following lectures
  • Overfitting and Regularization
  • We finally get average error = 11.1 on the testing data
  • How about new data? Larger error? Lower error?(larger->need validation)
  • Next lecture: Where does the error come from? More theory about overfitting and regularizationThe concept of validation(用來(lái)解決new data的error高于11.1的問(wèn)題)

附:Regularization(L1 L2 正則化解決overfitting)

Regularization -> redefine the loss function

關(guān)于overfitting的問(wèn)題,很大程度上是由于曲線為了更好地?cái)M合training data的數(shù)據(jù),而引入了更多的高次項(xiàng),使得曲線更加“蜿蜒曲折”,反而導(dǎo)致了對(duì)testing data的誤差更大

回過(guò)頭來(lái)思考,我們之前衡量model中某個(gè)function的好壞所使用的loss function,僅引入了真實(shí)值和預(yù)測(cè)值差值的平方和這一個(gè)衡量標(biāo)準(zhǔn);我們想要避免overfitting過(guò)擬合的問(wèn)題,就要使得高次項(xiàng)對(duì)曲線形狀的影響盡可能小,因此我們要在loss function里引入高次項(xiàng)(非線性部分)的衡量標(biāo)準(zhǔn),也就是將高次項(xiàng)的系數(shù)也加權(quán)放進(jìn)loss function中,這樣可以使得訓(xùn)練出來(lái)的model既滿足預(yù)測(cè)值和真實(shí)值的誤差小,又滿足高次項(xiàng)的系數(shù)盡可能小而使曲線的形狀比較穩(wěn)定集中

以下圖為例,如果loss function僅考慮了這一誤差衡量標(biāo)準(zhǔn),那么擬合出來(lái)的曲線就是紅色虛線部分(過(guò)擬合),而過(guò)擬合就是所謂的model對(duì)training data過(guò)度自信, 非常完美的擬合上了這些數(shù)據(jù), 如果具備過(guò)擬合的能力, 那么這個(gè)方程就可能是一個(gè)比較復(fù)雜的非線性方程 , 正是因?yàn)檫@里的和使得這條虛線能夠被彎來(lái)彎去, 所以整個(gè)模型就會(huì)特別努力地去學(xué)習(xí)作用在和上的c、d參數(shù). 但是在這個(gè)例子里,我們期望模型要學(xué)到的卻是這條藍(lán)色的曲線. 因?yàn)樗芨行У馗爬〝?shù)據(jù).而且只需要一個(gè)就能表達(dá)出數(shù)據(jù)的規(guī)律.

或者是說(shuō), 藍(lán)色的線最開始時(shí), 和紅色線同樣也有c、d兩個(gè)參數(shù), 可是最終學(xué)出來(lái)時(shí), c 和 d 都學(xué)成了0, 雖然藍(lán)色方程的誤差要比紅色大, 但是概括起數(shù)據(jù)來(lái)還是藍(lán)色好

最詳細(xì)的回歸算法介紹,一遍就能看懂

 

這也是我們通常采用的方法,我們不可能一開始就否定高次項(xiàng)而直接只采用低次線性表達(dá)式的model,因?yàn)橛袝r(shí)候真實(shí)數(shù)據(jù)的確是符合高次項(xiàng)非線性曲線的分布的;而如果一開始直接采用高次非線性表達(dá)式的model,就很有可能造成overfitting,在曲線偏折的地方與真實(shí)數(shù)據(jù)的誤差非常大。我們的目標(biāo)應(yīng)該是這樣的:

在無(wú)法確定真實(shí)數(shù)據(jù)分布的情況下,我們盡可能去改變loss function的評(píng)價(jià)標(biāo)準(zhǔn)

  • 我們的model的表達(dá)式要盡可能的復(fù)雜,包含盡可能多的參數(shù)和盡可能多的高次非線性項(xiàng);
  • 但是我們的loss function又有能力去控制這條曲線的參數(shù)和形狀,使之不會(huì)出現(xiàn)overfitting過(guò)擬合的現(xiàn)象;
  • 在真實(shí)數(shù)據(jù)滿足高次非線性曲線分布的時(shí)候,loss function控制訓(xùn)練出來(lái)的高次項(xiàng)的系數(shù)比較大,使得到的曲線比較彎折起伏;
  • 在真實(shí)數(shù)據(jù)滿足低次線性分布的時(shí)候,loss function控制訓(xùn)練出來(lái)的高次項(xiàng)的系數(shù)比較小甚至等于0,使得到的曲線接近linear分布

那我們?nèi)绾伪WC能學(xué)出來(lái)這樣的參數(shù)呢? 這就是 L1 L2 正規(guī)化出現(xiàn)的原因.

之前的loss function僅考慮了這一誤差衡量標(biāo)準(zhǔn),而L1 L2正規(guī)化就是在這個(gè)loss function的后面多加了一個(gè)東西,即model中跟高次項(xiàng)系數(shù)有關(guān)的表達(dá)式;

  • L1正規(guī)化即加上λ這一項(xiàng),loss function變成,即n個(gè)training data里的數(shù)據(jù)的真實(shí)值與預(yù)測(cè)值差值的平方和加上λ權(quán)重下的model表達(dá)式中所有項(xiàng)系數(shù)的絕對(duì)值之和
  • L2正規(guī)化即加上這一項(xiàng),loss function變成,即n個(gè)training data里的數(shù)據(jù)的真實(shí)值與預(yù)測(cè)值差值的平方和加上λ權(quán)重下的model表達(dá)式中所有項(xiàng)系數(shù)的平方和

相對(duì)來(lái)說(shuō),L2要更穩(wěn)定一些,L1的結(jié)果則不那么穩(wěn)定,如果用p表示正規(guī)化程度,上面兩式可總結(jié)如下:

最詳細(xì)的回歸算法介紹,一遍就能看懂

分享到:
標(biāo)簽:算法 回歸
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定