逻辑斯蒂回归(Logistic Regression)
算法里这里就是利用公式来表示分类的概率,求这个概率最大,用一个梯度上升方法求得概率最大。
别的方法都是梯度下降,他就是反过来,梯度上升,也挺有趣味。
最大熵模型
利用信息熵公式,求样本熵最大,书中分析得出:当每个时间概率都是一样的时候,熵就是最大。
H
(
P
)
=
−
∑
i
n
p
(
x
i
)
log
p
(
x
i
)
−
H
(
P
)
=
∑
i
n
p
(
x
i
)
log
p
(
x
i
)
\begin{aligned} H(P)&=-\sum_{i}^{n}p(x_i)\log{p(x_i)} \\ -H(P)&=\sum_{i}^{n}p(x_i)\log{p(x_i)} \end{aligned}
H(P)−H(P)=−i∑np(xi)logp(xi)=i∑np(xi)logp(xi)
也就是说
p
(
x
1
)
=
p
(
x
2
)
=
.
.
.
.
=
p
(
x
n
)
=
1
n
p(x_1)=p(x_2)=....=p(x_n)=\frac{1}{n}
p(x1)=p(x2)=....=p(xn)=n1,但是这样求得的概率无意义,每个事件的概率都一样,在实际环境中,有很多约束条件的,这些约束条件使得每个事件的概率不一样,所以最大熵模型的完整公式:
m i n − H ( P ) = ∑ i n p ( x i ) p ( y ∣ x i ) log p ( y ∣ x i ) s . t . E p ( f i ) = E p ∗ ( f i ) s . t . ∑ 1 n p ( x i ) = 1 \begin{aligned} min -H(P)&=\sum_{i}^{n}p(x_i)p(y|x_i)\log{p(y|x_i)} \\ s.t. & E_p(f_i)=E_{p^*}(f_i) \\ s.t. & \sum_1^np(x_i)=1 \end{aligned} min−H(P)s.t.s.t.=i∑np(xi)p(y∣xi)logp(y∣xi)Ep(fi)=Ep∗(fi)1∑np(xi)=1
这样就是一个完整的最大熵模型,
H
(
P
)
H(P)
H(P)越大,则
−
H
(
P
)
-H(P)
−H(P)越小,引入拉格朗日乘子:
w
1
,
w
0
w_1,w_0
w1,w0,
L
(
P
,
W
)
=
∑
i
n
p
(
x
i
)
p
(
y
∣
x
i
)
log
p
(
y
∣
x
i
)
+
w
1
(
E
p
(
f
i
)
−
E
p
∗
(
f
i
)
)
+
w
0
(
∑
1
n
p
(
x
i
)
−
1
)
L(P,W)=\sum_{i}^{n}p(x_i)p(y|x_i)\log{p(y|x_i)}+w_1(E_p(f_i)-E_{p^*}(f_i) )+w_0(\sum_1^np(x_i)-1)
L(P,W)=i∑np(xi)p(y∣xi)logp(y∣xi)+w1(Ep(fi)−Ep∗(fi))+w0(1∑np(xi)−1)
先计算
L
(
P
,
W
)
L(P,W)
L(P,W)关于样本极值,各个变量求导等于0,用
w
1
,
w
0
w_1,w_0
w1,w0来表示概率,再计算关于
w
1
,
w
0
w_1,w_0
w1,w0的极值,求导变量偏微分等于0,计算出
w
1
,
w
0
w_1,w_0
w1,w0的值。
所谓的min-max问题也就是先求极值,再求极值,反正求极值就对了,书中也没说明这个极值是最大值还是最小值,可能默认就是极值就满足条件吧。
- 疑问:为什么会涉及到条件熵?
因为这里涉及到期望,条件期望,在后面的约束条件中可以通过公式注意到。 - 约束条件是哪里来的?
书中利用期望来约束,两个期望值相等作为约束条件:
E P ˉ ( f ) = ∑ x , y P ˉ ( x , y ) f ( x , y ) E P ( f ) = ∑ x , y P ˉ ( x ) P ( y ∣ x ) f ( x , y ) E P ˉ ( f ) = E P ( f ) P ˉ ( x , y ) = v ( x , y ) N P ˉ ( x ) = v ( x ) N E_{\bar{P}}(f)=\sum_{x,y}\bar{P}(x,y)f(x,y) \\ E_{P}(f)=\sum_{x,y}\bar{P}(x)P(y|x)f(x,y) \\ E_{\bar{P}}(f) = E_{P}(f) \\ \bar{P}(x,y) = \frac{v(x,y)}{N} \\ \bar{P}(x) = \frac{v(x)}{N} EPˉ(f)=x,y∑Pˉ(x,y)f(x,y)EP(f)=x,y∑Pˉ(x)P(y∣x)f(x,y)EPˉ(f)=EP(f)Pˉ(x,y)=Nv(x,y)Pˉ(x)=Nv(x)
这两者相等,这个公式其实参考了贝叶斯公式。这个用来做约束条件。其中 f ( x , y ) f(x,y) f(x,y)参考书中公式 - 特征函数中满足条件是哪里来的?是用来干嘛的?
这个问题很纠结,似乎是可变的,可以自己定义,大家可以参考博客最大熵模型原理小结
。这个条件似乎很灵活,看你具体的场景。感觉很不靠谱。
最大熵模型在分类方法里算是比较优的模型,但是由于它的约束函数的数目一般来说会随着样本量的增大而增大,导致样本量很大的时候,对偶函数优化求解的迭代过程非常慢,scikit-learn甚至都没有最大熵模型对应的类库。但是理解它仍然很有意义,尤其是它和很多分类方法都有千丝万缕的联系,我们总结下最大熵模型作为分类方法的优缺点:
最大熵模型的优点有:
- a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。
- b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度
最大熵模型的缺点有:
- a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难。
SVM
一开始讲解了最小间距超平面:所有样本到平面的距离最小
。而距离度量有了函数间隔和几何间隔,函数间隔与法向量
w
w
w和
b
b
b有关,
w
w
w变为
2
w
2w
2w则函数间距变大了,于是提出了几何距离,就是对
w
w
w处理,除以
∣
∣
w
∣
∣
||w||
∣∣w∣∣,除以向量长度,从而让几何距离不受影响。
但是支持向量机提出了最大间隔分离超平面,这似乎与上面的分析相反,其实这个最大间隔是个什么概念呢?通过公式来分析一下:
max
w
,
b
γ
s
.
t
.
y
i
(
w
∣
∣
w
∣
∣
x
i
+
b
∣
∣
w
∣
∣
)
>
γ
\max \limits_{w,b} \quad \gamma \\ s.t. \quad y_i(\frac{w}{||w||}x_i+\frac{b}{||w||}) > \gamma
w,bmaxγs.t.yi(∣∣w∣∣wxi+∣∣w∣∣b)>γ
也就是说对于所有的样本到超平面距离 都大于
γ
\gamma
γ,比如:所有样本的距离都大于5,那最大间隔
γ
=
5
\gamma = 5
γ=5,那问题转换一个,不就是求样本到超平面的最小距离吗?
。通过这个求解目标,以及约束条件来求解这个超平面。书中有完整的公式装换以及证明这个超平面的唯一性。
要自己手写一个公式转换,方便理解。
通过一个例子来看看:
这里例子中有
w
1
,
w
2
w_1,w_2
w1,w2,这是因为坐标点是二维的,相当于样本特征是两个,分类的结果是这两个特征的结果标签,所以这里的
w
w
w就是一个二维的,说明在具体的应用里需要根据特征来确定
w
w
w的维度。
对偶讲解
其实原始问题是这样的:
max
w
,
b
γ
s
.
t
.
y
i
(
w
∣
∣
w
∣
∣
x
i
+
b
∣
∣
w
∣
∣
)
>
γ
\max \limits_{w,b} \quad \gamma \\ s.t. \quad y_i(\frac{w}{||w||}x_i+\frac{b}{||w||}) > \gamma
w,bmaxγs.t.yi(∣∣w∣∣wxi+∣∣w∣∣b)>γ
利用几何距离与函数距离的关系
γ
=
γ
^
∣
∣
w
∣
∣
\gamma = \frac{\hat{ \gamma}}{||w||}
γ=∣∣w∣∣γ^将公式改为:
max
w
,
b
γ
^
∣
∣
w
∣
∣
s
.
t
.
y
i
(
x
i
+
b
)
>
γ
^
\max \limits_{w,b} \quad \frac{\hat{ \gamma}}{||w||} \\ s.t. \quad y_i(x_i+b) > \hat{\gamma}
w,bmax∣∣w∣∣γ^s.t.yi(xi+b)>γ^
函数间隔是会随着
w
与
b
w与b
w与b的变化而变化,同时将
w
与
b
w与b
w与b变成
λ
w
与
λ
b
\lambda w与\lambda b
λw与λb,则函数间隔也会变成
λ
γ
\lambda \gamma
λγ,所以书中直接将
γ
=
1
\gamma=1
γ=1来转换问题。同样的问题又改为:
max
w
,
b
1
∣
∣
w
∣
∣
s
.
t
.
y
i
(
x
i
+
b
)
>
1
\max \limits_{w,b} \quad \frac{1}{||w||} \\ s.t. \quad y_i(x_i+b) >1
w,bmax∣∣w∣∣1s.t.yi(xi+b)>1
求解最大值改为另一个问题,求解最小值:
min
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
(
x
i
+
b
)
>
1
\min \quad \frac{1}{2} ||w||^2 \\ s.t. \quad y_i(x_i+b) >1
min21∣∣w∣∣2s.t.yi(xi+b)>1
这就是一个对偶问题的例子,也是书中支持向量机模型的一个目标函数转换的过程,大家可以看看了解一下这个思路,
软间隔
硬间隔是方便用来分隔线性可分的数据,如果样本中的数据是线性不可分的呢?也就是如图所示:
软间隔对约束条件进行改造,迫使某些不满足约束条件的点作为损失函数,如图所示:
这里要区别非线性情况,非线性的意思就是一个圆圈,圆圈里是一个分类结果,圆圈外是一个分类结果。这就是非线性的情况。
其中当样本点不满足约束条件时,损失是有的,但是满足条件的样本都会被置为0,这是因为加入了转换函数,使得求解min的条件会专注在不符合条件的样本节点上。
但 截图中的损失函数非凸、非连续,数学性质不好,不易直接求解,我们用其他一些函数来代替它,叫做替代损失函数(surrogate loss)。后面采取了松弛变量的方式,来使得某些样本可以不满足约束条件,
这里思考一个问题:既然是线性不可分,难道最后求出来的支持向量就不是直线?某种意义上的直线?
其实还是直线,不满足条件的节点也被错误的分配了,只是尽可能的求解最大间隔,
核函数
引入核函数可以解决非线性的情况。