logistic回归详解(二):损失函数(cost function)详解
Posted bitcarmanlee
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了logistic回归详解(二):损失函数(cost function)详解相关的知识,希望对你有一定的参考价值。
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
有监督学习
机器学习分为有监督学习,无监督学习,半监督学习,强化学习。对于逻辑回归来说,就是一种典型的有监督学习。
既然是有监督学习,训练集自然可以用如下方式表述:
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
m
,
y
m
)
\\(x^1,y^1),(x^2,y^2),\\cdots,(x^m,y^m)\\
(x1,y1),(x2,y2),⋯,(xm,ym)
对于这m个训练样本,每个样本本身有n维特征。再加上一个偏置项
x
0
x_0
x0, 则每个样本包含n+1维特征:
x
=
[
x
0
,
x
1
,
x
2
,
⋯
,
x
n
]
T
x = [x_0,x_1,x_2,\\cdots,x_n]^T
x=[x0,x1,x2,⋯,xn]T
其中
x
∈
R
n
+
1
x\\in R^n+1
x∈Rn+1,
x
0
=
1
x_0=1
x0=1,
y
∈
0
,
1
y\\in\\0,1\\
y∈0,1
李航博士在统计学习方法一书中给分类问题做了如下定义:
分类是监督学习的一个核心问题,在监督学习中,当输出变量Y取有限个离散值时,预测问题便成为分类问题。这时,输入变量X可以是离散的,也可以是连续的。监督学习从数据中学习一个分类模型或分类决策函数,称为分类器(classifier)。分类器对新的输入进行输出的预测(prediction),称为分类(classification).
在logistic回归详解一(http://blog.csdn.net/bitcarmanlee/article/details/51154481)中,我们花了一整篇篇幅阐述了为什么要使用logistic函数:
h
θ
(
x
)
=
g
(
θ
T
x
)
=
1
1
+
e
−
θ
T
x
h_\\theta(x) = g(\\theta^Tx) = \\frac11+e^-\\theta^Tx
hθ(x)=g(θTx)=1+e−θTx1
其中一个重要的原因,就是要将Hypothesis(NG课程里的说法)的输出映射到0与1之间,既:
0
≤
h
θ
(
x
)
≤
1
0\\le h_\\theta(x)\\le 1
0≤hθ(x)≤1
同样是李航博士统计学习方法一书中,有以下描述:
统计学习方法都是由模型,策略,和算法构成的,即统计学习方法由三要素构成,可以简单表示为:
方法
=
模型
+
策略
+
算法
方法 = 模型 + 策略 + 算法
方法=模型+策略+算法
对于logistic回归来说,模型自然就是logistic回归,策略最常用的方法是用一个损失函数(loss function)或代价函数(cost function)来度量预测错误程度,算法则是求解过程,后期会详细描述相关的优化算法。
logistic函数求导
g ′ ( z ) = d d z 1 1 + e − z = 1 ( 1 + e − z ) 2 ( e − z ) = 1 ( 1 + e − z ) ⋅ ( 1 − 1 ( 1 + e − z ) ) = g ( z ) ( 1 − g ( z ) ) \\beginalign g'(z) & = \\fracddz\\frac11+e^-z \\\\ & = \\frac1(1+e^-z)^2 (e^-z) \\\\ & = \\frac1(1+e^-z) \\cdot \\left (1 - \\frac1(1+e^-z) \\right) \\\\ & = g(z)(1-g(z)) \\endalign g′(z)=dzd1+e−z1=(1+e−z)21(e−z)=(1+e−z)1⋅(1−(1+e−z)1)=g(z)(1−g(z))
此求导公式在后续推导中会使用到
常见的损失函数
机器学习或者统计机器学习常见的损失函数如下:
1.0-1损失函数 (0-1 loss function)
L
(
Y
,
f
(
X
)
)
=
1
,
Y
≠
f(X)
0
,
Y = f(X)
L(Y,f(X))= \\begincases 1 , & \\text Y $\\neq$ f(X) \\\\ 0, & \\textY = f(X) \\endcases
L(Y,f(X))=1,0,Y = f(X)Y = f(X)
2.平方损失函数(quadratic loss function)
L
(
Y
,
f
(
X
)
)
=
(
Y
−
f
(
x
)
)
2
L(Y,f(X)) = (Y - f(x))^2
L(Y,f(X))=(Y−f(x))2
3.绝对值损失函数(absolute loss function)
L
(
Y
,
f
(
x
)
)
=
∣
Y
−
f
(
X
)
∣
L(Y,f(x)) = |Y - f(X)|
L(Y,f(x))=∣Y−f(X)∣
4.对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)
L
(
Y
,
P
(
Y
∣
X
)
)
=
−
l
o
g
P
(
Y
∣
X
)
L(Y,P(Y|X)) = -logP(Y|X)
L(Y,P(Y∣X))=−logP(Y∣X)
逻辑回归中,采用的则是对数损失函数。如果损失函数越小,表示模型越好。
说说对数损失函数与平方损失函数
在逻辑回归的推导中国,我们假设样本是服从伯努利分布(0-1分布)的,然后求得满足该分布的似然函数,最终求该似然函数的极大值。整体的思想就是求极大似然函数的思想。而取对数,只是为了方便我们的在求MLE(Maximum Likelihood Estimation)过程中采取的一种数学手段而已。
损失函数详解
根据上面的内容,我们可以得到逻辑回归的对数似然损失函数cost function:
c
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
l
o
g
(
h
θ
(
x
)
)
if y=1
−
l
o
g
(
1
−
h
θ
(
x
)
)
if y=0
cost(h_\\theta(x),y) = \\begincases -log(h_\\theta(x)) & \\text if y=1 \\\\ -log(1-h_\\theta(x)) & \\textif y=0 \\endcases
cost(hθ(x),y)=−log(hθ(x))−log(1−hθ(x))if y=1if y=0
稍微解释下这个损失函数,或者说解释下对数似然损失函数:
当y=1时,假定这个样本为正类。如果此时
h
θ
(
x
)
=
1
h_\\theta(x)=1
hθ(x)=1,则单对这个样本而言的cost=0,表示这个样本的预测完全准确。那如果所有样本都预测准确,总的cost=0
但是如果此时预测的概率
h
θ
(
x
)
=
0
h_\\theta(x)=0
hθderivative of cost function for Logistic Regression 逻辑回归代价函数偏导证明
Logistic回归Cost函数和J(θ)的推导----Andrew Ngmachine learning公开课
机器学习 | Logistic Regression(逻辑回归)中的损失函数