0- 背景
定义逻辑回归的代价函数时,不能够像线性回归那样,否则代价函数变成一个非函数,难以收敛到全局最优。
1- 线性回归代价函数:
线性回归中的代价函数:
J(θ)=12m∑i=1m(yi−hθ(xi))2
线性回归代价函数的实际意义就是平方误差。而逻辑回归却不是,它的预测函数 hθ(x) 是非线性的。如果类比地使用线性回归的代价函数于逻辑回归,那 J(θ) 很有可能就是非凸函数,即存在很多局部最优解,但不一定是全局最优解。我们希望构造一个凸函数,也就是一个碗型函数做为逻辑回归的代价函数。
2- 逻辑回归代价函数:
按照求最大似然函数的方法,逻辑回归似然函数:
L(θ)=∏i=1mP(yi|xi;θ)=∏i=1m(hθ(xi))yi((1−hθ(xi)))1−yi
其中m表示样本数量,取对数:
l(θ)=logL(θ)=∑i=1m(yiloghθ(xi)+(1−yi)log(1−hθ(xi)))
我们的目标是求最大 l(θ) 时的θ,如上函数是一个上凸函数,可以使用梯度上升来求得最大似然函数值(最大值)。或者上式乘以-1,变成下凸函数,就可以使用梯度下降来求得最小负似然函数值(最小值):
J(θ)=−1ml(θ)
我们把如上的 J(θ) 作为逻辑回归的损失函数。
求最大似然函数参数时,对参数θ求偏导=0,然后求解方程组。考虑到参数数量的不确定,即参数数量很大,此时直接求解方程组的解变的很困难,或者根本就求不出精确的参数。于是,一般都是采用随机梯度下降法,来求解方程组的参数值。
推导过程:
1)梯度下降
θ
的更新过程,走梯度方向的反方向:
其中偏导项的推导如下:
δδθjJ(θ)=−1m∑i=1m(yi1hθ(xi)δδθjhθ(xi)−(1−yi)11−hθ(xi)δδθjhθ(xi))=−1m∑i=1m(yi1g(θTxi)−(1−yi)11−g(θTxi))δδθjg(θTxi)=−1m∑i=1m(yi1g(θTxi)−(1−yi)11−g(θTxi))g(θTxi)(1−g(θTxi))δδθjθTxi=−1m∑i=1m(yi(1−g(θTxi))−(1−yi)g(θTxi))xji=−1m∑i=1m(yi−g(θTxi))xji=1m∑i=1m(hθ(xi)−yi))xji
注意下上面推导的第二部分:
(f(x)g(x))′=g(x)f′(x)−f(x)g′(x)g2(x)(ex)′=ex
那么上述公式中的 δδθjg(θTxi) 推导如下:
δδθjg(θTxi)=−e−θTxi(1+e−θTxi)2δδθj(−1)θTxi=g(θTxi)(1−g(θTxi))δθjθTxi
因此更新过程可以写成:
θj:=θj−α1m∑i=1m(hθ(xi)−yi))xji