gpt4 book ai didi

machine-learning - 从梯度下降更新规则中获得直觉

转载 作者:行者123 更新时间:2023-11-30 08:35:10 25 4
gpt4 key购买 nike

梯度下降更新规则:

enter image description here

为此规则使用这些值:

x = [10 20 30 40 50 60 70 80 90 100]y = [4 7 8 4 5 6 7 5 3 4]

使用 0.07 的学习率进行两次迭代后,输出 theta 值为

-73.396
-5150.803

三次迭代后 theta 为:

1.9763e+04
1.3833e+06

所以看起来 theta 在第二次迭代后变得更大,这表明学习率太大。

所以我设置:

迭代= 300;阿尔法 = 0.000007;

theta 现在是:

 0.0038504
0.0713561

这些 theta 值是否应该允许我为数据绘制一条直线,如果可以的话怎么做?我刚刚开始尝试理解梯度下降,所以请指出我逻辑中的任何错误。

来源:

x = [10
20
30
40
50
60
70
80
90
100]
y = [4
7
8
4
5
6
7
5
3
4]

m = length(y)

x = [ones(m , 1) , x]

theta = zeros(2, 1);

iterations = 300;
alpha = 0.000007;

for iter = 1:iterations
theta = theta - ((1/m) * ((x * theta) - y)' * x)' * alpha;
theta
end

plot(x, y, 'o');
ylabel('Response Time')
xlabel('Time since 0')

更新:

因此,每个 x 值乘以 theta 的乘积绘制出一条直线:

plot(x(:,2), x*theta, '-')

enter image description here

更新2:

这与线性回归模型有何关系:

enter image description here

模型还输出预测值?

最佳答案

是的,您应该能够画一条直线。在回归中,梯度下降是一种用于最小化线性回归模型的成本(误差)函数的算法。您使用梯度作为行进至成本函数最小值的轨迹,学习率决定您沿着路径行进的速度。走得太快,你可能会超过全局最小值。当达到所需的最小值时,将这些 θ 值代入您的模型以获得估计模型。在一维情况下,这是一条直线。

查看this article ,它很好地介绍了梯度下降。

关于machine-learning - 从梯度下降更新规则中获得直觉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com