学习笔记|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=1n(ypredytrue)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()    

更多推荐