降维
高维向量处理的时候会极大的消耗系统资源。
降维方法:
主成分分析、线性判别分析、等距映射、局部线性嵌入、拉普拉斯特征映射、局部保留投影。
PCA最大方差理论
我们假设原始数据的特征向量组成的高维空间有很多冗余和噪声。
降维的意义:
去掉噪声数据。
寻找内部特征,提升特征表达能力,降低训练复杂度。
主成分分析(PrincipalComponentsAnalysis,PCA):
经典
线性、非监督、全局的降维算法。
主成分是什么?
使用二维空间直观理解:
有一条“主轴”使得原始样本数据分布的很“分散”。
原始数据在“主轴”这个方向上“方差更大”。
类别信号处理:
信号具有较大方差,
噪声具有较小方差。
信噪比越大意味着数据质量越高。
PCA的缺点:
PCA的优化目标
最大化投影方差,也就是让数据在主轴上投影的方差最大。
PCA优化过程
1、样本数据中心化处理
为了后面计算方差的方便
2、求样本协方差矩阵
假设一个投影方向的单位方向向量为w。
注意,最后求出的w由w1,w2...,wd组成,
另外w跟样本数据的维度一样,
w本身是样本数据投影在上面方差的向量。
单位方向向量方便求解。
那么原始样本向量xi在假设向量w上的投影公式:

那么投影后的方差可以表示为:

公式中wt和w中间的就是样本协方差矩阵,记做Σ。
3、对协方差矩阵进行特征值分解,将特征值从大到小排列。
转化为在特定条件下最大化问题,问题表示为:

引入拉格朗日乘子对w求导得出公式:

进而得出这个:

由这个公式得出x投影后的方差就是协方差矩阵的特征值。
解释上句话:Σ是样本的协方差矩阵,λ 是Σ的特征值。D(x)是投影后的方差,与λ相等。
所以推导这么多,我们找到了要找的方差,那就是样本协方差矩阵的特征值。
最大投影方向也就找到了,
那就是样本协方差矩阵最大特征值所对应的特征向量(根据特征值与特征向量的性质)。
第二大也就是第二大特征值对应的特征向量。
4、取特征值前d大对应的特征向量ω1,ω2,...,ωd
相当于样本保留前d大投影方向的数据性质。
n维样本映射到d维公式:

降维后的信息占比:

大概可以理解为前d个特征值与所有特征值占比。
PCA最小平方误差理论
问题的目标:
找到一个d维超平面,使得样本点到这个超平面距离平方和最小。
到超平面距离公式:

设x k (k是x的下标)表示样本点,
x k ~(~位于x头部) 表示x k在超平面D上的投影向量。
设超平面D由d个标准正交基组成 W={w1, w2,....wd} 。
位于超平面D上的投影向量x k ~使用基向量W表示的公式为:

此公式表示各个维度的分向量相加。
其中括号中的内容表示x k在wi方向上的投影长度。
括号中的内容乘以wi 表示x k在wi基向量上的分量。
在限定条件下的优化目标公式:

s.t. 表示约束条件,
该条件之前是假设,现在首次出现在优化公式中,作为条件出现。
x k ~ 可以代入求解。
后面推导略去。。
得出结论:
最佳直线ω与最大方差法求解的最佳投影方向一致,
即协方差矩阵的最大特征值所对应的特征向量,
线性判别分析LDA
(LinearDiscriminantAnalysis,LDA)
有监督学习,用于降维。
原理:
最大化类间距离、最小化类内距离的思想。
前提条件:
每个类数据都是高斯分布、
(推导公式的前提)
各个类的协方差相等。
(此处需要确认是公式)
对于带有标签的数据,如何降维
降维目标:
不损失类别信息。
并且投影后的样本尽可能按照原始类别分开。
原始类别“在一起”的样本投影后也“在一起”。
类间举例最大化优化问题公式:

假设一个二分类问题,
设有C1,C2两个类别样本。
设u1, u2为两类的均值向量。
设w是要寻找的样本点投影方向上的投影向量。
设u1~, u2~ 表示两类的中心在w方向上的投影向量。
类间距离最大,类内距离最小优化公式:


目标函数定义为类间距离和类内距离的比值。
我们将整个数据集的类内方差定义为各个类分别的方差之和 D1 + D2。
D1,D2分别表示两类投影后的方差。
推导-类间散度矩阵:

推导-类内散度矩阵:

最终简化优化公式:

推导过程:
最大化J(w),对w求偏导。
最终优化公式:




最大化的目标对应了一个矩阵的特征值。
LDA降维变成了一个求矩阵特征向量的问题。
总结:
线性模型对于噪声的鲁棒性比较好。
但是由于模型简单,表达能力有一定的局限。
引入核函数的LDA可以处理较为复杂的数据。
线性判别分析LDA与主成分分析 PCA
类间散度:
每个类别中心到全局中心的一种加权距离。
最大化类间散度:
优化的是每个类别的中心经过投影后离全局中心的投影足够远。
PCA仅仅是把原数据映射到方差比较大的方向。
PCA不考虑标签,降维映射之后的数据不方便分类。
LDA考虑了分类标签的因素。
降维时如何选择两种方法:
是否保留类别信息。
非线性数据降维:
通过核映射等方法对二者分别进行扩展。
非监督学习
两大类方法:
数据聚类:
通过多次迭代来找到数据的最优分割
特征变量关联:
用相关性分析方法来找到变量之间的关系。
聚类
不知道任何样本类别标签的情况下,
通过数据之间的内在关系把样本划分为若干类别。
K均值聚类(KMeansClustering)
基本思想:
迭代方式寻找K个簇(Cluster),
使得聚类结果对应的代价函数最小。
代价函数定义:
各个样本距离所属簇中心点的误差平方和。

有M个样本,
xi 代表第i个样本,
uci 代表xi所属于的簇对应的中心点。
代价函数的迭代步骤:
分配节点到簇:
对每一个样本,将其分配到距离最近的簇,此时簇的中心固定。
计算簇的中心点:
重新计算每个簇的中心点,此处簇内的样本节点是固定的。
缺点:
结果不稳定:通常是局部最优,效果受初始值影响很大。
(此处需要确认为什么是局部最优,为什么受到初始值的影响)
噪音点:无法很好地解决数据簇分布差别比较大的情况(类别间相差100倍),
不太适合离散分类(离散值一般提前固定,而K means一般事先并不知道需要划分成几类)
需要预先确定初始K值,该值与真实值不一定吻合。
一个样本点只能被划分到一个分类。
优点:
速度快,
大数据可伸缩
调优:
归一化:
该算法求距离是基于欧式距离的,
归一化是为了平衡均值和方差大的数据。
离散点处理:
离群点或者少量的噪声数据就会对均值产生较大的影响,导致中心偏移
合理选择K值:
选择K值可以基于经验和多次实验的结果。
手肘法选择K值:
横轴是K值,纵轴是所有簇的误差平方和。
出现明显拐点的就是要选择的K值。
Gap Statistic自动选择K值的方法:
产生和真实原本一样多的随机样本,多次重复求出期望。
此处需要确认原理
核函数:
普通K-means算法的先验:
数据呈球形或高维球形,
但是这种数据并不常见,引入核K-means算法。
核K-means的主要思想:
通过非线性映射,将输入空间中的数据点映射到高位的特征空间中。
并在新的特征空间中进行聚类。
当经典聚类算法失效的时候,可以引入核函数。
改进的K均值算法
K-means++
改进算法中最具影响力
初始值选择改进:
选择离其它中心点比较远的点
ISODATA
K值大小不确定的改进:
剔除样本过少的类,
分裂样本过多分散程度较大的类为两个。
合并两个距离较近的类进行
参数:
逾期的类别数K0:最终产生的实际类别可能是一半的k0到2倍的k0.
每个类要求的最少样本数Nmin。
最大方差sigma: 类别的分散程度超过这个阈值,分列成两个类。
两个聚类中心允许的最小距离Dmin:小于该阈值时,则对这两个类进行合并操作。
证明K均值算法的收敛性
此处需要确认(太过冗长跳过)。
关键词:
最大期望算法(概率模型中无法观测的隐变量情况下的参数估计问题)。
最大似然函数。
隐含变量对应的分布。
找到待优化函数逼近的下界,最大化下界。
优化函数为非凸,无法找到全局最优 可以参考[kmeans聚类理论篇](https://www.cnblogs.com/bourneli/p/3645049.html)。
高斯混合模型
(GaussianMixedModel,GMM)
与K-means均值比较:
都是使用EM算法进行迭代。
问题假设一样:假设每个簇的数据都符合高斯分布。
基本思想:
假设数据可以看作从多个高斯分布中生成出来的。
多个高斯分布的线性组合来对数据分布进行拟合。
每个高斯分模型都有一个权重(概率)参数。
高斯混合模型是生成模型:
根据每个分模型的权重以及分模型本身的均值和方差生成符合混合模型的数据。
寻找最佳均值、方差、权重的过程:
这类问题通常通过最大似然估计求解。
但是此问题直接使用最大似然估计,得到的是非凸函数(目标函数是和的对数,难以变形)。
运行过程:
我们不知道最佳的K个高斯分布的参数。
也不知道每个数据点究竟是哪个高斯分布生成的。
每次循环:
先固定当前高斯分布不变->获得每个数据点由各个高斯分布生成的概率
->固定该生成概率不变->获得一组更佳的高斯分布->直到参数不再变化。
高斯混合模型与K均值算法:
相同:
它们都是可用于聚类的算法;
都需要指定K值;
都是使用EM算法来求解;
都往往只能收敛于局部最优。
优势:
可以给出一个样本属于某类的概率是多少;
不仅仅可以用于聚类,还可以用于概率密度的估计;
并且可以用于生成新的样本点。
自组织映射神经网络
(Self Organizing Map,SOM)
也被称为Kohonen网络
无监督学习重要方法。
可以用作聚类、高维可视化、数据压缩、特征提取等多种用途。
如何工作
生物学:
神经元有序排列
大脑皮层对特定时空信息的输入在特定区域产生兴奋。
听觉通道:神经元结构排列与频率的关系十分密切。
大脑皮层中神经元的结构不是先天安排,而是后天学习自组织的。
抑制现象:
一个神经细胞兴奋,会对周围神经细胞产生抑制。
也就是相邻的神经细胞会存在竞争。
自组织神经网络就是对生物神经系统功的人工神经网络模拟。
自组织映射神经网络:
两层的神经网络
包含输入层和输出层(竞争层):
输入层:模拟感知外界输入信息的视网膜。
输出层:
模拟做出响应的大脑皮层。
输出层中神经元的个数通常是”聚类“的个数。代表每一个需要聚成的类。
输入层与输出层对应:
每个输入的样例在输出层中找到一个和它最匹配的节点,这个节点称为激活节点。
模型训练:
训练时采用“竞争学习”的方式。
用随机梯度下降法更新激活节点的参数;
同时,和激活节点临近的点也根据它们距离激活节点的远近而适当地更新参数。
竞争学习如何体现:
以通过神经元之间的横向抑制连接(负反馈路径)来实现。
此处需要确认
输出层的拓扑关系:
由需求确定
一维线阵
二维平面阵
三维栅格阵
模型参数:
输入单元的维度是D,用i表示,神经元总数为N,用j表示。
计算层(输入单元和神经元之间)的连接权重w ij.
自组织学习过程:
1、初始化
连接权重用小的随机值进行初始化。
2、竞争
判别函数值:
神经元计算每一个输入模式(每个维度上)各自的判别函数值。
判别函数:

如何确定哪个神经元胜利:
具有最小判别函数值的特定神经元为胜利者
3、合作
获胜神经元I(x)决定了“兴奋神经元(此处需要确认)”拓扑邻域的空间位置。
确定了激活节点后,我们也希望更新它附近的节点。
更新程度有什么有关系:
与神经元的距离成反比(节点距离越远,更新的程度要打更大折扣)。
跟时间有关系(此处需要确认时间的作用,以及与时间是什么关系)
4、适应
当调整相关兴奋神经元的连接权重,使得获胜的神经元对相似输入模式的后续应用的响应增强。
此处需要确认xi到底是个什么东西,输入模式到底是什么?
5、迭代
继续步骤(2),直到特征映射趋于稳定。
特点:
每个样本所激活的神经元就是它对应的类别。
保序映射:
任意维输入模式在输出层映射为一维或者二维图形,并保持拓扑结构不变。
对应:
输出层神经元的空间位置对应于输入空间的特定域或特征
兴奋与抑制:
以获胜神经元为中心,对近邻的神经元表现出兴奋性侧反馈,
而对远邻的神经元表现出抑制性侧反馈。
总体表现为:近邻者互相激励,远邻者相互抑制。
VS K均值算法
定下类的个数:
K均值算法需要事先定
自组织映射神经网络则不用
更新数据范围:
K均值算法为每个输入数据找到一个最相似的类后,只更新这个类的参数;
自组织映射神经网络则会更新临近的节点。
如何设计模型和设定训练参数
设定输出层神经元的数量
神经元数量与训练集样本的类别数相关(若不清楚类别数,则尽可能地设定较多的节点数)。
设计输出层节点的排列
对于一般的分类问题:一维线阵
颜色空间或者旅行路径类的问题:二维平面则比较直观。
初始化权值
使权值的初始位置与输入样本的分布区域充分重合:
避免出现大量的初始“死节点”。
(此处需要确认,样本的分布区域与权值有啥关系)
设计拓扑领域
设计原则是使领域不断缩小
相邻神经元对应的权向量之间既有区别又有相当的相似性:
保证当获胜节点对某一类模式产生最大响应时,其领域节点也能产生较大响应。
优势领域的大小用领域的半径表示,通常凭借经验来选择。
(此处需要确认领域是个啥业务含义)
设计学习率
学习率是一个递减的函数:
训练开始时,学习率可以选取较大的值,之后以较快的速度下降.
有利于快速捕捉输入向量的大致结构,后期可以精细的调整权值。
聚类算法的评估
没有标签,如何评估
常见的数据簇的特点
以中心定义的数据簇:
球形,有质心(所有点平均值)。
以密度定义的数据簇:
用密度区别数据簇。
以连接定义的数据簇:
簇内数据有连接
概念定义的数据簇:
簇内数据点具有某种共同性质。
评估子任务
许多情况下无法直接评估:依赖于主观解释。
误差平方和: K均值可以评估,基于密度的不可以评估。
1、估计聚类趋势
“是否有规律”
结果必须非随机。
聚类误差变化:
聚类类别增加,误差应该有明显变化。
如果是随机的结果,那么误差不会变动。
用霍普金斯统计量(HopkinsStatistic):
判断数据在空间上的随机性.
随机生成的点(样本可能的取值范围内)与从样本中找出点的空间比值。
2、判定数据簇数
手肘法和GapStatistic方法
或者其它方法(与以上的结果可能不同)
3、测定聚类质量
簇的分离和簇的紧凑情况。
度量指标:
轮廓系数:
与其它簇点的分离程度,以及与自己簇的点的紧凑程度。
分离越大,紧凑越小聚类质量越好。
均方根标准偏差:

分子表示:
样本点到对应簇中心的距离差平方,每个簇的样本点求和。
在上一步基础上在对所有簇进行求和。
分子表示:
每个簇的样本数量-1,对所有簇的上一步结果求和。
然后乘以样本的维度P。
分母乘以样本维度P是对欧几里得距离维度的惩罚(维度归一化)。
反应的是簇内紧凑程度。
R方(RSquare):
可以用来衡量聚类的差异度。
聚类前后平方误差和指标的改进幅度。

分母表示聚类前把所有样本数据作为一个簇的平方误差和。
分子的减数表示聚类之后的平方误差和。
改进的HubertΓ统计:
是对数据对以及对应中心点的的一致性评价。

求和公式中:
被乘数 d(x,y) 任意两点的距离。
乘数表示任意两点分别对应中心点的距离。
求和公式左侧:
其实是除数的导数。
表示所有“点对”的个数,相当于对每个点对的和做了归一化。
一致性:
求和项中被乘数与乘数大小一致,即同大,同小才比较合理。
造各种类型的数据
评估算法的时候,可以提前造一些具有某些聚类特点的数据,
观察聚类算法在这些数据集上的效果。
概率图模型
一幅图:
观测节点:
观测到的数据。
隐含节点:
潜在的知识
边:
知识与数据的相互关系。
有向边
无向边
概率论解释图:
节点对应于随机变量,
边对应于随机变量的依赖或相关关系。
有向边表示单向的依赖,无向边表示相互依赖关系。
两大分类:
贝叶斯网络(Bayesian Network):
有向图
马尔可夫网络(Markov Network):
无向图
详细分类:
朴素贝叶斯模型、最大熵模型、隐马尔可夫模型、条件随机场、主题模型等。
联合概率分布
根据贝叶斯网络和马尔可夫网络的概率图还原其联合概率分布。
贝叶斯网络图的联合概率分布


1、联合概率公式的展开跟图没有关系
P(A,B,C,D) = P(A)P(B)P(C)P(D) = P(A) P(B|A)P(C|A,B) P(D|A,B,C)
第二个等号后面表示,在A条件下B发生的概率,
在A,B条件下C发生的概率,最后是A,B,C条件下D发生的概率。
2、根据图中的信息,如果两个点不直接有关系,则作为条件的节点可以省略
比如:
P(C|A,B)中B就可以省略,变为 P(C|A)
P(D|A,B,C)中A就可以省略,变为 P(D|B,C)
马尔可夫网络图的联合概率分布
联合概率分布定义:

Z用来归一化,公式整体表示“概率”
Z分母归一化因子定义为:

团的定义:
图中节点x={x1,x2,...,xn}构成的一个子集,
如果自己的任意两点之间都存在边相连,
则这个子集中的所有节点构成了一个团。
最大团的定义:
子集中加入任意其他节点,都不能构成一个团,
称这样的子集构成了一个最大团。
图中有很多最大团。
假设Q为一个图中的一个最大团。
假设C为图中最大团所构成的集合。
一个团对应一个势函数fai Q,是非负的。
势函数fai Q的要求是,在概率较大的变量上取得较大的值:
势函数可以取为指数函数:

H Q 定义为:

例子:

(A,B)、(A,C)、(B,D)、(C,D)均构成团,同时也是最大团。
所有节点的联合概率分布可以表示为:

所有团势函数的乘积。
用指数函数作为势函数代入:


此处需要确认最大图势函数相乘的理论依据。
概率图模型
用来表达概率生成关系。
概率图模型的功能是通过概率图还原概率分布。
概率图表示
使用概率图模型表示朴素贝叶斯模型
朴素贝叶斯模型:
朴素贝叶斯分类器。
通过预测样本属于某个类别的概率来进行分类预测。
公式:

条件概率公式转换:

x=(x1,x2,...,xn)样本的特征向量
P(x)可以忽略,是样本的先验概率
进一步推导(两者成正比):

P(x j | yi) 可以由统计得到:
某个分类下某个特征的概率。
(此处需要确认朴素贝叶斯与贝叶斯分类器的联系)
使用概率图模型表示最大熵模型
熵公式:

条件熵公式:

p~(x)为样本在训练数据集上的经验分布,即x的各个取值在样本中出现的频率统计。
最大熵的求解目标:
学习到合适的分布P(y|x),使得条件熵H(P)的取值最大
极端情况与实际情况:
对训练数据一无所知的情况下,最大熵模型认为P(y|x)是符合均匀分布。
当有了训练集,我们可以引入特征函数f(x,y)。
特征函数与约束:
特征函数f描述了输入x和输出y之间的一个规律。
约束的作用:使得特征函数f(x,y)关于经验分布P~(x,y)的期望值
与特征值关于模型P(y|x)和经验分布P(x)的期望值相等。
特征函数f(x,y)关于经验分布P~(x,y)的期望值计算公式:

f(x,y)关于模型P(y|x)和经验分布P~(x)的期望值计算公式:

最大熵模型:

给定训练数据集T={(x1,y1)....(xN,yN)},以及M个特征函数{fi(x,y), i=1...M}.
最大熵模型求解结果:

最大熵模型归结为学习最佳的参数w,使得Pw(y|x)最大化
与势函数为指数函数的马尔可夫网络类似:

变量x和y构成了一个最大团。
生成式模型与判别式模型
二者区别:
生成模型对联合概率分布建模。
判别式直接对条件概率分布建模。
相同点:
?
概率图模型
生成式:
先对联合概率分布进行建模,
朴素贝叶斯、贝叶斯网络、pLSA、LDA
隐马尔科夫模型(对序列数据进行建模)
判别式:
直接对条件概率分布建模。
最大熵模型
条件随机场(对序列数据进行建模)
此处需要确认LDA pLSA 如何先对联合概率分布建模的?
马尔科夫模型
马尔可夫过程:
假设 n时刻的状态xn的条件分布,仅仅与其前一个状态xn−1有关。

马尔科夫链:
时间和状态取值都是离散的马尔科夫过程
隐马尔可夫模型:
对含有未知参数(隐状态)的马尔可夫链进行建模的生成模型。
简单马尔科夫模型:
所有状态对于观测者可见。
仅仅包含状态间的转移概率。
隐马尔可夫模型:
隐状态xi对于观测者而言是不可见的,yi(与xi对应)可观测。
隐状态xi决定了yi的概率分布。
参数包含了隐状态间的转移概率,
隐状态到观测状态的输出概率、
隐状态x的取值空间、
观测状态y的取值空间
以及初始状态的概率分布。
图:

隐马尔可夫模型建模
隐马尔可夫模型的建模过程:
三种状态:
初始状态:
概率分布
隐状态:
转移概率
隐状态序列
观测状态:
取值空间
隐状态到观测状态的输出概率
观测状态序列
三个基本问题:
概率计算问题(观测序列出现的概率):
已知模型的所有参数,
计算某个观测序列Y出现的概率,
可使用前向和后向算法求解。
预测问题(预测最可能的中间状态):
已知模型所有参数和观测序列Y
计算隐状态序列X,
可使用经典的动态规划算法——维特比算法来求解
学习问题(学习模型参数):
已知观测序列Y,
求解使得该观测序列概率最大的模型参数,
包括隐状态序列、隐状态之间的转移概率分布以及从隐状态到观测状态的概率分布
可使用BaumWelch算法进行参数的学习(最大期望算法的一个特例)
中文分词问题
隐马尔可夫模型通常用来解决序列标注问题,
因此也可以将分词问题转化为一个序列标注问题来进行建模
中文句子每个字的标注过程:
B表示一个词开头的第一个字,
E表示一个词结尾的最后一个字,
M表示一个词中间的字,
S表示一个单字词,
使用隐马尔可夫模型与分词标注过程:
状态:
隐状态定义为标注。
取值空间为{B,E,M,S}
状态间的转义概率:
B和M后面只能是M或者E,S和E后面只能是B或者S。
观测:
每个字就是模型中的观测状态
取值空间为语料中的所有中文字
有监督训练:
此处需要确认,暂时跳过
无监督训练
此处需要确认,暂时跳过
最大熵马尔可夫模型
标注偏置问题
此处需要确认,暂时跳过
主题模型
此处需要确认,暂时跳过
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。