逻辑回归
逻辑回归
概念
- 和逻辑回归相似,不过预测结果是离散的值
- 二分类问题: y ∈ { 0 , 1 } y\in\{0,1\} y∈{0,1},0代表负样本,1代表正样本
- y ( i ) ∈ { 0 , 1 } y^{(i)}\in\{0,1\} y(i)∈{0,1}称为训练样本的标签
sigmoid 函数
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+e−z1
- 值域: g ( z ) ∈ ( 0 , 1 ) g(z)\in(0,1) g(z)∈(0,1)
- 对称性:1 - g(z) = g(-z)
- 求导:g’(z) = g(z)(1 - g(z))
hypothesis
h θ = g ( θ T x ) = 1 1 + e − θ T x h_{\theta} = g(\theta^{T}x) = \frac{1}{1+e^{-\theta^{T}x}} hθ=g(θTx)=1+e−θTx1
- 首先计算出真实值作为’score‘( θ T x \theta^{T}x θTx)
- 将其变换到(0,1)区间,作为属于正样本的概率
- 伪线性关系
条件概率
-
对给定数据X=x,Y=1的概率
P r ( Y = 1 ∣ X = x ; θ ) = h θ ( x ) = 1 1 + e − θ T x Pr(Y = 1|X =x;\theta) = h_{\theta}(x) = \frac{1}{1+e^{-\theta^{T}x}} Pr(Y=1∣X=x;θ)=hθ(x)=1+e−θTx1 -
对给定数据X=x,Y=0的概率
P r ( Y = 0 ∣ X = x ; θ ) = 1 − h θ ( x ) = 1 1 + e θ T x Pr(Y = 0|X =x;\theta) = 1-h_{\theta}(x) = \frac{1}{1+e^{\theta^{T}x}} Pr(Y=0∣X=x;θ)=1−hθ(x)=1+eθTx1
在边界的情况
P
r
(
Y
=
1
∣
X
=
x
;
θ
)
=
P
r
(
Y
=
0
∣
X
=
x
;
θ
)
Pr(Y = 1|X =x;\theta) = Pr(Y = 0|X =x;\theta)
Pr(Y=1∣X=x;θ)=Pr(Y=0∣X=x;θ)
⇒
1
1
+
e
−
θ
T
x
=
1
1
+
e
θ
T
x
\Rightarrow \frac{1}{1+e^{-\theta^{T}x}} = \frac{1}{1+e^{\theta^{T}x}}
⇒1+e−θTx1=1+eθTx1
⇒
e
x
p
(
θ
T
x
)
=
1
\Rightarrow exp(\theta^{T}x) = 1
⇒exp(θTx)=1
⇒
θ
T
x
=
0
(
超
平
面
)
\Rightarrow\theta^{T}x=0\quad(超平面)
⇒θTx=0(超平面)
- s c o r e 的 值 θ T x 度 量 了 x 距 离 超 平 面 ( h y p e r p l a n ) 的 距 离 score的值\theta^{T}x度量了x距离超平面(hyperplan)的距离 score的值θTx度量了x距离超平面(hyperplan)的距离
- score是正值,越大,是正样本的概率越高
- score是负值,越小,是正样本的概率越小
概率公式
p ( y ∣ x ; θ ) = P r ( Y = y ∣ X = x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y , y ∈ { 0 , 1 } p(y|x ; \theta) = Pr(Y = y|X = x;\theta) = (h_{\theta}(x))^{y}(1-h_{\theta}(x))^{1-y},\quad y \in \{0,1\} p(y∣x;θ)=Pr(Y=y∣X=x;θ)=(hθ(x))y(1−hθ(x))1−y,y∈{0,1}
如何确定参数 θ \theta θ
极大似然估计
极大似然函数
L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) L(\theta) = \prod_{i=1}^{m}p(y^{(i)}|x^{(i)} ; \theta)\\ = \prod_{i=1}^{m} (h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} L(θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
- 因为是独立事件同时发生,所以概率相乘
- 解释:这是样本,按照预测模型计算出的发生的概率。由于事件已经发生,我们认为在这样本下发生此事件的概率尽可能大,即我们应使得 L ( θ ) L(\theta) L(θ)尽可能大
- 通俗解释一下:小明去钓鱼,钓了一条鱼,是小鱼,又钓了一条鱼还是小鱼,再钓一条鱼还是小鱼,小明依据存在即合理的思想认为,这个池塘里的小鱼多。小明做了个模型预测在这个池塘里钓出鱼的大小,预测出是小鱼的概率更高一些,我们认为是更合理的。
取对数
l ( θ ) = log L ( θ ) = ∑ i = 1 m ( y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ) l(\theta) = \log L(\theta) = \sum_{i=1}^{m}(y^{(i)}\log (h_{\theta}(x^{(i)})) + (1-y^{(i)})\log (1-h_{\theta}(x^{(i)}))) l(θ)=logL(θ)=i=1∑m(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))
求极值(使用梯度下降法)
目标:要求
L
(
θ
)
L(\theta)
L(θ)最大,
θ
\theta
θ要沿着梯度方向更新
θ
j
←
θ
j
+
α
▽
θ
j
l
(
θ
)
f
o
r
∀
j
\theta_{j}\leftarrow\theta_{j}+\alpha\triangledown_{\theta_{j}}l(\theta)\quad for \forall j
θj←θj+α▽θjl(θ)for∀j
∂
∂
θ
j
l
(
θ
)
=
∑
i
=
1
m
(
y
(
i
)
−
h
θ
(
x
(
i
)
)
)
x
j
(
i
)
\frac{\partial}{\partial\theta_{j}}l(\theta) = \sum_{i=1}^{m}(y^{(i)}-h_{\theta}(x^{(i)}))x_{j}^{(i)}
∂θj∂l(θ)=i=1∑m(y(i)−hθ(x(i)))xj(i)
推导有空再写
牛顿法
- 使用梯度下降法,收敛的速度太慢,使用牛顿法可以更快的收敛
牛顿法介绍
对于一个实数域函数
f
:
R
→
R
f:\mathbb{R}\rightarrow\mathbb{R}
f:R→R,如何寻找
x
x
x使得
f
(
x
)
=
0
f(x)=0
f(x)=0?
对曲线
y
=
f
(
x
)
y=f(x)
y=f(x)在点
(
x
1
,
f
(
x
1
)
)
(x_{1},f(x_{1}))
(x1,f(x1))处作切线L
L在x轴的交点为
x
2
=
x
1
−
f
(
x
1
)
f
′
(
x
1
)
x_{2} = x_{1} - \frac{f(x_{1})}{f'(x_{1})}
x2=x1−f′(x1)f(x1)
然后重复上述操作,直到满足收敛条件
x
←
x
−
f
(
x
)
f
′
(
x
)
x\leftarrow x-\frac{f(x)}{f'(x)}
x←x−f′(x)f(x)
牛顿法的一些特性
- 收敛速度快
- 不保证收敛,取决于函数和初始值的选取
牛顿法寻找最大值
要使
f
(
x
)
f(x)
f(x)最大,需要找到
f
′
(
x
)
=
0
f'(x)=0
f′(x)=0的点
使用以下公式:
x
←
x
−
f
′
(
x
)
f
′
′
(
x
)
x\leftarrow x-\frac{f'(x)}{f''(x)}
x←x−f′′(x)f′(x)
对于
l
(
θ
)
:
R
n
→
R
l(\theta):\mathbb{R}^{n}\rightarrow\mathbb{R}
l(θ):Rn→R应用牛顿法:
θ
←
θ
−
H
−
1
▽
θ
l
(
θ
)
\theta\leftarrow \theta-H^{-1}\triangledown_{\theta}l(\theta)
θ←θ−H−1▽θl(θ)
H是 Hessian matrix
H
i
j
=
∂
2
l
(
θ
)
∂
θ
i
∂
θ
j
H_{ij}=\frac{\partial^{2}l(\theta)}{\partial\theta_{i}\partial\theta_{j}}
Hij=∂θi∂θj∂2l(θ)
虽然牛顿法迭代快,但是Hessian矩阵的计算开销大
多分类
对于多分类的问题可以从二分类的基础上进行拓展,对于每一类训练一个分类器,数据中的本类作为正样本,其他类作为负样本。
一对多的情况
- 输入:学习算法L,训练样本 ( x ( i ) , y ( i ) ) i = 1 , . . . , m y ( i ) ∈ 1 , . . . , K {(x^{(i)},y^{(i)})}\quad i=1,...,m\quad y^{(i)}\in{1,...,K} (x(i),y(i))i=1,...,my(i)∈1,...,K
- 输出:一系列分类器 f k k ∈ 1 , . . . K f_{k} \quad k\in{1,...K} fkk∈1,...K
-
f
k
(
x
)
f_{k}(x)
fk(x)越大表明x属于k类的概率越高
假设函数:
h θ ( x ) = [ p ( y = 1 ∣ x , θ ) p ( y = 2 ∣ x , θ ) ⋮ p ( y = k ∣ x , θ ) ] = 1 ∑ k = 1 K e x p ( θ ( k ) T x ) [ e x p ( θ ( 1 ) T x ) e x p ( θ ( 2 ) T x ) ⋮ e x p ( θ ( k ) T x ) ] h_{\theta}(x)= \begin{bmatrix} p(y=1|x,\theta)\\ p(y=2|x,\theta)\\ \vdots\\ p(y=k|x,\theta) \end{bmatrix} = \frac{1}{\sum_{k=1}^{K}exp(\theta^{(k)^{T}}x)} \begin{bmatrix} exp(\theta^{(1)^{T}}x)\\ exp(\theta^{(2)^{T}}x)\\ \vdots\\ exp(\theta^{(k)^{T}}x) \end{bmatrix} hθ(x)=⎣⎢⎢⎢⎡p(y=1∣x,θ)p(y=2∣x,θ)⋮p(y=k∣x,θ)⎦⎥⎥⎥⎤=∑k=1Kexp(θ(k)Tx)1⎣⎢⎢⎢⎢⎡exp(θ(1)Tx)exp(θ(2)Tx)⋮exp(θ(k)Tx)⎦⎥⎥⎥⎥⎤
上式中进行了归一化 softmax regression,使得对于一个样本,属于各个分类的概率之和为1
取对数运算
l ( θ ) = ∑ i = 1 m log p ( y ( i ) ∣ x ( i ) ; θ ) = ∑ i = 1 m log ∏ k = 1 K ( e x p ( θ ( k ) T x ( i ) ) ∑ k ′ = 1 K e x p ( θ ( k ′ ) T x ( i ) ) ) I ( y ( i ) = k ) I : T r u e , F a l s e → 0 , 1 是 一 个 指 示 函 数 注 : 当 样 本 i 是 k 类 时 y ( i ) = k , 幂 值 不 为 零 , 整 个 式 子 才 不 为 1 , 总 之 l o g 以 内 是 每 个 样 本 预 测 结 果 为 y ( i ) 的 概 率 l(\theta)=\sum_{i=1}^{m}\log p(y^{(i)}|x^{(i)};\theta)\\=\sum_{i=1}^{m}\log\prod_{k=1}^{K}\left( \frac{exp(\theta^{(k)^{T}}x^{(i)})}{\sum_{k'=1}^{K}exp(\theta^{(k')^{T}}x^{(i)})}\right)^{\mathbb{I}(y^{(i)=k})} \\ \mathbb{I}:{True,False}\rightarrow{0,1} 是一个指示函数 \\注:当样本i是k类时y^{(i)}=k,幂值不为零,整个式子才不为1,\\总之log以内是每个样本预测结果为y^{(i)}的概率 l(θ)=i=1∑mlogp(y(i)∣x(i);θ)=i=1∑mlogk=1∏K(∑k′=1Kexp(θ(k′)Tx(i))exp(θ(k)Tx(i)))I(y(i)=k)I:True,False→0,1是一个指示函数注:当样本i是k类时y(i)=k,幂值不为零,整个式子才不为1,总之log以内是每个样本预测结果为y(i)的概率