问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

学习率对线性回归模型的影响(基于梯度下降法)

创作时间:
作者:
@小白创作中心

学习率对线性回归模型的影响(基于梯度下降法)

引用
CSDN
1.
https://m.blog.csdn.net/Lovely_Chen/article/details/140317385

在机器学习领域,线性回归是一种基础且广泛使用的预测模型,用于建立输入特征和连续输出变量之间的线性关系。而学习率,作为梯度下降法中的关键参数,对模型的训练效果有着重要影响。本文将探讨学习率对梯度下降法在线性回归模型中的影响。

线性回归与梯度下降法

线性回归模型通常采用以下形式:

梯度下降法通过迭代地调整模型参数来最小化代价函数,即均方误差(MSE):

梯度下降算法的目标是通过最小化代价函数 (J(\theta)) 来找到参数的最佳值。梯度下降的更新规则如下:

对于线性回归模型,参数的梯度更新公式可以具体表示为:

梯度下降算法通过重复应用上述更新规则来逐步调整参数,直到找到一个使代价函数最小化的参数集合。

我们可以发现,学习率控制着每次更新的步长,学习率越大,步长越大,反之也成立。

但是不同的学习率,对我们的影响也是不同的,接下来,我们看一看不同学习率对结果的影响。

不同学习率的影响

我们的最终目的是找到梯度更新公式的收敛部分,当我们设置合适的学习率时,看到的图片如下:

可以看到,在迭代次数到100左右时,函数已经收敛了,这是一个好的结果。但是当我们设置不好的学习率时,就会出现不好的结果。

例如,学习率设置的过大:

很明显,这是一个错误的结果。那是因为,当我们设置的步长过大,反而会错过收敛点,这种情况下,只会越来越错。

当然,也不是学习率越小越好。当我们设置的学习率过小的时候,它的步长就会很小,会迭代好多次才可以找到,其次,也会导致训练的成本和时间增长。

所以设置一个合适的学习率,是一个重要的环节。

最后,我们用Python代码模拟一下这个过程:

import numpy as np
import matplotlib.pyplot as plt

# 设置随机种子以获得可重复的结果
np.random.seed(0)

# 生成随机数据点
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# 定义线性模型
def predict(X, w, b):
    return np.dot(X, w) + b

# 定义均方误差代价函数
def compute_mse(y_pred, y_true):
    return ((y_pred - y_true) ** 2).mean()

# 梯度下降法
def gradient_descent(X, y, w, b, learning_rate, iterations):
    cost_history = []
    for i in range(iterations):
        y_pred = predict(X, w, b)
        cost = compute_mse(y_pred, y)
        cost_history.append(cost)
        # 计算梯度
        dw = (2 / len(X)) * np.dot(X.T, (y_pred - y))
        db = (2 / len(X)) * np.sum(y_pred - y)
        # 更新参数
        w -= learning_rate * dw
        b -= learning_rate * db
    return w, b, cost_history

# 初始化参数
w = np.random.randn()
b = np.random.randn()

# 梯度下降参数
learning_rate = 0.001
iterations = 100

# 执行梯度下降
w, b, cost_history = gradient_descent(X, y, w, b, learning_rate, iterations)

# 绘制代价函数图像
plt.plot(cost_history)
plt.title('Cost Function over Iterations')
plt.xlabel('Iterations')
plt.ylabel('Cost (MSE)')
plt.show()

通过这段代码,我们可以直观地看到不同学习率对模型收敛速度和效果的影响,从而更好地理解学习率这一关键参数的作用。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号