梯度下降,使用python代码
时间: 2023-02-06 22:37:41 浏览: 202
梯度下降是一种常用的优化算法,用于机器学习中的参数优化问题。其基本思想是,通过不断地迭代,使用训练数据对参数进行调整,使得模型的预测误差最小化。
下面是使用 Python 代码实现梯度下降算法的例子:
```
import numpy as np
# 定义损失函数
def loss(x, y, w):
y_pred = w * x
return (y_pred - y) ** 2
# 定义损失函数的梯度
def gradient(x, y, w):
return 2 * x * (w * x - y)
# 初始化参数
w = np.random.randn()
# 设定学习率
learning_rate = 0.01
# 迭代优化参数
for epoch in range(100):
# 计算当前的损失值
current_loss = loss(x, y, w)
# 计算当前的梯度
grad = gradient(x, y, w)
# 更新参数
w = w - learning_rate * grad
# 输出当前的损失值
print("Epoch %d: loss=%.4f" % (epoch, current_loss))
```
在这个例子中,我们定义了一个线性回归模型,并使用梯度下降算法对参数进行优化。具体来说,我们定义了损失函数 `loss` 和损失函数的梯度 `gradient`,然后在每一个迭代周期中,计算当前的损失值和梯度,并根据学习率更新参数。最终,我们可以通过输出每一个迭代周期的损
阅读全文