線性最小二乘兩種方法
線性最小二乘擬合 y = w0 +w1x (參數 w0, w1)
(1)如何評價一條擬合好的直線 y = w0 +w1x 的誤差?
"cost" of a given line : Residual sum of squares (RSS)
(2)最小二乘方法的思路
使 RSS 盡量小。
即
而RSS 函數的圖像是這樣的:
極小值 處導數為0.
對RSS 求導:
有兩種方法求解。
1.closed form:
解析解, 使gradient = 0
得到:
w1: slope = ((sum of X * Y) - (1/N)*(sum of X)*(sum of Y)) / ((sum of X^2) -(1/N)* (sum of X)*(sum of X))
w0: intercept = (1/N)*(sum of Y) - slope * (1/N)* (sum of X)
2.gradient descent
梯度下降方法。
對於簡單的函數擬合,可以直接求出解析解。但對於一些不能直接求出解析解的情況(例如神經網絡),就可以使用梯度下降方法。
註意到:
w0 的導數 = sum (yi - (w0+w1xi) ) ,即 w0導數 = sum( error )
w1的導數 = sum( error*x )
算法過程:
step 0.初始化:
initial_w0 = 0
initial_w1 = 0
step_size = 0.05
tolerance = 0.01
step 1 ~. 對於接下來的每一步:
(1)根據當前 w0、 w1 計算 y ,並計算w0 、w1的導數 sum( error ) 和 sum( error *x)
(2)更新 w0 、w1 的值:
adjustment = step_size * derivative(導數)
w0 = w0 - adjustment (w1 同理)
(3)檢查算法是否應該結束(導數是否已經收斂到一個很小的值了):
magnitude = sqrt(sum (derivative ^2))
if magnitude < tolerance:
end
出處:華盛頓大學machine learning:regression week 1
線性最小二乘兩種方法