文章目录
P13 (系列四)线性分类1 - 背景
线性分类
对于分类任务,线性回归模型就无能为力了,但是我们可以在线性模型的函数进行后再加入一层激活函数,这个函数是非线性的,激活函数的反函数叫做链接函数。我们有两种线性分类的方式:
-
硬分类,我们直接需要输出观测对应的分类。这类模型的代表为:
- 线性判别分析(Fisher 判别)
- 感知机
-
软分类,产生不同类别的概率,这类算法根据概率方法的不同分为两种
- 生成式(根据贝叶斯定理先计算参数后验,再进行推断):高斯判别分析(GDA)和朴素贝叶斯等为代表
- GDA(连续)
- Naive Bayes (离散)
- 判别式(直接对条件概率进行建模):Logistic 回归
- 先验概率(Prior Probability)
先验概率是指在获得任何观测数据之前,对某一事件或参数的概率估计。它反映了我们对某一事件或参数在没有任何额外信息的情况下的初始信念或假设。在贝叶斯统计中,先验概率是贝叶斯推理的起点。
- 后验概率(Posterior Probability)
后验概率是指在获得观测数据之后,对某一事件或参数的概率估计。它是基于先验概率和观测数据(通过似然函数)计算得到的。后验概率反映了我们在获得新信息后对某一事件或参数的信念更新。
Linear Regnession
①线性 ----x----> 1、属性非线性 特征转换(多项式回归)
2、全局非线性线性分类(激活函数是非线性)
3、系数非线性 神经网络(感知机)
②全局性 ------x-----> 线性样条回归,决策树
③数据未加工 ----x------> PCA 流形
- 生成式(根据贝叶斯定理先计算参数后验,再进行推断):高斯判别分析(GDA)和朴素贝叶斯等为代表
P14 (系列四)线性分类2 - 感知机
1、两分类-硬分类-感知机算法
我们选取激活函数为:
s i g n ( a ) = { + 1 , a ≥ 0 − 1 , a < 0 sign(a)=\left\{\begin{matrix}+1,a\ge0\\-1,a\lt0\end{matrix}\right. sign(a)={
+1,a≥0−1,a<0
这样就可以将线性回归的结果映射到两分类的结果上了。
- 损失函数只计算被错误分类的点
定义损失函数为错误分类的数目,比较直观的方式是使用指示(indicate)函数,但是指示函数不可导,但W是连续的,因此可以定义:
L ( w ) = ∑ x i ∈ D w r o n g − y i w T x i L(w)=\sum\limits_{x_i\in\mathcal{D}_{wrong}}-y_iw^Tx_i L(w)=xi∈Dwrong∑−yiwTxi
其中, D w r o n g \mathcal{D}_{wrong} Dwrong是错误分类集合,实际在每一次训练的时候,我们采用梯度下降的算法。损失函数对 w w w 的偏导为:
∂ ∂ w L ( w ) = ∑ x i ∈ D w r o n g − y i x i \frac{\partial}{\partial w}L(w)=\sum\limits_{x_i\in\mathcal{D}_{wrong}}-y_ix_i ∂w∂L(w)=xi∈Dwrong∑−yixi
但是如果样本非常多的情况下,计算复杂度较高,但是,实际上我们并不需要绝对的损失函数下降的方向,我们只需要损失函数的期望值下降,但是计算期望需要知道真实的概率分布,我们实际只能根据训练数据抽样来估算这个概率分布(经验风险):
KaTeX parse error: Got function '\hat' with no arguments as subscript at position 37: … D}[\mathbb{E}_\̲h̲a̲t̲{p}[\nabla_wL(w…
我们知道, N N N 越大,样本近似真实分布越准确,但是对于一个标准差为 σ \sigma σ 的数据,可以确定的标准差仅和 N \sqrt{N} N 成反比,而计算速度却和 N N N 成正比。因此可以每次使用较少样本,则在数学期望的意义上损失降低的同时,有可以提高计算速度,如果每次只使用一个错误样本,我们有下面的更新策略(根据泰勒公式,在负方向):
w t + 1 ← w t + λ y i x i w^{t+1}\leftarrow w^{t}+\lambda y_ix_i wt+1←wt+λyixi
是可以收敛的,同时使用单个观测更新也可以在一定程度上增加不确定度,从而减轻陷入局部最小的可能。在更大规模的数据上,常用的是小批量随机梯度下降法。
P15(系列四) 线性分类3-线性判别分析(Fisher)模型定义分析
2、两分类-硬分类-线性判别分析 LDA
- 主体思想:类内小,内间大 ----> 类比于 高内聚 低耦合
在 LDA 中,我们的基本想法是选定一个方向,将试验样本顺着这个方向投影,投影后的数据需要满足两个条件,从而可以更好地分类:
- 相同类内部的试验样本距离接近。
- 不同类别之间的距离较大。
首先是投影,我们假定原来的数据是向量 x x x,那么顺着 $ w$ 方向的投影就是标量:
z = w T ⋅ x ( = ∣ w ∣ ⋅ ∣ x ∣ cos θ ) z=w^T\cdot x(=|w|\cdot|x|\cos\theta) z=wT⋅x(=∣w∣⋅∣x∣cosθ)
对第一点,相同类内部的样本更为接近,我们假设属于两类的试验样本数量分别是 N 1 N_1 N1和 N 2 N_2 N2,那么我们采用方差矩阵来表征每一个类内的总体分布,这里我们使用了协方差的定义,用 S S S 表示原数据的协方差:
2.1 协方差的定义
- 协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。它反映了两个变量在变化过程中是同向变化还是反向变化,以及变化的程度如何。
协方差的计算公式为:
Cov ( X , Y ) = ∑ i = 1 n [ ( x i − μ x ) ( y i − μ y ) ] n − 1 \text{Cov}(X,Y) = \frac{\sum_{i=1}^{n}[(x_i - \mu_x)(y_i - \mu_y)]}{n-1} Cov(X,Y)=n−1∑i=1n[(xi−μx)(yi−μy)]
其中, X X X 和 Y Y Y 是两个随机变量, x i x_i xi 和 y i y_i yi 是它们的观测值, μ x \mu_x μx 和 μ y \mu_y μy 分别是 X X X 和 Y Y Y 的均值(或期望值), n n n 是观测值的数量。注意,这里除以 n − 1 n-1 n−1 而不是 n n n 是为了得到样本协方差的无偏估计。
2.2 协方差的含义与性质
- 正协方差:如果两个变量的变化趋势一致,即当一个变量大于其均值时,另一个变量也倾向于大于其均值,那么这两个变量之间的协方差为正。这表示两个变量之间存在正相关关系。
- 负协方差:如果两个变量的变化趋势相反,即当一个变量大于其均值时,另一个变量却小于其均值,那么这两个变量之间的协方差为负。这表示两个变量之间存在负相关关系。
- 零协方差:如果两个变量的协方差为零,则表明它们在统计上不相关,但这并不意味着它们之间没有任何关系,只是说明它们之间没有线性关系。
- 对称性:协方差是对称的,即 Cov ( X , Y ) = Cov ( Y , X ) \text{Cov}(X,Y) = \text{Cov}(Y,X) Cov(X,Y)=Cov(Y,X)。
- 线性变换:协方差在变量进行线性变换时具有特定的性质,如 Cov ( a X , b Y ) = a b Cov ( X , Y ) \text{Cov}(aX,bY) = ab\text{Cov}(X,Y) Cov(aX,bY)=abCov(X,Y),其中 a a a 和 b b b 是常数。
- 与方差的关系:方差是协方差的一种特殊情况,即当两个变量相同时的协方差即为该变量的方差。
2.3 注意事项
- 协方差仅衡量线性关系,对于非线性关系则无法准确反映。
- 协方差对尺度敏感,因此在比较不同尺度的变量时需要特别注意。
- 协方差为零只表示两个变量之间没有线性关系,但并不意味着它们之间完全独立或没有任何关系。
S1、S2分别是两个类的方差,表示类内部数据的紧凑程度,s1+s2的最小值能保证两类都紧凑
C 1 : V a r z [ C 1 ] = 1 N 1 ∑ i = 1 N 1 ( z i − z c 1 ‾ ) ( z i − z c 1 ‾ ) T = 1 N 1 ∑ i = 1 N 1 ( w T x i − 1 N 1 ∑ j = 1 N 1 w T x j ) ( w T x i − 1 N 1 ∑ j = 1 N 1 w T x j ) T = w T 1 N 1 ∑ i = 1 N 1 ( x i − x c 1 ‾ ) ( x i − x c 1 ‾ ) T w = w T S 1 w C 2 : V a r z [ C 2 ] = 1 N 2 ∑ i = 1 N 2 ( z i − z c 2 ‾ ) ( z i − z c 2 ‾ ) T = w T S 2 w \begin{align} C_1:Var_z[C_1]&=\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(z_i-\overline{z_{c1}})(z_i-\overline{z_{c1}})^T\nonumber\\ &=\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(w^Tx_i-\frac{1}{N_1}\sum\limits_{j=1}^{N_1}w^Tx_j)(w^Tx_i-\frac{1}{N_1}\sum\limits_{j=1}^{N_1}w^Tx_j)^T\nonumber\\ &=w^T\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(x_i-\overline{x_{c1}})(x_i-\overline{x_{c1}})^Tw\nonumber\\ &=w^TS_1w\\ C_2:Var_z[C_2]&=\frac{1}{N_2}\sum\limits_{i=1}^{N_2}(z_i-\overline{z_{c2}})(z_i-\overline{z_{c2}})^T\nonumber\\ &=w^TS_2w \end{align} C1:Varz[C1]C2:Varz[C2]=N11i=1∑N1(zi−zc1)(zi−zc1)T=N11i=1∑N1(wTxi−N11j=1∑N1wTxj)(wTxi−N11j=1∑N1wTxj)T=wTN11i=1∑N1(xi−xc1)(xi−xc1)Tw=wTS1w=N21i=1∑N2(zi−zc2)(zi−zc2)T=wTS2w
所以类内距离可以记为:
V a r z [ C 1 ] + V a r z [ C 2 ] = w T ( S 1 + S 2 ) w \begin{align} Var_z[C_1]+Var_z[C_2]=w^T(S_1+S_2)w \end{align} Varz[C1]+Varz[C2]=wT(S1+S2)w
对于第二点,我们可以用两类的均值表示这个距离:
( z c 1 ‾ − z c 2 ‾ ) 2 = ( 1 N 1 ∑ i = 1 N 1 w T x i − 1 N 2 ∑ i = 1 N 2 w T x i ) 2 = ( w T ( x c 1 ‾ − x c 2 ‾ ) ) 2 = w T ( x c 1 ‾ − x c 2 ‾ ) ( x c 1 ‾ − x c 2 ‾ ) T w \begin{align} (\overline{z_{c1}}-\overline{z_{c2}})^2&=(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^Tx_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^Tx_i)^2\nonumber\\ &=(w^T(\overline{x_{c1}}-\overline{x_{c2}}))^2\nonumber\\ &=w^T(\overline{x_{c1}}-\overline{x_{c2}})(\overline{x_{c1}}-\overline{x_{c2}})^Tw \end{align} (zc1−