机器学习(二)
第5章 神经网络
- 神经元
- 感知机
- 多层前馈神经网络
- 激活函数及其性质
- BP算法
感知机与多层前馈神经网络
感知机由两层神经元组成,但只有输出神经元进行激活函数处理,即只拥有一层功能神经元,感知机只能处理线性可分问题,且若线性可分,则感知机的学习过程一定会收敛。
为了解决非线性可分问题,需要使用多层功能神经元。
反向传播算法
缓解BP网络的过拟合:
- 早停(early stopping):若训练集误差降低但验证集误差升高,则停止训练,并返回具有最小验证集误差的连接权和阈值。
- 正则化(regularization):如连接权的平方和(描述了网络的复杂度)。(损失函数增加了连接权的平方和后,训练过程将偏好比较小的连接权,使网络输出更加光滑)
全局最小与局部极小
由于负梯度方向是函数值下降最快的方向,因此梯度下降法沿着负梯度方向搜索最优解,最终到达局部极小点。若存在多个局部极小点,需要采用一定策略跳出局部极小,从而进一步接近全局最小:
- 以多种不同参数值初始化多个神经网络,最后取误差最小的解作为参数。
- 使用随机梯度下降。
- 使用模拟退火。
- 使用遗传算法。
第6章 支持向量机
- 支持向量:不同类距离超平面最近的样本称为支持向量
- 间隔:异类支持向量到超平面距离之和
动机:希望找到一个最优的划分超平面,对训练样本局部扰动的容忍性最好,结果最鲁棒,泛化能力最强。
支持向量与间隔
设超平面
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
样本点到超平面的距离为
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣
一般情况下,对于样本
x
x
x,当
w
T
x
+
b
>
0
w^Tx+b>0
wTx+b>0时判定为正样本;当
w
T
x
+
b
<
0
w^Tx+b<0
wTx+b<0时判定为负样本。为了找到最优超平面,我们希望样本点尽可能地远离超平面,令正类的支持向量满足
w
T
x
+
b
=
1
w^Tx+b=1
wTx+b=1,负类的支持向量满足
w
T
x
+
b
=
−
1
w^Tx+b=-1
wTx+b=−1。即对于所有的正样本满足
w
T
x
+
b
≥
1
w^Tx+b \geq 1
wTx+b≥1,对于所有的负样本满足
w
T
x
+
b
≤
−
1
w^Tx+b \leq -1
wTx+b≤−1。则间隔为
γ
=
2
∣
∣
w
∣
∣
\gamma=\frac{2}{||w||}
γ=∣∣w∣∣2
支持向量机是寻求具有最大间隔的超平面,即求解优化问题 max w 2 ∣ ∣ w ∣ ∣ \max_w \frac{2}{||w||} wmax∣∣w∣∣2 s . t . y i ( w T x + b ) ≥ 1 , i = 1 , . . . , m s.t. \ y_i(w^Tx+b) \geq 1, i=1,...,m s.t. yi(wTx+b)≥1,i=1,...,m y i y_i yi取值为1或者-1。
上述最大化问题可以转换为最小化问题 min w 1 2 ∣ ∣ w ∣ ∣ 2 \min_w \frac{1}{2}||w||^2 wmin21∣∣w∣∣2 s . t . y i ( w T x + b ) ≥ 1 , i = 1 , . . . , m s.t. \ y_i(w^Tx+b) \geq 1, i=1,...,m s.t. yi(wTx+b)≥1,i=1,...,m
对偶问题
为了高效地求解上述模型,我们利用拉格朗日乘子法获取其对偶问题。
拉格朗日函数为
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum^m_{i=1}\alpha_i(1-y_i(w^Tx_i+b))
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
令偏导为0,得
∂
L
∂
w
=
w
−
∑
i
=
1
m
α
i
y
i
x
i
=
0
⇔
w
=
∑
i
=
1
m
α
i
y
i
x
i
=
0
\frac{\partial L}{\partial w}=w-\sum^m_{i=1}\alpha_i y_i x_i=0 \Leftrightarrow w=\sum^m_{i=1}\alpha_i y_i x_i=0
∂w∂L=w−i=1∑mαiyixi=0⇔w=i=1∑mαiyixi=0
∂
L
∂
b
=
∑
i
=
1
m
−
α
i
y
i
=
0
⇔
∑
i
=
1
m
α
i
y
i
=
0
\frac{\partial L}{\partial b}=\sum^m_{i=1} -\alpha_i y_i=0 \Leftrightarrow \sum^m_{i=1} \alpha_i y_i=0
∂b∂L=i=1∑m−αiyi=0⇔i=1∑mαiyi=0
可以发现解得的 w w w与 α \alpha α的取值相关,则求解 w w w可转化为求解 α \alpha α。将上述两式代入拉格朗日函数,消去 w w w和 b b b,得到原始问题的对偶问题 max α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \max_\alpha \sum^m_{i=1} \alpha_i - \frac{1}{2}\sum^m_{i=1}\sum^m_{j=1}\alpha_i \alpha_j y_i y_j x^T_i x_j αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj s . t . ∑ i = 1 m α i y i = 0 s.t. \ \sum^m_{i=1} \alpha_i y_i=0 s.t. i=1∑mαiyi=0 α i ≥ 0 , i = 1 , . . . , m \alpha_i \geq 0, i=1,...,m αi≥0,i=1,...,m
上述求解 α \alpha α过程需满足KKT条件,因此需要满足 α i ( y i f ( x i ) − 1 ) = 0 \alpha_i(y_i f(x_i)-1)=0 αi(yif(xi)−1)=0,即当 α i > 0 \alpha_i>0 αi>0时, y i f ( x i ) − 1 = 0 y_i f(x_i)-1=0 yif(xi)−1=0,所以解出来 α i > 0 \alpha_i>0 αi>0对应的样本为支持向量,由于支持向量满足 y i ( ∑ i = 1 m α i y i x i T x + b ) = 1 y_i(\sum^m_{i=1} \alpha_i y_i x^T_i x+b)=1 yi(∑i=1mαiyixiTx+b)=1,可求解出 b b b。
求出 w w w和 b b b可得到最终模型 f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T x + b f(x)=w^T x+b=\sum^m_{i=1}\alpha_i y_i x^T_i x+b f(x)=wTx+b=i=1∑mαiyixiTx+b
可以发现,SVM最终模型仅与支持向量有关。
核函数
对于非线性可分问题,我们可以将样本映射到一个更高维的特征空间中,使得样本在这个特征空间内线性可分。假设映射函数为
ϕ
\phi
ϕ,则在高维特征空间中划分超平面可表示为
f
(
x
)
=
w
T
ϕ
(
x
)
+
b
f(x)=w^T \phi(x)+b
f(x)=wTϕ(x)+b
最大化间隔可表示为
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\min_{w,b} \frac{1}{2}||w||^2
w,bmin21∣∣w∣∣2
s
.
t
.
y
i
(
w
T
ϕ
(
x
i
)
+
b
)
≥
1
,
i
=
1
,
.
.
.
,
m
s.t. \ y_i(w^T \phi(x_i)+b) \geq 1, i=1,...,m
s.t. yi(wTϕ(xi)+b)≥1,i=1,...,m
对偶问题为
max
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
i
∑
j
=
1
j
α
i
α
j
y
i
y
j
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\max_{\alpha} \sum^m_{i=1} \alpha_i -\frac{1}{2}\sum^i_{i=1}\sum^j_{j=1} \alpha_i \alpha_j y_i y_j \phi(x_i)^T \phi(x_j)
αmaxi=1∑mαi−21i=1∑ij=1∑jαiαjyiyjϕ(xi)Tϕ(xj)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
s.t. \ \sum^m_{i=1} \alpha_i y_i=0
s.t. i=1∑mαiyi=0
α
i
≥
0
,
i
=
1
,
.
.
.
,
m
\alpha_i \geq 0, i=1,...,m
αi≥0,i=1,...,m
可以看出,映射到高维空间后,需要求解映射函数的内积,我们引入核函数
κ
(
x
i
,
x
j
)
=
ϕ
(
x
i
)
T
ϕ
(
x
j
)
\kappa{(x_i,x_j)}=\phi(x_i)^T \phi(x_j)
κ(xi,xj)=ϕ(xi)Tϕ(xj)
常用的核函数有:线性核、多项式核、高斯核、拉普拉斯核、Sigmoid核。
软间隔和正则化
- 软间隔(soft margin)
- 替代损失:hinge损失,指数损失,对率损失
- 松弛变量(slack variables)
对于在样本空间或者是特征空间线性不可分的问题,或者为了缓解过拟合,引入"软间隔"。
引入松弛变量
ξ
i
≥
0
\xi_i \geq 0
ξi≥0,则软间隔支持向量机
min
w
,
b
,
ξ
i
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
\min_{w,b,\xi_i} \frac{1}{2} ||w||^2+C\sum^m_{i=1} \xi_i
w,b,ξimin21∣∣w∣∣2+Ci=1∑mξi
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
s.t. y_i(w^Tx_i+b) \geq 1-\xi_i
s.t.yi(wTxi+b)≥1−ξi
ξ
i
≥
0
,
i
=
1
,
.
.
.
,
m
\xi_i \geq 0, i=1,...,m
ξi≥0,i=1,...,m
SVM与LR比较:
- 对数几率回归结果具有概率意义;
- 对数几率回归能直接用于多分类任务,支持向量机为此需进行推广;
- 对数几率回归的结果依赖于更多的训练样本,开销更大,支持向量机只依赖于支持向量。
正则化:
- L1正则化倾向于稀疏解,即非0分量个数尽可能少
- L2正则化倾向于光滑解,即 w w w的分量取值尽量均衡,非0分量个数尽量稠密
第7章 贝叶斯分类器
第8章 集成学习
- 同质集成、基学习器、基学习算法
- 异质集成、组件学习器
- Boosting(代表方法 AdaBoost):个体学习器间存在强依赖关系,必须串行生成的序列化方法
- Bagging和RF:个体学习器间不存在强依赖关系,可同时生成的并行化方法
集成学习通过构建并结合多个学习器,最终结果由投票法产生。要求个体学习器应“好而不同”,即要求个体学习器具有一定的准确性,同时具备多样性。
Boosting
Boosting 族算法先从初始训练集中训练一个基学习器,再根据基学习器的表现,对训练样本分布进行调整,使得先前基学习器做错的样本在后续收到更多的关注。然后基于调整后的样本分布来训练下一个基学习器。直到基学习器数目达到事先指定的值T。最终将这T个基学习器进行加权组合。
AdaBoost
串行、只适用于二分类,关注降低偏差
Bagging 与 随机森林
Bagging 基于自助采样法(Bootstrap),给定 m m m个样本的数据集,有放回采样 m m m次后,获得含 m m m个样本的采样集。如此,采样出 T T T个含 m m m个样本的采样集后,基于每个采样集训练一个基学习器,再将这些基学习器进行组合。预测时,Bagging对分类任务使用简单投票法,对回归任务使用简单平均法。
Bagging 高效,可用于多分类和回归,关注降低方差