【PyTorch深度学习】 第二讲:梯度下降

本文介绍了线性回归模型的数学原理,包括y=w*x的线性传播公式,以及成本函数cost的计算方法:1/n∑(y_pred-y)^2。通过梯度计算梯度grad=2*x*(x*w-y),并利用反向传播更新权重w以最小化损失。提供的Python代码展示了训练过程,但输出显示w值未随训练迭代改变,可能是因为初始w值已接近最优解,导致损失始终为常数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数学含义

y = w * x
cost = 1/n ∑(y_pred - y)^2
grad = 2 * x * (x * w - y)

2.含义解释

线性回归反向传播
对cost函数求w导得出w的变化率,更新w求得最佳

3.代码实现


import math

# 数据
x_data = [1.0,2.0,3.0]
y_data = [2.0,4.0,6.0]
w = 1.999




#线性传播,计算y = w * x
def forword(x):
    return x * w

#计算损失cost
def cost(xs,ys):
    cost = 0
    for x,y in zip(xs,ys):
        y_pred = forword(x)
        cost += math.pow(y_pred - y, 2)
    return cost/len(xs)

# 计算梯度
def gradient(xs,ys):
    grad = 0
    for x, y in zip(xs, ys):
        grad += 2 * x * (x * w - y)
    return grad/len(xs)


#训练模型
for epoch in range(100):
       cost_val = cost(x_data,y_data)
       grad_val = gradient(x_data,y_data)
       print('Epoch:' ,epoch,'w = ',w,'loss = ',cost_val)

4.结果展示

Epoch: 0 w =  1.999 loss =  4.666666666666527e-06
Epoch: 1 w =  1.999 loss =  4.666666666666527e-06
Epoch: 2 w =  1.999 loss =  4.666666666666527e-06
Epoch: 3 w =  1.999 loss =  4.666666666666527e-06
Epoch: 4 w =  1.999 loss =  4.666666666666527e-06
Epoch: 5 w =  1.999 loss =  4.666666666666527e-06
Epoch: 6 w =  1.999 loss =  4.666666666666527e-06
Epoch: 7 w =  1.999 loss =  4.666666666666527e-06
Epoch: 8 w =  1.999 loss =  4.666666666666527e-06
Epoch: 9 w =  1.999 loss =  4.666666666666527e-06
·····································
·····································
·····································
Epoch: 92 w =  1.999 loss =  4.666666666666527e-06
Epoch: 93 w =  1.999 loss =  4.666666666666527e-06
Epoch: 94 w =  1.999 loss =  4.666666666666527e-06
Epoch: 95 w =  1.999 loss =  4.666666666666527e-06
Epoch: 96 w =  1.999 loss =  4.666666666666527e-06
Epoch: 97 w =  1.999 loss =  4.666666666666527e-06
Epoch: 98 w =  1.999 loss =  4.666666666666527e-06
Epoch: 99 w =  1.999 loss =  4.666666666666527e-06



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值