采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
rand_i = np.random.randint(len(X_b) 可以每次都取相同的值吗?
感觉应该不可以,因为万一那个值是梯度增大的方向就错了,但是有没有可能的不是每次都增大的?
试了下,发现这样子的话,最后的J(theta, X_b, y)每次随后的结果都变化比较大,应该是乱跳了。
python可以把老师视频里的等高图和theta变化画出来吗?
可以画出来哦。不过需要更多matplotlib的知识。这个课程不涉及更多使用matplotlib的方法,有兴趣的话可以自己研究一下:)
随机梯度法中选择一个样本值来计算出来得梯度有没有什么特殊意义,还是仅仅是一种数学近似? 还有就是有没有可能说,随机梯度向量里我们每个元素都随机,而不是每个元素都用同样的一个样本,这样是否意义也差不多?
可以理解成是一种数学近似,用一个样本计算出的梯度近似样本整体计算出的梯度。后一个问题没看懂。
老师后一个问题加了个图在评论里,回复里发不了图
每次求梯度的时候,都是任取了一个i来计算梯度,其中n+1个元素的i都一样,其中i也乱序会不会有意义?
“任取了一个i”的意思是:公式里的i是固定的。就是随机按照一个样本的数据计算梯度。
哦,明白你的意思了。没有意义,破坏了样本数据。样本数据X每一行表示真实世界的一个样本,随机梯度下降法是每一次随机找X中的一个x计算题都。现在你想让不同的样本的不同的特征组成一个特殊的x'数据算梯度,但是这个数据x'是没有实际意义的。
确实不能新造一个X样本,我是想让梯度的n个元素,每个元素用不同的样本X_b(i)代入,不过想了下,那样的近似效果估计和用同一个X_b(i)差不多,而且计算更麻烦了
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
3.0k 15
1.6k 15
1.5k 14