1. 程式人生 > >線性迴歸(linear regression)

線性迴歸(linear regression)

線性迴歸(liner regression)

1、迴歸問題

迴歸問題和分類問題很相似,迴歸問題輸出的是一個標量(scalar),即輸出的是一個連續的值。

在這裡插入圖片描述
迴歸其實就是預測,根據輸入(Input)得到輸出(output)。關鍵是 如何描述輸入與輸出的關係,輸入與輸出的關係 是一種對映關係,數學裡面的函式關係(functiona relationship)。怎麼樣找到這種二者之間的這種關係?

這裡面有兩種資料,一種是訓練資料(train set)和測試資料(test set data);訓練資料是指使用該資料來找到 輸入與輸出之間關係的 資料,找到function的資料集

;測試資料是用來判斷 訓練所得到 function 的好壞。

2、一般步驟

要尋找資料和對應連續值之間的關係,實際就是要找到一個函式,能夠將資料對映到連續值上。

迴歸問題一般通過以下三步解決:

  1. Model: set a model (function set)
    選擇一個模型。模型實際就是函式的集合,線性迴歸模型,就是所有線性函式組成的集合
  2. Goodness of function
    需要有一個評判標準,能夠判斷函式的好壞 (評價model中的某個function 預測的值與真實值之間的偏離程度的一個 loss function)
  3. Best function
    利用上一步中評判標準,在函式集合中找到最好的函式

對於不同的模型,尋找最好的函式的方法,很有可能是不一樣的。但是對於同一個問題,判斷函式好壞的方法往往是相同的。
在這裡插入圖片描述

2.1 set a model

本文我們所討論的是線性模型,一般還有 核模型層模型(神經網路)。

(1)首先,從學習物件f函式的輸入是一維的情況開始說明。即輸入只有一個變數,一個feature;
在這裡插入圖片描述在這裡在這裡插入圖片描述***表示模的引數(標量)***,通過對這個引數的學習,訓練,完成函式的近似相似。這是最簡單的模型,只有一個引數 theta ,該引數也稱之為weight(權重),可以外加一個bias。然而,因為這個模型只能表示線性的輸入輸出函式(即直線關係),所以在解決實際問題方面,往往沒有太大的實用價值。

(2)一般情況下。
現在,我們拓展一下,如果我們給定了d個屬性(size和s就是兩種屬性)描述的樣本如下:

在這裡餓肚肚的地方都是點點滴滴插入圖片描述
線性模型試圖學習到一個通過屬性的線性組合來進行預測的函式,即
在這裡插入圖片描述
我們可以用向量形式表示
在這裡插入圖片描述
上面的式子就是線性模型的一般表示式了,可以看到線性模型的形式很簡潔,而且易於建模。

2.2Goodness of function

在2.1中確定線性模型之後,可知該模型中有無數個 functiona,根據不同 w,b的取值就是一個function。我們要在這些function set中挑選出一個function?挑選這個functiona的原則就是 該function能很好的擬合訓練資料即***最終w,b所確定的function在訓練集上所得到的預測值和真實值之間差別不是特別大。***
在這裡插入圖片描述

2.3pick the best function

如何求解W 和 b?
在這裡插入圖片描述

2.3.1最小二乘法(可參考圖解機器學習 Chapter3)

當loss function為均方誤差時,用最小二乘法可以直接計算出w和b的解析解。
最小二乘法找到的是誤差平方和最小的函式:
在這裡插入圖片描述
最小二乘法實際是對w和b分別求偏導,令導數等於0
在這裡插入圖片描述

此種方法可進一步擴充套件,具體見圖解機器學習。

2.3.2梯度下降(gradient descent)

當loss function改變了,最小二乘法很可能不再有用。這時,可以採用梯度下降法。梯度下降法是**一種迭代式的演算法。**梯度下降法的基本思想,就是對loss function求引數的梯度,向梯度下降的方向更新引數:
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

下面對gradient descent進行一定的改進:

(1)自動確定 learning rate:
在這裡插入圖片描述
從上圖可知,learning rate的選取對 loss function訓練引數的最終確定速度是有影響的,當learning rate較小時 ,loss function 下降的速度較慢,當learning rate較大時 ,不易收斂。因此,設計出一種自動確定learning rate的方法。Adagrad
在這裡插入圖片描述

(2)Stochastic Gradient Descent隨機梯度下降
一般的梯度下降,計算所有樣本的loss function後,update引數

SGD:

  1. (隨機)選擇一個樣本
  2. 計算這個樣本的loss function,update引數

更新引數更頻繁,有助於加速訓練
在這裡插入圖片描述

(3)feature scaling**(資料集的歸一化)**
在這裡插入圖片描述

在這裡插入圖片描述

在機器學習中,我們常使用梯度下降法求解最優化問題,在使用梯度下降法時,要注意特徵歸一化(Feature Scaling).特徵歸一化有兩個明顯的好處:

1.提升模型的收斂速度,例如模型只有兩個特徵x1和x2,x1x1和x2,x1的取值為02000,而x2x2的取值為15,如果對其優化,會得到一個窄長的橢圓形,導致在梯度下降時,梯度的方向在垂直等高線的方向而走之字形路線,這樣迭代速度很降低。如果歸一化,會使一個橢圓,梯度的方向為直接指向圓心,迭代速度就會很快。
2.提升模型的精度,這在涉及一些距離計算的演算法時效果顯著,比如演算法要計算歐式距離,上面的x2x2的取值範圍較小,計算時對結果的影響遠比x1x1帶來的小,可能會造成精度的損失.

如何實現資料的歸一化?
在這裡插入圖片描述

未完,待續 18/11/5

https://blog.csdn.net/u011974639/article/details/77102663
https://blog.csdn.net/ivonui/article/details/79263387