在线性回归中我们使用MSE作为代价函数,这依然可以继续在逻辑回归模型中使用,但是如果我们直接将这里的h带入MSE时,会得到一个非凸函数,这也意味着我们在梯度下降中可能找到的不是全局最小值,所以在逻辑回归中我们将使用新的代价函数。
在逻辑回归中,通常使用
J(θ)=m1i=1∑mCost(hθ(x(i),y(i)))
作为逻辑函数,其中Cost函数为
Cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x)),y=1,y=0
同时我们也可以将Cost进一步简化,去掉分段定义让J(θ)变成
J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
此时我们就可以使用梯度下降算法求使得代价函数取最小值的参数,同样我们需要求解J(θ)的梯度∇θJ,首先我们将hθ(x(i))带入J(θ)进行化简,有
J(θ)=−m1i=1∑m[y(i)log(1+e−θTx(i)1)+(1−y(i))log(1−1+eθTx(i)1)]=m1(y(i)log(1+e−θTx(i))+(1−y(i))log(1+eθTx(i)))
故
∂θj∂J(θ)=∂θj∂m1(y(i)log(1+e−θTx(i))+(1−y(i))log(1+eθTx(i)))=m1i=1∑m(y(i)1+e−θTx(i)−xj(i)e−θTx(i)+(1−y(i))1+eθTx(i)xj(i)eθTx(i))=m1i=1∑m(y(i)1+eθTx(i)−xj(i)+(1−y(i))1+eθTx(i)xj(i)eθTx(i))=m1i=1∑m(1+eθTx(i)−y(i)xj(i)+xj(i)eθTx(i)−y(i)xj(i)eθTx(i))=m1i=1∑m(1+e−θTx(i)1−y(i))xj(i)=m1i=1∑m(hθ(x(i))−y(i))xj(i)