1. 程式人生 > >機器學習-線性迴歸(LMS Algorithm)

機器學習-線性迴歸(LMS Algorithm)

今天正式開始機器學習之路(看的斯坦福大學的視訊課以及講義),由於看的時候濛濛的,因此想要找個平臺儲存一下自己學習的成果,因此寫了此篇文章,作為機器學習的小白,文章可能有諸多不妥之處,不作為學術理論的深入研究範圍。因為我是小白,我是小白,我是小白。

由於第一次用簡書寫,所以可能格式不太對,請見諒。

其中用到的一些演算法基本的解釋:

(1)最小二乘法(來自百度百科):最小二乘法。最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小。最小二乘法還可用於曲線擬合

。其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。

(2)機器學習分為:有監督學習、無監督學習、強化學習。有監督學習包括:迴歸問題(針對連續值)和分類問題(針對離散值)。無監督學習通常為聚類問題。強化學習(不太瞭解)

首先舉一個簡單的例子,來說明問題。

比如溫度和溼度,對生長期的農作物的影響。

y表示農作物生長速度。x為影響因素。構建的線性模型如下:其中

表示權重

(公式 1)

如果影響因素更多的話,就利用下面的公式。

(公式2)n 為影響因素的個數

建立了一個這樣的模型之後,要通過訓練集求解權重,求解的過程中運用到了最小二乘思想、梯度下降。

即利用 h(x)[這個就是公式1的函式,由於權重沒辦法用公式編輯器打,就簡寫了],去逼近樣本(x,y)。[x表示的是x1,x2,x3....即一個樣本中包含若干個影響因素]。建立了一個損失函式[cost function]。

(公式3)x(i)表示第i個樣本;m為樣本總數

為了使得損失最小,先假定一個初始的權重值,用梯度下降法做迭代逼近,使j(權重)最小。

(公式4)

公式4中α為步長[給定],α後面的為梯度[打不出來]。公式4中(權重)j表示第j個影響因素對應的權重。將公式3帶入公式公式4有:

(公式6-推導J(權重))

公式6 (推導後帶入)

j表示第幾個影響因素。公式6只是針對一個樣本進行的推導。若有m個樣本,即為:

公式7(x的上角標i表示第i個樣本)

這個規則就叫LMS規則,暫時可以理解為線性迴歸。(其實不太懂)

上述的梯度下降法為批梯度下降法。

從公式7,可以看出由於批梯度下降法需要遍歷每一個樣本求和,當樣本數量較大時,它的效率是較低的。時間複雜度為O(n^2)。

所以,又基於批梯度下降法(Batch Gradient Descent)改進後有了隨機梯度下降法(Stochastic  /Incremental Gradient Descent)。

公式8 

隨機梯度下降法時間複雜度為O(n)。

[其實斯坦福大學講義中,講了一下兩者的區別,實在懶得寫翻譯了,哪天空閒了再補吧,就寫到這吧]

文章思想主要來源於:斯坦福大學機器學習視訊以及講義;部分內容為百度百科。