实例:求解 \((x-2)^2=0\)

前言

面临的两个问题: 1. 往上猜?往下猜? 2. 大多少?小多少?

真值 Label、预测值 pre、输入 input的实例看下图:

Loss:损失,是用来衡量真值和预测值之间的差距,从而确定下一次输入值的大小和方向。用于计算损失的函数叫做损失函数

均方差损失 MSE Loss

利用两个值之间的差的平方来表示两个值之间的差距:\((x-y)^2\)

学习率 lr

学习率一般取值在 0~1,用来影响梯度下降对输入的改变

复现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from tqdm import trange     # 显示进度条  

epoch = 10000
lr = 0.05
x = 3 # 初始值
label = 0

for e in trange(epoch):
pre = (x-2) ** 2
loss = (pre-label) ** 2
delta_x = 2 * (pre-label)*(x-2)
x = x - delta_x * lr

print(x)

输出:
100%|██████████| 10000/10000 [ 00:00 < 00:00 , 994830.29it/s]
2.0223486461768205

相关链接

bilibili GitHub