线性模型(五)之逻辑斯蒂回归
逻辑斯蒂回归(logistic regression,LR)名字中包含“回归”二字,乍一听,还以为是一种回归算法,实则不然,逻辑斯蒂回归是不折不扣的分类算法。
感知机算法是最直接的将线性回归用于分类的算法,其直接在线性回归的模型上加上了符号函数,变成了二分类模型。类似,逻辑斯蒂回归算法的思想也是将线性回归模型加以改造,进而用于分类。
个人理解,逻辑斯蒂回归改造线性回归模型的思路是将线性回归产生的实值输出转换为取值在 0 − 1 0-1 0−1的概率值,并以此概率表示输入样本 x \mathbf{x} x的类别为正的概率。在逻辑斯蒂回归中,用sigmoid函数将线性回归的实值输出转换到 0 − 1 0-1 0−1的概率表示,即
f ( x ) = 1 1 + e − ( w T x + b ) f(\mathbf{x}) = \frac{1}{1 + e ^{-(\mathbf{w}^T\mathbf{x} + b)}} f(x)=1+e−(wTx+b)1
其中,sigmoid函数的形式为 f ( z ) = 1 1 + e − z f(z) = \frac{1}{1+e^{-z}} f(z)=1+e−z1, f ( x ) f(\mathbf{x}) f(x)表示样本 x \mathbf{x} x为正例的概率大小,令 p ( x ) = f ( x ) p(\mathbf{x}) = f(\mathbf{x}) p(x)=f(x)。
对于逻辑斯蒂回归还有另外一种解释,即逻辑斯蒂回归是利用线性回归拟合对数几率。几率表示样本 x \mathbf{x} x为正例的概率和为负例的概率的比值,即 p ( x ) 1 − p ( x ) \frac{p(\mathbf{x})}{1 - p(\mathbf{x})} 1−p(x)p(x),再取对数即可得到对数几率,然后用线性回归拟合该对数几率,即
ln p ( x ) 1 − p ( x ) = w T x + b \ln \frac{p(\mathbf{x})}{1-p(\mathbf{x})} = \mathbf{w}^T\mathbf{x} + b ln1−p(x)p(x)=wTx+b
变换后,同样可以得到
p ( x ) = 1 1 + e − ( w T x + b ) p(\mathbf{x}) = \frac{1}{1 + e ^{-(\mathbf{w}^T\mathbf{x} + b)}} p(x)=1+e−(wTx+b)1
可见,这两种解释都是可以推导出逻辑斯蒂回归模型的定义的。
有了模型的定义后,按照前面几节的思路,现在就需要想办法如何求解模型的参数 w \mathbf{w} w和 b b b,欲求解参数,首先需要将其转换为最优化问题,然后对优化问题求解。逻辑斯蒂回归算法采用的最大化对数似然作为最优化策略,可以认为损失函数是对数似然函数,只不过是要取最大值。
对数似然最大化,其实就是使得对于所有样本的预测都尽可能对,且概率值尽可能大,对于正例而言,是使得 p ( x ) p(\mathbf{x}) p(x)尽可能大,而对于负例而言,则是使得 1 − p ( x ) 1- p(\mathbf{x}) 1−p(x)尽可能大。加上对数,是为了使得推导时方便,将乘法变成了加法,对于最终的结果无影响。对数似然的公式如下:
L ( w , b ) = ln ∏ i = i N p ( y i ∣ x i ) = ∑ i = 1 N ln p ( y i ∣ x i ) = ∑ i ∈ P ln p ( y i = 1 ∣ x i ) + ∑ i ∈ N ln p ( y i = 0 ∣ x i ) = ∑ i = 1 N ln ( [ p ( y i = 1 ∣ x i ) ] y i [ 1 − p ( y i = 1 ∣ x i ) ] 1 − y i ) \begin{aligned} L(\mathbf{w},b) &= \ln \prod_{i=i}^{N} p(y_i|\mathbf{x}_i) \\ &= \sum_{i=1}^{N} \ln p(y_i|\mathbf{x}_i) \\ &= \sum_{i \in P} \ln p(y_i = 1|\mathbf{x}_i) + \sum_{i \in N} \ln p(y_i = 0|\mathbf{x}_i)\\ &= \sum_{i=1}^{N} \ln ([p(y_i = 1|\mathbf{x}_i)]^{y_i} [ 1- p(y_i = 1|\mathbf{x}_i)]^{1 - y_i}) \end{aligned} L(w,b)=lni=i∏Np(yi∣xi)=i=1∑Nlnp(yi∣xi)=i∈P∑lnp(yi=1∣xi)+i∈N∑lnp(yi=0∣xi)=i=1∑Nln([p(yi=1∣xi)]yi[1−p(yi=1∣xi)]1−yi)
其中, p ( y i = 1 ∣ x i ) p(y_i = 1|\mathbf{x}_i) p(yi=1∣xi)即我们的分类函数, p ( y i = 1 ∣ x i ) = 1 1 + e − ( w T x + b ) p(y_i = 1|\mathbf{x}_i) = \frac{1}{1 + e^{-(\mathbf{w}^T\mathbf{x} +b)}} p(yi=1∣xi)=1+e−(wTx+b)1,同样,为了简便,把参数 b b b吸收进参数 w \mathbf{w} w中, w = { b , w 1 , . . . , w d } \mathbf{w} = \{b, w_1,...,w_d\} w={b,w1,...,wd}。将其带入前面的对数似然公式中,可以得到:
L ( w , b ) = ∑ i = 1 N ln ( [ p ( y i = 1 ∣ x i ) ] y i [ 1 − p ( y i = 1 ∣ x i ) ] 1 − y i ) = ∑ i = 1 N ln ( [ 1 1 + e − w T x ] y i [ 1 − 1 1 + e − w T x ] 1 − y i ) = ∑ i = 1 N ln ( [ 1 1 + e − w T x ] y i [ e − w T x 1 + e − w T x ] 1 − y i ) = ∑ i = 1 N − y i ln ( 1 + e − w T x ) + ( 1 − y i ) [ − w T x − ln ( 1 + e − w T x ) ] = ∑ i = 1 N y i w T x − w T x − ln ( 1 + e − w T x ) = ∑ i = 1 N y i w T x − [ ln e w T x + ln ( 1 + e − w T x ) ] = ∑ i = 1 N y i w T x − [ ln ( 1 + e w T x ) ] \begin{aligned} L(\mathbf{w},b) &= \sum_{i=1}^{N} \ln ([p(y_i = 1|\mathbf{x}_i)]^{y_i} [ 1- p(y_i = 1|\mathbf{x}_i)]^{1 - y_i}) \\ &= \sum_{i=1}^{N} \ln ([\frac{1}{1+e^{-\mathbf{w}^T\mathbf{x}}}]^{y_i} [ 1- \frac{1}{1+e^{-\mathbf{w}^T\mathbf{x}}}]^{1 - y_i}) \\ &= \sum_{i=1}^{N} \ln ([\frac{1}{1+e^{-\mathbf{w}^T\mathbf{x}}}]^{y_i} [\frac{e^{-\mathbf{w}^T\mathbf{x}}}{1+e^{-\mathbf{w}^T\mathbf{x}}}]^{1 - y_i}) \\ &= \sum_{i=1}^{N} -y_i \ln (1+e^{-\mathbf{w}^T\mathbf{x}}) + (1-y_i)[-\mathbf{w}^T\mathbf{x} - \ln (1 + e^{-\mathbf{w}^T\mathbf{x}})]\\ &= \sum_{i=1}^{N} y_i\mathbf{w}^T\mathbf{x} - \mathbf{w}^T\mathbf{x} - \ln (1 + e^{-\mathbf{w}^T\mathbf{x}})\\ &= \sum_{i=1}^{N} y_i\mathbf{w}^T\mathbf{x} - [\ln e^{\mathbf{w}^T\mathbf{x}} + \ln (1 + e^{-\mathbf{w}^T\mathbf{x}})]\\ &= \sum_{i=1}^{N} y_i\mathbf{w}^T\mathbf{x} - [\ln (1 + e^{\mathbf{w}^T\mathbf{x}})]\\ \end{aligned} \\ L(w,b)=i=1∑Nln([p(yi=1∣xi)]yi[1−p(yi=1∣xi)]1−yi)=i=1∑Nln([1+e−wTx1]yi[1−1+e−wTx1]1−yi)=i=1∑Nln([1+e−wTx1]yi[1+e−wTxe−wTx]1−yi)=i=1∑N−yiln(1+e−wTx)+(1−yi)[−wTx−ln(1+e−wTx)]=i=1∑NyiwTx−wTx−ln(1+e−wTx)=i=1∑NyiwTx−[lnewTx+ln(1+e−wTx)]=i=1∑NyiwTx−[ln(1+ewTx)]
该式子对于 w \mathbf{w} w而言,连续可导,可以利用梯度下降法求解。
最后将逻辑斯蒂回归算法整理如下:
输入: D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } D = \{(\mathbf{x}_1,y_1),(\mathbf{x}_2,y_2), ..., (\mathbf{x}_N,y_N)\} D={(x1,y1),(x2,y2),...,(xN,yN)}
输出: f ( x ) = 1 1 + e − w T x f(\mathbf{x}) = \frac{1}{1+e^{-\mathbf{w}^{T}\mathbf{x}}} f(x)=1+e−wTx1
目标: arg min w L ( w ) = arg min w ∑ i = 1 N y i w T x − [ ln ( 1 + e w T x ) ] {\arg \min}_{\mathbf{w}} L(\mathbf{w}) = {\arg \min}_{\mathbf{w}} \sum_{i=1}^{N} y_i\mathbf{w}^T\mathbf{x} - [\ln (1 + e^{\mathbf{w}^T\mathbf{x}})] argminwL(w)=argminw∑i=1NyiwTx−[ln(1+ewTx)]
好了,至此,逻辑斯蒂回归就到此为止了。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
