人工智慧演算法 演算法基礎之線性回歸

2021-10-21 16:55:00 字數 2668 閱讀 2585

線性回歸的宗旨是構建乙個相對比較簡單的線性模型,將輸入對映為輸出。對x和y兩個變數,很容易寫出它們對應的線性函式:y=mx+b,m為斜率,b為截距。該函式之所以被稱為「線性函式」,是因為其函式影象畫出來就是一條直線。在同乙個座標系下,曲線代表的則是非線性函式。乙個線性回歸模型只對應乙個變數即稱「單變數的」。單變數回歸模型乙個常見的示例就是鞋碼和身高的對應關係。這個回歸模型接受乙個人的身高作為輸入,並計算其對應的鞋碼作為輸出;或者是將鞋碼作為輸入,而輸出對應的身高資料。訓練這樣乙個模型的工作量主要是要找到能夠正確反映身高和鞋碼之間關係的斜率和截距值。

不止乙個輸入的模型稱為多變數的,多變數線性回歸跟單變數的情況差不太多,唯一的區別在於每個輸入都有乙個對應的加法項。此外模型中還是有「截距」這個引數。比如:y=β

1x1+

β2x2

+...

+αy=β_1x_1+β_2x_2+...+α

y=β1​x

1​+β

2​x2

​+..

.+α訓練實際上就是尋找與訓練集最為匹配的係數的過程,只要有係數的值,計算線性回歸的輸出值就很容易。要想使係數擬合全部的訓練樣本是不大可能的,但訓練會使得模型對訓練集中樣本的誤差盡可能小。

要使用最小二乘擬合,需要先構造兩個矩陣,稱為matrixx和matrixy,兩個矩陣的行數都等於訓練集的樣本數。矩陣matrixx儲存訓練集的所有輸入,因為矩陣中每個輸入都附帶乙個常數1,便於計算截距,因此其列數等於輸入個數加1。矩陣matrixy儲存的則是訓練集中的所有理想輸出,對線性回歸問題而言,輸出一次只有乙個,因此matrixy的列數總是1。

利用這兩個矩陣,就可以擬合得到較好的線性回歸係數了。這裡我們要用到一種被稱為「矩陣分解」的線性代數方法

先構建乙個用最小二乘擬合法將攝氏溫度轉換為華氏溫度的線性回歸模型。首先有以下訓練資料:

0

->

32100

->

212

上述資料表明0攝氏度等於32華氏度,100攝氏度等於212華氏度,我們要計算出能夠產生上述預期輸出的線性模型對應的斜率和截距。

我們還必須要構造matrixx和matrixy。首先構造matrixx,如前所述,實際上就是在輸入後面附加乙個代表截距單位的常數1,構造結果如下:

[

0.0,

1.0]

[100.0

,1.0

]

然後構造由理想輸出組成的matrixy:

[

32.0][

212.0

]

下一步就是用qr分解來分解矩陣,可以選用語言自帶的線性代數庫或者gpu版的線性代數庫。blas就是乙個很常用的線性代數庫,有個cuda gpus版本的blas被稱為cublas。在執行矩陣運算方面,gpu比cpu快多了。

我們根據matrixy,使用qr分解來分解matrixx,返回值就是與matrixx相乘可以得到結果matrixy的係數矩陣。儘管資料有兩行,但係數卻只有一組,這些係數對每行資料都可以得到最符合預期的結果。係數的運算結果是以下矩陣:

[

1.8]

[32.0

]

上述矩陣給出了斜率係數和截距,其中截距對應的是每個輸入後面跟的常數1,如前所述即乘以常數1,因此將攝氏度轉換為華氏度的線性模型如下:

f=

(c*1.8)+

32

線性回歸要求輸入、輸出之間的關係是線性的,但從資料點中強行擬合出一條直線是存在問題的。安斯庫姆四重奏就是乙個指出了線性回歸問題所在的特殊資料集.

4個不同的資料集,4幅圖中資料點相互之間的區別很明顯,但這4個資料集都擬合出了同樣的線性回歸係數,經過資料點的直線即線性回歸的結果。而這4個資料集的線性回歸結果相同則說明線性回歸的機制存在一定的缺陷。

左上角的那幅圖將資料點間的關係擬合得相當好,但右上角的資料集並非線性的,下面兩幅圖則表現了模型中離群值的影響。所謂「離群值」,指的是一小部分與其他大部分資料點完全脫離了的資料點。

廣義線性模型的基礎是上面討論的線性回歸模型,並使用鏈結函式進一步抽象廣義線性模型的輸出。廣義線性模型可以使用的鏈結函式有很多種,並且由於廣義線性模型的訓練演算法數學基礎是微積分,因此鏈結函式必須要有導數。

廣義線性模型的公式和線性回歸很像,最大的不同在於廣義線性模型多了乙個鏈結函式。

本質上來講,廣義線性模型就是將線性回歸的返回值傳遞給鏈結函式,鏈結函式即g( ),輸入為x,輸出為y,β的值構成係數,ε的值指示截距,就跟線性回歸沒有兩樣。唯一多出來的就是「鏈結函式」。

可選的不同鏈結函式有很多,最常見的一種就是邏輯函式。

邏輯函式有時也被稱作sigmoid函式

邏輯函式能夠放縮線性回歸的輸出,並且有幾個特別重要的特性:

邏輯函式的輸出絕不會比0小,也絕不會比1大,因此0通常被對映為廣義線性模型要**的乙個分類,1則對映為另乙個分類。當x為0時,函式值為0.5,恰為(0, 1)中點。

sigmoid函式也是單調的;所謂「單調」,指的是函式隨自變數的增大,要麼遞增,要麼遞減;單調函式的變化方向不會反轉。

人工智慧演算法分類

人工智慧演算法大體上來說可以分類兩類 基於統計的機器學習演算法 machine learning 和深度學習演算法 deep learning 總的來說,在sklearn中機器學習演算法大概的分類如下 1 回歸演算法 2 分類演算法 3 聚類演算法 4 降維演算法 5 概率圖模型演算法 6 文字挖掘...

人工智慧演算法 演算法基礎之邁向機器學習

所謂多項式,其實就是由變數和常係數組成的數學表示式,其中的運算只有加法 減法 乘法和正整數的冪運算 比如f x 2x 2 4x 6f x 2x 2 4x 6 f x 2 x2 4 x 6接受乙個值x,返回乙個值y,輸入 輸出向量的大小均為1,式中三個係數分別為 2,4,6。其中,各係數均乘以變數x的...

人工智慧演算法(一)進化演算法

我希望用這類文章,來盡可能通俗的解釋一些聽上去很 高大上 的人工智慧演算法,不僅可以幫助自己真正的理解,還能帶來更多的思考。目前想寫專家系統,神經網路,還有本篇進化演算法。不說大話,進入正題 相信大部分對人工智慧感興趣的人都聽說過進化演算法 遺傳演算法,基因演算法 一篇文章當然不可能把進化演算法的方...