机器学习中的梯度下降与多项式回归算法详解
1. 梯度下降算法概述
梯度下降算法是机器学习中常用的优化算法,用于寻找函数的最小值。在不同情况下,梯度下降算法的表现有所不同。有时候它能直接朝着最小值前进,快速到达;而有时则会先朝着与全局最小值几乎正交的方向前进,然后沿着一个近乎平坦的山谷缓慢前行,最终虽能到达最小值,但耗时较长。
使用梯度下降算法时,要确保所有特征具有相似的尺度。可以使用Scikit - Learn的 StandardScaler 类来实现这一点,否则算法收敛会花费更长时间。
训练模型本质上是在模型的参数空间中搜索能使成本函数最小化的参数组合。模型的参数越多,参数空间的维度就越高,搜索难度也就越大。不过,对于线性回归问题,成本函数是凸函数,最小值就位于“碗底”。
2. 批量梯度下降(Batch Gradient Descent)
- 原理 :要实现梯度下降,需要计算成本函数关于每个模型参数$\theta_j$的梯度,即计算当$\theta_j$有微小变化时成本函数的变化量,这就是偏导数。可以通过以下公式计算成本函数关于参数$\theta_j$的偏导数:
- $\frac{\partial}{\partial\theta_j}MSE(\theta)=\frac{2}{m}\sum_{i = 1}^{m}(\theta^T x^{(i)}-y^{(i)})x_j^{(i)}$
- 也可以使用梯度向量$\nabla_{\theta}MSE(\theta)$一次性计算所有偏导数,公式为:$\nabla_{\theta
超级会员免费看
订阅专栏 解锁全文
5万+

被折叠的 条评论
为什么被折叠?



