简单的二维梯度下降 (适合入门)

本文通过Python实现了一个简单的线性回归模型,展示了如何通过梯度下降法调整权重(w)和偏置(b),最终目标函数(loss)趋近于0,参数w接近3,b接近4。过程包括随机初始化、计算损失并更新参数,最后可视化训练结果。

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

生成一部分数据(_x,_y)
_x 0~0.99

利用plot函数打印
在这里插入图片描述
完整代码

import random
import matplotlib.pylab as plt

_x=[i/100 for i in range (100)]
_y=[3*e+4+random.random() for e in  _x]
# print(_x)
# print(_y)
# plt.plot(_x,_y,".")
# plt.show()

w=random.random()
b=random.random()

for i in range(30):
    for x,y in zip(_x,_y):
        z = x*w+b  
        o=z-y      #损失值
        loss=o**2  #损失值要>0所以平方

        dw=-2*o*x  #由loss=o^2求导
        db=-2*o    #由loss=o^2求导

        w=w+0.1*dw  #假设学习率=0.1
        b=b+0.1*db

        print(w,b,loss) #打印w b loss  发现 w 会趋近于3,b趋近于4
plt.plot(_x,_y,".")
v=[w*e+b for e in _x]
plt.plot(_x,v)
plt.show()


发现 w 会趋近于3,b趋近于4
在这里插入图片描述
视频学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值