线性回归的从零开始实现 讨论区


#69

放在数学里吧


#70

老师,请问下,求得的w和b是不是最终收敛于true_w,和true_b,如果初始化时给与不同的w和b,这对结果有没有影响,是否会出现与true_w, true_b成比例的情况?如何进行证明?谢谢!


#71

exit()好像


#72

如果是凸优化,梯度下降可以收敛,随机梯度下降需要decay学习率。详见第6课视频


#74

李沐老师,类似您关于backward原理的上述表达,能不能写在API文档中,或者在代码的注释部分说明一下,因为很多这种隐形处理我们可能并不知道,有时候看源码也不一定能找到答案。这对于理解使用MXNET我觉得是一种障碍。


#75

现在的版本应该更清晰了:
https://zh.gluon.ai/chapter_supervised-learning/shallow-model.html
https://zh.gluon.ai/chapter_supervised-learning/linear-regression-scratch.html


#76

各位大牛,有一个地方不懂啊!
with autograd.record():
l = loss(net(X, w, b), y)
l.backward()
sgd([w, b], lr, batch_size)

原文中l.backward()是对损失函数求导,然后下一步sgd([w, b], lr, batch_size),优化算法,也就是梯度下降,那l.backward()这一步求导就是要得出[w, b]得值嘛???


#77

不是,只是求梯度的值(w.grad, b.grad),还没更新w和b的值


#78

改成:
z.backward(retain_graph=True)
y.backward()


#79

求梯度啊,变量w, b 也相当于是一个类吧,backward函数就是填充参数w,b(类)里的grad


#81

感谢沐神带我进入深度学习的大门


#82

引用 我们可以通过调用 backward 函数自动求梯度。需要注意的是,如果 y 不是一个标量,MXNet 将默认先对 y 中元素求和得到新的变量,再求该变量有关 x 的梯度。


#83

我在实践3.3章线性回归的glnou实现时,发现训练结果始终不能逼近真实值;及时增大学习率到0.05,把num_epochs 增大到30,甚至300都没用;这是什么原因?


#84

/home/cadden/.conda/envs/gluon/lib/python3.6/site-packages/jedi/_compatibility.py:6: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module’s documentation for alternative uses
import imp, 老师这个错误咱们如何解决呢


#85

有个疑惑,为什么训练模型那里即使使用mini-batch sgd,每一次迭代周期还是要遍历所有样本?既然都要遍历所有样本,小批量和随机的意义在哪?


#86

小批量的意义在于可以增加迭代次数,例如,1000 个样本分成100组每组10个,那么对这100个组每组计算组内的损失函数并迭代1次,就进行了100次迭代;如果不分组,那就是对这1000个样本计算了平均的损失函数,就只迭代了1次。这种增加迭代次数的方式可以令初始收敛速度加快。

个人认为随机的意义是为了消除小批量的影响,小批量下降的一个缺点是部分分组的特征并非是整体的特征,所以反复随机分组就是为了消除这些因为分组产生的特征。


#87

可以使用

loss.backward??


#88

当我将噪声的值从0.03提高到1时,损失函数会提高到0.5。而且奖不下去,这里是什么原因有没有大神可以解释下


#89

但是这个时候w和b值已经接近预设值


#90

1.公式来源: 来自于最开始的假设,即:房屋的价格只跟X1(房屋面积)和X2(房屋年龄),并且呈线性相关(这里的线性相关和我学到的数学知识有一点差别,我学到的是 y = ax + b,这种,叫做线性相关,只有一个变量x,而这里有两个变量X1,X2)。 4.2是这个线性公式的常数项, 类似y = ax + b公式中的b。noise是这个模型计算中,数值计算误差的近似,数值计算误差来自于数值计算位数的省略和四舍五入(我推测是这样,可能误差来自其它方面)

  1. true_w = [2, -3.4],true_b = 4.2 是为了检验模型预测的准确性而给出的真实值。 你的这个疑问需要回到做这个预测模型的意义: 是为了能在给出某个新的X1(房屋面积),X2(房屋年龄)时,可以成功预测房屋的价格。具体栗子: 你现在要去买房,觉得新楼盘的地段都不太好,所以多方打听,看上了一套120平米,住了10年的别人出售的房子。 房子觉得不错,就到了跟房主谈价格的时候了,那这个时候房价定多少合适呢??? 这就回到这个模型,你知道房屋的价格只跟房屋面积和年龄呈线性关系(现实中影响价格的因素更多,例如:交通、学区、层高、向阳与否等等,这里为了简化而只假定影响房子价格的只有面积和年龄),那就可以把120和10输进这个模型,这样就可以得到你看中的房子的市场价格,如果房主也同意这个计算方式是合理的、价格也可以接受,那你就可以开开心心的买下这套房子了。