今天照着公式手写了一边线性回归之后终于懂了梯度下降的几个关键问题,梯度计算,一般是解析方法,
    梯度更新,这一点一定要注意梯度计算结果的维度形状,务必使系数和当前梯度相一致,因为广播机制,会使得系数张量从1d广播成2D的,从而使计算结果错误,

    经典的MSE函数:

    梯度计算大部分是基于经典的batch,sgd,mini-batch
    batch是在整个训练集上进行平均梯度计算,计算结果更有代表性,
    sgd为了追求更快的迭代速度,每次只随机挑选一个训练样本进行梯度计算,此时m为1,可能会出现无法收敛,下降速度反而慢,但是在大数据集上,这比起batch所需的开销来说,还是能够让人接受的。
    mini-batch 是在指定batch 上进行平均梯度计算,而训练批量的抽取是随机的,兼具速度和性能。

    带动量的梯度下降