1、逻辑回归模型
关于逻辑回归,可以看做是感知机的加强版本,感知机是线性的分类器,逻辑回归在感知机的基础上加上了一个sigmoid函数,将其变成了一个非线性的分类器,其效果要优于感知机。逻辑回归公式如下
[ f(x) = frac {1} {1 + exp -(wx+b)} ag{1}
]
其中(w)和(x)均为向量。(f(x))可以理解为范围在[0,1]的概率值,若(f(x) > 0.5)那么可以将这个类归为正类,若(f(x) < 0.5)那么,将这个类归为负类。
2、逻辑回归策略
那么逻辑回归的损失函数是什么呢?逻辑回归公式如下
[ prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} ag{2}
]
其中(f(x_{i}))为预测值,(y_{i})为真实值,当真实值为(y_{i} = 1)时,我们就最大化(f(x_{i})),即我们希望这个输出值变大,当真实值为(y_{i} = 0)时,我们希望最大化(1 - f(x_{i})),即我们希望将(f(x_{i}))的输出值尽可能变小。
3、逻辑回归算法
我们的目标是最大化式子(2),那么我们可以对他进行转换,最小化式子(2)的负数,并取(log)
[ L(w,b) = - log prod_{i=1}^{n} f(x_{i}) ^ {y_{i}} (1 - f(x_{i}))^{1-y_{i}} \
= - log sumlimits_{i=1}^{n} y_{i} f(x_{i}) + (1-y_{i})(1-f(x_{i})) ag{3}
]
首先给出sigmoid的求导公式
[ frac {partial sigmoid (x)}{partial x} = sigmoid (x) * (1- sigmoid (x)) ag{4}
]
接下来,我们利用优化公式对(L(w,b))进行求导,首先对(w)进行求导
[ frac {partial L(w,b)}{partial w} = sumlimits_{i=1}^{n} y_{i} * frac {1}{f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} - (1-y_{i}) * frac {1} {1-f(x_{i})} * f(x_{i}) * (1 - f(x_{i})) * x_{i} \
= sumlimits_{i=1}^{n} x_{i}y_{i}(1-f(x_{i})) - x_{i}(1-y_{i})*f(x_{i}) \
= sumlimits_{i=1}^{n} x_{i}y_{i} - x_{i}y_{i}f(x_{i}) - x_{i}f(x_{i}) + x_{i}y_{i}f(x_{i}) \
= sumlimits_{i=1}^{n} (y_{i} - f(x_{i})) * x_{i} ag{5}
]
接下来对(b)求导,公式基本上和(5)相类似,这里,我们直接给出结果。
[ frac {partial L(w,b)}{partial b} = sumlimits_{i=1}^{n} y_{i} - f(x_{i}) ag{6}
]
最后,我们可以进行参数更新。
[ w^{*} = w - alpha frac {partial L(w,b)}{partial w} \
b^{*} = b - alpha frac {partial L(w,b)}{partial b}
]