附录:迭代公式向量化
θ相关的迭代公式为:
如果按照此公式操作的话,每计算一个θ需要循环m次。为此,我们需要将迭代公式进行向量化。
首先我们将样本矩阵表示如下:
将要求的θ也表示成矩阵的形式:
将x·θ的乘积记为A,有:
将hθ(x)−y记为E:
由上面的式子可以看出,g(A)的参数是一个m*1的矩阵,或者说是一个列向量。如果我们设计函数g的时候,支持传入一个列向量,并返回一个列向量,则hθ(x)−y可以一次计算得到结果。
附录2:批量梯度下降BGD与随机梯度SGD下降
对于迭代公式
最大的好处就是形式简单明了,直接将样本矩阵与残差矩阵带入迭代即可。而且这种方式是将所有的训练样本代入,最终所求得的解也是全局最优解,求解出来的参数将使损失函数最小。如果将所有样本矩阵带入进行计算,这就是所谓的批量梯度下降(BGD)。
但在实际应用场景中,最大的问题就是样本矩阵大到放不进内存,导致进行一轮迭代需要的运算时间非常长,这个时候,批量梯度下降就不是那么好用了。这个时候,我们可以采用考虑随机梯度下降(SGD)。
BGD是一次训练带入所有样本,SGD则是每来一次样本进行一次计算:
i表示是第i个样本,j表示样本第j个维度。
SGD是通过每个样本来迭代更新。如果样本的数量很多,有可能才迭代了一小部分样本,就已经得到了θ的解。所以SGD的收敛速度可能比BGD要快,而且运算量小。但是SGD的问题是每次迭代并不是全局最优解的方向,尤其是遇到噪声数据,影响会比较大。有的时候SGD在最优解附近会存在比较明显的锯齿震荡现象,即损失函数的值会在最优解附近上下震荡一段时间才最终收敛。
---------------------------------------------------------------------------------------------------------
连载。。。。
logistic模型原理与推导过程分析(1)_LiBiGor的博客-CSDN博客
https://blog.csdn.net/qq_39237205/article/details/121031296
logistic模型原理与推导过程分析(2)_LiBiGor的博客-CSDN博客
https://blog.csdn.net/qq_39237205/article/details/121031899
logistic模型原理与推导过程分析(2)_LiBiGor的博客-CSDN博客