PyTorch 深度学习实践——线性模型
学习笔记|B 站 UP 主 刘二大人 《PyTorch深度学习实践》视频知识点总结
最后附上视频中的python代码。
传送门 PyTorch深度学习实践——线性模型
1. 什么是线性模型?
线性模型是描述 “输入特征” 与 “输出结果” 之间线性关系的数学模型,核心公式如下:
y = w x + b y=wx+b y=wx+b
- x:输入特征(如房屋面积);
- y:预测输出(如房屋价格);
- w:权重(Weight),表示输入特征对输出的影响程度;
- b:偏置(Bias),调整模型的基准值。
举个直观例子:假设我们想通过 “房屋面积(x)” 预测 “房屋价格(y)”,线性模型就是找到合适的w(每平米价格)和b(基础装修费),让模型计算出的y尽可能接近真实房价。
2. 线性模型的核心目标
训练线性模型的本质是 “找最优的w和b”,让模型的预测值与真实值的误差最小化。常用的误差衡量方式是均方误差(MSE):
L o s s = 1 n ∑ i = 1 n ( y p r e d − y t r u e ) 2 Loss = \frac{1}{n}\sum_{i=1}^n (y_{pred} - y_{true})^2 Loss=n1i=1∑n(ypred−ytrue)2
其中, y p r e d y_{pred} ypred是模型预测值, y t r u e y_{true} ytrue是真实标签,n是样本数量。我们的目标就是通过优化算法(如梯度下降) 调整w和b,让 Loss 不断减小。
3. 源代码
import numpy as np
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)**2
# 穷举法
w_list = []
mse_list = []
for w in np.arange(0.0, 4.1, 0.1):
print("w=", w)
l_sum = 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()
更多推荐
所有评论(0)