算法总结
E-M算法:
最大期望算法,分为E-step,M-step。目标是最大化目标函数,通常是求导,导数为0。如果不可求导或是不好计算,则寻找目标函数的下界。E-step估计下界(使得下界尽可能等于原目标函数),M-step估计使得下界最大的参数。每做一次EM,下界单调递增,不断逼近目标函数,直至收敛。
GMM:
高斯混合模型,即假设样本数据可由多个高斯分布混合生成。可用作聚类,即每个高斯分布为一类。有数据估计分布,称作密度估计。想法是找到一组参数,使得它们确定的概率分布生成样本点的概率最大。一个样本点由某个分布生成的概率可以计算。固定分布,可知该分布生成的数据点。初始化一个分布,即任意给定其均值,方差,该分布生成了一些数据点。由这些数据点可估计该分布的期望,方差。不断迭代参数,直至收敛。
谱聚类:
先利用特征向量降维,再用k-means聚类。之所以叫谱聚类,是因为谱理论是研究特征值特征向量的理论,和k-means聚类。
步骤:
构造邻接矩阵W;
W各列求和得d1....dn,作为对角线元素构造D;令L=D-W。
求L的前k个较小的特征值,特征向量,由此k个特征向量组成N*k的矩阵。然后将矩阵的每一行看做行向量,利用k-means聚类。
为什么这么做?
假设将图切分为两类,则给定一个切分方案,可构造一个向量f。根据f的定义,f'Lf=2f'fRatioCut(A,A~),因此求图的最小RatioCut,等价于求min f'Lf/f'f
由上式的性质可知,最小值最大值即为L的最小特征值,最大特征值,对应的f为相应特征向量。得到了f,根据f的定义,取值>0的点属于A,<0的点属于A~。不过高级一点,可以对f的行向量做聚类,k-means聚成两类。对切分为k类的情形同理可得。
HMM
隐markov模型。markov链,即满足markov性质的随机过程。markov性质为状态的转移仅和前一状态有关。隐markov模型,是增加了观察状态的markov模型,有两个状态和三个向量:观察状态(例如海草的状态),隐藏状态(即真实状态,例如天气状态),隐藏状态的初始概率p,隐藏状态的概率转移矩阵A,隐藏状态对观察状态的概率矩阵B。
三个应用:评估,解码,学习。
评估:
已知不同HMM和观察序列,求生成观察序列概率最大的HMM。即输出给定HMM下的观察序列的概率即可。简单的想法是计算所有可能的隐藏状态路径,计算对观察状态的概率,然后相加。但是有好多重复项,将重复项放到一个局部概率中,通过t时刻的局部概率alpha_t(j)计算t+1时刻的局部概率。这就是前向算法,alpha_t(j)表示t时刻位于隐藏状态j时,对观察状态O_k_t的概率。
HMM算法包:UMDHMM
解码:
给定一个HMM和状态序列,求生成状态序列概率最大的隐藏状态。
viterbi算法: 局部概率delta_t(i)表示t时刻到达隐藏状态i的最佳路径的最大概率。反向指针ph_t(i)表示最佳路径,即所求的最佳隐藏状态序列。
学习:
给定观察状态,求生成状态序列概率最大的HMM。
前向后向算法。
后向传播算法:
给定多层神经网络,和输入输出,要求出使得误差最小的参数集。方法是给定初始参数集,得到误差函数,利用剃度下降法跌代参数,需要求关于参数的偏导球数。怎么求偏导数呢?后向传播算法。给定初始参数,应用前向传播算法计算每个节点的响应值,包括输出节点的响应值。对每层网络,计算每个节点对于误差的贡献权重,即求误差对该节点的偏导,记为delta_i^l,可证明,根据delta跌代参数。一步步优化,最终得到最优参数。

浙公网安备 33010602011771号