Pytorch深度學習實踐——線性模型
阿新 • • 發佈:2021-01-12
在看劉二大人的Pytorch教程,寫個筆記記錄一下,如果有什麼問題歡迎一起探討呀
線性模型
首先是線性模型的定義:給定由d個屬性描述對的示例x = (x_{1};x_{2};…;x_{d}),其中{x_{i}}是第i個屬性上的取值,線性模型試圖學得一個通過屬性的線性組合來進行預測的函式,即
轉換成向量形式即為:
線性迴歸
基於以上線性模型的定義,引出線性迴歸問題,即線性迴歸的目的是試圖學得
利用均方誤差進行度量,使MSE最小化,用公式表示即為:
詳細瞭解繼續戳:線性模型(我只是無情的搬運工~)
接著上視訊程式碼:
import numpy as np #用於python繪圖的包
import matplotlib.pyplot as plt
x_data=[1.0,2.0,3.0] #輸入樣本
y_data=[2.0,4.0,6.0] #輸出樣本
def forward(x):
return x*w
def loss(x,y):
y_pred=forward(x)
return (y_pred-)*(y_pred-y)
w_list=[] #權重列表
mse_list=[] #損失列表
for w in np.arange(0.0, 4.1, 0.1): #在[0.0,4.1]之間以0.1為間隔生成序列
print('w=',w)
l_usm=0
for x_val, y_val in zip(x_data, y_data):
y_pred_val=forward(x_val)
loss_val=loss(x_val,y_val)
l_sum+=loss_val
print('\t',x_val,y_val,y_pred_val,loss_val)
print('MSE=',l_sum/3)
w_list.append(w)
mse_list.append(l_sum/3)
#繪圖
plt.plot(w_list,mse_list)
plt.ylabel('loss' )
plt.xlabel('w')
plt.show()
文末附上其他同學寫好的作業:小作業