当我们假设一个w和b后,循环计算每一个 x 所得的值和真实 x 所对应的值相减,然后将每一个差相加求和,得到一个差值之和,就是当前的损失。
损失越小,说明所寻找到的 w 和 b 就越合适,当 Loss 为 0 时,说明此时模型的准确率为 100% 。
事实上,这和高中概率与统计应用题,给你一堆 x,y ,然后求一个 系数w 和 常量b 出来是一样的一样的。只不过在计算机中,由于算力比手算强大太多了,所以我们可以一遍一遍的调整 w 和 b 这两个参数,使 Loss 一直向趋于 0 的方向移动 ,从而使模型的准确率趋于 100% 。
通常,为了使 Loss 始终保持为正 ,也会有如下损失函数:
通过迭代,我们可以逐步的逼近索要寻找的极值。
这里,我们还人为的引入了一个 η 参数,这个参数用于调整步长。步子迈大了可能会越过极值,迈小了有会产生很大的计算量,具体取多大合适,还是要多看看老司机们烫过的坑。
普通的梯度下降法(批梯度下降法,BGD),需要遍历所有的数据样本,在样本量不大的时候还是可以的,毕竟这么干精度起码是很高的。但是如果样本容量巨大,那每次遍历所有样本,必然都会消耗很多时间成本。并且如果我们的损失函数不是一个凸函数误差曲面就会存在多个局部极小值(即局部碗底),那采用这种方法可能会陷入局部最优解中。