梯度下降是机器学习中优化模型参数的核心算法,常用于最小化损失函数。以下是基础概念与Python实现示例:
🧮 数学原理
- 目标:找到函数 $f(x)$ 的最小值
- 公式:
$$ x_{n+1} = x_n - \alpha \cdot \nabla f(x_n) $$
其中 $\alpha$ 为学习率,$\nabla f(x_n)$ 为梯度 - 可视化:
🧪 Python 示例
import numpy as np
import matplotlib.pyplot as plt
# 定义损失函数
def cost_function(x):
return x**2 + 5*x + 6
# 梯度下降实现
def gradient_descent(iterations=100, learning_rate=0.1):
x = 0.0
history = [x]
for _ in range(iterations):
grad = 2*x + 5
x = x - learning_rate * grad
history.append(x)
return history
# 可视化结果
history = gradient_descent()
plt.plot(history)
plt.title("梯度下降迭代过程")
plt.xlabel("迭代次数")
plt.ylabel("参数值")
plt.grid()
plt.show()
📚 应用场景
- 线性回归模型训练
- 神经网络权重更新
- 无约束优化问题
👉 想深入了解机器学习基础?点击此处查看教程
📌 关键点
- 学习率 $\alpha$ 过大可能导致震荡,过小则收敛慢
- 可以通过动量法或Adam优化器改进收敛速度
- 损失函数的形状会影响算法效果