到这里我们就可以清楚地理解了概率生成模型与LR之间的联系,但虽然形式一样,但还是有区别的,到后面我们再进一步讨论。
3.LogisticRegression算法推导根据上面的理论,我们希望通过训练数据,找到一组参数w、b,然后能够给定一个未知数据x,通过计算z=wx+b,在通过sigmoid函数,来对x进行正确预测。这里我们为了便于表示,先假设一下σ(z)为函数的形式,即:
到这里完成了机器学习的三步走中的第一步:找出模型的形式a set of model。
那么在学习之前,我们需要找出一个衡量模型好坏的标准,即损失函数,到了第二步goodness of function:
我们希望所有的样本都能被正确分类,即所有样本累积概率最大,类比于概率生成模型,即:
使上面这个式子最大,注意,这里x3为(1-f(x)),是因为上面我们所求的σ(z)=fw,b(x)是样本x属于Class1的概率,假设是二分类的情况,那么x属于Class2的概率为1-f(x)。
然后我们通过求加使得上式最大的一组w、b的参数就结束了,也就是:
那么这个式子具体怎么求呢?同样用到梯度下降,但是上面直接求导不是很容易,要先对上面的式子进行一下转化,令:
然后两边同取对数,并且由于梯度下降是求最小值,那么两边同取负号:
那么问题就变成了:
然而上面的式子还是有点不太直观,根据二分类的特性,label值在属于Class1时取1,在属于Class2时取0,那么:
于是,L'中的每一项我们都可以写成一个通用的形式,成为了:
这就是LR的损失函数,也称之为交叉熵CrossEntropy,不过上面是0~1分布,形式上稍微有些不同,可以看成有两个分布,分别为:
那么根据交叉熵的公式:
就得到了Lr的交叉损失函数。
接下来就是利用梯度下降对损失函数进行求解的过程了,也就是第三步:find the best function。
这个损失函数稍微有点复杂,涉及到链式求导法则,我们一块一块来求导数: