剛開始入門機器學習,線性回歸是肯定躲不過的。特別到之後的神經網路的全連線層也是需要線性回歸基礎。
最簡單的公式就是y=w
x+by=wx+b
y=wx+b
。x和y是已知量,要求出w和b的值。
我們在平面座標圖上看,y=w
x+by=wx+b
y=wx+b
,就是一條直線。我們要確認這條直線就只要兩個點就可以確定出來。
但是現實情況的資料並不是百分百符合y=w
x+by=wx+b
y=wx+b
這條直線的,很可能是圍繞這條直線變動的。那麼y就有可能出現偏差了。
實際情況y和符合y』=
wx+b
y』=wx+b
y』=wx+
b**情況的這條直線對應的y『就會出現偏差了。
如何計算這兩個之間的偏差呢,基本我們是使用均方差的方式(y−
y『)(
y−y′
)(y-y『)(y-y')
(y−y『)
(y−y
′)的方式來衡量實際情況y和**情況y』之間的誤差。
隨著我們真實資料越來越多,那麼就會存在多個點用來計算誤差。
誤差值=(總資料的均方差/資料量)
誤差值的計算相當於就是損失函式計算
我們當然希望這個誤差值越來越小,所以這個誤差值就是用來調整y』=wx+b 中斜率w值和b值,讓其不斷變小,這就讓涉及到學習率這個值了。
新的w ′=
w−學習
率∗誤差
值w'= w - 學習率*誤差值
w′=w−學
習率∗誤
差值。通過不斷的調整w和b值,那麼就會讓這條線更加更符合現實情況的資料預期。
以上是最簡單的線性回歸情況。
那麼要如何模擬更複雜的情況呢?
現實情況是乙個結果y,更可能和一堆相關x有關係,那麼很明顯公式就會如下一樣
y ′=
w1∗x
1+w2
∗x1+
……+w
n∗xn
+by' = w1*x1+ w2*x1+……+wn*xn +b
y′=w1∗
x1+w
2∗x1
+……+
wn∗x
n+b已知量x通過不斷的去計算出真實y和**y』之間的誤差值來不斷更新w和b值,用這樣的方式不斷完善對現實情況的**。
使用矩陣來表達如一下
y ′=
[w1,
w2,…
…,wn
,b]∗
[x1,
x2,…
…,xn
,1]y' = [w1,w2,……,wn,b] * [x1,x2,……,xn,1]
y′=[w1
,w2,
……,w
n,b]
∗[x1
,x2,
……,x
n,1]
其中[ w1
,w2,
……,w
n,b]
[w1,w2,……,wn,b]
[w1,w2
,……,
wn,b
]就是同loss函式和學習率進行變化的部分。
經典的波士頓房價**就是基本的公式就是使用以上說的線性回歸來**現實情況數值的情況。
pytorch線性回歸
線性回歸假設輸出與各個輸入之間是線性關係 y wx b pytorch定義線性回歸模型 def linreg x,w,b return torch.mm x,w b線性回歸常用損失函式是平方損失 2優化函式 隨機梯度下降 小批量隨機梯度下降 mini batch stochastic gradien...
pytorch 線性回歸
import torch from torch.autograd import variable import torch.nn.functional as f import matplotlib.pyplot as plt print torch.linspace 1,1,100 x torch....
Pytorch之線性回歸
import torch from torch import nn import numpy as np import torch.utils.data as data from torch.nn import init 使得模型的可復現性 torch.manual seed 1 設定預設的資料格式...