LR中若标签为+1和-1,损失函数如何推导,求大佬解答

  统计/机器学习 回归分析 监督式学习 损失函数    浏览次数:8301        分享
0

一般我们见到的都是0,1标签,+-1时该如何推导呢?

 

GEASS   2018-09-05 10:08



   3个回答 
4

logistic regression中用的是logistic sigmoid函数

$$\text{sigmoid}(x)=\frac{e^x}{e^x+1}\in [0,1]$$

而$$\text{tanh}(x)=2\text{sigmoid}(2x)-1=\frac{e^x-e^{-x}}{e^x+e^{-x}}\in [-1,1]$$

下面蓝色是sigmoid,红色是tanh。


如果是用neural network,标签是一位的-1/+1,最后一层用tanh activation function。如果标签是一位的0/1,可用sigmoid。如果标签是多位的one hot编码,最后一层用softmax。

---------------------------------------------------------------------------------

令$x$是输入数据,$w$是logistic regression参数,$y=-1/1$是标签,$\sigma(z)=\sigma(w^Tx)$是sigmoid函数。

似然函数(likelihood)模型是

$P(y_i|x_i)_w=\sigma(y_iz_i)$,$y_i=-1/1$, $z_i=w^Tx_i$

minimum negtive log likelihood可得损失函数:

$argmin_w{l(w)_{y,x}}$

$=argmin_w{-\sum_{i=1}^N ln\sigma(y_iz_i)}$

$=argmin_w{\sum_{i=1}^N ln\dfrac{1}{\sigma(y_iz_i)}}$

$=argmin_w{\sum_{i=1}^N ln(1+e^{-y_iz_i})}$


注意,因为用的模型是sigmoid函数,这里的最小负log释然函数等价于最小cross entropy。

如果用cross entropy写

令$t=0.5y+0.5$,表示是否$y==1$的标签,$t=0/1$。

$argmin_w{CE(w)_{y,x}}$

$=argmin_w{-[t_i ln\sigma(z_i)+(1-t_i)ln(1-\sigma(z_i))]}$

$=argmin_w{-[(0.5y+0.5)ln\dfrac{1}{1+e^{-z_i}}+(0.5-0.5y)ln\dfrac{1}{1+e^{z_i}}]}$

$=argmin_w{ln(1+e^{z_i})-\dfrac{y+1}{2}z_i}$

当$y=-1/1$

$CE(w)_{y,x}=l(w)_{y,x}$


SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-09-05 13:15

虽然我也回答了,但是我更喜欢你的答案! - Jiho   2018-09-05 13:43
老哥谢谢你的回答,不过我想知道的是最后推导出来的LR损失函数啊 - GEASS   2018-09-05 13:53
2

为什么非要是-1和+1呢?把0,1映射成-1,+1不就可以了?

逻辑回归里通常把负样本标记为0其实是有意义的,因为逻辑回归可以得到预测概率,预测结果为0,不仅表示了是负样本,同时也是表示$P(Y=1)=0$的意思。-1,+1表达不了这个。

SofaSofa数据科学社区DS面试题库 DS面经

Jiho   2018-09-05 10:15

我也是看到有个面试题这么问的== - GEASS   2018-09-05 10:16
那就做映射好了,把原来的$y$换成$2y-1$ - Jiho   2018-09-05 10:19
1

建议你看林轩田老师的 机器学习基石 的第十课的ppt,里面就有推导

SofaSofa数据科学社区DS面试题库 DS面经

ssssqd   2018-09-05 16:05



  相关讨论

用SGD计算逻辑回归时的迭代公式是什么?

逻辑回归的损失函数是怎么来的

泊松回归(poission regression)的损失函数是什么?

huber loss是什么?什么时候用?

线性回归梯度下降函数微分推导疑惑

最小二乘回归和线性回归

python里有没有huber loss的线性回归

二元分类为什么不能用MSE做为损失函数?

Hamming Loss汉明损失的计算公式是什么?

怎么理解surrogate loss function代理损失函数?

  随便看看

python(matplotlib)中如何把折线图和柱状图画在一起?

如何重命名pandas的dataframe的列名

如何复制一个pandas DataFrame

把pandas.DataFrame中所有行全部随机排列

柯西分布没有数学期望