线性模型
- 基本形式: f ( x ) = w T x + b f(x) = w^T x + b f(x)=wTx+b,其中,w是1*d维的向量,w和b确定后,模型就确定了。
线性回归
- 目的:使f(x)接近y值
- 如何达到目的,在x和y是已知的情况下,确定w和b的值即可
- 如何确定w和b?
- 最小二乘法:
- ( w , b ) = a r g m i n ( w , b ) ∑ ( f ( x ) − y ) 2 (w,b) = arg \ \ min_(w,b) \ \ \sum(f(x)-y)^2 (w,b)=arg min(w,b) ∑(f(x)−y)2
- 即 ( w , b ) = a r g m i n ( w , b ) ∑ ( y − w x − b ) 2 (w,b) = arg \ \ min_(w,b) \ \ \sum(y - wx - b)^2 (w,b)=arg min(w,b) ∑(y−wx−b)2
- 最小二乘法几何意义:试图找到一个直线,使得样本到直线上的欧氏距离之和最小
- 求最小值问题:就是分别对w、b求解其导数=0的过程
- 在多元线性回归中,同理,只不过x从向量变成了矩阵
- 令
w
∗
=
(
w
;
b
)
=
(
w
1
;
w
2
;
.
.
.
;
w
d
;
b
)
w^* = (w;b) = (w_1; w_2; ...; w_d; b)
w∗=(w;b)=(w1;w2;...;wd;b),从一元线性回归方程中可得:
-
w
∗
=
a
r
g
m
i
n
w
∗
(
y
−
X
w
∗
)
T
(
y
−
X
w
∗
)
w^*=arg \ \ min_{w^*} \ \ (y-Xw^*)^T (y-Xw^*)
w∗=arg minw∗ (y−Xw∗)T(y−Xw∗),其中 X表示m*d维的x
- 为什么一元线性回归的平方形式在多元中可以写成其乘以其转置的形式?
- 这样成立的前提是X为满秩矩阵或者正定矩阵(full-rank or positive definite matrix)
- 对
w
∗
w^*
w∗求导并让其导数式=0即可求得最优解,因此
- w ∗ = ( X T X ) − 1 X T y w^* = (X^TX)^{-1} X^T y w∗=(XTX)−1XTy,其中, ( X T X ) − 1 (X^TX)^{-1} (XTX)−1为 ( X T X ) (X^TX) (XTX)的逆矩阵
- 逆矩阵:
- 只有方阵才有逆矩阵
- 矩阵和其逆矩阵相乘等于单位矩阵(从左上到右下的对角线上的元素为1,其余元素为0),效果等于实数中一个数乘以其倒数就等于1
-
w
∗
=
a
r
g
m
i
n
w
∗
(
y
−
X
w
∗
)
T
(
y
−
X
w
∗
)
w^*=arg \ \ min_{w^*} \ \ (y-Xw^*)^T (y-Xw^*)
w∗=arg minw∗ (y−Xw∗)T(y−Xw∗),其中 X表示m*d维的x
- 令
w
∗
=
(
w
;
b
)
=
(
w
1
;
w
2
;
.
.
.
;
w
d
;
b
)
w^* = (w;b) = (w_1; w_2; ...; w_d; b)
w∗=(w;b)=(w1;w2;...;wd;b),从一元线性回归方程中可得:
- 最小二乘法:
- 如何确定w和b?
正则化 Regularization
理想情况, X T X X^TX XTX是满秩的,但是实际情况中多数不是满秩,此时可解出多个w,且都能使均方误差最小化,如果选择一个w作为输出?—正则化项
- 什么是正则化?
- 让w的个数最小化就是正则化
- 形式: λ 2 ∣ ∣ W ∣ ∣ 2 2 , λ > = 0 \frac{\lambda}{2} ||W||^2_2, \lambda >= 0 2λ∣∣W∣∣22,λ>=0,其中 ∣ ∣ W ∣ ∣ 2 2 ||W||^2_2 ∣∣W∣∣22 表示二范数
- 整体结构: m i n { ∑ ( y − W T x ) + λ 2 ∣ ∣ W ∣ ∣ 2 2 } , λ > = 0 min\{\sum(y-W^Tx) + \frac{\lambda}{2}||W||^2_2\}, \lambda>=0 min{∑(y−WTx)+2λ∣∣W∣∣22},λ>=0
对数线性回归 log-linear regression
- 对数线性回归解决的了,线性模型输出值之间可能存在跨度太大的问题,即将输出标记控制在指数尺度上。
通过 l n y = w T x + b ln y = w^Tx +b lny=wTx+b,试图让 e w T x + b e^{w^Tx+b} ewTx+b 逼近y。
- 对数线性回归适合与回归问题
- 对数几率回归则适用于分类问题
对数几率回归
- 二分类问题中, y ∈ { 0 , 1 } y \in \{0,1\} y∈{0,1},线性回归的预测值是实值,不好用与分类中,而 “单位阶跃函数” unit-step,可以将值转换为0/1.
但是单位阶跃函数不连续,所以不能直接作用在线性回归上,而对数几率函数可以替代单位阶跃函数,且它是连续的。
-
对数几率函数: y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(w^Tx+b)}} y=1+e−(wTx+b)1
-
它是一种 Sigmoid函数,将 ( w T x + b ) (w^Tx+b) (wTx+b),设为 z,该函数将z转化为接近0或1的值
-
其中几率为,得到正例的可能性 和 1 - 得到正例的可能性(即反例)的比值,对这个几率取对数就是叫对数几率(log odds, logit)
-
l n y 1 − y = w T x + b ln\frac{y}{1-y}=w^Tx+b ln1−yy=wTx+b
-
对数几率回归优点:
- 不仅可以预测类别,还可以得到近似的概率预测
- 对数几率函数是任意阶可导的凸函数(凸函数是可以直接用于求最优解的函数)
-
求解对数几率函数中的w和b:极大似然估计
数学基础:极大似然估计 MLE
- 什么时候用极大似然估计:模型已定,参数未知
- 采样要满足的假设:所有采样都要独立同分布
- 正态分布下的极大似然估计的公式:
- f ( x ) = 1 2 π σ e x p ( − ( x − μ ) 2 2 σ 2 ) f(x)=\frac{1}{\sqrt{2\pi}\sigma} exp(-\frac{(x-\mu)^2}{2\sigma^2}) f(x)=2πσ1exp(−2σ2(x−μ)2)
P ( x ∣ θ ) P(x|\theta) P(x∣θ) 输入有两个,一个x,一个是模型的参数 θ \theta θ
- 概率函数: θ \theta θ 已知,x是变量;描述对于不同样本点x,其出现概率是多少
- 似然函数:x已知, θ \theta θ是变量;描述对于不同的模型参数,出现x这个样本点的概率是多少。
- 如何求极大似然估计?
- 令其导数=0,理解起立就是,函数有切线,函数中不同的位置对应着不同的切线,如何找到极值点?就是当它切线与x轴平行的时候,即切线斜率=0的时候,而这个切线斜率就是函数对应的导数。
数学基础:贝叶斯公式 Bayes
-
区分概率和统计:前者已知模型和参数,推数据;后者已知数据,推模型和参数。
-
贝叶斯公式:
- P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A),核心就是条件概率和联合概率
- 把B展开:
- P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ∣ A ) ∣ ( A ) + P ( B ∣ ∼ A ) P ( ∼ A ) P(A|B)=\frac{P(B|A)P(A)}{P(B|A)|(A)+P(B|\sim A)P(\sim A)} P(A∣B)=P(B∣A)∣(A)+P(B∣∼A)P(∼A)P(B∣A)P(A),其中 ~A表示非A
-
贝叶斯公式就是在描述,How much you can trust evidence
- 理解公式和思想的例子:一辆车的警报响了;
- 事件A表示车被砸
- 事件B表示警报响
- P(A|B)表示警报响了并且车被砸了概率
- P(B|A)表示车被砸引发了警报的概率
- P(B|~A)表示警报响了,但是车并没有被砸
- 理解公式和思想的例子:一辆车的警报响了;
线性判别分析 (Linear Discriminant Analysis LDA)
-
线性判别分析主要用于分类问题,也叫 Fisher判别分析,是一种监督降维方法
-
LDA思想:设法将样本投影到一条直线上,使样本在这条线上最容易分类;要求,同类近,异类远
-
线性判别模型:采用直线或超平面将样本直接切开,表示为 y = f(w^T x + b),划分平面表示为 w^T x + b = 0。常见模型,逻辑回归(sigmod函数)、感知机(激活函数)
-
其中 w就是我们要找的投影线的向量,我们只关心向量方向,而不关心模长
-
为了让异类样本相隔远,就需要让异类均值的差大,让同类间离散小,就需要同类的协方差小
-
最大化目标: J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T Σ 0 w + w T Σ 1 w J=\frac{||w^T \mu_0 - w^T \mu_1||^2_2}{w^T \Sigma_0 w + w^T \Sigma_1 w} J=wTΣ0w+wTΣ1w∣∣wTμ0−wTμ1∣∣22 展开得 w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w \frac{w^T(\mu_0 - \mu_1)(\mu_0 - \mu_1)^Tw}{w^T(\Sigma_0+\Sigma_1)w} wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw
-
类内方差小 min,类间均值大 max
- within-class scatter matrix: S w = Σ 0 + Σ 1 S_w = \Sigma_0 + \Sigma_1 Sw=Σ0+Σ1
- between-class scatter matrix: S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b = (\mu_0-\mu_1)(\mu0-\mu_1)^T Sb=(μ0−μ1)(μ0−μ1)T
-
改写后, J = w T S b w w T S w w J = \frac{w^T S_b w}{w^T S_w w} J=wTSwwwTSbw,这就是LDA的最大化目标,即 Sb和Sw的广义瑞利商(generalized rayleigh quotient),要求的就是 max J
- 此时,max J 不可解,因为w会被约掉;但由于w的大小并不会影响最终结果,因为只需要确定w方向。因此,解决方案就是 固定w的大小,固定的方式有很多种,书中是将分母大小固定,
w
T
S
w
w
=
1
w^T S_w w = 1
wTSww=1:
- 已知 Sw的大小是固定的,为什么?因为给定样本后,Sw是个固定的矩阵,是个常量;这么做就等价于固定w的模长(不管固定分子还是分母都是可以的,因为样本给定后,均值和方差都是固定的)
- 所以 max J = w T S b w w^T S_b w wTSbw,s.t. w T S w w = 1 w^T S_w w=1 wTSww=1
- 而通常优化问题都是转化成最小化问题,那么此时 max J -> min J:
- m i n w J = − w T S b w min_w J = - w^T S_b w minwJ=−wTSbw,s.t. w T S w w = 1 w^T S_w w=1 wTSww=1
- 求解带约束的优化问题的常用方法:拉格朗日乘子法
- 此时,max J 不可解,因为w会被约掉;但由于w的大小并不会影响最终结果,因为只需要确定w方向。因此,解决方案就是 固定w的大小,固定的方式有很多种,书中是将分母大小固定,
w
T
S
w
w
=
1
w^T S_w w = 1
wTSww=1:
数学基础:拉格朗日乘子法
-
对于仅含约束的优化问题:
- m i n x f ( x ) min_x f(x) minxf(x),s.t. h i ( x ) = 0 h_i(x)=0 hi(x)=0,i = 1,2,…,n
-
其中自变量x属于实数,f(x)和hi(x)均有连续的一阶偏导数。首先推出其拉格朗日函数:
- L ( x , λ ) = f ( x ) + ∑ i = 1 n λ i h i ( x ) L(x, \lambda) = f(x) + \sum_{i=1}^n \lambda_i h_i(x) L(x,λ)=f(x)+∑i=1nλihi(x)
-
其中 λ = ( λ 1 , λ 2 , . . . , λ n ) T \lambda = (\lambda_1, \lambda_2,...,\lambda_n)^T λ=(λ1,λ2,...,λn)T 为拉格朗日乘子。然后对拉格朗日函数关于x求偏导。并令导数=0,再搭配约束条件 h i ( x ) = 0 h_i(x)=0 hi(x)=0解出x,求解出所有x即为上述优化问题的所有可能(极值点)(只能求出1个或者多个局部极值点,不能确定哪个是想要的)
-
求解 w
- m i n w J = − w T S b w min_w J = - w^T S_b w minwJ=−wTSbw,s.t. w T S w w − 1 = 0 w^T S_w w-1=0 wTSww−1=0,其中 w T S w w − 1 = 0 w^T S_w w-1=0 wTSww−1=0 就是 h(x)
- 由拉格朗日乘子法可得拉格朗日函数: L ( w , λ ) = − w T S b w + λ ( w T S w w − 1 ) L(w, \lambda) = -w^TS_b w + \lambda(w^TS_w w - 1) L(w,λ)=−wTSbw+λ(wTSww−1),也就是 f(x)+h(x)
- 对 w 求偏导:
- ∂ L ( w , λ ) ∂ w = − ∂ ( w T S b w ) ∂ w + λ ∂ ( w T S w w − 1 ) ∂ w \frac{\partial L(w, \lambda)}{\partial w} = - \frac{\partial (w^T S_b w)}{\partial w} + \lambda \frac{\partial (w^T S_w w - 1)}{\partial w} ∂w∂L(w,λ)=−∂w∂(wTSbw)+λ∂w∂(wTSww−1)
- = − ( S b + S b T ) w + λ ( S w + S w T ) w = -(S_b + S_b^T)w + \lambda(S_w + S^T_w)w =−(Sb+SbT)w+λ(Sw+SwT)w
- 由于 Sb=SbT,Sw=SwT(因为Sb和Sw都是对称矩阵),所以:
- L ( w , λ ) = − 2 S b w + 2 λ S w w L(w, \lambda) = -2 S_b w + 2 \lambda S_w w L(w,λ)=−2Sbw+2λSww
- 令上式 = 0:
-
S
b
w
=
λ
S
w
w
S_b w = \lambda S_w w
Sbw=λSww (广义特征值)
- 特征值: A x = λ x Ax = \lambda x Ax=λx
- 广义特征值: A x = λ B x Ax = \lambda B x Ax=λBx
-
S
b
w
=
λ
S
w
w
S_b w = \lambda S_w w
Sbw=λSww (广义特征值)
- 将Sb和Sw展开:
(
μ
0
−
μ
1
)
(
μ
0
−
μ
1
)
T
w
=
λ
S
w
w
(\mu_0-\mu_1)(\mu_0-\mu_1)^T w = \lambda S_w w
(μ0−μ1)(μ0−μ1)Tw=λSww
- 其中, μ 0 \mu_0 μ0 和 μ 1 \mu_1 μ1 是列向量,它们相减还是列向量, ( μ 0 − μ 1 ) T (\mu_0-\mu_1)^T (μ0−μ1)T是行向量,w是列向量;行向量*列向量 = 实数,所以:
- 令
(
μ
0
−
μ
1
)
T
w
=
γ
(\mu_0 - \mu_1)^T w = \gamma
(μ0−μ1)Tw=γ,则:
- γ ( μ 1 − μ 2 ) = λ S w w \gamma (\mu_1 - \mu_2) = \lambda S_w w γ(μ1−μ2)=λSww
- w = γ λ S w − 1 ( μ 0 − μ 1 ) w = \frac{\gamma}{\lambda} S^{-1}_w (\mu_0 - \mu_1) w=λγSw−1(μ0−μ1)
- 由于最终求解的w不关心其大小,只关心方向,所以令常数项=1,即
γ
λ
=
1
\frac{\gamma}{\lambda}=1
λγ=1,此时有:
- w = S w − 1 ( μ 0 − μ 1 ) w = S^{-1}_w (\mu_0 - \mu_1) w=Sw−1(μ0−μ1)
数学基础:广义特征值
- 定义:设A, B为 n阶方阵,若存在
λ
\lambda
λ,使得方程
A
x
=
λ
B
x
Ax=\lambda Bx
Ax=λBx 存在非零解,则称
λ
\lambda
λ 为A相对于 B的特征广义指,x为A相对于B的属于广义特征值
λ
\lambda
λ 的特征向量。
- 特别地,当 B = I(单位矩阵)时,广义特征值问题退化为标准特征值问题。
数学基础:广义瑞利商
- 定义:设A, B为 n阶厄米(Hermitian)矩阵,且B正定,称
R
(
x
)
=
x
H
A
x
x
H
B
x
R(x)=\frac{x^H Ax}{x^H Bx}
R(x)=xHBxxHAx (x != 0) 为A相对于B的广义瑞利商。
- 特别地,当 B = I(单位矩阵)时,广义瑞利商退化为瑞利商。
- 其中,当矩阵是实数矩阵时,厄米矩阵就等于转置,即 A H = A T A^H=A^T AH=AT,此时 A和A^H对称;而当元素为复数时,会有不同。
- 性质:假设,
λ
i
,
x
i
(
i
=
1
,
2
,
.
.
.
,
n
)
\lambda_i, x_i (i=1,2,...,n)
λi,xi(i=1,2,...,n) 为A相对于B的广义特征值和特征向量,且
λ
1
<
=
λ
2
<
=
.
.
.
<
=
λ
n
\lambda_1 <= \lambda_2 <= ... <= \lambda_n
λ1<=λ2<=...<=λn,则有:
- m i n x ! = 0 R ( X ) = x H A x x H b x = λ 1 , x ∗ = x 1 min_{x != 0} \ \ R(X) = \frac{x^H Ax}{x^H bx} = \lambda_1, \ \ x^* = x_1 minx!=0 R(X)=xHbxxHAx=λ1, x∗=x1
- m a x x ! = 0 R ( x ) = x H A x x H B x = λ n , x ∗ = x n max_{x!=0} \ \ R(x) = \frac{x^H Ax}{x^H Bx} = \lambda_n, \ \ x^* = x_n maxx!=0 R(x)=xHBxxHAx=λn, x∗=xn
多分类问题
- 学习:一般是利用二分类学习器解决多分类问题,通过拆解法,将多分类任务拆为若干个二分类任务求解。
- 测试:对这些分类器的预测结果集成得到多分类结果。
- 拆分策略:
- One vs One
- 将N个类别两两配对,产生N(N-1)/2个二分类任务(也就是训练N(N-1)/2个分类器)
- 测试阶段,新样本提交给所有的分类器,得到N(N-1)/2个分类结果,把预测最多的类别作为最终结果
- 存储开销和测试开销会大
- One vs Rest
- 将一个类的样例作为正例,其余全部作为反例,来训练N个分类器
- 测试阶段,仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果;若有多个分类器预测为正类,则根据置信度最大的分类器的类别标记作为分类结果
- 存储开销和测试时间开销通常小于上一个;如果类别很多的情况下,测试时间开销就大于上一个,因为她需要用到全部样例,而上一个朱需要用到两个类的样例
- 预测性能,二者差不多
- Many vs Many
- 每次将若干个类作为正类,若干个其他类作为反类。正反类构造必须有特殊的设计,不能随意选取,常用技术:纠错输出码(Error Correction Output Codes, ECOC)
- ECOC是将编码的思想引入类别拆分,尽可能在解码过程中具有容错性
- 工作过程:
- 编码:对N个类别做M次划分,每次划分将两部分类别分别划分为正反类,从而形成一个二分类训练集,这样产生M个训练集,可以训练出M个分类器
- 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将编码与每个类别的各自编码进行比较,返回其中距离最小的类别作为最终预测结果
- 类别划分通过编码矩阵(coding matrix) 指定,常见形式 二元码、三元码
- 每次将若干个类作为正类,若干个其他类作为反类。正反类构造必须有特殊的设计,不能随意选取,常用技术:纠错输出码(Error Correction Output Codes, ECOC)
- One vs One
类别不平衡问题 class-imbalance
- 前提:分类任务中,不同类别的训练样例数母差别很大,比如,正类样例少,反类样例特别多
- 类别不平衡处理的基本方法:
- 基本策略:再缩放(rescaling)
- 几率y/(1-y)反映了正例可能性和反例可能性之比,若其 > 1,则预测为正例;
- 然而,训练集中正反例数目不同时,令m+表示正例数目,m-表示反例数目,则,目测几率是 m+/m-
- 由于,通常假设训练集是真实样本总体的无偏采样,因此观测几率就代表了真实几率。于是,只要分类器的预测几率高于观测几率就判定为正例:
- y/(1-y) > m+/m-,则 预测为正例
- 而 分类器基于 y/(1-y)进行决策,因此,需要对预测值进行调整,即再缩放:
- y ′ 1 − y ′ = y 1 − y m − m + \frac{y'}{1-y'} = \frac{y}{1-y} \frac{m^-}{m^+} 1−y′y′=1−yym+m−
- 弊端:假设往往不成立,即,训练集是真实样本总体的无偏采样
- 几率y/(1-y)反映了正例可能性和反例可能性之比,若其 > 1,则预测为正例;
- 主流做法1:欠采样(undersampling)
- 直接对训练集里的反类样例进行欠采样,即去除一些反例,使得正反数目接近
- 优势:开销小
- 弊端:不能随意丢弃反例,会丢失重要信息,需要通过特定算法来处理
- 主流做法2:过采样(oversampling)
- 对训练集里的正类样例进行过采样,即增加一些正例使得正反数目接近
- 弊端:不能随便对样例进行重复采样,否则会过拟合
- 主流做法3:阈值移动(threshold-moving)
- 直接基于原始训练集进行学习,但是在训练好的分类器进行预测时,将 y ′ 1 − y ′ = y 1 − y m − m + \frac{y'}{1-y'} = \frac{y}{1-y} \frac{m^-}{m^+} 1−y′y′=1−yym+m−嵌入到其决策过程中
- 基本策略:再缩放(rescaling)