logistic regression
原理
前言
逻辑回归与分类同线性回归与分类有很强的关系;关于逻辑回归算法本身的学习应当参考线性回所指出的一般性思路,即先找两个算法的共同点;其后就逻辑回归算法设计的独到之处进行辨明,即学习该算法相较于其他算法的不同点;从中领略算法设计的思想。
建模
逻辑回归的建模是明确且简单的,假设具有 ( x 0 ( 0 ) , x 1 ( 0 ) , . . . ) , ( x 0 ( 1 ) , x 1 ( 1 ) , . . . ) , . . . (x_0^{(0)},x_1^{(0)},...),(x_0^{(1)},x_1^{(1)},...),... (x0(0),x1(0),...),(x0(1),x1(1),...),...这样的一组特征向量,或者特征矩阵;具有 ( y 0 , y 1 , . . . ) (y_0,y_1,...) (y0,y1,...)这样的一组标签,那么构建起标签同特征向量的关系为
Y = 1 1 + e − h θ ( X ) Y=\frac{1}{1+e^{-h_{\theta}(X)}} Y=1+e−hθ(X)1
这里 h θ ( X ) h_{\theta}(X) hθ(X)就是线性回归的模型,具体可参考链接。
这也就明确了,logistic regression 实际上就是需要去确定一组合适的 θ \theta θ使得上述计算出的结果同真实标签的差异最小化;因此接下来就可以基于上述模型,定义出损失函数:
L ( θ ) = − ∑ i = 1 n y i l o g ( p ( x i , θ ) ) + ( 1 − y i ) l o g ( 1 − p ( x i , θ ) ) L(\theta) =- \sum_{i=1}^{n}y_i log(p(x_i,\theta))+(1-y_i)log(1-p(x_i,\theta)) L(θ)=−i=1∑nyilog(p(xi,θ))+(1−yi)log(1−p(xi,θ))
这里的 p ( x , θ ) p(x,\theta) p(x,θ)就是上述的模型函数。现在先不考虑为什么不是像线性回归那样的绝对值差,先就认为要优化的函数就是上述的 L L L,值得说一句的是这里的 L L L就是深度学习里常见的交叉熵函数,那么一般来说,我们通常采用基于梯度下降的方法来优化L,下面进行推导 ∂ L ∂ θ \frac{\partial L}{\partial \theta} ∂θ∂L
∂ L ∂ θ i = ∑ i = 1 n ( − y i 1 p ( x i , θ ) ∂ p ( x i , θ ) ∂ θ i − (