梯度下降算法

(ai生成自用!!!!)

目录

一、批梯度下降算法

1. 定义损失函数

2. 计算梯度

3. 更新参数

4. 迭代训练

5. 实现代码

说明

小结

二、随机梯度下降算法

1. 定义损失函数

2. 计算梯度

3. 更新参数

4. 迭代训练

5. 实现代码

说明

小结

三、小批量梯度下降

1. 定义损失函数

2. 计算梯度

3. 更新参数

4. 迭代训练

5. 实现代码

说明

小结


一、批梯度下降算法

使用批梯度下降算法求解线性回归模型的参数 aa 和 bb(即模型 y=ax+by=ax+b)的步骤如下:

1. 定义损失函数

在线性回归中,损失函数通常使用均方误差 (MSE),其公式为:

其中 nn 是样本数量,yiyi​ 是真实值,xixi​ 是特征值。

2. 计算梯度

我们需要对损失函数分别对 aa 和 bb 求偏导数:

3. 更新参数

使用学习率 α 更新参数 a 和 b:

4. 迭代训练

重复执行计算梯度和更新参数的步骤,直到收敛(损失函数变化很小)。

5. 实现代码

以下是使用 Python 实现批梯度下降算法求解线性回归参数的示例代码:

import numpy as np

# 生成示例数据
np.random.seed(42)
X = np.random.rand(100, 1) * 10  # 特征
y = 3 * X.squeeze() + 7 + np.random.randn(100)  # 线性关系加噪声

# 初始化参数
a = 0.0
b = 0.0
learning_rate = 0.01
n_iterations = 1000
n = len(y)

# 批梯度下降算法
for _ in range(n_iterations):
    # 预测值
    y_pred = a * X.squeeze() + b
    
    # 计算梯度
    grad_a = -2/n * np.sum(X.squeeze() * (y - y_pred))
    grad_b = -2/n * np.sum(y - y_pred)
    
    # 更新参数
    a -= learning_rate * grad_a
    b -= learning_rate * grad_b

print(f"学习到的参数: a = {a}, b = {b}")

说明

  1. 数据生成:这里生成了一个随机的线性关系数据集,用于训练模型。
  2. 参数初始化:初始参数 aa 和 bb 设置为0。
  3. 学习率:通过设置学习率来控制参数更新的速度。
  4. 迭代更新:在每次迭代中计算当前模型的预测值,计算梯度,然后更新参数。

X.squeeze()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值