【问题标题】:Gaining intuition from gradient descent update rule从梯度下降更新规则中获得直觉
【发布时间】:2015-10-08 06:40:45
【问题描述】:

梯度下降更新规则:

将这些值用于此规则:

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, '-')

更新 2:

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

因为模型也输出一个预测值?

【问题讨论】:

  • @Roshan Mathews 抱歉!我正在考虑如何根据您的评论修改这个问题,谢谢。
  • @Roshan Mathews 问题已更新
  • 另一个链接,3 页,带有漂亮的小程序和自适应步长的 Barzilai-Borwein 方法:onmyphd.com/?p=gradient.descent

标签: machine-learning linear-regression gradient-descent


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 2016-06-13
    相关资源
    最近更新 更多