请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

不同梯度下降算法与损失函数的关系?

老师,是否可以用损失函数的角度理解不同的梯度下降法。批量梯度下降法,对应的损失函数是包含对整个数据集求和的,所以后面的计算,不管是矩阵运算还是循环,时间复杂度高的根源,其实来自于损失函数里的求和。而随机梯度下降,虽然计算损失函数的代码不变,其实它的损失函数已经变成了一个样本的了,所以时间复杂度度大大下降了。
所以如果这样理解,顺序就是 1.损失函数 --> 2.求梯度 --> 3.复杂度,这个1,损失函数才是影响后续所有数据集的选取,计算复杂度的根源。而损失函数的定义,也就是我们评价一个算法好坏的度量,是人为主观定义的,在计算量/稳定性之间找到一个平衡,这样理解帮助我想通了很多问题,对吗?

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2019-10-11 01:18:46

赞思考。


严格来说,不是的。我们的损失函数没有变,还是那个 J。因为,我们还是在找 J 的最小值。


我们改变的是,每次走一小步,走那一小步的方式。表现在代码中,批量梯度下降法,使用 dJ 函数求每次这一小步的方向;随机梯度下降法,使用dJ_sgd,这是核心区别。


按照你的理解:1.损失函数 --> 2.求梯度 --> 3.复杂度。其实,两种算法的主要差别在 2;两种算法求梯度的方式有着天壤之别,导致了复杂度的巨大不同。


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 lonely_ran #1
    明白了,非常感谢
    回复 有任何疑惑可以回复我~ 2019-10-11 09:11:25
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信