逻辑回归损失函数的来由
损失函数为,其中h(x(i))h( x^{(i)})h(x(i))是第i个样本标签为1的概率
J(ω)=−1M∑i=1M[y(i)log(h(x(i)))+(1−y(i))log(1−h(x(i)))]
J(\omega)=-\frac{1}{M} \sum_{i=1}^M[ y^{(i)} log ( h( x^{(i)}))+(1- y^{(i)})log(1- h( x^{(i)}))]
J(ω)=−M1i=1∑M[y(i)log(h(x(i)))+(1−y(i))log(1−h(x(i)))]
那么其实可以看出,损失函数就是对数似然函数的和。
在极大似然法中,使用对数似然函数作为目标函数来求参数,在逻辑回归中也是差不多,使用对数似然函数的和作为目标函数来求参数。
那么为什么要求“对数”呢?主要是在极大似然法中,为了计算求导方便。取对数可以把好几个概率的相乘变为几个概率的相加,和的导数比积的导数好求多了,而且求对数之后不改变极值点,所以习惯上都取对数。后来就把这个习惯延续到逻辑回归中了。
逻辑函数的来由
逻辑函数的形式如下,其中xjx_jxj是第j个样本的第j维:
h(x)=11+e−ωx
h(x)=\frac{ 1}{1+e^{-\omega x} }
h(x)=1+e−ωx1
我们需要线性连续值ωTx\omega^T xωTx转化为离散值0和1。如果用下面这种简单粗暴的方法:
f(x)={1,if   ωTx≥00,if   ωTx<0
\begin{aligned}
f(x)=\left\{
\begin{array}{lr}
1,if \,\,\,\omega^T x\geq0 \\
0, if \,\,\, \omega^T x< 0
\end{array}
\right.
\end{aligned}
f(x)={1,ifωTx≥00,ifωTx<0
上面这个函数不可导,对于求解参数来说太不友好了。因此才有了逻辑函数的形式。它近似于上面这个函数,又可以求导。但是逻辑函数得到的值还不是离散值0和1,而是样本为1的概率。那么逻辑函数的形式是怎么把线性连续值ωTx\omega^T xωTx转化为概率呢?
P=P(y=1∣x)=11+e−ωx=eωxeωx+1
\begin{aligned}
P=P(y=1|x)=\frac{ 1}{1+e^{-\omega x} } = \frac{e^{\omega x} }{e^{\omega x}+1 } \\
\end{aligned}
P=P(y=1∣x)=1+e−ωx1=eωx+1eωx
化简为:
P(eωx+1)=eωxP=eωx(1−P)P1−P=eωxlnP1−P=ωx
\begin{aligned}
P(e^{\omega x}+1 )=e^{\omega x} \\
P=e^{\omega x}(1-P) \\
\frac{P}{1-P}=e^{\omega x} \\
ln \frac{P}{1-P}=\omega x
\end{aligned}
P(eωx+1)=eωxP=eωx(1−P)1−PP=eωxln1−PP=ωx
所以,其实逻辑函数令ωTx\omega^T xωTx等于样本为1的几率的对数,即lnP1−Pln\frac{P}{1-P}ln1−PP,然后由此对数解出样本为1的概率PPP,求解的公式即为逻辑函数。
梯度下降求解
J(ω)J(\omega)J(ω)对ωj\omega_jωj求导得:
dJ(ω)dωj=−1M∑i=1M[y(i)(1−h(x(i)))⋅h(x(i))⋅xj(i)h(x(i))−(1−h(x(i)))⋅h(x(i))⋅xj(i)1−h(x(i))+y(i)(1−h(x(i)))⋅h(x(i))⋅xj(i)1−h(x(i))]=−1M∑i=1M[(y(i)−h(x(i)))xj(i)]
\begin{aligned}
\frac{dJ(\omega) }{d \omega_j }&=-\frac{1}{M} \sum_{i=1}^M [ \frac{y^{(i)}(1-h(x^{(i)})) \cdot h(x^{(i)})\cdot x^{(i)}_j}{ h(x^{(i)})} - \frac{(1-h(x^{(i)})) \cdot h(x^{(i)})\cdot x^{(i)}_j}{1-h(x^{(i)}) } + \frac{y^{(i)}(1-h(x^{(i)})) \cdot h(x^{(i)})\cdot x^{(i)}_j}{1-h(x^{(i)})} ] \\
& =-\frac{1}{M} \sum_{i=1}^M[ (y^{(i)}- h(x^{(i)}) ) x^{(i)}_j ]
\end{aligned}
dωjdJ(ω)=−M1i=1∑M[h(x(i))y(i)(1−h(x(i)))⋅h(x(i))⋅xj(i)−1−h(x(i))(1−h(x(i)))⋅h(x(i))⋅xj(i)+1−h(x(i))y(i)(1−h(x(i)))⋅h(x(i))⋅xj(i)]=−M1i=1∑M[(y(i)−h(x(i)))xj(i)]
补充:逻辑函数求导公式
对于逻辑函数,其中xjx_jxj是第j个样本的第j维:
h(x)=11+e−ωx
h(x)=\frac{ 1}{1+e^{-\omega x} }
h(x)=1+e−ωx1
对ωj\omega_jωj求导得:
dh(x)dωj=−1⋅1(1+e−ωx)2⋅e−ωx⋅(−xj)=−ωx1+e−ωx⋅11+e−ωx⋅xj=(1−h(x))⋅h(x)⋅xj
\begin{aligned}
\frac{dh(x) }{d \omega_j }&=-1\cdot \frac{1}{(1+e^{-\omega x})^2}\cdot e^{-\omega x}\cdot (-x_j) \\
& =\frac{-\omega x}{1+e^{-\omega x}} \cdot \frac{ 1}{1+e^{-\omega x} }\cdot x_j \\
& =(1-h(x)) \cdot h(x)\cdot x_j
\end{aligned}
dωjdh(x)=−1⋅(1+e−ωx)21⋅e−ωx⋅(−xj)=1+e−ωx−ωx⋅1+e−ωx1⋅xj=(1−h(x))⋅h(x)⋅xj