知识准备
海维塞得阶跃函数:sigmoid =
z = w0 + w1x1 + w2x2 + … + wnxn
可以看到阶跃函数是x的复合函数,故可以表示为 h(x) = sigmoid
损失函数:loss =
其中ui和yi分别是样本的估计值和实际值。
由于是二分类,所以y的取值有0,1。
满足n重伯努利分布:
P{y=1|x} = h(x)
P{y=0|x} = 1-h(x)
P{y|x} = h(x)y(1-h(x))1-y
最大似然函数:L =
梯度下降法: w :=w +
推导过程
损失函数loss对w求极值,但是可以很明显的看出来h(x)是解约函数,非线性。
所以函数曲线很可能是个非凸函数,结果并非全局最优值。
所以下面看似然法:
将似然函数两边取对数,得出如下结果:
lnL =
这个东西就是线性的了,为什么呢?不用我解释了吧。
下面就是求导呗:
代码实现
公式都实现了,代码实现就很容易了,如果是用python了,调用个numpy,很容易迭代求解。
想要实现代码和测试数据可留邮箱。