精华内容
下载资源
问答
  • 2020.08.01~2020.11.18,历经110天,我们把频率学派发展起来的统计机器学习章节全部介绍完毕。本文我们做一个总结。频率学派最基础、最核心的模型是线性回归,这也是为什么绝...

    2020.08.01~2020.11.18,历经110天,我们把频率学派发展起来的统计机器学习章节全部介绍完毕。本文我们做一个总结。

    频率学派最基础、最核心的模型是线性回归,这也是为什么绝大多数大学学完概率论课程讲的第一个模型就是它。

    通常情况下,采取LSE最小二乘法求解线性回归的参数,该方法等价于噪音服从高斯分布的MLE最大似然估计法。但这样求解的模型通常来说过拟合,在此基础上,我们加入正则项减少过拟合,它假设参数也服从某种分布,对参数进行最大后验估计(MAP),如果参数先验服从拉普拉斯分布,就是L1损失,如果参数先验服从正态分布,就是L2损失。

    【传送门】

    线性回归之原理介绍

    线性回归建模思路与模型诊断(附代码)

    线性回归案例分析

    线性回归有三个重要的假设:线性;全局性;数据未加工

    线性,包括属性线性,系数线性和输出线性

    属性线性,就是属性之间是线性的,如果属性之间并非线性,就衍生出了多项式回归

    系数线性,就是系数直接也是线性的,如果不满足线性性,会生成神经网络模型

    输出线性,就是目标变量y与属性、系数之间是直接作用的,否则在输出的时候增加激活函数,这就引申出线性分类模型

    针对分类的不同,我们分为硬输出软输出,硬输出是指输出结果y为离散值{+1,-1},最简单的是感知机算法,它利用错误驱动的思想,采取梯度下降法求解分类超平面;另外一种是基于降维的思想做分类——线性判别分析(Fisher)。除此之外,支持向量机(SVM)在分类问题上大放异彩,主要思想是找到一个决策平面,最大化边缘点与该超平面的距离,在线性可分的情况下,该模型称为硬间隔分类器而现实情况下,数据大多数是不满足严格的线性,即找不到这样的超平面,我们允许一些错分样本的存在,在原有损失函数上加上合页损失,为了使得其可导,把合页损失用松弛因子替代,这就是软间隔分类器。但这样也不能处理所有的情况,在低维空间上遇到即使加上松弛因子也难以做到线性可分,我们利用核函数把其映射到高维空间,这就是核映射分类器

    通常情况下,SVM都是带线性约束的二次凸优化问题,所以强对偶条件成立,最后利用KKT条件把损失函数转化为只含拉格朗日因子的表达式,利用SMO算法求解模型。

    【传送门】

    感知机与线性判别分析

    约束优化问题(SVM预备知识)

    SVM(一)

    SVM(二)

    SVM(三)

    针对软输出模型是指输出值是概率[0,1]之间,根据对建模目标的不同,分成概率判别模型概率生成模型,前者对条件概率p(y|x)建模,典型的模型是大名鼎鼎的逻辑回归,后者对联合概率p(x,y)建模,代表有朴素贝叶斯和高斯判别模型(GDA)

    最大熵原理出发可以得到指数族分布,逻辑回归是服从伯努利分布的指数族分布模型,链接函数采取典则链接,利用MLE最大似然估计可以得到sigmoid激活函数;高斯判别模型除了目标服从伯努利分布,在指定类别下属性特征服从同方差的高斯分布;朴素贝叶斯主要针对离散特征建模,按照特征取值的不用,可以分为特征先验服从伯努利分布、多项式分布和高斯分布的模型

    【传送门】

    概率生成模型:GDA和Navie Bayes

    从【为什么要用sigmoid函数】到真的懂【逻辑回归】

    线性分类模型sklearn实现

    线性回归的全局性是指模型在特征空间上都是恒定的,统一的,也即没有对特征进行空间划分并分别做回归。而现实中,很可能某一部分群体,就只用某个或几个特征的固定取值范围就能识别出来,这就引出了决策树

    分类决策树本质上是一个多维空间上的分段线性划分,回归决策树是分段常数函数。它通过递归分裂找到决策边界,以不纯度作为分裂规则,分类问题有熵不纯度、Gini不纯度和误分类不纯度,回归问题是最小化回归误差。赋值用多数法或均值法。如果不限制树的规模,决策树能无限分裂下去直至叶子节点只有一个样本,这显然会过拟合。我们用预剪枝和后剪枝来降低模型方差,后剪枝主要有代价复杂度剪枝(CCP)

    【传送门】

    决策树之原理与调参

    决策树sklearn包细节讲解

    一颗决策树往往具备很强的偶然性,为了得到更精准的模型。我们采取了集成学习的思想,主要有bagging和boosting。前者的弱学习器之间并行生成,能够有效降低单个模型的方差,最经典应用是随机森林;boosting的弱学习器之间是串行生成的,学习器之间具有强相关性,因此无法降低模型方差,但能有效降低模型偏差。经典的应用的是梯度提升决策树(GBDT),它每次拟合的方向是前k轮学习器的负梯度,建立的都是回归树,赋值的方式与标准的决策树不同,它在生成决策树后,叶子节点的赋值标准是使得全局损失函数最小,利用最速下降法搜索最优解。本质上就是负梯度除以二阶导(-g/h),所以GBDT也利用到了二阶信息;而XGboost是让函数展开到二阶,一步到位拟合目标值(-g/h),这与牛顿法拟合目标一致,因此决策树的分裂规则与GBDT不同,且效率更高(GBDT建树与搜索最优值分两步),每一步的二阶导代表了样本的权重大小。

    GBDT的分类回归本质是损失函数的不同,如果损失函数采取指数损失,退化为AdaBoost算法,两者损失函数表达式完全一致,区别在于展开化简不同,GBDT针对的是目标y建模,而AdaBoost从样本权重角度建立模型。

    线性回归模型是对数据不经任何加工就建立模型,很多时候会有维数灾难问题,容易过拟合,我们利用降维的方法对数据进行加工处理使得其更加稳健。除降维方法,也有归一化处理、缺失值处理等加工方法。

    【传送门】

    集成学习(一)

    集成学习(二)

    集成学习(三)

    集成学习(四)

    集成学习(五)

    集成学习(六)

    统计机器学习战略地图已全部介绍完毕,下一篇开始,我们开始机器学习另外一个大征程——概率图模型。掌握了这个,你的建模微观体感将更健全,为职业生涯打下扎实的基础。

    期待与你一起进步!!!

    展开全文
  • 但是笔者在看了这一章的课程之后发现其内容可能实际应用性不大,课程讲的ocr识别的方法已经不适合目前主流的算法(目前主流使用CNN——卷积神经网络),故省略这一章节的笔记,改为对整个机器学习课程的总结。...

    前言

    原机器学习最后一章的内容为 图片文字识别,但是笔者在看了这一章的课程之后发现其内容可能实际应用性不大,课程讲的ocr识别的方法已经不适合目前主流的算法(目前主流使用CNN——卷积神经网络),故省略这一章节的笔记,改为对整个机器学习课程的总结。
    在这里插入图片描述

    一、监督学习算法

    1、线性回归

    线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为hθ(x) = θTx

    2、logistics回归

    logistic回归是一种广义线性回归(generalized linear model),因此与多重线性回归分析有很多相同之处。它们的模型形式基本上相同,都具有 w‘x+b,其中w和b是待求参数,其区别在于他们的因变量不同,多重线性回归直接将w‘x+b作为因变量,即y =w‘x+b,而logistic回归则通过函数L将w‘x+b对应一个隐状态p,p =L(w‘x+b),然后根据p 与1-p的大小决定因变量的值。如果L是logistic函数,就是logistic回归,如果L是多项式函数就是多项式回归

    3、神经网络

    人工神经网络是由大量处理单元互联组成的非线性、自适应信息处理系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。

    4、支持向量机

    支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)

    二、非监督学习算法

    1、K-means算法

    K均值聚类算法是先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

    2、主成分分析(PCA)

    PCA(principal components analysis)即主成分分析技术,又称主分量分析。主成分分析也称主分量分析,旨在利用降维的思想,把多指标转化为少数几个综合指标。

    3、异常检测

    异常检测,顾名思义就是检测异常的算法,比如网络质量异常、用户访问行为异常、服务器异常、交换机异常和系统异常等,都是可以通过异常检测算法来做监控的
    异常定义为“容易被孤立的离群点 (more likely to be separated)”——可以理解为分布稀疏且离密度高的群体较远的点。用统计学来解释,在数据空间里面,分布稀疏的区域表示数据发生在此区域的概率很低,因而可以认为落在这些区域里的数据是异常的。

    三、其他算法及应用

    1、推荐系统

    推荐系统是利用 [1] 电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。
    随着电子商务规模的不断扩大,商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品。这种浏览大量无关的信息和产品过程无疑会使淹没在信息过载问题中的消费者不断流失。
    为了解决这些问题,个性化推荐系统应运而生。个性化推荐系统是建立在海量数据挖掘基础上的一种高级商务智能平台,以帮助电子商务网站为其顾客购物提供完全个性化的决策支持和信息服务。

    2、大数据集机器学习

    由于在大数据集的机器学习下的梯度下降法会比较慢,本章介绍最多的是几种梯度下降的方法
    批量梯度下降法 > 随机梯度下降法 > 小批量梯度下降法

    3、机器学习系统设计

    最后,我们还提到了很多关于构建机器学习系统的实用建议。这包括了怎样理解某个机器学习算法是否正常工作的原因,所以我们谈到了偏差和方差的问题,也谈到了解决方差问题的正则化,同时我们也讨论了怎样决定接下来怎么做的问题,也就是说当你在开发一个机器学习系统时,什么工作才是接下来应该优先考虑的问题。因此我们讨论了学习算法的评价法。介绍了评价矩阵,比如:查准率、召回率以及 F1 分数,还有评价学习算法比较实用的训练集、交叉验证集和测试集。我们也介绍了学习算法的调试,以及如何确保学习算法的正常运行,于是我们介绍了一些诊断法,比如学习曲线,同时也讨论了误差分析、上限分析等内容

    总结

    综合以上所总结的内容,就是本系列博文的全部内容,以便后续的查阅和学习。

    展开全文
  • 机器学习总结与心得

    万次阅读 2018-08-03 21:36:45
    这段时间把《机器学习》看了一遍,总的来说,除了前两章是基础,其余章节都是介绍模型方法,应用场景、理论推导、优化过程、算法等,每章都可独立阅读而不受其他章节影响。 如果只是每一章都看完,顶多就是了解了一...

    目录

    1、数据抽象

    2、设定性能度量指标

    3、数据预处理

    4、选定模型

    4.1、方法与目的

    4.2、目的与方法

    5、训练及优化

    6、应用


    这段时间把《机器学习》看了一遍,总的来说,除了前两章是基础,其余章节都是介绍模型方法,应用场景、理论推导、优化过程、算法等,每章都可独立阅读而不受其他章节影响。

    如果只是每一章都看完,顶多就是了解了一种方法,相互之间是割裂的,这样当碰到一个实际问题,仍然无法思路完整的求解,因而有必要在阅读时就要有意识甚至刻意的建立起知识架构。实际上,所谓的机器学习,是面对一个具体的问题,从给定的数据中产生模型的算法,也就是说脱离了实际问题谈机器学习算法是毫无意义的

    参考本书的章节内容,加上自己在读书、工作中的一些理解,简单总结一下基于机器学习的一般性问题解决方法。

    前面提到,脱离实际问题谈机器学习是毫无意义的,那么在给定数据集(所谓大数据)和具体问题的前提下,一般解决问题的步骤可以概括如下:

    1、数据抽象

    将数据集和具体问题抽象成数学语言,以恰当的数学符号表示。这样做自然是为了方便表述和求解问题,而且也更加直观。

    2、设定性能度量指标

    机器学习是产生模型的算法,一般来说模型都有误差。如果模型学的太好,把训练样本自身的一些特点当成所有样本具有的潜在一般性质,这种情况称为过拟合,这样的模型在面对新样本时就会出现较大误差,专业表述就是导致模型的泛化性能下降

    与之相对的是欠拟合,模型对样本的一般性质都没学好,这种情况一般比较好解决,扩充数据集或者调整模型皆可。

    而一般来说无论是机器学习还是现在很火的深度学习,面对的主要问题都是过拟合。那么为了保证模型的泛化能力足够强,必须要有衡量模型泛化能力的评价标准,也就是性能度量的设定。

    很显然不同的性能度量会导致不同的评判结果,好的性能度量能够直观的显示模型的好坏,同时也能看到不同模型,或者模型在不同参数下对解决问题的程度好坏。

    进一步,有的问题可以直接基于设定的性能度量直接做最优化,得出该问题的一般求解模型。

    比如回归任务最常用的性能度量就是均方误差,目标就是让均方误差最小,这就直接转化成了一个最优化问题。

    其他一些常用的有错误率与精度、查准率、查全率、ROC与AOC等。

    当然更为重要的是,仅仅设定好性能度量是不够的,不同模型或者不同参数下得到的性能度量结果一般是不同的,一般来说不能简单的比较结果,而应该基于统计假设检验来做效果判定。也就是说通过比较检验的方法,我们就可以判断,如果观察到A比B好,在统计意义上A的泛化性能是否优于B,以及这个判断的把握有多大。

    3、数据预处理

    之所以要做数据预处理,是因为提供的数据集往往很少是可以直接拿来用的。

    可能的情况有: 
    1. 样本某些属性值缺失 
    2. 有未标记样本 
    3. 样本的属性太多 
    4. 样本量不足 
    5. 没有分出测试集和验证集 
    6. 不同类的样本数相差比较大

    不同类的样本数相差比较大

    这就是所谓类别不平衡问题。举个例子,样本里有998个反例,2个正例,如果一个模型对任何的新样本都预测为反例,那么它的精度为99.8%,虽然很高,但没有任何价值。

    这种情况使用的基本策略是再缩放,具体方法则是采样。通过不同的采样方法来使类别达到平衡。

    没有分出测试集和验证集

    再说第五种情况,为了方便训练和验证模型好坏,数据集一般会以9:1或者其他合适比例(比例选择主要基于实际问题)分为测试集和验证集。如果给定的数据集只是已经标记好的样本,那么划分时必须保证数据集和测试集的分布大致均匀,这就涉及到具体的划分算法了。

    样本量不足

    第四种情况一般图像问题比较常遇到,如果样本量不足,不够模型来学习,效果自然很差。常见的方法一般有两种: 
    1. 基于原数据集做扩充。比如对于图片,可以做各种处理,比如旋转、crop、对比度、亮度等基于像素值的调整,使得一个样本能够生成多个样本,从而达到扩充数据集的目的。 
    2. 通过人工标注生成样本。比如大名鼎鼎的ImageNet数据集就是通过全球众包完成的,当然这个不仅耗时长,人工成本也很高,需谨慎考虑。

    样本的属性太多

    对于第三种情况,如果样本属性太多,为了保证模型的泛化性能足够强,则理论上必须保证数据集包括有所有属性的所有值,而这随着属性数目以及属性值是呈指数上升,很有可能达到天文数字,不仅难以计算,在现实情况也不可能收集到这么多的样本。

    从数学角度看,每个样本的属性可以看成向量,属性数目是向量的维数,解决第三种情况一般有两种方法: 
    1. 降维 
    2. 特征选择

    特征选择比较好理解,就是选择有用相关的属性,或者用另外一种表达方式:选择样本中有用、跟问题相关的特征。事实上这也很正常,并不一定样本的所有属性对具体问题都是有用的,通过一定的方法选择合适的特征可以保证模型更优。常用的方法大致分三类:过滤式、包裹式和嵌入式。

    所谓的降维,即是多属性意味着是高维空间,在很多时候可以等价的映射到低维而不丢失主要信息。从空间映射的角度看,我们可以通过主成分分析PCA(线性映射)和核化主成分分析(非线性映射)来达到降维的目的。(补充:PCA是无监督降维方法,线性判别分析LDA则是监督降维防范)

    有未标记样本

    现实情况下往往很多数据集都有大量的未标记样本,有标记的样本反而比较少。如果直接弃用,很大程度上会导致模型精度低。这种情况解决的思路往往是结合有标记的样本,通过估计的方法把未标记样本变为伪的有标记样本。基本的方法有主动学习和半监督学习两种方法。

    样本某些属性值缺失

    样本的属性值缺失是很常见的一种情况。比如做书籍、视频、音乐等的个性化推荐时,需要用户对不同种类的偏好或评价。而用户不一定听过所有种类的歌,也不一定做出了评价。这就需要通过他已产生的样本数据和与之相类似的用户的数据来恢复和补全。

    从原理上讲,这和压缩感知根据部分信息恢复全部信息是有类似的。

    常用的方法涉及到协同过滤、矩阵补全等技术和方法。


    总的来说,数据预处理是一个非常重要的过程,实际上数据预处理往往会和模型选择结合在一起。

    4、选定模型

    4.1、方法与目的

    分类模型和回归模型本质一样,分类模型可将回归模型的输出离散化(下面例子1. 2. 4. 5.),回归模型也可将分类模型的输出连续化(下面例子3.)  

    举几个例子:  

    1、Logistic Regression 和 Linear Regression

        1、Linear Regression: 输出一个标量 wx+b,这个值是连续值,所以可以用来处理回归问题

        2、Logistic Regression:把上面的 wx+b 通过 sigmoid 函数映射到(0,1)上,并划分一个阈值,大于阈值的分为一类,小于等于分为另一类,可以用来处理二分类问题 更进一步:对于N分类问题,则是先得到N组w值不同的 wx+b,然后归一化,比如用 softmax 函数,最后变成N个类上的概率,可以处理多分类问题

    2、Support Vector Regression 和 Support Vector Machine:

        1、SVR:输出 wx+b,即某个样本点到分类面的距离,是连续值,所以是回归模型

        2、SVM:把这个距离用 sign(·) 函数作用,距离为正(在超平面一侧)的样本点是一类,为负的是另一类,所以是分类模型

    3、Naive Bayes 用于分类 和 回归:

        1、用于分类:y是离散的类别,所以得到离散的 p(y|x),给定 x ,输出每个类上的概率

        2、用于回归:对上面离散的 p(y|x)求期望 ΣyP(y|x),就得到连续值。但因为此时y本身是连续的值,所以最地道的做法是,得到连续的概率密度函数p(y|x),然后再对y求期望。参考 http://www.cs.waikato.ac.nz/~eibe/pubs/nbr.pdf

    4、前馈神经网络(如 CNN 系列) 用于 分类 和 回归:

        1、用于回归:最后一层有m个神经元,每个神经元输出一个标量,m个神经元的输出可以看做向量 v,现全部连到一个神经元上,则这个神经元输出 wv+b,是一个连续值,可以处理回归问题,跟上面 Linear Regression 思想一样

        2、用于N分类:现在这m个神经元最后连接到 N 个神经元,就有 N 组w值不同的 wv+b,同理可以归一化(比如用 softmax )变成 N个类上的概率(补充一下,如果不用 softmax,而是每个 wx+b 用一个 sigmoid,就变成多标签问题,跟多分类的区别在于,样本可以被打上多个标签)

    5、循环神经网络(如 RNN 系列) 用于分类 和 回归:

        1、用于回归 和 分类: 跟 CNN 类似,输出层的值 y = wv+b,可做分类可做回归,只不过区别在于,RNN 的输出跟时间有关,即输出的是 {y(t), y(t+1),...}序列(关于时间序列,见下面的更新)

    上面的例子其实都是从 prediction 的角度举例的,如果从 training 角度来看,分类模型和回归模型的目标函数不同,分类常见的是 log loss, hinge loss, 而回归是 square loss(关于 loss function,又是另一个story了,在此不展开了)

    4.2、目的与方法

    在数据集完美的情况下,接下来就是根据具体问题选定恰当的模型了。

    一种方式是根据有没有标记样本考虑。

    如果是有标记样本,可以考虑有监督学习,反之则是无监督学习,兼而有之就看半监督学习是否派的上用场。

    无监督学习方法主要提到的是聚类。随机选定几个样本,通过一定的算法不停迭代直至收敛或者达到停止条件,然后便将所有样本分成了几类。

    有监督学习而言,根据最终所需要的输出结果

    • 如果涉及到分类,可以参考的模型有线性回归及其非线性扩展、决策树、神经网络、支持向量机SVM、规则学习等
    • 如果是回归问题,可以认为是分类的连续形式,方法便是以上模型的变种或扩展
    • 如果涉及到概率,可以参考的有神经网络、贝叶斯、最大似然、EM、概率图、隐马尔科夫模型、强化学习等

    5、训练及优化

    选定了模型,如何训练和优化也是一个重要问题。 
    - 如果要评估训练集和验证集的划分效果,常用的有留出法、交叉验证法、自助法、模型调参等 
    - 如果模型计算时间太长,可以考虑剪枝 
    - 如果是过拟合,则可通过引入正则化项来抑制(补偿原理) 
    - 如果单个模型效果不佳,可以集成多个学习器通过一定策略结合,取长补短(集成学习)

    6、应用

    模型训练好之后,自然就是应用,针对未知样本做预测、推荐等。

    最后再简单谈一下神经网络。本书中神经网络仅仅是作为一个章节叙述,包括经典的BP算法。

    但技术书籍的推出总是落后于当前技术发展的。《机器学习》上市的时间,已经是深度学习大行其道了。

    多层的神经网络伴随的往往是大量参数的计算和对大数据的渴求。随着互联网的发展,人们产生的数据呈爆炸式增长,这使得大数据集越来越多,同时以NVIDIA为代表推出的基于GPU的机器的计算能力大幅提高,这使得应用多层神经网络解决实际问题成为可能。尤其是在ImageNet竞赛中基于卷积神经网络的模型以大幅优势夺冠后,无论是学术界还是工业界,都投入大量人力财力研究和应用。以前认为人工智能不可能击败围棋的论点也在今年AlphaGO战胜李世石不攻自破,AlphaGO赖以成功的基础就是几千万名家的对战棋谱(数据集)和多层神经网络(模型),当然还包括了强化学习和评估网络等辅助下棋策略。

    一个非常有趣的事实是,神经网络在经历了几次寒冬后,科学家们为了保证科研成果能够更大概率的发表,启用了新名词深度学习。(以neural network为关键词的paper拒稿率很高)所以从本质上讲,深度学习可以简单的认为是很深层的神经网络。

    展开全文
  • 有的章节是手写笔记截图,有的则是文字描述。写此文主要是为了自己复习方便,所以没有在排版上花太多精力,如果能顺便帮到他人更好。 此文持续更新,但不保证速度,因为有时我会停下来看别的资料、网课等。以及我不...

    前言

    • 本文主要参考《统计学习方法》及其第二版,所有非手写的截图,如无特别说明,均来自此书,非博主的劳动成果。
    • 本文暂时谢绝转载,如需摘录片段,请自觉标明来源
    • 此文包含各式各样的总结方式,有时会从书上截图,描述我对其中内容的见解;有时会放手写总结截图等。因为太忙,所以会将手写截图放的多亿点,文章排版啥的就别指望了hhh。
    尽量保持更新,学习之路,永无止境,希望和大家一起进步!
    (图源网络)

    一、基础概念大杂烩

    1,包含监督学习、非监督学习、半监督学习(semi-supervised learning)、强化学习(reinforcement learning)等;

    2,统计学习三要素:模型、策略、算法。

    • (1)什么是模型?可以这样理解:
      模型就是所要学习的条件概率分布或决策函数。
      需要引入假设空间(hypothesis space)的概念:模型的假设空间包含所有可能的条件概率分布或决策函数,假设空间可以定义如下:

    可以定义为决策函数的集合,或者条件概率的集合。X代表输入数据,Y代表输出。

    假设空间的通俗理解就是所有可能的模型的集合。

    • (2)策略则包含损失函数和风险函数等概念。

    损失函数举例:

    损失函数越小,模型就越好。损失函数的期望是:

    这就是风险函数(risk function)或者期望损失(expected loss),可惜的是这个式子没法计算,因为联合概率P(x, y)是未知的,所以我们用经验风险(empirical risk)或经验损失(empirical loss)来代替之:

    经验风险最小化(empirical risk minimization, ERM)的策略认为上式最小的模型是最优的模型,这样最优化问题就是这样表示:

    样本容量足够大时,经验风险最小化能够保证很好的学习效果,但当样本容量非常小的时候,经验风险最小化就未必效果很好,会产生过拟合(over-fitting)的现象。

    为了解决过拟合,应当使用的策略是结构风险最小化(structural risk minimization,SRM),这个等价于正则化(regularization)。结构风险在经验风险的基础上加上了表示模型复杂度的正则化项(regularization)或罚项(penalty term):

    J(f)就是模型复杂度。

    结构风险最小化的策略认为获取最优解就是解决以下问题:

    • (3)统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后考虑使用什么计算方法求解最优模型。统计学习的算法就是求解最优化问题的算法。

    确定模型、策略、算法就能够确定统计学习的方法,故称之为统计学习的三要素。

    3,模型评估与模型选择

    • (1)给定几种学习方法,测试误差小的方法有更好的预测能力,是更有效的方法。

    泛化能力:学习方法对未知数据的预测能力。

    • (2)过拟合(over-fitting):
      如果一味追求提高对训练数据的预测能力,所选模型的复杂度往往比“真模型”更高,这种现象被称为过拟合。

    过拟合往往体现为在训练集上表现相当好,而在测试集上表现欠佳。为了即达到模型的复杂度适当、又达到模型的最优,在选择模型时使用正则化交叉验证两种方法。

    • (3)正则化(regularization)

    正则化是结构风险最小化策略的实现,一般具有的形式是:

    上式第一项是经验风险,第二项是正则化项,λ\lambda(非负)是调整两者之间关系的系数。

    正则化还可以是别的形式,比如采用参数向量的L2范数:

    (注意上式中经验风险采用的是平方损失,但也可以是别的)
    也可以采用参数向量的L1范数:

    正则化的作用是选择经验风险与模型复杂度同时较小的模型。λ\lambda越大越倾向于降低模型的复杂度。

    正则化符合奥卡姆剃刀原理,即:

    能够很好地解释已知数据并且十分简单的模型才是好模型

    • (4)交叉验证(cross validation)
      如果样本数据充足,则可以随机将数据集分成三部分:训练集(用来训练模型)、验证集(用来模型的选择)、测试集(用来评估最终的学习方法)。

    在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集数据足够多,所以这样选择模型是有效的。

    而通常数据是不充足的,则有以下三种方式应对:

    • 简单交叉验证:随机将数据分成两部分,分别为训练集和测试集。训练集在不同条件下训练出不同模型,再用测试集选出最好的模型。
    • S折交叉验证(S-fold cross validation):首先将数据切分成S个互不相交的子集,然后利用S-1个子集的数据训练模型,用余下的子集测试模型。将这一过程对可能的S种选择重复进行,最终选出S次测试误差最小的模型。
    • 留一交叉验证:如果S折交叉验证的S=N(数据集容量),那么就称为留一交叉验证。“留一”应该是指N-1条数据用于训练,留下的一条用于测试。

    4,泛化能力(generalization ability)

    泛化能力是指所学到的模型对未知数据的预测能力。

    现实中采用最多的办法就是通过测试误差来评价学习方法的泛化能力,但此法依赖测试数据集。

    另一种办法就是通过分析泛化误差上界(generalization error bound)来分析泛化能力。泛化误差:

    实际上就是模型的期望风险,它就是下图中1.25式的左端,这个式子的上界就是1.25式右端:

    1.25式的右侧就是泛化误差上界,其由经验风险和一个函数两项组成。其中N是数据个数,d是假设空间容量。显然N越大或者d越小,泛化误差上界越小。证明1.25式需要用到Hoeffding不等式。

    5,生成模型和判别模型

    监督学习方法分为生成方法(generative approach)和判别方法(discriminative approach),所学到的模型分别为生成模型(generative model)和判别模型(discriminative model)。

    • 生成模型
      由数据学习联合概率分布P(X, Y),求出条件概率分布作为预测模型,即生成模型:

    之所以称为生成方法,是因为模型给出了给定输入X产生输出Y的生成关系。生成模型有:朴素贝叶斯法和隐马尔可夫模型。

    • 判别模型
      由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测的模型。关心的是给定输入X,应该预测什么输出Y。包含:k近邻法、感知机、决策树、逻辑回归、最大熵模型、支持向量机、提升方法和条件随机场等。

    6,分类问题——主要介绍精确率(precision)和召回率(recall)

    精确率就是所有预测结果为正类的正确率;召回率就是所有正类被预测为正类的概率。

    还有一个概念是准确率(accuracy),是正确分类的样本数和总样本数之比,这是评价分类器的一般指标。

    另外还有一个F1值:

    7,标注(tagging)问题

    这也是监督学习的一种。

    输入是一个观测序列,输出是一个标记序列或状态序列:

    对一个观测序列,找到条件概率最大的标记序列。

    标注常用的统计学习方法有:隐马尔可夫模型、条件随机场。

    标注的应用场景:信息抽取、自然语言处理。

    举个例子,自然语言处理的词性标注(part of speech tagging),就是给定一个由单词组成的句子,输出就是对这个句子每个单词进行词性标注。

    信息抽取的例子,从英文文章中抽取基本名词短语。英文单词是一个观测,英文句子是一个观测序列,标记表示名词短语的“开始”、“结束”、“其他”。信息抽取就是将标记“开始”到“结束”的名词短语抽取出来。技术细节如图:

    8,回归(regression)问题

    是监督问题的一种。按照输入变量的个数分为一元回归和多元回归。

    不作详述,一张图搞定:

    回归的常用损失函数是平方损失函数,这种情况下,回归问题可以由最小二乘法(least squares)求解。

    二、感知机(perceptron)

    原始形式

    几个概念:

    超平面(hyperplane):wx+b=0wx+b=0

    线性可分数据集(linearly separable data set):存在某个超平面能够将数据集的正实例点和负实例点完全分开。当训练数据集线性可分时,感知机算法存在无穷多个解,其解由不同的初值或者不同的迭代顺序而可能不同。

    定理:样本集线性可分的充要条件是正实例点集所构成的凸壳和负实例点集所构成的凸壳互不相交。
    凸壳定义(下图来源于百度百科):

    感知机是线性模型,不能表示复杂函数,如异或(XOR)。

    • 感知机算法和其原始形式:

    在这里插入图片描述
    以上讲述的是感知机算法的原始形式,以下是相应例题:
    在这里插入图片描述

    对偶形式——结合Gram矩阵提效率的好方法

    • 感知机学习算法的对偶形式:
      在这里插入图片描述
      感知机算法的对偶形式练习题:
      在这里插入图片描述

    对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限次搜索可找到将训练数据完全正确分开的分离超平面(下图2.9式说明了误分类次数有上界):

    三、k近邻法(k-nearest neighbor, k-NN)

    几种距离

    说白了就是给定实例点,在训练集中和这个实例点最近的k个点的多数是什么类别,这个实例点就被判定为什么类别。
    k近邻法没有显示的学习过程。

    这一章我依旧展示手写笔记:
    在这里插入图片描述

    模型对应特征空间的划分,在线的这边离这个点更近、线的另一边离另一个点更近:

    k值选择和kd树


    上图的最下边,我用序号标明了划分顺序。

    kd树是平衡二叉树。

    构造好kd树,下一步做什么?
    答案是根据kd树寻找输入实例点最邻近的k个点。为了方便理解,令k=1,即找出与输入实例点最邻近的点(k=1的k近邻法,此法即最近邻法)的例题如下:

    上图的理解十分重要,为了方便理解,手写详细过程如下:
    在这里插入图片描述

    kd树终究是为了解决k近邻法,上述例子只给出了k=1的最近邻法,然后说明了对于k近邻法也是类似的做法,但未提及具体如何做。博主给出了两种猜想:
    (1)进行k次检索,给每次找出的最近邻点加个“不再搜索”的标记,相当于下次不再搜索这个结点,这样便找出了k个最邻近的点;(我觉得这种方式,如果k过大,可能时间开销会惨不忍睹)
    (2)构造长度为k的队列…编不下去了,如果有什么好的办法,欢迎评论区交流!

    最后再看下书上写的分类决策规则:

    几何角度比较k=1或2的异同

    第三章课后有道题需要重视,参考一位大佬的解答:


    参考他文的内容开始:

    我参考:
    作者:刘炫320
    原文:https://blog.csdn.net/qq_35082030/article/details/60965320
    关于课后习题3.1的解答:
    在这里插入图片描述
    附图3.1:

    我们不去考虑k为1的情况,因为k为1的情况我们可以很容易从原图中获取,我们来考虑k=2时候的空间划分。
    我们都知道,在2维空间中,我们通常使用的是一条线来进行2分类,这也是最优的分类方式(每次减小样本空间一半),那么在这个题目中,如果k=2的时候,我们考虑最近的3个点开始,其实无论是多少都没关系的,只不过时间复杂度比较大,但是我们通常不会选取过多的候选点。
    现在,这条线就是2个点的连线的垂直平分线,如下图所示:

    为了更清楚,我把图片放大,以至于A,B点变成了圆,l为AB两点连线的垂直平分线。如图上所标,这时候只能考虑k=1d的时候的划分。一条垂直平分线可以把平面分成两个部分,左边红色的部分都会被归结为离A点近,右边的蓝色部分都会被归结于B点近。
    那么如果我们考虑三个点的k近邻,如下图所示:

    如果K=1,那么最终的分类就会是如此,蓝色的点都是被归于点A,红色的点都归于点B,紫色的点都归于点C,但是如果是K=2的时候呢?K=2的时候,只需要把垂直平分线延长就可以了,如下图:

    为了区分归属,我把三个点都标上了颜色,而被划分的6个区域,其最近的2个点的颜色都在图上标出,其实就是一个二维层面的三次切分,取其中最近的2个点。这样就得到了空间划分。

    参考他文的内容到此为止


    四、朴素贝叶斯法(naive Bayes)

    1,基本方法

    这个方法基于概率论中的贝叶斯公式:
    P(cx)=P(xc)P(c)P(x)P(c|x)=\frac{P(x|c)P(c)}{P(x)}
    x是输入,c是类别。就是要判断输入为X的前提下,哪个类别的条件概率最高,那么就选哪个类别为X的预测类别。

    当然以上公式是为了方便理解的简单写法,看看书上怎么写:

    其中等号右边分母就是P(X=x)P(X=x),这样的展开是利用了全概率公式。P(X=xY=ck)P(X=x|Y=c_k)P(Y=ck)P(Y=c_k)分别是条件概率和先验概率,它俩都可以通过训练集计算所得。接下来讲这个计算的具体方法。

    由于输入X是一个向量,则有:

    其中X(i)X^{(i)}是向量的第i个分量。朴素贝叶斯中的“朴素”是因为对条件概率分布作了条件独立性假设:

    即计算输入向量每个分量的条件概率再相乘,作为所需条件概率。将上式带入上上个截图的4.4式,就能得到:

    从而,贝叶斯分类器就可以表示成:

    预测输入x对应的概率就是使得P(Y=ckX=x)P(Y=c_k|X=x)(后验概率)最大的ckc_k,这就是后验概率最大化。

    2,后验概率最大化的含义

    书上这块内容的意思是说朴素贝叶斯分类器所用的后验概率最大化恰恰等价于期望风险最小化,大致了解下证明过程即可:

    首先把期望风险函数写成如下形式,其中L是0-1损失函数。由于期望是对P(X=x,Y=c)P(X=x,Y=c)取的,它可以写成P(Y=cX=x)P(X=x)P(Y=c|X=x)P(X=x),这样就得到这种形式的期望风险(注意它把P(X=x)P(X=x)挪到了求和符号外,变成了ExEx):

    然后逐步转化期望风险最小化:

    到上述推导的最后一行,期望风险最小化被转化为后验概率最大化。

    3,参数估计

    根据之前讲的公式,显然只需要估计P(X(j)=ajlY=ck)P(X^{(j)}=a_{jl}|Y=c_k)P(Y=ck)P(Y=c_k)的值,就能够计算出后验概率。X(j)X^{(j)}是特征的第j个分量,也就是第j个特征,而ajla_{jl}的解释是:

    估计的方法采用极大似然估计:

    I()I()的意思是括号内表达式为真,值就为1,反之为0.上式就是数据集中类别为ckc_k所占比例)

    计算好后,带入之前说的分类器:

    对这个分类器进一步简化就是只用考虑上式右端的分子:

    4,朴素贝叶斯法例题

    书上有道例题截图在这方便温习:

    5,贝叶斯估计

    用极大似然估计可能会出现所要估计概率值为0的情况,(通过以上例题可以发现,估计的过程就是在数据集中数数的过程,如果没数到,概率值就为0)

    所以对先验概率和条件概率采用贝叶斯估计:

    上面两式中,SjS_j表示X(j)X^{(j)}可能的取值种数,KK表示类别数量。分子分母都加的λ\lambda是正数,这就保证了估出来的值肯定不会是0。当λ\lambda是0的时候是极大似然估计,当λ\lambda是1的时候是拉普拉斯平滑(Laplacian smoothing)(常用拉普拉斯平滑)。这样一来,4中例题可以这样做:

    五、决策树

    从信息熵到ID3、C4.5

    开门见山地说,这部分需要理解四个概念:信息量、熵和条件熵:

    【信息量】:就是一个事件发生的信息量。公式为log2p-log_2ppp是这个事件发生的概率,取值范围[0,1][0,1]。画出这个公式的图像,就可以发现,事件发生的概率越低,信息量越大(接近0时为无穷大);反之,信息量越小(百分之百发生的事件,信息量为0)。举个例子理解它:太阳从东边升起的概率为1,那么“太阳今天从东边升起”这个事件信息量就非常小,不会有人听说这个事件就大惊小怪;而成都下雪的概率非常小,所以“成都今天下雪了”的信息量非常大,很多人会为之兴奋不已。

    【信息熵】:公式:H(D)=k=1Npklog2pkH(D)=-\sum\limits_{k=1}^Np_klog_2p_k,D代表数据集。通俗理解就是系统中所有事件根据各自发生的概率计算信息量的加权平均。特别规定当p为0时,pklog2pk=0-p_klog_2p_k=0。显然,要使信息熵尽可能晓,只需每个事件发生的概率pkp_k尽可能接近1或者0,如果一个事件发生的概率十分接近0或者1,那么我们判断它是否发生就更为容易一些。
    信息熵只和数据分布有关,如果分布是伯努利分布,熵和事件发生的概率对应关系就非常清楚,适合辅助理解:

    【条件熵】:公式:H(DA)=k=1NDiDH(Di)H(D|A)=\sum\limits_{k=1}^N\frac{|D_i|}{|D|}H(D_i),A是某特征,它能将数据集D分为D1和D2两部分,分别对D1和D2计算信息熵,再将两个信息熵按D1和D2分别占D的比例加权求和,就得到了特征A对数据集D的条件熵。

    【信息增益值】公式:g(D,A)=H(D)H(DA)g(D,A)=H(D)-H(D|A),根据之前内容,H(D)和H(D|A)都是熵,熵的计算结果标明了判断事件是否发生的容易程度,熵越小,判断越容易。这样以来,信息增益的含义大致就是:用特征A划分数据集或者特征空间,划分前和划分后系统“熵减”的程度。

    决策树就是要不断选择信息增益最大的特征进行特征空间的划分,最终构建出最适合分类的决策树(决策树也可以解决回归问题,这本书只介绍用于分类的决策树)。


    【看一道书上的例题】
    通过书上的例题直观了解决策树特征选择的方法:

    一共15个样本,输入是某男的年龄、是否有工作、是否有房、信贷情况,输出是他有无相亲成功(写这块的时候没发现是判断贷款成功,将错就错吧^ ^…)。现在构造用于劝退无房男人 判断某男是否能相亲成功的决策树:

    • 【step1】:明确特征和类别:特征是年龄、有工作、有房、信贷情况,类别是相亲成功、相亲失败(分别对应表中“是”“否”)。

    • 【step2】:根据类别计算经验熵H(D)。
      计算经验熵,只需要明确输出类别即可。类别是相亲成功和相亲失败,概率分别是:
      p1=915,p2=615p_1=\frac{9}{15},p_2=\frac{6}{15}(数一数其在给定数据集中的比例就行了),
      然后套公式:

    • 【step3】:根据特征计算信息增益值g(D,A):
      A1,A2,A3,A4A_1,A_2,A_3,A_4分别表示年龄、有工作、有房、信贷情况,然后给出g(D,A1)g(D,A_1)的计算例子:

    第一行减号右端是H(D|A),计算细节是:用A1A_1可以将数据集分成青年、中年和老年3部分,对每一部分单独计算经验熵(方法同step1),然后将计算所得按这三部分占整个数据集的比例求加权平均。

    g(D,A2)g(D,A_2)g(D,A3)g(D,A_3)g(D,A4)g(D,A_4)也这样计算出来,发现特征A3A_3(有房)的信息增益值最大,所以先选择A3A_3作为最优特征。

    • 【step4】构建决策树的大致方法(之后会讲ID3和C4.5这两种生成决策树的算法细节,先了解大概方向):由于此时选择了A3A_3作为最优特征,其能将特征空间划分成两部分,则为根结点创建两个子结点,分别为“有房”、“无房”。然后分别单独对这两个子结点进行最优特征选择和进一步划分,注意进一步选择最优特征时就不考虑A3A_3了。

    以上就是决策树的最基本内容,接下来是拓展内容。

    【信息增益比】刚才都是用信息增益值来进行最优特征选择,现在用信息增益比。使用理由是:信息增益值存在偏向于选择取值较多的特征的问题,而信息增益比是对这个问题的修正。

    (公式中加D|D|代表数据集DD中数据条数;特征AA将数据集DD划分成了D1,D2...DnD_1,D_2...D_n

    【ID3算法】
    比较简单,直接看书上:

    ID3对应例题也很好理解:

    两个注意事项:1,构建决策树不一定要用完所有特征;2,ID3算法只有树的生成,所以该算法生成的树容易产生过拟合(下文的“剪枝”解决这个问题);3,采用信息增益值选择特征,区别于C4.5的采用信息增益比。

    【C4.5算法】
    和ID3算法唯一不同是采用信息增益比来选择特征。

    【决策树的剪枝(pruning)】
    书上给了剪枝用的损失函数:

    其中C(T)C(T)如下:

    • 公式解读:
      TT是树,T|T|是它的叶结点个数。C(T)C(T)是模型对训练数据的预测误差,tt是某一个叶结点,NtN_t是这个叶结点中样本点个数,其中属于类别kk的样本点有NtkN_{tk}个,H(t)H(t)是这个叶结点的经验熵。
      强调一下,C(T)C(T)的计算方法就是先计算每个叶结点的经验熵,再将所有经验熵和对应叶结点的样本点个数作乘再求和。不难发现,C(T)C(T)等价于叶结点们的经验熵的加权平均。
      显然,损失函数的第一部分用来增加模型对训练数据的拟合程度,第二部分就是减小模型的规模(树的规模),α\alpha用来调整损失函数对两个部分的偏重。

    • 剪枝的方法:
      先形象化看待剪枝

    “尝试进行剪枝,如果剪枝之后比剪枝之前损失函数更小,就保留这个剪枝。”从下向上地进行这个流程即可。如果用理论语言来描述剪枝流程就是不断自下而上重复以下过程直到不能剪枝为止:

    Tips:剪枝可以用动态规划算法。

    CART、基尼指数

    CART是classification and regression tree分类与回归树的简称,是一种应用广泛的决策树学习方法。

    不过这种算法用的特征选择等的方法和刚才讲的有所区别,所以单独拿出来叙述。

    【回归树的生成】
    书上对回归树模型的描述:

    需要解决的问题有两个:如何划分这M个单元和如何确定每个单元上的输出值。

    每个单元上的输出值就是“落在”这个单元内的所有输入实例xix_i对应的输出值yiy_i的平均值。

    而划分这M个单元则较复杂,书上给出方法如下:

    公式解读:输入实例xx是个向量,x(j)x^{(j)}就是向量的第jj维。切分点(j,s)(j,s)就是向量的第jj维取值为ss,根据切分点可以将特征空间分成两个部分,从而将训练集中的所有数据分成两个部分。对于每一个部分,输出值cc就是属于这个部分的所有数据的yy的平均值,这样确定好c1c_1c2c_2的值后,代入(5.19)计算出平方误差。
    遍历输入实例xx的每一维,对于每一维,都找到使得(5.19)式最小的值ss,然后选出最小值ss最小的那一维,即确定了最佳切分点(j,s)(j,s)

    回归树构建的算法流程:确定最佳切分点(j,s)(j,s),将样本空间分成两个区域;然后不断对划分所得的子区域进行寻找最佳切分点和划分来,直到满足停止条件。
    附上书上对此算法的标准描述:

    【分类树的生成】
    这个的特征选择不用信息增益了,而是用基尼指数。

    基尼指数:

    和信息熵一样,基尼指数也用来衡量分类的确定性。上式中,pkp_k代表样本点属于第k类的概率,所以很明显,基尼指数越小对应的是pkp_k尽量接近1或者接近0,换句话说就是属于第k类的概率要么接近1要么接近0,这样就很好判断样本点的类别。

    同之前所说的条件熵一样,这里也有个“条件基尼指数”(现编的说法)Gini(D,A)Gini(D,A)

    样本集合DD通过特征AA分成D1D_1D2D_2两部分,将两部分的基尼指数按两部分占整体的比例求加权平均。

    CART假设决策树是二叉树,而对于二分类问题,基尼指数的计算公式如下:

    注意下面的例题就是用这个公式。

    同之前所说的按最大信息增益(最大化降低分类的不确定性)选择特征类似,这里是按最小基尼指数来选择特征。看书上的例题就会了:

    上述例题注意事项:
    CART的决策树是二叉树,Gini(D,A1=1)Gini(D,A_1=1)的意思是利用A1=1A_1=1与否来划分特征空间。考虑Gini(D,Ai=j)Gini(D,A_i=j),对所有可能的i和j计算基尼指数,然后选择基尼指数最小的i和j来划分特征空间(用Ai=jA_i=j与否将特征空间一分为二)。

    ⚠️CART剪枝
    这可能是这章最妙的内容,我从书上截图,然后一张张解析。

    首先是这个:

    这是损失函数,等号右边第一部分是对训练数据的预测误差(如基尼指数),第二部分是模型复杂度,T|T|是树T的叶结点个数。和之前一样,α\alpha小,则偏向于控制训练数据的预测误差;α\alpha大,则偏向于控制模型复杂度。
    考虑极端情况,α\alpha为0则整体树(没剪枝的树)是最优的(因为只考虑在数据集上的误差),α\alpha为∞则根结点组成的单结点树是最优的(因为几乎只考虑模型的复杂度,即树的规模)。

    上述意思就是说,TiT_iα\alpha取值在区间[ai,ai+1)[a_i,a_{i+1})内时的最优子树。“这些子树是嵌套的”是因为α\alpha越大,需要减的枝就越多,子树的规模就越小,而Breiman等人证明了,TiT_i碰巧含于Ti+1T_{i+1},后者可以在前者的基础上剪枝而来。

    α\alpha越小,损失函数越偏向于提升模型在数据集上的精确度,而TtT_t显然比tt更能准确预测数据,所以α\alpha充分小的时候,(5.29)式成立。当α\alpha变大时,模型的复杂度被考虑的越来越多,而TtT_t显然比tt更复杂,所以总有一个α\alpha使得(5.29)中的不等号变成等号。接续往下看书:

    α\alpha等于上述值的时候,TtT_ttt的复杂度是一样的,由于后者比前者模型复杂度低,所以后者更可取,此时就要进行剪枝,将TtT_t剪成tt

    CART剪枝的思路就这些,搞清楚这个,就不难理解书上的算法流程了:

    算法的最后一步,是要利用独立的验证集,对这个最优子树序列进行选择,选择出损失(平方误差或者基尼指数)最小的的最优决策树。

    六、逻辑斯谛回归与最大熵模型

    从逻辑斯谛分布到逻辑斯谛回归

    在这里插入图片描述
    在这里插入图片描述

    最大熵——无约束下的等可能

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    七、简述SVM

    硬间隔和软间隔支持向量机

    继续放手写总结(这两章总结字写得有点暴躁,之后我尽量写慢点hiahiahia~~):
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    插一句话,上图中最后一段是拉格朗日乘数法相关的定理,这一章节总结完会插入一章专门用来总结拉格朗日乘数法的相关定理(对偶,KKT等)。
    在这里插入图片描述
    上图最后一行字很重要:⚠️在决定分离超平面时仅支持向量起作用。
    在这里插入图片描述
    软间隔SVM同样可用拉格朗日乘子法,可以自己在稿纸上写写,不难。博主稿纸上的推导写得太乱,就不放上来了,若不会推,可自行查看《统计学习方法》第二版的7.2.2。

    核方法

    由上一章,已知硬间隔支持向量机的优化问题为:
    maxαΣi=1i=Nαi12Σi=1i=NΣj=1j=Nαiαjyiyj(xixj)max_\alpha \Sigma_{i=1}^{i=N}\alpha_i-\frac{1}{2}\Sigma_{i=1}^{i=N}\Sigma_{j=1}^{j=N}\alpha_i\alpha_jy_iy_j(x_i·x_j)
    s.t.Σi=1i=mαiyi=0,αi0s.t. \Sigma_{i=1}^{i=m}\alpha_iy_i=0,\alpha_i≥0

    解为:
    f(x)=sign(Σi=1i=Nαiyi(xix)+b)f(x)=sign(\Sigma_{i=1}^{i=N}\alpha_i^*y_i(x_i·x)+b^*)
    之前讨论的支持向量机是假定数据集线性可分的,即便是软间隔支持向量机,也只允许数据集有一点点分类错误的点。如果是数据集线性不可分,如何再使用支持向量机进行分类,就是核方法要解决的问题。

    由cover theorem可知,高维空间比低维空间更易线性可分,所以可以将线性不可分的数据集投影到高维的空间中,从而变成线性可分的。
    在这里插入图片描述
    则优化问题变成(这里假定了投影到高维空间后是线性可分的,不然的话αi\alpha_i还要满足αiC\alpha_i≤C):
    maxαΣi=1i=Nαi12Σi=1i=NΣj=1j=Nαiαjyiyj(Φ(xi)Φ(x))max_\alpha \Sigma_{i=1}^{i=N}\alpha_i-\frac{1}{2}\Sigma_{i=1}^{i=N}\Sigma_{j=1}^{j=N}\alpha_i\alpha_jy_iy_j(\Phi(x_i)·\Phi(x))
    s.t.Σi=1i=mαiyi=0,αi0s.t. \Sigma_{i=1}^{i=m}\alpha_iy_i=0,\alpha_i≥0
    解的形式为:
    f(x)=sign(Σi=1i=Nαiyi(Φ(xi)Φ(x))+b)f(x)=sign(\Sigma_{i=1}^{i=N}\alpha_i^*y_i(\Phi(x_i)·\Phi(x))+b^*)
    求解xix_ixx的内积被替代为求Φ(xi)\Phi(x_i)Φ(x)\Phi(x)的内积。但是问题来了,Φ(xi)\Phi(x_i)Φ(x)\Phi(x)的内积不是那么好求,甚至有时Φ(x)\Phi(x)是无穷维向量,所以想避开求解Φ(x)\Phi(x),而直接求Φ(xi)Φ(x)\Phi(x_i)·\Phi(x)
    κ(xi,xj)=Φ(xi)Φ(xj)定义核函数:\kappa(x_i,x_j)=\Phi(x_i)·\Phi(x_j)
    则优化问题变为:
    maxαΣi=1i=Nαi12Σi=1i=NΣj=1j=Nαiαjyiyjκ(xi,x)max_\alpha \Sigma_{i=1}^{i=N}\alpha_i-\frac{1}{2}\Sigma_{i=1}^{i=N}\Sigma_{j=1}^{j=N}\alpha_i\alpha_jy_iy_j\kappa(x_i,x)
    s.t.Σi=1i=mαiyi=0,αi0s.t. \Sigma_{i=1}^{i=m}\alpha_iy_i=0,\alpha_i≥0
    解的形式为:
    f(x)=sign(Σi=1i=Nαiyiκ(xi,x)+b)f(x)=sign(\Sigma_{i=1}^{i=N}\alpha_i^*y_i\kappa(x_i,x)+b^*)
    核函数的思想就是,碰巧有个二元函数κ(xi,xj)\kappa(x_i,x_j),它碰巧等于Φ(xi)Φ(x)\Phi(x_i)·\Phi(x),我们不需要知道Φ(x)\Phi(x)是什么,只需要将xix_ixjx_j代入κ(xi,xj)\kappa(x_i,x_j),就能得到Φ(xi)Φ(x)\Phi(x_i)·\Phi(x)的值。

    而只要满足下面定理的函数,都可以当作核函数使用:

    (上图来自周志华的《机器学习》)
    这个定理的必要性我试着证明了下,用半正定的定义(对任意xx,有xTKx0x^TKx≥0)证明非常简单,读者可以试试。

    这样,对于线性不可分问题,即可找满足上述要求的核函数,代入优化问题进行求解。参考西瓜书列出的常用核函数:

    (上图来自周志华的《机器学习》)
    并且,核函数的线性组合也是核函数,核函数的直积也是核函数,用任意两个函数分别左乘、右乘核函数得到的也是核函数。

    八、拉格朗日对偶、KKT相关定理

    min max L中为什么有max

    在这里插入图片描述

    弱对偶和KKT

    在这里插入图片描述

    几何角度看对偶

    补充一个对偶关系的几何解释:
    在这里插入图片描述
    (上图右下方红字是:“弱对偶”)

    最后更新于2.9,持续更新ing…

    展开全文
  • 第一章什么是深度学习1.1 人工智能、机器学习与深度学习1.1.1 人工智能1.1.2 机器学习1.1.3 从数据中学习表示1.1.4 深度学习之 “深度”1.1.5 用三张图理解深度学习的工作原理1.1.6 深度学习已经取得的进展1.1.7 ...
  • 西瓜书终于将老师要求的章节看完了总结 其实看完以后,对这本书还是朦朦胧胧,不是很明白,也不是很懂,感觉缺点什么。 如果说看完这本书,你让我写出来什么东西,我还真写不出来什么自己的东西。 不过总算是对这...
  •   之前一直很想将自己整理的关于机器视觉方面的学习资料进行整理,以供后期回顾复习。今天终于如愿成行,开心~ 一 图像处理软件的学习【视频教程】 这一部分资料主要包括: 1. OpenCV视觉处理核心课程...
  • 本节书摘来自华章计算机《Scala机器学习》一书中的第3章,第3.7节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov),更多章节内容可以访问云栖社区“华章计算机”公众号查看。 3.7 总结 本章概述了Spark/Hadoop以及...
  • 本节书摘来自华章计算机《Scala机器学习》一书中的第1章,第1.7节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov),更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.7 总结 本章试图为后面更复杂的数据...
  • 这段时间利用下班晚上和周末在家的时间把《机器学习》看了一遍,总的来说,除了前两章是基础,其余章节都是介绍模型方法,应用场景、理论推导、优化过程、算法等,每章都可独立阅读而不受其他章节影响。 如果...
  • 目录 《Python数据科学手册》第五章机器学习的笔记 0. 写在前面 1. 判定系数 2. 朴素贝叶斯 3. 自举重采样方法 4. 白化 5. 机器学习章节总结 《Python数据科学手册》第五章机器...
  • 看完集成学习类容,最大的感受就是学习了众多机器学习算法,各有优缺点,那么如何集各大算法优点使得最优的完成任务呢?那就是本章提到的集成学习。周老师书中按如下章节介绍:1、个体与集成2、Boosting3、Bagging与...
  • 前面的章节中基本都是讲述了一些机器学习的一些常用方法。看到这个标题我的第一反应应该是理论方面的研究,那是否对计算与学习这两方面的理论研究呢?既然是理论的东西,我想对于一般应用机器学习算法的来说,可能...
  • 本文参考了 scikit-learn 的官方文档的模型评估章节的部分内容,总结了常用的分类、聚类和回归模型的模型评估指标。 目录: 分类模型的度量 聚类模型的度量 回归模型的度量 符号定义: yyy:真实值,y^\hat{y}y^​...
  • 本节书摘来自华章社区《R语言机器学习:实用案例分析》一书中的第2章,第2.4节总结,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sarkar),更多章节内容可以访问云栖社区“华章社区”...
  • 估计看本书的读者大多都会忽略本书的第一章节,但是第一章我也是认真的看了一遍,里面讲了机器学习的重要性,机器学习的主要任务,以及比较重要的如何选取合适的机器学习算法,最后总结机器学习开发应用程序的...
  • 本节书摘来自华章出版社《机器学习系统设计:Python语言实现》一书中的第1章,第1.3节,作者 [美] 戴维·朱利安(David Julian),更多章节内容可以访问云栖社区“华章计算机”公众号查看 1.3 总结 到目前为止,...
  • 本节书摘来自华章出版社《机器学习系统设计:Python语言实现》一书中的第2章,第2.9节,作者 [美] 戴维·朱利安(David Julian),更多章节内容可以访问云栖社区“华章计算机”公众号查看 2.9 总结 我们已经浏览了...
  • 本节书摘来自华章社区《R语言机器学习:实用案例分析》一书中的第1章,第1.8节总结,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sarkar),更多章节内容可以访问云栖社区“华章社区”...
  • 降维在一起图像识别过程也经常被采用的一种分类算法,例如二维数据经过投影变为一维数据,从而更好的...书中从如下几节进行介绍:1、K邻近学习2、低维嵌入3、主成分分析(PCA)4、核化线性降维5、流形学习6、度量学习
  • 在前面章节中接触到的大部分都是监督学习方法以及无监督学习方法(聚类),这章讲述的半监督学习,我个人理解,应该是存在一部分标记样本,但是又不足以训练出一个良好性能的学习器,因此采用将其它未标记样本加入...
  • Bishop 的《模式识别与机器学习》(Pattern Recognization and Maching Learning),简称为PRML,被认为是贝叶斯方法的扛鼎之作。在科研之余,花了半年时间,我现在算是把这本书通读了一遍并且也把各个章节的习题几乎...
  • 本节书摘来自华章出版社《机器学习与R语言(原书第2版)》一书中的第1章,第1.6节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。...
  • 阅读之后,根据周志华老师对本章节的安排,首先从线性模型的基本形式入手,逐渐引入线性回归、对数几率回归...线性模型形式简单、易于建模,却蕴涵着机器学习中的一些重要的基本思想。许多功能更为强大的线性模型(nonl
  • 本节书摘来自华章出版社《机器学习与R语言(原书第2版)》一书中的第3章,第3.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。...
  • 1、决策树的概念:首先我们可以明确决策树同其他机器学习算法一样,是一种解决分类问题的算法。从名字上我们可以看出决策树是一颗树的存储结构,图显示的话,这个算法应该就是一颗数。在机器学习中,一颗决策树
  • 周志华 《机器学习》之 第八章(集成学习)概念总结原创 2016年08月19日 15:56:13标签:机器学习 /算法 /集成学习 /ababoost1285看完集成学习类容,最大的感受就是学习了众多机器学习算法,各有优缺点,那么如何...
  • 本节书摘来自华章出版社《机器学习与R语言(原书第2版)》一书中的第2章,第2.4节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。...
  • 吴恩达机器学习课程链接 >课程总结和笔记链接 实验三的原始代码和使用数据可至课程链接-课时67-章节9编程作业中下载 Machine Learning Online Class - Exercise 3: One-vs-all and Neural NetworksOne-vs-...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 174
精华内容 69
关键字:

机器学习章节总结