逻辑回归与极大似然估计

2018-09-04  本文已影响0人  葛城巧

寄语:争取每天都写一些深度学习的笔记,学有所获。

逻辑回归定义

h_{\theta}(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}}

由于h_{\theta}(x)为非凸函数,存在很多局部最小值,用常规的MSE可能难以求解全局最小值,因此使用极大似然估计来求解代价函数,从而求解梯度。

极大似然估计求梯度

设在某条件下,得到y_i=1的概率为:
P(y_i=1|x_i;\theta)=h_{\theta}(x_i)

则得到y_i=0的概率为:
P(y_i=0|x_i;\theta)=1-h_{\theta}(x_i)

合并,得:
P(y_i|x_i;\theta)=h_{\theta}(x_i)^{y_i}(1-h_{\theta}(x_i))^{1-y_i}

以上是对于单个样本的表达,对于所有的N个样本,由极大似然估计有:
L(\theta)=P(Y|X;\theta)=\prod_{i=1}^NP(y_i|x_i;\theta)=\prod_{i=1}^Nh_{\theta}(x_i)^{y_i}(1-h_{\theta}(x_i))^{1-y_i}

这种累乘的形式比较难算,一般尿性都是取对数:
l(\theta)=lnL(\theta)=\sum_{i=1}^N(y_ilnh_{\theta}(x_i)+(1-y_i)ln(1-h_{\theta}(x_i)))

由于极大似然估计是要使l(\theta)最大,而作为损失函数来说,要求损失最小,所以给上式加个负号即可,即:
J(\theta)=-l(\theta)

接着当然是求梯度:
\frac{\partial{J(\theta)}}{\partial{\theta_j}}=-\frac{\partial\sum_{i=1}^N(y_ilnh_{\theta}(x_i)+(1-y_i)ln(1-h_{\theta}(x_i)))}{\partial\theta_j}

=-\sum_{i=1}^N[y_i\frac{1}{h_{\theta}(x_i)}-(1-y_i)\frac{1}{1-h_{\theta}(x_i)}]\frac{\partial{h_{\theta}(x_i)}}{\partial{\theta_j}}

注意到:
\frac{\partial{h_{\theta}(x_i)}}{\partial{\theta_j}}=\frac{\partial{g(\theta^Tx_i)}}{\partial{\theta_j}}=\frac{\partial{g(\theta^Tx_i)}}{\partial{\theta^Tx_i}}\frac{\partial{\theta^Tx_i}}{\partial\theta_j}

由sigmoid函数的性质有:
\frac{\partial{g(\theta^Tx_i)}}{\partial{\theta^Tx_i}}=g(\theta^Tx_i)(1-g(\theta^Tx_i))

故:
\frac{\partial{h_{\theta}(x_i)}}{\partial{\theta_j}}=g(\theta^Tx_i)(1-g(\theta^Tx_i))\frac{\partial{\theta^Tx_i}}{\partial\theta_j}=g(\theta^Tx_i)(1-g(\theta^Tx_i))x_i^j

因此:
\frac{\partial{J(\theta)}}{\partial{\theta_j}}=-\sum_{i=1}^N[y_i\frac{1}{h_{\theta}(x_i)}-(1-y_i)\frac{1}{1-h_{\theta}(x_i)}]g(\theta^Tx_i)(1-g(\theta^Tx_i))x_i^j

=-\sum_{i=1}^N[y_i\frac{1}{h_{\theta}(x_i)}-(1-y_i)\frac{1}{1-h_{\theta}(x_i)}]h_{\theta}(x_i)(1-h_{\theta}(x_i))x_i^j

=-\sum_{i=1}^N[y_i(1-h_{\theta}(x_i))-(1-y_i)h_{\theta}(x_i)]x_i^j

得到:
\frac{\partial{J(\theta)}}{\partial{\theta_j}}=-\sum_{i=1}^N(y_i-h_{\theta}(x_i))x_i^j=\sum_{i=1}^N(h_{\theta}(x_i)-y_i)x_i^j

最后由梯度下降法更新权重即可:
\theta^+_j=\theta_j-\eta\frac{\partial{J(\theta)}}{\partial{\theta_j}}=\theta_j-\eta\sum_{i=1}^N(h_{\theta}(x_i)-y_i)x_i^j

其中\eta表示学习率,h_{\theta}(x_i)表示预测值,y_i表示实际值。

至此,过程结束。

上一篇 下一篇

猜你喜欢

热点阅读