同步于音尘杂记
前面在浏览sklearn中关于Logistic Regression部分,看到关于带正则项的LR目标损失函数的定义形式的时候,对具体表达式有点困惑,后查阅资料,将思路整理如下。
1. sklearn文档中的LR损失函数
先看sklearn对于LR目标损失函数(带L2)的定义:
min w , c 1 2 w T w + C ∑ i = 1 n log ( exp ( − y i ( X i T w + c ) ) + 1 ) \min_{w, c} \frac{1}{2}w^T w + C \sum_{i=1}^n \log(\exp(- y_i (X_i^T w + c)) + 1) w,cmin21wTw+Ci=1∑nlog(exp(−yi(XiTw+c))+1)
看到这个表达形式,其实是有两个疑问:
-
logistic loss的表达形式
-
正则项的惩罚系数
对于第二个问题,其实比较容易解释。通常我们在最小化结构风险时,会给我们的惩罚项乘上一个惩罚系数λ(通常1 < λ < 0),
min w , λ ∑ i = 1 n l o s s ( y , y i ) + λ w T w \min_{w, λ} \sum_{i=1}^nloss(y, y_i) + λw^T w w,λmini=1∑nloss(y,yi)+λwTw
一般,为方便处理,做一个技巧性地处理,对多项式乘上一个正数 1/2λ, 得到:
min w , λ 1 2 λ ∑ i = 1 n l o s s ( y , y i ) + 1 2 w T w \min_{w, λ} \frac{1}{2λ}\sum_{i=1}^nloss(y, y_i) + \frac{1}{2}w^T w w,λmin2λ1i=1∑nloss(y,yi)+21wTw
令C = 1/2λ即可。
但是对于第一个形式,当时比较困惑;特意翻看了一下我以前记录的关于LR以及LR损失函数的一些笔记。
2. LR损失函数
为了方便说明笔者当时的疑惑所在,便将当时脑海里存在的logistic loss函数形式 和 sklearn中LR损失函数的推导方法分别记为旧思路和新思路吧。
2.1 logistic基础知识
如指数分布、高斯分布等分布一样,logistic是一种变量的分布,它也有自己的概率分布函数和概率密度函数,其中概率分布函数如下:
F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) / γ F(x) = P(X \leq x) = \frac{1}{1+e^{-(x-\mu)/\gamma}} F(x)=P(X≤x)=1+e−(x−μ)/γ1
对概率分布函数求导,记得到对应的概率密度函数:
f ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 f(x) = \frac{e^{-(x- \mu)/ \gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2} f(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ
其中, μ \mu μ就是分布对应的均值, γ \gamma γ是对应的形状参数。
下文,为简介方便起见,将 − ( x − μ ) / γ -(x-\mu)/\gamma −(x−μ)/γ 替换为 − x -x −x,故记为:
F ( x ) = 1 1 + e x p ( − x ) F(x) = \frac{1}{1+exp(-x)} F(x)=1+exp(−x)1
对应示例图如下:
logistic有一个很重要的性质是:
F ( − x ) = 1 1 + e x p ( x ) = 1 1 + 1 e x p ( − x ) = e x p ( − x ) 1 + e x p ( − x ) = 1 − 1 1 + e x p ( − x ) = 1 − F ( x ) F(-x) = \frac{1}{1+exp(x)} = \frac{1}{1+\frac{1}{exp(-x)}} = \frac{exp(-x)}{1+exp(-x)}=1-\frac{1}{1+exp(-x)}=1-F(x) F(−x)=1+exp(x)1=1+exp(−x)11=1+exp(−x)exp(−x)=1−1+exp(−x)1=1−