梯度下降法 python
时间: 2023-10-29 15:00:00 浏览: 95
python实现梯度下降法
梯度下降法是一种常用的优化算法,用于求解函数的最小值。在Python中,我们可以使用NumPy库来实现梯度下降算法。下面是一个简单的梯度下降算法的Python实现:
```python
import numpy as np
# 定义目标函数
def f(x):
return x**2 + 2*x + 1
# 定义目标函数的导数
def df(x):
return 2*x + 2
# 初始化参数
learning_rate = 0.1
max_iterations = 1000
epsilon = 1e-8
# 初始化变量
x = 0
# 梯度下降算法迭代更新
for i in range(max_iterations):
gradient = df(x)
if np.abs(gradient) < epsilon:
break
x -= learning_rate * gradient
# 输出结果
print("最优解为:", x)
```
在这个例子中,我们定义了一个简单的目标函数`f(x)`,并求解其最小值。我们通过定义目标函数的导数`df(x)`来计算梯度。然后,我们选择了适当的学习率`learning_rate`、最大迭代次数`max_iterations`和容差`epsilon`来控制算法的收敛性。在每一次迭代中,我们根据梯度的方向和大小来更新参数`x`,直到梯度的绝对值小于容差为止。
通过运行上述代码,我们可以得到梯度下降算法的最优解。请注意,这只是一个简单的示例,实际应用中可能需要根据具体问题进行相应的调整。
阅读全文