管窥机器学习邹博2014年10月18日2/60机器学习在具体学习机器学习的过程中,往往是因为推导造成的障碍了解基本的高等数学知识是必要的机器学习比想象中要简单的多举例:kNN用于分类、基本的聚类过程3/60本次目标了解机器学习中的相关基本概念和常用方法初步掌握极大似然估计、梯度下降法的一般性计算套路熟悉最小二乘法的目标函数建立和解决方案了解期望最大化算法(EM算法)的思路4/60若干概念交叉验证泛化能力VC维监督学习无监督学习强化学习5/60机器学习算法的分类监督K近邻回归SVM决策树朴素贝叶斯BP神经网络非监督聚类AprioriFP-growth6/60交叉验证交叉验证(Cross-validation)也称为交叉比对,主要用于建模应用中。在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。这个过程一直进行,直到所有的样本都被预报了一次而且仅被预报一次。把每个样本的预报误差平方加和,称为PRESS(predictedErrorSumofSquares)。交叉验证是常用的精度测试方法,其目的是为了得到可靠稳定的模型。例如10折交叉验证(10-foldcrossvalidation),将数据集分成十份,轮流将其中9份做训练1份做测试,10次的结果的均值作为对算法精度的估计,一般还需要进行多次10折交叉验证求均值,例如:10次10折交叉验证,以求更精确一点。7/60交叉验证的形式Holdout验证通常来说,Holdout验证并非一种交叉验证,因为数据并没有交叉使用。随机从最初的样本中选出部分,形成交叉验证数据,而剩余的就当做训练数据。一般来说,少于原本样本三分之一的数据被选做验证数据。K-foldcross-validationK折交叉验证,初始采样分割成K个子样本,一个单独的子样本被保留作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10折交叉验证是最常用的。留一验证意指只使用原本样本中的一项来当做验证资料,而剩余的则留下来当做训练资料。这个步骤一直持续到每个样本都被当做一次验证资料。事实上,这等同于K-fold交叉验证是一样的,其中K为原本样本个数。8/60泛化能力概括地说,所谓泛化能力(generalizationability)是指机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的算法也能给出合适的输出,该能力称为泛化能力。通常期望经训练样本训练的算法具有较强的泛化能力,也就是对新输入给出合理响应的能力。应当指出并非训练的次数越多越能得到正确的输入输出映射关系。算法的性能主要用它的泛化能力来衡量。9/60VC维对于一个分类H,我们定义它的VapnikChervonenkisdimension,记做VC(H):指的是能够被H打散的最大集合的数目。打散:shatter如果H能够打散任意数目的集合,我们定义VC(H)=∞10/60VC维考虑如图所示,3个点的集合:11/603个点可完全分开(zerotrainingerror)12/60一个集合,不是所有NotethattheVCdimensionofHhereis3eventhoughtheremaybesetsofsize3thatitcannotshatter.Forinstance,ifwehadasetofthreepointslyinginastraightline(leftfigure),thenthereisnowaytofindalinearseparatorforthelabelingofthethreepointsshownbelow(rightfigure):13/60再次强调在VC维的定义下,为了证明VC(H)至少是d,我们只需要证明至少存在一个大小是d的集合是可以被打散的。如果对于任意的样本数,总能找到一个样本集,它能够被某分类H打散,则该分类H的VC维就是无穷大,这个分类H的学习性能也就是最好的。VC维反映了分类集的学习能力,VC维越大则学习机器越复杂(容量越大),遗憾的是,目前尚没有通用的关于任意分类集VC维计算的理论,只对一些特殊的分类集知道其VC维。例如在N维空间中线形分类器的VC维是N+1。14/60从下面几个问题入手机器学习k近邻向量距离聚类回归朴素贝叶斯微积分工具:最小二乘法、极大似然估计、梯度下降法15/60k近邻分类(属于有监督学习)16/60向量间相似度计算的方法欧式距离Pearson相关系数(Pearsoncorrelation)余弦相似度(cosinesimilarity)17/60k-均值聚类(属于无监督学习)创建k个点作为起始质心(如:随机选择起始质心)当任意一个点的簇分配结果发生改变时对数据集中的每个数据点对每个质心计算质心与数据点之间的距离将数据点分配到距其最近的簇对每个簇,计算簇中所有点的均值并作为质心思考:点的簇分配结果发生改变的标准如何判断?实践中可以选择误差的平方和最小更深层的问题:为何如此选择?18/60利用SSE进行聚类后处理SSE:SumofSquaredError误差平方和19/60二分k-均值聚类后的结果20/60线性回归y=ax+b21/60多个变量的情形考虑两个变量22/60最小二乘的目标函数m为样本个数,则一个比较“符合常理”的误差函数为:继续提问:如何解释和定义“符合常理”?23/60使用极大似然估计解释最小二乘24/60似然函数25/60对数似然26/60计算极大似然函数的最优解27/60最小二乘意义下的参数最优解28/60广义逆矩阵(伪逆)若A为非奇异矩阵,则线性方程组Ax=b的解为其中A的A的逆矩阵满足(I为单位矩阵)。若A是奇异阵或长方阵,x=A+b。A+叫做A的伪逆阵。1955年R.彭罗斯证明了对每个m×n阶矩阵A,都存在惟一的n×m阶矩阵X,满足:①AXA=A;②XAX=X;③(AX)*=I;④(XA)*=I。通常称X为A的穆尔-彭罗斯广义逆矩阵,简称M-P逆,记作A+。在矛盾线性方程组Ax=b的最小二乘解中,x=A+b是范数最小的一个解。在奇异值分解SVD的问题中,将继续该话题的讨论。bAx11AIAAAA11TTAAAA129/60用回归解决分类问题,如何?30/60最简单的例子:一维回归31/60Logistic函数32/60Logistic回归方程的建立33/60梯度下降34/60Logistic回归的过程描述假定有M个样本X,每个样本都是N维的。那么,设需要求的参数记做w,则w是N维向量。y=Logistic(Xw)上式就是要学习的目标函数。未知参数是N个实参数w。使用极大似然估计,能够建立关于w的方程。用梯度下降法,求该方程的梯度,设置合适的学习率α解这N个参数w。35/60贝叶斯准则条件概率公式P(x|y)=P(x,y)/P(y)P(x,y)=P(x|y)*P(y)P(y|x)=P(x,y)/P(x)P(x,y)=P(y|x)*P(x)则P(x|y)*P(y)=P(y|x)*P(x)从而:P(x|y)=P(y|x)*P(x)/P(y)分类原则:在给定的条件下,哪种分类发生的概率大,则属于那种分类。36/60Bayes的实例37/60后验概率c1、c2表示左右两个信封。P(R),P(B)表示摸到红球、黑球的概率。P(R)=P(R|c1)*P(c1)+P(R|c2)*P(c2):全概率公式P(c1|R)=P(R|c1)*P(c1)/P(R)P(R|c1)=2/4P(R|c2)=1/3P(c1)=P(c2)=1/2如果摸到一个红球,那么,这个信封有1美元的概率是0.6如果摸到一个黑球,那么,这个信封有1美元的概率是3/738/60朴素贝叶斯的假设一个特征出现的概率,与它相邻的特征没有关系(特征独立性)每个特征同等重要(特征均衡性)39/60以文本分类为例样本:1000封邮件,每个邮件被标记为垃圾邮件或者非垃圾邮件分类目标:给定第1001封邮件,确定它是垃圾邮件还是非垃圾邮件方法:朴素贝叶斯40/60分析类别c:垃圾邮件c1,非垃圾邮件c2词汇表:统计1000封邮件中出现的所有单词,记单词数目为N,即形成词汇表。将每个样本si向量化:初始化N维向量xi,若词wj在si中出现,则xij=1,否则,为0。从而得到1000个N维向量x。使用:P(c|x)=P(x|c)*P(c)/P(x)41/60分解P(c|x)=P(x|c)*P(c)/P(x)P(x|c)=P(x1,x2…xN|c)=P(x1|c)*P(x2|c)…P(xN|c)P(x)=P(x1,x2…xN)=P(x1)*P(x2)…P(xN)带入公式:P(c|x)=P(x|c)*P(c)/P(x)等式右侧各项的含义:P(xi|cj):在cj(此题目,cj要么为垃圾邮件1,要么为非垃圾邮件0)的前提下,第i个单词xi出现的概率P(xi):在所有样本中,单词xi出现的概率P(cj):(垃圾邮件)cj出现的概率42/60EM算法的典型题目三硬币模型假设有3枚硬币,分别记做A,B,C。抛硬币过程中,这些硬币正面出现的概率分别是π,p,q。进行如下试验:先抛硬币A,如果正面朝上,则抛硬币B;如果反面朝上,则抛硬币C。抛完B或者C后,如果正面朝上,记为1,否则记为0;独立重复n次试验(这里,n=10),观测结果如下:1,1,0,1,0,0,1,0,11。试估计π,p,q的值。43/60EM的推导将观测变量记做Y,待估计参数记做θ(π,p,q)P(y|θ)=ΣzP(y,z|θ)=ΣzP(z|θ)P(y|z,θ)=P(z=0|θ)P(y|z=0,θ)+P(z=1|θ)P(y|z=1,θ)=πpy(1-p)1-y+(1-π)qy(1-q)1-y应用极大似然估计P(Y|θ)=Ππpyi(1-p)1-yi+(1-π)qyi(1-q)1-yi44/60别忘了机器学习的第一步:建模皇帝不是穷人,在守财奴之中也有穷人,所以,有一些_______并不是_______。45/60使用离散数学分析该题目p:这个人是皇帝q:这个人是穷人r:这个人是守财奴皇帝不是穷人:p→~q在守财奴之中也有穷人:ョx(x∈r^x∈q)46/60分析过程r:这个人是守财奴p:这个人是皇帝有一些守财奴并不是皇帝。47/60这部分的参考文献Prof.AndrewNg,MachineLearning,StanfordUniversity高等数学,高等教育出版社,同济大学数学教研室主编,1996MiaHubert,PeterJ.Rousseeuw,KarlienVandenBranden,ROBPCA:aNewApproachtoRobustPrincipalComponentAnalysis,October27,2003(PCA)(泛化能力)(核回归)(VC维)(SVM)htt