webdancer's Blog
字符串算法
字符串的算法很多,下面讨论几个比较典型的与字符串匹配有关的算法。
1.LCS最长公共子序列
字符串的子序列是指从该字符串中删除一些字符(可以不删除),保持字符之间的相对位置不变,而得到的字符串;$A,B$之间的最大公共子序列是指求出$A,B$相同的子序列中,长度最长的那个。
输入:两个字符串$A,B$,长度为$m,n$
输出:字符串$A,B$的最长公共子序列
RBM-Restricted Boltzmann Machine
最近看了一下RBM的相关内容,理解的还很肤浅,记录一下,共同交流。
我自己觉得学习RBM,还是得看一下Markov Random Field的相关的内容,这样就能比较系统的熟悉这个模型。这篇文章就从MRF开始讨论,学习BM模型,再扩展到RBM模型,最后看一下RBM的训练方法。
Kernel method
kernel method是一种比较古老的统计方法,可以追溯到几十年前。不过最近的流行要归功到SVM在机器学习中的流行,最初SVM处理的是向量化的数据,不过很快人们发现借助Kernel,人们很容易的处理各种形式的数据,这给SVM这类的方法强大的威力。下面我们就来看一下kernel method方法。
LDA-linear discriminant analysis
分类问题也可以用降维来理解,比如一个$D$维的数据点$x$,我们可以采用下面的映射进行线性的降维,
\[
y=\theta^{T}x
\]
在计算出$y$后,就可以选择一个阈值$h$,来进行分类。正如我们在前面的PCA模型中看到的,降维会有信息的损失,可能会在降维过程中,丢失使数据可分的特征,导致分类的效果不理想。
概率基础
在模式识别领域中,我们遇到的一个很关键的问题就是不确定性。概率论为我们解决这种不确定性提供了一个系统的框架。在得到了相关变量的概率信息后,我们需要用决策论的相关知识做出最优的判断。也就是说,我们将模式识别的过程分为了两个阶段,第一个阶段就是推理(inference),得到相关的概率;第二阶段使用决策论知识做出最优的判断。下面就是概率论和决策论要用到的知识。
PCA
PCA是一种降低数据特征维度的技术。它通过将高维空间数据正交投影到低维子空间,使投影空间中数据的方差最大来实现。另外的一种理解是它通过将高维空间数据正交投影到低维子空间,最小化从投影数据恢复到原数据的误差。PCA带来的好处是数据压缩后,能有更小的存储要求,有更快的分类速度;但是带来的坏处就是,在数据压缩的过程中,可能会丢失一些特征。
Neural Networks笔记1
1.继续八卦NN的历史
人工神经网络的研究者,试图创造一个大脑和机器处理信息的统一模型,在这个模型中,信息按照同意的规则进行处理。正如Frank Rosenblatt所希望的:
"the fundamental laws of organization which are common to all information handling systems, machines and men included, may eventually be understood."
应用梯度下降和随机梯度下降时的几个注意点
随机梯度下降算法的基本思想,在前面已经说过了。在应用梯度下降的时候有几个要注意的点,再重新记录一下。
1.收敛
我们在应用梯度下降的时候,一定要关注是否收敛。一般来说,$\mathbb E(\theta)$收敛到一定的值,所求出来的参数也是基本相同的。能使用梯度下降的求解的问题,影响我们求解的是它的学习速率(可以参考前面的内容)。速率过大,可能不收敛;速率过小,收敛速度过慢,所以我们必须恰当的选择学习速率$\eta$。通过下面的例子看以看到[1]: