一、什么是"参数"?
神经网络本质是:
y = wx + b
-
w = 权重
-
b = 偏置
这两个就是:
👉 参数(parameters)
模型学习的过程就是:
不断调整 w 和 b
二、什么是"梯度"?
梯度 = 告诉你:
这个参数往哪个方向改,可以让误差变小。
你可以理解为:
-
loss 是山的高度
-
梯度告诉你往哪个方向下山
如果函数只有一个变量:
那"梯度"就是导数:
它的意义是:w 增加 1 个单位,f 大约增加多少。
更准确说:
举个例子:
如果函数只有一个变量:
那"梯度"就是导数:
当w=3:
这 6 的意思是:如果 w 增加 0.01,那 f 大约增加 6 × 0.01 = 0.06。
三、训练的本质
训练只有四步:
-
前向计算
-
算误差
-
算梯度
-
更新参数
无限循环。
🔥 现在做一个极简单实验(不需要 PyTorch)
复制下面代码,自己运行。
python
import torch
# 定义一个参数
w = torch.tensor(2.0, requires_grad=True)
# 定义一个简单函数
y = w ** 2
# 反向传播
y.backward()
print("w 的梯度:", w.grad)
你要观察什么?
问题:
-
为什么梯度是 4?
-
这个 4 代表什么?
-
如果 w=3,梯度会是多少?
自己改:
w = torch.tensor(3.0, requires_grad=True)
看看结果。
🎯 今天的任务
-
运行上面代码
-
改 w 为不同数值
-
观察梯度变化
-
想一想:为什么是这个值?
明天我们干什么?
明天开始写:
👉 一个完整的线性回归训练
👉 手动更新参数
👉 不用优化器
(GPT生成,仅供自己查阅笔记,非教程)