梯度下降1
# sqrt(3) = ?
# x**2 = 3 , x=?
lr = 0.01
label = 3
x = 4
epoch = 100
for e in range(100):
print(x)
pre = x**2
Loss = (pre-label)**2
delta_x = 2 * (pre - label)* 2 * x
x = x - delta_x * lr
print(x)
梯度下降2
# (x1 - 2) ** 2 + (x2 + 3) ** 2 = 0 x1 = ? x2 = 3?
# 求解 sin(10) = ?
epoch = 10000
lr = 0.02
label = 0
x1 = 1
x2 = 1
for e in range(epoch):
pre = (x1 - 2) ** 2 + (x2 + 3) ** 2
loss = (pre - label) ** 2
delta_x1 = 2 * (pre - label) * 2 * (x1 - 2)
delta_x2 = 2 * (pre - label) * 2 * (x2 + 3)
x1 = x1 - lr * delta_x1
x2 = x2 - lr * delta_x2
if e % 100 == 0:
print(loss)
print(x1,x2)