机器学习个人笔记完整版v5(原稿)
周志华《机器学习》学习笔记
机器学习周志华学习笔记目录1 绪论 (7)2 模型的评估与选择 (9)2.1 误差与过拟合 (9)2.2 评估方法 (10)2.3 训练集与测试集的划分方法 (10)2.4 调参 (12)2.5 性能度量 (13)2.6 比较检验 (21)2.6.1 假设检验 (21)2.6.2 交叉验证t检验 (23)2.6.3 McNemar检验 (23)2.6.4 Friedman检验与Nemenyi后续检验 (24)2.7 偏差与方差 (26)3、线性模型 (27)3.1 线性回归 (27)3.2 线性几率回归 (30)3.3 线性判别分析 (31)3.4 多分类学习 (33)3.5 类别不平衡问题 (35)4、决策树 (36)4.1 决策树基本概念 (36)4.2 决策树的构造 (37)4.2.1 ID3算法 (38)4.2.2 C4.5算法 (38)4.2.3 CART算法 (39)4.3 剪枝处理 (39)4.4 连续值与缺失值处理 (41)5、神经网络 (43)5.1 神经元模型 (43)5.2 感知机与多层网络 (45)5.5 深度学习 (52)6、支持向量机 (54)6.1 函数间隔与几何间隔 (54)6.1.1 函数间隔 (55)6.1.2 几何间隔 (55)6.2 最大间隔与支持向量 (56)6.3 从原始优化问题到对偶问题 (57)6.4 核函数 (59)6.5 软间隔支持向量机 (61)7、贝叶斯分类器 (65)7.1 贝叶斯决策论 (65)7.2 极大似然法 (67)7.3 朴素贝叶斯分类器 (69)8、EM算法 (70)8.1 EM算法思想 (70)8.2 EM算法数学推导 (70)8.3 EM算法流程 (73)9、集成学习 (74)9.1 个体与集成 (74)9.2 Boosting (76)9.3 Bagging与Random Forest (78)9.3.1 Bagging (78)9.3.2 随机森林 (80)9.4 结合策略 (80)9.4.1 平均法(回归问题) (80)9.4.2 投票法(分类问题) (81)9.4.3 学习法 (82)9.5 多样性(diversity) (82)10、聚类算法 (84)10.1 距离度量 (84)10.2 性能度量 (86)10.2.1 外部指标 (86)10.3.1 K-Means (88)10.3.2 学习向量量化(LVQ) (89)10.3.3 高斯混合聚类 (90)10.4 密度聚类 (93)10.5 层次聚类 (94)11、降维与度量学习 (96)11.1 K近邻学习 (96)11.2 MDS算法 (98)11.3 主成分分析(PCA) (99)11.4 核化线性降维 (100)11.5 流形学习 (102)11.5.1 等度量映射(Isomap) (102)11.5.2 局部线性嵌入(LLE) (104)11.6 度量学习 (105)12、特征选择与稀疏学习 (108)12.1 子集搜索与评价 (108)12.2 过滤式选择(Relief) (109)12.3 包裹式选择(LVW) (110)12.4 嵌入式选择与正则化 (111)12.5 稀疏表示与字典学习 (113)12.6 压缩感知 (114)13、计算学习理论 (115)13.1 PAC学习 (116)13.2 有限假设空间 (117)13.2.1 可分情形 (118)13.2.2 不可分情形 (118)13.3 VC维 (119)13.4 稳定性 (121)14、半监督学习 (123)14.1 生成式方法 (124)14.2 半监督SVM (126)14.3 基于分歧的方法 (127)15.1 隐马尔可夫模型(HMM) (132)15.1.1 HMM评估问题 (134)15.1.2 HMM解码问题 (134)15.1.3 HMM学习问题 (135)15.2 马尔可夫随机场(MRF) (136)15.3 条件随机场(CRF) (137)15.4 学习与推断 (138)15.4.1 变量消去 (138)15.4.2 信念传播 (139)16、强化学习 (143)16.1 基本要素 (143)16.2 K摇摆赌博机 (144)16.2.1 ε-贪心 (145)16.2.2 Softmax (146)16.3 有模型学习 (147)16.3.1 策略评估 (147)16.3.2 策略改进 (149)16.4 蒙特卡罗强化学习 (151)《机器学习》学习笔记(1)--绪论机器学习是目前信息技术中最激动人心的方向之一,其应用已经深入到生活的各个层面且与普通人的日常生活密切相关。
《机器学习》(周志华)西瓜书读书笔记(完结)
《机器学习》(周志华)西⽠书读书笔记(完结)⼤部分基础概念知识已经在这篇博客中罗列,因此本⽂仅对感觉重要或不曾了解的知识点做摘记第1章绪论对于⼀个学习算法a,若它在某问题上⽐学习算法b好,则必然存在另⼀些问题,在那⾥b⽐a好.即"没有免费的午餐"定理(No FreeLunch Theorem,NFL).因此要谈论算法的相对优劣,必须要针对具体的学习问题第2章模型评估与选择m次n折交叉验证实际上进⾏了m*n次训练和测试可以⽤F1度量的⼀般形式Fβ来表达对查准率/查全率的偏好:偏差度量了学习算法的期望预测与真实结果的偏离程度,即学习算法本⾝的拟合能⼒,⽅差度量了同样⼤⼩的训练集的变动所导致的学习性能的变化,即数据扰动造成的影响.噪声表达了当前任务上任何学习算法所能达到的期望泛化误差的下界,即学习问题本⾝的难度.第3章线性模型线性判别分析(LDA)是⼀种经典的监督线性降维⽅法:设法将训练样例投影到⼀条直线上,使同类样例的投影点尽可能接近,异类样例的投影点尽可能远离.对新样本分类时根据投影点的位置来确定类别.多分类学习的分类器⼀般有以下三种策略:1. ⼀对⼀(OvO),N个类别产⽣N * (N - 1) / 2种分类器2. ⼀对多(OvR或称OvA),N个类别产⽣N - 1种分类器3. 多对多(MvM),如纠错输出码技术解决类别不平衡问题的三种⽅法:1. 过采样法,增加正例使正负例数⽬接近,如SMOTE:思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的最近邻中随机选⼀个样本b,然后在a、b之间的连线上随机选⼀点作为新合成的少数类样本.2. ⽋采样法,减少负例使正负例数⽬接近,如EasyEnsemble:每次从⼤多数类中抽取和少数类数⽬差不多的重新组合,总共构成n个新的训练集,基于每个训练集训练出⼀个AdaBoost分类器(带阈值),最后结合之前训练分类器结果加权求和减去阈值确定最终分类类别.3. 再缩放法第4章决策树ID3决策树选择信息增益最⼤的属性来划分:1. 信息熵:2. 信息增益:C4.5决策树选择增益率⼤的属性来划分,因为信息增益准则对可取值数⽬较多的属性有所偏好.但增益率会偏好于可取值数⽬较少的属性,因此C4.5算法先找出信息增益⾼于平均⽔平的属性,再从中选择增益率最⾼的.另外,C4.5决策树采⽤⼆分法对连续值进⾏处理,使⽤时将划分阈值t作为参数,选择使信息增益最⼤的t划分属性.采⽤样本权值对缺失值进⾏处理,含有缺失值的样本同时划⼊所有结点中,但相应调整权重.1. 增益率:2. a的固有值:CART决策树则选择基尼指数最⼩的属性来划分,基尼系数反映了从数据集中随机抽取的两个样本类别不⼀致的概率,注意CART是⼆叉树,其余两种都为多叉树.1. 基尼值衡量的纯度:2. 基尼指数:剪枝是决策树对付过拟合的主要⼿段,分为预剪枝和后剪枝.1. 预剪枝对每个结点在划分前先进⾏估计,若该结点的划分不能带来决策树泛化性能提升,则停⽌划分.预剪枝基于"贪⼼"本质,所以有⽋拟合的风险.2. 后剪枝是先⽣成⼀棵完整的决策树,然后⾃底向上对⾮叶结点考察,若该结点替换为叶结点能带来决策树泛化性能提升,则将⼦树替换为叶结点.缺点是时间开销⼤.决策树所形成的分类边界是轴平⾏的,多变量决策树(斜决策树)的每⼀个⾮叶结点都是⼀个线性分类器,因此可以产⽣斜的划分边界.第5章神经⽹络误差逆传播算法(BP算法)是迄今为⽌最成功的神经⽹络学习算法.关键点在于通过计算误差不断逆向调整隐层神经元的连接权和阈值.标准BP算法每次仅针对⼀个训练样例更新,累积BP算法则根据训练集上的累积误差更新.缓解BP神经⽹络过拟合有两种常见策略:1. 早停:若训练集误差降低但验证集误差升⾼则停⽌训练.2. 正则化:在误差⽬标函数中增加⼀个描述⽹络复杂度的部分(较⼩的连接权和阈值将使神经⽹络较为平滑).跳出局部最⼩,寻找全局最⼩的常⽤⽅法:1. 以多组不同参数初始化多个神经⽹络,选择最接近全局最⼩的2. 模拟退⽕3. 随机梯度下降典型的深度学习模型就是很深层的神经⽹络.但是多隐层神经⽹络难以直接⽤经典算法进⾏训练,因为误差在多隐层内逆传播时往往会发散.⽆监督逐层训练(如深层信念⽹络,DBN)和权共享(如卷积神经⽹络,CNN)是常⽤的节省训练开销的策略.第6章⽀持向量机⽀持向量机中的原始样本空间不⼀定存在符合条件的超平⾯,但是如果原始空间是有限维,则总存在⼀个⾼维特征空间使样本线性可分.核函数就是⽤来简化计算⾼维特征空间中的内积的⼀种⽅法.核函数选择是⽀持向量机的最⼤变数.常⽤的核函数有线性核,多项式核,⾼斯核(RBF核),拉普拉斯核,Sigmoid核.对⽂本数据常⽤线性核,情况不明时可先尝试⾼斯核.软间隔是缓解⽀持向量机过拟合的主要⼿段,软间隔允许某些样本不满⾜约束.⽀持向量回归可以容忍预测输出f(x)和真实输出y之间存在ε的偏差,仅当偏差绝对值⼤于ε时才计算损失.⽀持向量机中许多规划问题都使⽤拉格朗⽇对偶算法求解,原因在于改变了算法复杂度.原问题的算法复杂度与样本维度有关,对偶问题的样本复杂度与样本数量有关.如果使⽤了升维的⽅法,则此时样本维度会远⼤于样本数量,在对偶问题下求解会更好.第7章贝叶斯分类基于贝叶斯公式来估计后验概率的困难在于类条件概率是所有属性上的联合概率,难以从有限的训练样本直接估计⽽得.因此朴素贝叶斯分类器采⽤了"属性条件独⽴性假设"来避开这个障碍.朴素贝叶斯分类器中为了避免其他属性携带的信息被训练集中未出现的属性值"抹去",在估计概率值时通常要进⾏"平滑",常⽤拉普拉斯修正.属性条件独⽴性假设在现实中往往很难成⽴,于是半朴素贝叶斯分类器采⽤"独依赖估计(ODE)",即假设每个属性在类别之外最多仅依赖于⼀个其他属性.在此基础上有SPODE,TAN,AODE等算法.贝叶斯⽹⼜称信念⽹,借助有向⽆环图来刻画属性之间的依赖关系,并⽤条件概率表来描述属性的联合概率分布.半朴素贝叶斯分类器是贝叶斯⽹的⼀种特例.EM(Expectation-Maximization)算法是常⽤的估计参数隐变量的⽅法.基本思想是:若参数θ已知,则可根据训练数据推断出最优隐变量Z的值(E);若Z的值已知,则可⽅便地对参数θ做极⼤似然估计(M).第8章集成学习集成学习先产⽣⼀组个体学习器,再⽤某种策略将它们结合起来.如果集成中只包含同种类型的个体学习器则叫同质集成,其中的个体学习器称为基学习器,相应的学习算法称为基学习算法.如果包含不同类型的个体学习器则叫异质集成,其中的学习器常称为组件学习器.要获得好的集成,个体学习器应"好⽽不同".即要有⼀定的准确性,并且要有多样性.⽬前的集成学习⽅法⼤致分为两⼤类:1. 序列化⽅法:个体学习器间存在强依赖关系,必须串⾏⽣成.2. 并⾏化⽅法:个体学习器间不存在强依赖关系,可同时⽣成.Boosting先从初始训练集训练出⼀个基学习器,再根据基学习器的表现对训练样本分布进⾏调整,使做错的训练样本在后续受到更多关注(给予更⼤的权重或重采样).然后基于调整后的样本分布来训练下⼀个基学习器;直到基学习器的数⽬达到指定值T之后,将这T个基学习器加权结合.Boosting主要关注降低偏差,因此能基于泛化性能相当弱的学习器构建出很强的集成.代表算法有AdaBoost.Bagging是并⾏式集成学习⽅法最著名的代表.它基于⾃助采样法,采样出T个含m个训练样本的采样集,基于每个采样集训练出⼀个基学习器,再将这些基学习器进⾏简单结合.在对预测输出进⾏结合时,常对分类任务使⽤投票法,对回归任务使⽤平均法.Bagging主要关注降低⽅差,因此在不剪枝决策树,神经⽹络等易受样本扰动的学习器上效⽤更明显.代表算法有随机森林.随机森林在以决策树为基学习器构建Bagging的基础上,进⼀步引⼊了随机属性选择.即先从属性集合(假定有d个属性)中随机选择⼀个包含k个属性的⼦集,再从这个⼦集中选择⼀个最优属性进⾏划分.当k=d时,基决策树与传统决策树相同.当k=1时,则随机选择⼀个属性⽤于划分.⼀般推荐k=log2d.学习器结合可能会从三个⽅⾯带来好处:1. 统计:可能有多个假设在训练集上达到同等性能,单学习器可能因误选⽽导致泛化性能不佳,结合多个学习器会减⼩这⼀风险.2. 计算:通过多次运⾏之后进⾏结合,降低陷⼊糟糕局部极⼩点的风险.3. 表⽰:结合多个学习器,相应的假设空间有所扩⼤,有可能学得更好的近似.结合策略:1. 平均法:对数值型输出,最常见的策略是平均法.⼀般⽽⾔,在个体学习器性能相差较⼤时使⽤加权平均法,性能相近时使⽤简单平均法.权重⼀般也是从训练数据中学习⽽得.2. 投票法:对分类任务来说,最常见的策略是投票法.⼜可细分为绝对多数投票法,相对多数投票法,加权投票法.绝对多数投票法允许"拒绝预测",若必须提供预测结果则退化为相对多数投票法.若基学习器的类型不同,则类概率值不能直接⽐较,需要将类概率输出转化为类标记输出后再投票.3. 学习法:当训练数据很多时,⼀种更强⼤的策略是通过另⼀个学习器来结合.Stacking是学习法的典型代表.我们把个体学习器称为初级学习器,⽤于结合的学习器称为次级学习器或元学习器.Stacking⽤初级学习器的输出作为样例输⼊特征,⽤初始样本的标记作为样例标记,然后⽤这个新数据集来训练次级学习器.⼀般⽤初级学习器的输出类概率作为次级学习器的输⼊属性,⽤多响应线性回归(Multi-response Linear Regression,MLR)作为次级学习算法效果较好.多样性增强常⽤的⽅法有:数据样本扰动,输⼊属性扰动,输出表⽰扰动,算法参数扰动.第9章聚类聚类既能作为⼀个找寻数据内在分布结构的单独过程,也可以作为其他学习任务的前驱过程.我们希望"物以类聚",也就是聚类结果的"簇内相似度"⾼且"簇间相似度"低.聚类性能度量⼤致有两类.⼀类是将聚类结果与参考模型进⾏⽐较,称为外部指标,常⽤的有JC,FMI,RI;另⼀类是直接考察聚类结果,称为内部指标,常⽤的有DBI,DI.有序属性距离计算最常⽤的是闵可夫斯基距离,当p=2时即欧⽒距离,当p=1时即曼哈顿距离.对⽆序属性可采⽤VDM(Value Difference Metric),将闵可夫斯基距离和VDM结合即可处理混合属性,当不同属性的重要性不同时可使⽤加权距离.我们基于某种形式的距离来定义相似度度量,但是⽤于相似度度量的距离未必⼀定要满⾜距离度量的基本性质,尤其是直递性.在现实任务中有必要通过距离度量学习来基于数据样本确定合适的距离计算式.原型聚类假设聚类结构能通过⼀组原型刻画.通常算法先对原型进⾏初始化,然后对原型进⾏迭代更新求解.常⽤的原型聚类算法有k均值算法,学习向量量化,⾼斯混合聚类.密度聚类假设聚类结构能通过样本分布的紧密程度确定.通常从样本密度的⾓度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇.常⽤算法有DBSCAN层次聚类试图在不同层次对数据集进⾏划分,从⽽形成树形的聚类结构.代表算法有AGNES.第10章降维与度量学习懒惰学习在训练阶段只把样本保存起来,训练时间开销为零,待收到测试样本后再进⾏处理,如k近邻学习(kNN).急切学习则在训练阶段就对样本进⾏学习处理.若任意测试样本x附近任意⼩的δ距离范围内总能找到⼀个训练样本,即训练样本的采样密度⾜够⼤,或称为密采样,则最近邻分类器(1NN)的泛化错误率不超过贝叶斯最优分类器的错误率的两倍.在⾼维情形下出现的数据样本稀疏,距离计算困难等问题称为"维数灾难".处理⾼维数据的两⼤主流技术是降维和特征选择.降维亦称维数约简,即通过某种数学变换将原始⾼维属性空间转变为⼀个低维⼦空间.能进⾏降维的原因是与学习任务密切相关的或许仅仅是数据样本的某个低维分布,⽽不是原始⾼维空间的样本点.多维缩放是⼀种经典的降维⽅法.它使原始空间中样本之间的距离在低维空间中得以保持.主成分分析(PCA)是最常⽤的⼀种降维⽅法.如果要⽤⼀个超平⾯对所有样本进⾏恰当的表达,这个超平⾯应该具有最近重构性和最⼤可分性两种性质.基于这两种性质可以得到主成分分析的等价推导.PCA可以使样本的采样密度增⼤,同时在⼀定程度上起到去噪的效果.线性降维⽅法有可能丢失低维结构,因此要引⼊⾮线性降维.⼀种常⽤⽅法是基于核技巧对线性降维⽅法进⾏核化.如核主成分分析(KPCA).流形学习(manifold learning)是⼀类借鉴了拓扑流形概念的降维⽅法.流形在局部具有欧⽒空间性质.将低维流形嵌⼊到⾼维空间中,可以容易地在局部建⽴降维映射关系,再设法将局部映射关系推⼴到全局.常⽤的流形学习⽅法有等度量映射和局部线性嵌⼊等.对⾼维数据进⾏降维的主要⽬的是找到⼀个合适的低维空间.事实上,每个空间对应了在样本属性上定义的⼀个距离度量,度量学习直接尝试学习出⼀个合适的距离度量.常⽤⽅法有近邻成分分析(NCA).第11章特征选择与稀疏学习对当前学习任务有⽤的属性称为相关特征,没什么⽤的属性称为⽆关特征.从给定特征集合中选择出相关特征⼦集的过程称为特征选择.特征选择是⼀个重要的数据预处理过程.冗余特征是指包含的信息可以从其他特征中推演出来的特征.冗余特征在很多时候不起作⽤,但若某个冗余特征恰好对应了完成学习任务所需的中间概念,则该冗余特征反⽽是有益的.⼦集搜索:可以采⽤逐渐增加相关特征的前向搜索,每次在候选⼦集中加⼊⼀个特征,选取最优候选⼦集.也可以采⽤每次去掉⼀个⽆关特征的后向搜索.这些策略是贪⼼的,但是避免了穷举搜索产⽣的计算问题.⼦集评价:特征⼦集A确定了对数据集D的⼀个划分,样本标记信息Y对应着对D的真实划分,通过估算这两个划分的差异就能对A进⾏评价.可采⽤信息熵等⽅法.过滤式选择先对数据集进⾏特征选择,然后再训练学习器,特征选择过程与后续学习器⽆关.Relief(Relevant Features)是⼀种著名的过滤式选择⽅法.该⽅法设计了⼀个相关统计量来度量特征的重要性.包裹式选择直接把最终将要使⽤的学习器的性能作为特征⼦集的评价标准.因此产⽣的最终学习器的性能较好,但训练时的计算开销也更⼤.LVW(Las Vegas Wrapper)是⼀个典型的包裹式特征选择⽅法,它在拉斯维加斯⽅法框架下使⽤随机策略来进⾏⼦集搜索,并以最终分类器的误差为特征⼦集评价准则.嵌⼊式选择是将特征选择过程与学习器训练过程融为⼀体,两者在同⼀个优化过程中完成.例如正则化.L1正则化(Lasso)是指权值向量w中各个元素的绝对值之和.L1正则化趋向选择少量的特征,使其他特征尽可能为0,可以产⽣稀疏权值矩阵,即产⽣⼀个稀疏模型,可以⽤于特征选择.L1正则化是L0正则化的最优凸近似.L2正则化(Ridge)是指权值向量w中各个元素的平⽅和然后再求平⽅根.L2正则化趋向选择更多的特征,让这些特征尽可能接近0,可以防⽌模型过拟合(L1也可以).字典学习也叫稀疏编码,指的是为普通稠密表达的样本找到合适的字典,将样本转化为合适的稀疏表达形式,从⽽使学习任务得以简化,模型复杂度得以降低的过程.压缩感知关注的是利⽤信号本⾝的稀疏性,从部分观测样本中恢复原信号.分为感知测量和重构恢复两个阶段,其中重构恢复⽐较重要.可利⽤矩阵补全等⽅法来解决推荐系统之类的协同过滤(collaborative filtering)任务.由于第⼀次阅读,12章开始的内容仅作概念性了解.第12章计算学习理论计算学习理论研究的是关于通过计算来进⾏学习的理论,⽬的是分析学习任务的困难本质,为学习算法提供理论保证,并提供分析结果指导算法设计.计算学习理论中最基本的是概率近似正确(Probably Approximately Correct,PCA)学习理论.由此可以得到PAC辨识,PAC可学习,PAC学习算法,样本复杂度等概念.有限假设空间的可分情形都是PAC可学习的.对于不可分情形,可以得到不可知PAC可学习的概念,即在假设空间的所有假设中找到最好的⼀个.对⼆分类问题来说,假设空间中的假设对数据集中⽰例赋予标记的每种可能结果称为对数据集的⼀种对分.若假设空间能实现数据集上的所有对分,则称数据集能被假设空间打散.假设空间的VC维是能被假设空间打散的最⼤数据集的⼤⼩.算法的稳定性考察的是算法在输⼊发⽣变化时,输出是否会随之发⽣较⼤的变化.第13章半监督学习主动学习是指先⽤有标记样本训练⼀个模型,通过引⼊额外的专家知识,将部分未标记样本转变为有标记样本,每次都挑出对改善模型性能帮助⼤的样本,从⽽构建出⽐较强的模型.未标记样本虽未直接包含标记信息,但若它们与有标记样本是从同样的数据源独⽴同分布采样⽽来,则它们所包含的关于数据分布的信息对建模⼤有裨益.要利⽤未标记样本,需要有⼀些基本假设,如聚类假设,流形假设.半监督学习可进⼀步划分为纯半监督学习和直推学习.前者假定训练数据中的未标记样本并⾮待预测的数据,⽽后者则假定学习过程中所考虑的未标记样本恰是待预测数据.⽣成式⽅法是直接基于⽣成式模型的⽅法.此类⽅法假设所有数据都是由同⼀个潜在的模型⽣成的.这个假设使得我们能通过潜在模型的参数将未标记数据与学习⽬标联系起来.半监督⽀持向量机(S3VM)是⽀持向量机在半监督学习上的推⼴.S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平⾯.除此之外,还有图半监督学习,基于分歧的⽅法(如协同训练),半监督聚类等学习⽅法.第14章概率图模型机器学习最重要的任务,是根据⼀些已观察到的证据来对感兴趣的未知变量进⾏估计和推测.⽣成式模型考虑联合分布P(Y,R,O),判别式模型考虑条件分布P(Y,R|O).概率图模型是⼀类⽤图来表达变量相关关系的概率模型.若变量间存在显式的因果关系,常使⽤贝叶斯⽹.若变量间存在相关性但难以获取显式的因果关系,常使⽤马尔可夫⽹.隐马尔可夫模型(Hidden Markov Model,HMM)是结构最简单的动态贝叶斯⽹.主要⽤于时序数据建模,在语⾳识别,⾃然语⾔处理等领域有⼴泛应⽤.隐马尔可夫模型中有状态变量(隐变量)和观测变量两组变量.马尔可夫链:系统下⼀时刻的状态仅有当前状态决定,不依赖于以往的任何状态.马尔可夫随机场(Markov Random Field,MRF)是典型的马尔可夫⽹.每⼀个结点表⽰⼀个或⼀组变量,结点之间的边表⽰两个变量之间的依赖关系.条件随机场是判别式模型,可看作给定观测值的马尔可夫随机场.概率图模型的推断⽅法⼤致分为两类.第⼀类是精确推断,代表性⽅法有变量消去和信念传播.第⼆类是近似推断,可⼤致分为采样(如MCMC采样)和使⽤确定性近似完成近似推断(如变分推断).第15章规则学习规则学习是指从训练数据中学习出⼀组能⽤于对未见⽰例进⾏判别的规则.规则学习具有较好的可解释性,能使⽤户直观地对判别过程有所了解.规则学习的⽬标是产⽣⼀个能覆盖尽可能多的样例的规则集,最直接的做法是序贯覆盖,即逐条归纳:每学到⼀条规则,就将该规则覆盖的训练样例去除.常采⽤⾃顶向下的⽣成-测试法.规则学习缓解过拟合的常见做法是剪枝,例如CN2,REP,IREP等算法.著名的规则学习算法RIPPER就是将剪枝与后处理优化相结合.命题规则难以处理对象之间的关系,因此要⽤⼀阶逻辑表⽰,并且要使⽤⼀阶规则学习.它能更容易地引⼊领域知识.著名算法有FOIL(First-Order Inductive Learner)等.第16章强化学习强化学习的⽬的是要找到能使长期累积奖赏最⼤化的策略.在某种意义上可看作具有"延迟标记信息"的监督学习问题.每个动作的奖赏值往往来⾃于⼀个概率分布,因此强化学习会⾯临"探索-利⽤窘境",因此要在探索和利⽤中达成较好的折中.ε-贪⼼法在每次尝试时以ε的概率进⾏探索,以均匀概率随机选取⼀个动作.以1-ε的概率进⾏利⽤,选择当前平均奖赏最⾼的动作.Softmax算法则以较⾼的概率选取平均奖赏较⾼的动作.强化学习任务对应的马尔可夫决策过程四元组已知的情形称为模型已知.在已知模型的环境中学习称为"有模型学习".反之称为"免模型学习".从⼈类专家的决策过程范例中学习的过程称为模仿学习.。
机器学习 深度学习 笔记 (5)
Now, suppose we pick u to correspond the the direction shown in the figure below. The circles denote the projections of the original data onto this line.
3 grayscale image, and each x(ji) took a value in {0, 1, . . . , 255} corresponding to the intensity value of pixel j in image i.
Now, having normalized our data, how do we compute the “major axis of variation” u—that is, the direction on which the data approximately lies? One way is to pose this problem as finding the unit vector u so that when the data is projected onto the direction corresponding to u, the variance of the projected data is maximized. Intuitively, the data starts off with some amount of variance/information in it. We would like to choose a direction u so that if we were to approximate the data as lying in the direction/subspace corresponding to u, as much as possible of this variance is still retained.
machine learning for signal processing 笔记
machine learning for signal processing 笔记:一、信号处理中的机器学习应用概述信号分类:使用监督学习技术(如SVM、决策树、随机森林、神经网络)对不同类型的信号进行识别和分类,例如在音频、图像、雷达信号等领域。
特征提取:通过无监督学习或深度学习自动从原始信号中学习并提取有意义的特征,例如使用自编码器、深度信念网络、卷积神经网络(CNN)等来学习声音或图像信号的特征表示。
预测与滤波:基于时间序列数据,利用循环神经网络(RNN)、长短时记忆网络(LSTM)或门控循环单元(GRU)进行信号预测或滤波操作。
降维与可视化:利用主成分分析(PCA)、独立成分分析(ICA)或流形学习方法降低信号维度,实现高效存储和可视化。
异常检测:通过训练模型识别正常信号模式,并据此定义异常情况,适用于工业监控、医疗诊断等场景。
二、具体应用场景示例通信系统:在无线通信中,ML可用于信道估计、符号检测、干扰抑制等问题。
生物医学信号:心电图(ECG)、脑电图(EEG)等信号处理中,ML用于疾病诊断、睡眠分期、癫痫发作预测等。
图像信号:图像去噪、超分辨率重建、图像分割和目标检测中广泛应用CNN 和其他深度学习方法。
语音信号:语音识别、说话人识别、语音增强等领域利用了ML的强大功能。
三、算法与框架Keras、TensorFlow、PyTorch:这些深度学习框架常被用来构建复杂的信号处理模型。
Scikit-learn:对于传统机器学习算法,在信号处理中的预处理阶段和部分简单的分类、回归任务非常有用。
四、挑战与优化小样本学习:在信号处理中,如何在有限的数据下训练出泛化能力强的模型是一大挑战。
实时性要求:某些信号处理任务需要实时响应,因此算法的计算效率至关重要。
解释性和鲁棒性:提升模型的可解释性以及对噪声和恶意攻击的抵抗能力也是研究重点。
以上只是一个概要性的笔记提纲,实际的学习过程中应深入每个点进行详细探讨和实践。
机器学习 深度学习 笔记 (9)
minima or global minima of the cost function. Also note that the underlying
parameterization for hθ(x) is different from the case of linear regression, even though the form of the cost function is the same mean-squared loss.
θ := θ − α∇θJ (j)(θ)
(1.4)
Oftentimes computing the gradient of B examples simultaneously for the parameter θ can be faster than computing B gradients separately due to hardware parallelization. Therefore, a mini-batch version of SGD is most commonly used in deep learning, as shown in Algorithm 2. There are also other variants of the SGD or mini-batch SGD with slightly different sampling schemes.
3
Algorithm 2 Mini-batch Stochastic Gradient Descent
1: Hyperparameters: learning rate α, batch size B, # iterations niter. 2: Initialize θ randomly 3: for i = 1 to niter do 4: Sample B examples j1, . . . , jB (without replacement) uniformly from
(一)《机器学习》(周志华)第4章决策树笔记理论及实现——“西瓜树”
(⼀)《机器学习》(周志华)第4章决策树笔记理论及实现——“西⽠树”参考书籍:《机器学习》(周志华)说明:本篇内容为读书笔记,主要参考教材为《机器学习》(周志华)。
详细内容请参阅书籍——第4章决策树。
部分内容参考⽹络资源,在此感谢所有原创者的⼯作。
=================================================================第⼀部分理论基础1. 纯度(purity)对于⼀个分⽀结点,如果该结点所包含的样本都属于同⼀类,那么它的纯度为1,⽽我们总是希望纯度越⾼越好,也就是尽可能多的样本属于同⼀类别。
那么如何衡量“纯度”呢?由此引⼊“信息熵”的概念。
2. 信息熵(information entropy)假定当前样本集合D中第k类样本所占的⽐例为p k(k=1,,2,...,|y|),则D的信息熵定义为:Ent(D) = -∑k=1 p k·log2 p k (约定若p=0,则log2 p=0)显然,Ent(D)值越⼩,D的纯度越⾼。
因为0<=p k<= 1,故log2 p k<=0,Ent(D)>=0. 极限情况下,考虑D中样本同属于同⼀类,则此时的Ent(D)值为0(取到最⼩值)。
当D中样本都分别属于不同类别时,Ent(D)取到最⼤值log2 |y|.3. 信息增益(information gain)假定离散属性a有V个可能的取值{a1,a2,...,a V}. 若使⽤a对样本集D进⾏分类,则会产⽣V个分⽀结点,记D v为第v个分⽀结点包含的D中所有在属性a上取值为a v的样本。
不同分⽀结点样本数不同,我们给予分⽀结点不同的权重:|D v|/|D|, 该权重赋予样本数较多的分⽀结点更⼤的影响、由此,⽤属性a对样本集D进⾏划分所获得的信息增益定义为:Gain(D,a) = Ent(D)-∑v=1 |D v|/|D|·Ent(D v)其中,Ent(D)是数据集D划分前的信息熵,∑v=1 |D v|/|D|·Ent(D v)可以表⽰为划分后的信息熵。
机器学习笔记(二、支持向量机)
机器学习笔记(⼆、⽀持向量机)⼀、线性可分问题对于⼀个训练样本集{(x i,y i)},i=1~N,若存在(w,b)使得使得满⾜下式,则是线性可分问题。
要求这样的⼀个超平⾯(在⼆维平⾯中是⼀条直线),则要满⾜以下公式证明过程如下:⾸先要确认两个事实,即和则可以根据线性可分问题的满⾜式,⽤a来缩放(w,b),使得找到某个⾮零a,存在⽀持向量x0上有|W T x0+b|=1,在⾮⽀持向量x0上有|W T x0+b|>1,其中,⽀持向量是指平⾯内训练集中离超平⾯最近距离向量。
根据上⾯的条件可得以下结论:根据线性问题中要寻找的超平⾯的条件之⼀:margin最⼤,即d最⼤,所以问题就转化为求||w||最⼩值,为了之后的求导⽅⾯可改变为求1/2*||w||的最⼩值,所以要求这样⼀个超平⾯即求(w,b),则只要在限制条件下求得1/2*||w||的最⼩值。
因为这是⼀个凸优化问题,要么有唯⼀解要么⽆解,所以可以⽤梯度下降法求得其值。
⼆、线性不可分问题对于线性不可分问题,⾸先要放松其限制条件,在这对每⼀个训练样本(x i,y i)需要设置⼀个松弛变量δi,所以线性可分问题⾥的⽬标函数和限制条件就变成:在⽀持向量机中解决线性不可分问题是通过将低维度映射到⾼纬度转化成线性可分问题解决,⽐如下⾯的例⼦中,⽤映射函数φ(x)将⼆维向量转化成五维向量:这是⼀个⼆维的⾮线性可分问题:我们引⼊φ(x)使之实现⼆维向量到五维向量的映射,具体的函数如下:则不同的训练向量映射后的结果如下:当确定(w,b)时,我们可以在⾼维下得到这样的不等式集,根据下⾯的四个不等式可知,这是线性可分的:所以我们有以下结论:假设在M维空间中随机取N个样本,并随机对每个训练样本赋予⼀个标签+1或-1,并假设这些训练样本线性可分的概率为P(M).则当M区域⽆穷⼤时,P(M)=1,假设φ(x)以确定,则有如下结论:其中,这⾥的w也随着维度的增⾼⽽增加,这⾥的维度和φ(x)维度相同。
机器学习个人笔记完整版v5(原稿)
斯坦福大学2014机器学习教程个人笔记(V5.01)摘要本笔记是针对斯坦福大学2014年机器学习课程视频做的个人笔记黄海广haiguang2000@qq群:554839127最后修改:2017-12-3斯坦福大学2014机器学习教程中文笔记课程概述Machine Learning(机器学习)是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演译。
在过去的十年中,机器学习帮助我们自动驾驶汽车,有效的语音识别,有效的网络搜索,并极大地提高了人类基因组的认识。
机器学习是当今非常普遍,你可能会使用这一天几十倍而不自知。
很多研究者也认为这是最好的人工智能的取得方式。
在本课中,您将学习最有效的机器学习技术,并获得实践,让它们为自己的工作。
更重要的是,你会不仅得到理论基础的学习,而且获得那些需要快速和强大的应用技术解决问题的实用技术。
最后,你会学到一些硅谷利用机器学习和人工智能的最佳实践创新。
本课程提供了一个广泛的介绍机器学习、数据挖掘、统计模式识别的课程。
主题包括:(一)监督学习(参数/非参数算法,支持向量机,核函数,神经网络)。
(二)无监督学习(聚类,降维,推荐系统,深入学习推荐)。
(三)在机器学习的最佳实践(偏差/方差理论;在机器学习和人工智能创新过程)。
本课程还将使用大量的案例研究,您还将学习如何运用学习算法构建智能机器人(感知,控制),文本的理解(Web搜索,反垃圾邮件),计算机视觉,医疗信息,音频,数据挖掘,和其他领域。
本课程需要10周共18节课,相对以前的机器学习视频,这个视频更加清晰,而且每课都有ppt课件,推荐学习。
本人是中国海洋大学2014级博士生,2014年刚开始接触机器学习,我下载了这次课程的所有视频和课件给大家分享。
中英文字幕来自于https:///course/ml,主要是教育无边界字幕组翻译,本人把中英文字幕进行合并,并翻译剩余字幕,对视频进行封装,归类,并翻译了课程目录,做好课程索引文件,希望对大家有所帮助。
机器学习技法课程学习笔记1 -- Linear Support Vector Machine
机器学习技法课程学习笔记1 Linear Support Vector Machine
本系列同样分成16节课,将会介绍《机器学习基石》的进阶版《机器学习技法》,更深入地探讨机器学习一些高级算法和技巧。
LargeMargin Separating Hyperplane
回顾一下我们之前介绍了linear classification,对于线性可分的情况,我们可以使用PLA/pocket算法在平面或者超平面上把正负类分开。
例如对平面2D这种情况,我们可以找到一条直线,能将正类和负类完全分开。
但是,这样的直线通常不止一条,如下图所示。
那么,下图中的三条分类线都能将数据分开,但是哪条线更好呢?
这三条直线都是由PLA/pocket算法不断修正错误点而最终产生的,整个确定直线形状的过程是随机。
机器学习笔记
机器学习笔记机器学习笔记总结预习部分第⼀章第⼀章主要讲述了机器学习与模式识别的概念,模型的概念和组成、特征向量的⼀些计算机器学习的基本概念机器学习可以分为监督式学习,⽆监督式学习,半监督式学习,强化学习。
以及模型的泛化能⼒,模型训练过程中存在的问题,如1、训练样本稀疏:给定的训练样本数量是有限的,很难完整表达样本的真实分布2、训练样本采样过程可能不均匀:有些区域采样密⼀些,有些区域采样疏⼀些3、⼀些样本可能带有噪声还有过拟合的概念模型训练阶段表现很好,但是在测试阶段表现差模型过于拟合训练如何提⾼泛化能⼒1、选择复杂度适合的模型:模型选择2、正则化:在⽬标函数中加⼊正则项评估⽅法与性能指标有留出法、交叉验证法、留⼀法性能度量⼆分类问题常⽤的评价指标时查准率和查全率。
根据预测正确与否,将样例分为以下四种:1)True positive(TP): 真正例,将正类正确预测为正类数;2)False positive(FP): 假正例,将负类错误预测为正类数;3)False negative(FN):假负例,将正类错误预测为负类数;4)True negative(TN): 真负例,将负类正确预测为负类数。
第⼆章第⼆章主要讲的是基于距离的分类器基于距离的分类的基本概念把样本到每个类的距离作为决策模型,将测式样本判定为与其距离最近的类常见的⼏种距离度量欧⽒距离(Euclidean Distance)曼哈顿距离(Manhattan Distance)加权欧式距离MED分类器最⼩欧⽒距离分类器距离衡量:欧⽒距离类的原型:均值特征⽩化⽬的:将原始特征映射到新的⼀个特征空间,使得在新空间中特征的协⽅差为单位矩阵,从⽽去除特征变化的不同及特征之间的相关性将特征转化分为两步:先去除特征之间的相关性(解耦),然后再对特征进⾏尺度变化(⽩化)马⽒距离马⽒距离表⽰数据的协⽅差距离。
它是⼀种有效的计算两个未知样本集的相似度的⽅法。
机器学习读书笔记
机器学习的基本概念和学习系统的设计
最近在看机器学习的书和视频,我的感觉是机器学习是很用的东西,而且是很多 学科交叉形成的领域。最相关的几个领域要属人工智能、概率统计、计算复tchell 第一章中和斯坦福机器学习公开课第一课都提到了 一个这样定义: 对于某类任务 T 和性能度量 P,如果一个计算机程序在 T 上以 P 衡量的性能随
概念学习
给定一样例集合以及每个样例是否属于某一概念的标注,怎样自动推断出该概念 的一般定义。这一问题被称为概念学习。 一个更准确的定义: 概念学习是指从有关某个布尔函数的输入输出训练样例中推断出该布尔函数。注 意,在前面一篇文章《机器学习的基本概念和学习系统的设计》中提到,机器学 习中要学习的知识的确切类型通常是一个函数,在概念学习里面,这个函数被限 定为是一个布尔函数,也就是它的输出只有{0,1}(0代表 false,1(代表 true)), 也就是说目标函数的形式如下:
x1:棋盘上黑子的数量
x2:棋盘上白子的数量
x3:棋盘上黑王的数量 x4:棋盘上红王的数量 x5:被红字威胁的黑子数量(即会在下一次被红子吃掉的黑子数量) x6:被黑子威胁的红子的数量 于是学习程序把 V’(b)表示为一个线性函数 V’(b)=w0 + w1x1 + w2x2 + w3x3 + w4x4 + w5x5 + w6x6 其中,w0到 w6为数字系数,或叫权,由学习算法来选择。在决定某一个棋盘状 态值,权 w1到 w6决定了不同的棋盘特征的相对重要性,而权 w0为一个附加的 棋盘状态值常量。 好了,现在我们把学习西洋跳棋战略的问题转化为学习目标函数表示中系数 w0 到 w6值的问题,也即选择函数逼近算法。 选择函数逼近算法 为了学习 V’(b),我们需要一系列训练样例,它的形式为<b, Vtrain(b)>其中,b 是由 x1-x6参数描述的棋盘状态,Vtrain(b)是 b 的训练值。 举例来说, <<x1=3,x2=0,x3=1,x4=0,x5=0,x6=0>, +100>;描述了一个黑棋取胜的棋盘 状态 b,因为 x2=0表示红旗已经没有子了。 上面的训练样例表示仍然有一个问题:虽然对弈结束时最终状态的棋盘的评分 Vtrain(b)很好确定,但是大量中间状态(未分出胜负)的棋盘如何评分呢? 于是这里需要一个训练值估计法则: Vtrain(b) <- V’(Successor(b)) Successor(b)表示 b 之后再轮到程序走棋时的棋盘状态(也就是程序走了一步 和对手回应了一步以后的棋局)。 这个看起来有点难理解,我们用当前的 V’来估计训练值,又用这一训练值来更 新 V’。当然,我们使用后续棋局 Successor(b)的估计值来估计棋局 b 的值。直
斯坦福大学机器学习课程个人笔记完整版.
CS 229机器学习(个人笔记目录 (1线性回归、logistic 回归和一般回归 1 (2判别模型、生成模型与朴素贝叶斯方法 10 (3支持向量机SVM (上) 20(4支持向量机SVM (下) 32(5规则化和模型选择 45(6K-means聚类算法 50(7混合高斯模型和EM 算法 53(8EM算法 55(9在线学习 62(10主成分分析 65(11独立成分分析 80(12线性判别分析 91(13因子分析 103(14增强学习 114(15典型关联分析 120(16偏最小二乘法回归 129这里面的内容是我在2011年上半年学习斯坦福大学《机器学习》课程的个人学习笔记,内容主要来自Andrew Ng教授的讲义和学习视频。
另外也包含来自其他论文和其他学校讲义的一些内容。
每章内容主要按照个人学习时的思路总结得到。
由于是个人笔记,里面表述错误、公式错误、理解错误、笔误都会存在。
更重要的是我是初学者,千万不要认为里面的思路都正确。
如果有疑问的地方,请第一时间参考Andrew Ng教授的讲义原文和视频,再有疑问的地方可以找一些大牛问问。
博客上很多网友提出的问题,我难以回答,因为我水平确实有限,更深层次的内容最好找相关大牛咨询和相关论文研读。
如果有网友想在我这个版本基础上再添加自己的笔记,可以发送 Email 给我,我提供原始的word docx版本。
另,本人目前在科苑软件所读研,马上三年了,方向是分布式计算,主要偏大数据分布式处理,平时主要玩Hadoop 、Pig 、Hive 、 Mahout 、NoSQL 啥的,关注系统方面和数据库方面的会议。
希望大家多多交流,以后会往博客上放这些内容,机器学习会放的少了。
Anyway ,祝大家学习进步、事业成功!1 对回归方法的认识JerryLead2011 年 2 月 27 日1 摘要本报告是在学习斯坦福大学机器学习课程前四节加上配套的讲义后的总结与认识。
前四节主要讲述了回归问题,属于有监督学习中的一种方法。
机器学习笔记(五)机器学习参数
机器学习笔记(五)机器学习参数第六章,机器学习诊断法,改进机器学习算法,寻找合适的 上半部分:机器学习的建议1.当加⼊新的例⼦发现之前的算法是错误的,改进⽅法:寻找更多的训练集减少特征参数或修改特征参数,增加没有考虑到的特征增加多项式改变lambda的⼤⼩等等2.判断⼀个算法是否正确将数据集分成训练数据和测试数据(7:3,随机选择);⽤训练数据求得theta;⽤测试数据求误差(即求J函数值,不加正则化);求误差率(预测错误的/总的测试个数*100%);3.选择模型(选择h函数的多项式次数d):将数据分成三个部分,对每⼀个可能的多项式进⾏如下计算训练集(60%):⽤来求theta交叉验证集cross validation(20%):测试训练集的各种多项式的theta的误差率,选择最⼩误差率的多项式(选择)测试集(20%):验证测试集所得的h函数对新的数据的拟合情况(和之前的不⼀样)(看结果)注意:不要⽤测试集做选择多项式后,再⽤测试集做测试拟合情况,因为测试集已经⽤来选择模型,不再是新数据!!4.⾼偏差和⾼⽅差⾼偏差-⽋拟合:训练集和验证集的误差都很⼤。
⾼⽅差-过拟合:训练集的误差很⼩,验证集的误差很⼤。
5.正则化的lambdalambda太⼤⽋拟合,太⼩过拟合6.选择lambda的⽅法猜测⼀些值0,0.01,0.02,……,10.24(2倍步长增长)然后⽤3中的⽅法找最好的lambda。
7.学习曲线(随着训练集个数的变化),可以⽤来区分⾼偏差和⾼⽅差如果⼀个学习算法处于⾼偏差(⽋拟合),则增⼤训练集的个数不会有什么帮助,训练集和验证集的J都会很⼤,见下图(最后随着m增⼤,曲线已经变成⽔平):(所以不是只要增⼤训练集就可以!)⽋拟合图像特征:随着m增加两条曲线靠近,并且值都⽐较⼤。
如果⼀个学习算法处于⾼⽅差(过拟合),则增⼤训练集的个数会有帮助,训练集J会增加(但增加幅度⼩⼀点),验证集的J会越来越⼩,见下图(开始两个曲线有很⼤的差距,最后随着m增⼤,两个曲线会慢慢靠近):过拟合图像特征:训练集曲线⼀般较⼩,且两曲线之间距离⼤点,值都⽐较⼩。
机器学习(学习记录)
学习程序输入的是数据、事实等各种各样的信息,输出的则是知识,即概念、规则等。
机器学习是靠学习程序实现的。
(1)认知模拟认知模拟研究的主要目的是要通过对人类学习机理的研究和模拟,从根本上解决机器学习方面存在的种种问题。
(2)理论性分析理论性分析研究的主要目的是要从理论上探索各种可能的学习方法,并建立起独立于具体应用领域的学习算法。
(3)面向任务的研究面向任务研究的主要目的是要根据特定任务的要求,建立相应的学习系统。
要使计算机具有某种程度的学习能力,即使计算机能够通过学习增长知识、改进性能、提高智能水平,就需要为他建立相应的学习系统。
如果一个系统能够从某个过程和环境的未知特征中学到有关信息,并把他学到的信息用于未来的估计、分类、决策和控制,以便改进系统的性能,那么他就是学习系统。
系统的学习行为应该具有高度的目的性:即系统应该知道它要学习什么。
系统必须具备适当的结构来记忆已经学到的知识,即能对知识表示和知识组织进行修改和完善。
系统学到的新知识必须有益于改善系统的行为。
系统的能力应该能够在其实际使用过程或同环境的交互过程中不断进化。
一个学习系统应该满足的基本要求:1.具有适当的学习环境。
所谓的学习系统的环境,是指学习系统进行学习时的信息来源。
例如当把学习系统比作学生时,那么“环境”就是为学生提供学习信息的教师、书本和各种实验、实践条件等,没有这样的环境,学生就无法学习新知识和运用所学知识解决问题。
2.具有一定的学习能力。
环境仅是为学习系统提供了相应的信息和条件,要从中学到知识,还必须具有适当的学习方法和一定的学习能力。
不然的话,也是不会有好的学习效果,或者根本学不到知识的。
例如,一个班的不同学生,尽管学习环境相同,但由于学习方法和学习能力不同,却会导致不同的学习效果。
3.能够运用所学知识求解问题。
学以致用,如果学到的知识不能够解决实际问题,那就失去了学习的作用和意义。
4.能够通过学习提高自身性能。
提高自身性能,是学习系统应该达到的最终目标。
[机器学习]实验笔记
[机器学习]实验笔记前言[机器学习] 实验笔记系列是以我在算法研究中的实验笔记资料为基础加以整理推出的。
该系列内容涉及常见的机器学习算法理论以及常见的算法应用,每篇博客都会介绍实验相关的数据库,实验方法,实验结果,评价指标和相关技术目前的应用情况。
本文主要整理自笔者在表情识别(emotion recognition)研究上的实验笔记资料,给出了表情识别常用的数据库,论文资料,识别方法,评价指标,以及笔者的实验笔记和实验结果。
文章小节安排如下:1)表情识别的意义2)表情识别的应用3)常用的数据库及比赛4)实验-算法说明5)实验-效果展示6)结语一、表情识别的意义1.1 什么是表情?我们天天都在展示自己的表情并且看到其他人的表情,那么表情到底是什么?看看维基百科的定义:面部表情是面部肌肉的一个或多个动作或状态的结果。
这些运动表达了个体对观察者的情绪状态。
面部表情是非语言交际的一种形式。
它是表达人类之间的社会信息的主要手段,不过也发生在大多数其他哺乳动物和其他一些动物物种中。
人类的面部表情至少有21种,除了常见的高兴、吃惊、悲伤、愤怒、厌恶和恐惧6种,还有惊喜(高兴+吃惊)、悲愤(悲伤+愤怒)等15种可被区分的复合表情。
1.2 表情的意义?表情是人类及其他动物从身体外观投射出的情绪指标,多数指面部肌肉及五官形成的状态,如笑容、怒目等。
也包括身体整体表达出的身体语言。
参考:https:///wiki/%E9%9D%A2%E9%83%A8%E 8%A1%A8%E6%83%85简单来说,面部表情是人体(形体)语言的一部分,是一种生理及心理的反应,通常用于传递情感。
1.3 表情的研究面部表情的研究始于 19 世纪,1872年,达尔文在他著名的论著《人类和动物的表情(The Expression of the Emotions in Animals and Man,1872)》中就阐述了人的面部表情和动物的面部表情之间的联系和区别。
机器学习之数学原理笔记(四)
机器学习之数学原理笔记(四)最优化随着⼤数据的到来,并⾏计算的流⾏,实际上机器学习领域的很多研究者会把重点放在最优化⽅法的研究上,如large scale computation。
那么为什么要研究最优化呢?我们先从机器学习研究的⽬的说起。
机器学习理论主要是设计和分析⼀些让计算机可以⾃动“学习”的算法,这些算法可以从数据中⾃动分析获得规律,并利⽤规律对未知数据进⾏预测,并可⽤于发现数据之间隐藏的关系,解释某些现象的发⽣。
⾄于为什么要让机器去做这些事情,原因很简单,数据量和维度过于庞⼤,⽆法通过⼈脑简单的处理或分析这些数据。
⽐如,我们⽆法通过百万级的DNA序列分析各序列和疾病发⽣的关系,也⽆法在⼀定有限的时间内标定出1万张图像上⼈脸的位置。
所以研究者倾向于建⽴⼀些机器学习模型,通过输⼊⼀个样本(⼀个⼈的DNA序列或者是⼀副图⽚),输出样本的标签(是否患病、头像的位置)。
这些学习模型⾥有⼤量可以调整的参数,它们通过调整参数组合,拟合⾼维空间训练样本数据的分布,识别出数据和标签之间复杂的关系。
⽬前已有的神经⽹络、⽀持向量机、AdaBoost、卷积神经⽹络等算法,它们的共同特点是通过调整参数让模型的⽬标函数尽可能⼤或者⼩(如logistic回归是使得分类错误率尽量⼩)。
为了达到该⽬的,不同的机器学习算法⾸先会设定不同的⽬标函数,然后给参数赋上随机初值,最后⽤各种下降法更快更好地寻找能让分类错误率更⼩的参数组合。
所以,从⼴义上讲,机器学习算法的本质上是优化问题求解,例如,梯度下降、⽜顿法、共轭梯度法都是常见的机器学习算法优化⽅法。
那么有⼈肯定会有疑问,这不还是调参数、选择参数么?这个参数优化与之前的调参的概念是不同的,之前说的调参是针对算法中的⾃由参数(即通过经验指定的参数,⽤过weka或者R的⼈应该知道,如SVM中的gamma或者logistic回归中的惩罚因⼦lamda),这些参数主要是控制学习模型的泛化能⼒,防⽌过拟合。
《机器学习笔记》
《机器学习笔记》chapter-1监督学习:分类,回归无监督学习:聚类泛化能力:具有强泛化能力的模型能很好地适用与整个样本空间。
NFL定理(没有免费的午餐定理):总误差与学习算法无关,任意两个学习算法,他们的期望性相同。
即学习算法的期望性跟随机胡猜差不多。
要具体问题具体分析,谈论算法的优劣,必须针对具体的学习问题。
统计学习:支持向量机(SVM),核方法(kernel methods)数据挖掘(data mining)迁移学习(transfer learning)chapter-2模型评估与选择留出法(hold-out):直接将数据集D划分为两个互斥的集合,即一个作为训练集,一个为测试集。
交叉验证法(cross validation):将数据集D划分为K个大小相似的互斥子集,进行K次训练和测试,最终返回K个结果均值。
交叉验证法的特例:留一法(Leave One-Out,LOO)自助法(bootstrapping),随机从D中采样,将其拷贝到D‘,再将样本放回D,使得该样本在下一次仍有可能被采到。
在数据集较小,难以有效划分训练/测试集时很有作用。
验证集(validation set):模型评估与选择中用于评估测试的数据集,把训练数据划分训练集和验证集,基于验证集的性能来进行模型选择和调参。
性能度量(performance measure):衡量模型泛化能力。
均方误差(mean squared error)Roc(Receiver Operating Characteristic):受试者工作特征AUC(Area Under ROC Curve):ROC曲线下的面积损失(loss):对应ROC曲线之上的面积泛化误差可分解为偏差、方差与噪声之和。
chapter-3线性模型均方误差(square loss):平方损失,对应欧式距离最小二乘法(least square method):基于均方误差最小化来进行模型求解的方法,在线性回归中,最小二乘法试图找到一条直线,使所有样本到直线的欧氏距离之和最小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
斯坦福大学2014机器学习教程个人笔记(V5.01)摘要本笔记是针对斯坦福大学2014年机器学习课程视频做的个人笔记黄海广haiguang2000@qq群:554839127最后修改:2017-12-3斯坦福大学2014机器学习教程中文笔记课程概述Machine Learning(机器学习)是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演译。
在过去的十年中,机器学习帮助我们自动驾驶汽车,有效的语音识别,有效的网络搜索,并极大地提高了人类基因组的认识。
机器学习是当今非常普遍,你可能会使用这一天几十倍而不自知。
很多研究者也认为这是最好的人工智能的取得方式。
在本课中,您将学习最有效的机器学习技术,并获得实践,让它们为自己的工作。
更重要的是,你会不仅得到理论基础的学习,而且获得那些需要快速和强大的应用技术解决问题的实用技术。
最后,你会学到一些硅谷利用机器学习和人工智能的最佳实践创新。
本课程提供了一个广泛的介绍机器学习、数据挖掘、统计模式识别的课程。
主题包括:(一)监督学习(参数/非参数算法,支持向量机,核函数,神经网络)。
(二)无监督学习(聚类,降维,推荐系统,深入学习推荐)。
(三)在机器学习的最佳实践(偏差/方差理论;在机器学习和人工智能创新过程)。
本课程还将使用大量的案例研究,您还将学习如何运用学习算法构建智能机器人(感知,控制),文本的理解(Web搜索,反垃圾邮件),计算机视觉,医疗信息,音频,数据挖掘,和其他领域。
本课程需要10周共18节课,相对以前的机器学习视频,这个视频更加清晰,而且每课都有ppt课件,推荐学习。
本人是中国海洋大学2014级博士生,2014年刚开始接触机器学习,我下载了这次课程的所有视频和课件给大家分享。
中英文字幕来自于https:///course/ml,主要是教育无边界字幕组翻译,本人把中英文字幕进行合并,并翻译剩余字幕,对视频进行封装,归类,并翻译了课程目录,做好课程索引文件,希望对大家有所帮助。
部分视频中文字幕由中国海洋大学的博士生翻译。
视频已经翻译完毕,如果下载了视频,可以直接在文档中打开视频,内嵌中英文字幕,推荐使用potplayer。
这篇中文笔记,主要是根据视频内容和中文字幕以及ppt来制作,部分来源于网络,如“小小人_V”的笔记,并持续更新。
视频下载链接:/s/1pKLATJl 密码:xn4w本人水平有限,如有公式、算法错误,请及时指出,发邮件给我,也可以加我qq。
今日发现这个笔记被下载超过3万次,应该说这个笔记有点用,我发现以前一些翻译小错误,进行了修改,以免误导初学者。
黄海广2017-6-7 夜笔记更新网址:https:///fengdu78/Coursera-ML-AndrewNg-Notes知乎:https:///people/fengdu78/activities文档修改历史目录第1周 (1)一、引言(Introduction) (1)1.1 欢迎 (1)1.2 机器学习是什么? (4)1.3 监督学习 (6)1.4 无监督学习 (10)二、单变量线性回归(Linear Regression with One Variable) (15)2.1 模型表示 (15)2.2 代价函数 (18)2.3 代价函数的直观理解I (20)2.4 代价函数的直观理解II (21)2.5 梯度下降 (23)2.6 梯度下降的直观理解 (26)2.7 梯度下降的线性回归 (29)2.8 接下来的内容 (31)三、线性代数回顾(Linear Algebra Review) (32)3.1 矩阵和向量 (32)3.2 加法和标量乘法 (34)3.3 矩阵向量乘法 (35)3.4 矩阵乘法 (36)3.5 矩阵乘法的性质 (37)3.6 逆、转置 (38)第2周 (39)四、多变量线性回归(Linear Regression with Multiple Variables) (39)4.1 多维特征 (39)4.2 多变量梯度下降 (41)4.3 梯度下降法实践1-特征缩放 (43)4.4 梯度下降法实践2-学习率 (45)4.5 特征和多项式回归 (46)4.6 正规方程 (48)4.7 正规方程及不可逆性(选修) (51)五、Octave教程(Octave Tutorial) (54)5.1 基本操作 (54)5.2 移动数据 (61)5.3 计算数据 (70)5.4 绘图数据 (77)5.5 控制语句:for,while,if语句 (83)5.6 向量化 (89)5.7 工作和提交的编程练习 (94)第3周 (97)六、逻辑回归(Logistic Regression) (97)6.1 分类问题 (97)6.3 判定边界 (101)6.4 代价函数 (103)6.5 简化的成本函数和梯度下降 (108)6.6 高级优化 (112)6.7 多类别分类:一对多 (117)七、正则化(Regularization) (120)7.1 过拟合的问题 (120)7.2 代价函数 (122)7.3 正则化线性回归 (124)7.4 正则化的逻辑回归模型 (125)第4周 (127)第八、神经网络:表述(Neural Networks: Representation) (127)8.1 非线性假设 (127)8.2 神经元和大脑 (129)8.3 模型表示1 (133)8.4 模型表示2 (137)8.5 样本和直观理解1 (139)8.6 样本和直观理解II (141)8.7 多类分类 (143)第5周 (144)九、神经网络的学习(Neural Networks: Learning) (144)9.1 代价函数 (144)9.2 反向传播算法 (146)9.3 反向传播算法的直观理解 (149)9.4 实现注意:展开参数 (152)9.5 梯度检验 (153)9.6 随机初始化 (155)9.7 综合起来 (156)9.8 自主驾驶 (157)第6周 (160)十、应用机器学习的建议(Advice for Applying Machine Learning) (160)10.1 决定下一步做什么 (160)10.2 评估一个假设 (163)10.3 模型选择和交叉验证集 (165)10.4 诊断偏差和方差 (167)10.5 正则化和偏差/方差 (169)10.6 学习曲线 (171)10.7 决定下一步做什么 (173)十一、机器学习系统的设计(Machine Learning System Design) (175)11.1 首先要做什么 (175)11.2 误差分析 (176)11.3 类偏斜的误差度量 (179)11.4 查准率和查全率之间的权衡 (180)第7周 (186)十二、支持向量机(Support Vector Machines) (186)12.1 优化目标 (186)12.2 大边界的直观理解 (193)12.3 数学背后的大边界分类(选修) (199)12.4 核函数1 (206)12.5 核函数2 (208)12.6 使用支持向量机 (210)第8周 (213)十三、聚类(Clustering) (213)13.1 无监督学习:简介 (213)13.2 K-均值算法 (216)13.3 优化目标 (218)13.4 随机初始化 (219)13.5 选择聚类数 (220)十四、降维(Dimensionality Reduction) (221)14.1 动机一:数据压缩 (221)14.2 动机二:数据可视化 (224)14.3 主成分分析问题 (225)14.4 主成分分析算法 (227)14.5 选择主成分的数量 (228)14.6 重建的压缩表示 (230)14.7 主成分分析法的应用建议 (232)第9周 (233)十五、异常检测(Anomaly Detection) (233)15.1 问题的动机 (233)15.2 高斯分布 (235)15.3 算法 (236)15.4 开发和评价一个异常检测系统 (238)15.5 异常检测与监督学习对比 (239)15.6 选择特征 (240)15.7 多元高斯分布(选修) (242)15.8 使用多元高斯分布进行异常检测(选修) (245)十六、推荐系统(Recommender Systems) (248)16.1 问题形式化 (248)16.2 基于内容的推荐系统 (250)16.3 协同过滤 (252)16.4 协同过滤算法 (254)16.5 向量化:低秩矩阵分解 (255)16.6 推行工作上的细节:均值归一化 (257)第10周 (258)十七、大规模机器学习(Large Scale Machine Learning) (258)17.1 大型数据集的学习 (258)17.3 小批量梯度下降 (260)17.4 随机梯度下降收敛 (261)17.5 在线学习 (263)17.6 映射化简和数据并行 (265)十八、应用实例:图片文字识别(Application Example: Photo OCR) (266)18.1 问题描述和流程图 (266)18.2 滑动窗口 (267)18.3 获取大量数据和人工数据 (269)18.4 上限分析:哪部分管道的接下去做 (270)十九、总结(Conclusion) (271)19.1 总结和致谢 (271)附件 (273)1 常用的数学公式 (273)第1周一、引言(Introduction)1.1 欢迎参考视频: 1 - 1 - Welcome (7 min).mkv第一个视频主要讲了什么是机器学习,机器学习能做些什么事情。
机器学习是目前信息技术中最激动人心的方向之一。
在这门课中,你将学习到这门技术的前沿,并可以自己实现学习机器学习的算法。
你或许每天都在不知不觉中使用了机器学习的算法每次,你打开谷歌、必应搜索到你需要的内容,正是因为他们有良好的学习算法。
谷歌和微软实现了学习算法来排行网页每次,你用Facebook或苹果的图片分类程序他能认出你朋友的照片,这也是机器学习。
每次您阅读您的电子邮件垃圾邮件筛选器,可以帮你过滤大量的垃圾邮件这也是一种学习算法。
对我来说,我感到激动的原因之一是有一天做出一个和人类一样聪明的机器。
实现这个想法任重而道远,许多AI研究者认为,实现这个目标最好的方法是通过让机器试着模仿人的大脑学习我会在这门课中介绍一点这方面的内容。