然后对两块复杂的地方进行求导:
然后再带入上面的式子中进行整理:
带上前面的加和,并带上负号,规范一下:
对b的求导也是一样的,不过在后面没有乘以x罢了,那么参数更新就是:
到这里是不是发现一个问题,仔细观察w的参数更新过程,对比Linear Regression的参数更新过程,可以看到参数的更新方程是一模一样的。
那为什么在LR中不能直接用均方误差MSE作为损失函数呢?
这里我们假设使用均方误差函数作为损失函数,那么损失函数为:
对w进行求导:
如果对于一个样本,该样本属于类别2,那么y=0,如果更新到一组参数w、b,计算得到fw,b(x)=1,那么此时预测该样本属于类别1,但带入梯度中发现此时梯度已经为0,参数将不再更新。
就像是下面这张图:
均方误差损失函数对于分类问题在距离Loss最小的地方也会很平坦,此时很可能陷入鞍点,无法继续更新,导致最终误差很大。
4.生成模型与判别模型上面在从概率生成模型引入LR的过程中说到,虽然两者形式上是一样的,但其实还是有较大差别的。
根据二者的推导过程我们可以看到,在概率生成模型中,我们通过求解出样本的分布参数作为训练过程,即概率生成模型首先估计样本是个什么样的分布,然后再对这个分布的参数进行估计,换句话说,假设 我们确定了样本所属的分布,那么这个分布里的数据都可以是训练数据,所多出来的数据并不影响最终的分布,相当于生成模型自己“脑补”生成出来了一些额外的数据,这种方式称之为生成模型。
而LR则是通过梯度下降的方式,直接求解出参数,这种方式称之为判别模型,其始终按照真实数据进行训练。
下面通过一个小例子来说明,假设有一组训练数据如下:
数据有两个维度,根据这样一组数据,对测试数据进行预测:
那么利用生成模型和判别模型分别预测的结果是什么呢?
首先看生成模型,利用朴素贝叶斯进行计算: