Pytorch基礎 線性回歸

2021-10-23 22:16:26 字數 1846 閱讀 1908

剛開始入門機器學習,線性回歸是肯定躲不過的。特別到之後的神經網路的全連線層也是需要線性回歸基礎。

最簡單的公式就是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 設定預設的資料格式...