Machine Learning——A Probabilistic Approach学习笔记 第一章 简介

第一章 简介(Introduction)

1.1 机器学习:what&why

  • 数据洪流使得自动数据处理时代降临
  • 机器学习的目的:自动学习数据模式
  • essential:概率论
  • 跨领域的数据有一种“长尾”的特征,即少数常见而多数罕见,这意味着即使本书只关心较小的样本集合,得到的结果也同样有意义。

1.1.1机器学习的类型:

机器学习往往分为两类:有监督(supervised)学习和无监督(unsupervised)学习

有监督学习:

  • 通过学习训练集{Xi,Yi}(i=1~N)构造X→Y的映射
  • X可以是高维向量,其中每一维代表一个特征(fearture)/属性(sttributes)/协变量(covariates),有时也可能是图像,自然语言,时间序列,分子结构等等
  • 同样的,Y也可以是随便一个东西,但是一般来说Y应该是一种分类性的(categorical)或者定类性的(nominal)变量,在一个有限的集合中取值。
  • (关于变量的性质可以参考https://zhidao.baidu.com/question/530445495.html,讲得很清楚)
  • 因此,这样的问题也常称为分类问题(classification)或者模式识别(pattern recognition);当Y代表着分类时,这正是我们熟知的回归问题。它有一个变体:有序回归(ordinal regression),也就是Y存在排序的时候的分类问题。

无监督学习:

  • 在给定的输入集D={X1,X2,...,Xn}中发现数据的“有趣的模式”
  • 这种目标有的时候被称为“知识发现”(knowledge discovery)。这个词跟“数据挖掘”很相似,这里简要介绍了它们的区别:http://blog.sina.com.cn/s/blog_5c4152a00101jkqn.html,同时,它也出色地说明了“有趣”的具体内涵:有趣=(有效、新颖、可理解、潜在有用)
  • 显然,这种定义方式有些模糊,我们也无法准确描述我们到底想要什么,所以无监督学习还远非一个良定义(well-defined)的问题。(在有监督学习中,我们可以比较预测Y和实际Y的差距,但在无监督中我们什么都不能做)

强化学习(reinforcement):

  • 研究在特定的奖励和惩罚机制下学习是如何进行的
  • 然鹅,这本书不讲强化学习。不过我们在5.7节会讲到强化学习的基础——决策论(decision theory)

1.2有监督学习

1.2.1分类问题

在这一节,我们将会讨论分类问题,即构造一个从输入X到输出Y(分类)的映射。分类的方式有很多,如二分类(binary classification),多分类(multiclass classification),如果分类标签并不完全相斥,则为多标签分类问题(multi-label classification),但是,多标签分类问题可以转化一些相斥分类问题(multiple output model),因此,我们使用"classification"时,只表示相斥分类问题。

问题与目标的数学描述:函数近似与模型泛化(generalization)

举例:

问题描述:

  • 现在有两个图片集合1,2。它们中的元素有三个参数:颜色,长度和形状。而我们则需要把三个新的图像进行分类,         放入图集1或2。

处理方法:概率论(假设目前我们有高中数学基础)

  • 我们要做的就是预测p(y|x,D),也就是说,在给定训练集D的情况下,x属于类别y的条件概率(conditional probability)
  •  通过比较条件概率并使用argmax函数(取所有概率中的最大值),我们可以做出对x属于的类别的预测
  •                                     
  • 这种估计被称为概率分布p(y|x,D)的模式,也被称为MAP(maximum a posteriori)估计

实际应用(real-world applicaitons):

文件分类和垃圾邮件过滤:

  • 我们可以结合“词袋”(bag of words)技术(用单词表中的所有单词在文件中出现的次数构成向量),通过这个方法把邮件分为“垃圾邮件”和“非垃圾邮件”。“词袋”技术的优点在于每个文本对应的“词袋”向量的长度是固定的,缺点则在于忽略了单词出现的顺序。(参考https://blog.csdn.net/u012481686/article/details/82965409

花草识别:

  • 通过图片中(识别到的)一些特征,可以对图片中的花的类别进行预测。书上的例子是使用(萼片的长宽,花瓣的长宽)构造散点图,对鸢尾花进行分类。(这种方式称为聚类分析(exploratory data analysis))。
  • tips:在使用机器学习前,一定要记得先试试这些比较简单的方法是否管用

图像分类和手写识别:

  • 参见MINST

人脸检测与识别:

  • 一个方法:对图像进行重叠细分,对每个部分分别检测有没有人脸。
  • 检测(detection)与识别(recognition)的区别:检测的核心在于区分人脸和非人脸,而识别可以利用一些辅助特征,如发型,进行区分

1.2.2回归(regression)

回归和分类几乎一样,只是回归的因变量(Y)是连续的

关于回归模型的建立,我们会在后面进行详细分析

1.3无监督学习

重申:无监督学习的目的是寻找数据中“有趣”的模式

无监督学习的规范描述(formalization):

  • 我们希望建立的模型:p(Xi|θ)
  • 首先,这与有监督学习的目标:P(Xi|Yi,θ)相比是完全不同的。这是因为有监督学习采用的是条件密度估计(conditional density estimation),而无监督学习使用的则是非条件密度估计。
  • 其次,在有监督学习中,我们的目标是基于特征向量Xi预测其特征Y,而特征Y的判断问题可以使用一元概率模型(univariate probability)进行极大简化;但是在无监督学习中,我们要发现特征向量Xi(可以非常复杂)的内在规律,因而必须建立多元概率模型(multivariate probability models)

事实上,无监督学习的应用更加广泛,更加便宜(不需要人工标注的数据集),也更加接近人类的学习方式

  • 很显然,在幼年,我们学习识别物体的时候,大部分是自己去体会同一类物体究竟有什么样的共同特征(无监督学习);他人告诉我们物体的标签(有监督学习)的机会是很少的,而且数据传输速率也不够快。     ——改编自Hinton的讲话

1.3.1发现聚类(discovering clusters)

一个典型的无监督学习的例子是数据的聚类:

  • 在对数据进行聚类的时候,我们首先要判断将其聚为多少个类别。在有监督学习中,分的类别数量是确定的,因此K也是给定的;在无监督学习中,我们爱分几类就分几类。
  • 在不确定分类数量时,常用的方法是定义p(K|D)表示数据D应该分为K类的概率,然后使用模式(mode)的方法确定我们的模型中K的值:K*=argmax(p(K|D))。类似这样选择一个复杂度适当的模型的过程被称为模型选择(model selection)
  • 其次,我们要估计每一个点属于哪一个聚类。使用Zi(隐变量)表示第i个点属于哪一个聚类,从而我们可以计算argmax(p(Ai=k|Xi,D))来对Xi所属的聚类进行估计。
  • 在本书中,我们将集中讲解基于模型的聚类(model based clustering),也就是说,我们处理数据的方法是套用模型,而不是使用某些专门算法。这样,我们就可以客观地比较不同的模型,也可以把它们组合成更大的系统。

1.3.2发现隐藏变量(discovering latent factors)

  • 在处理高维数据的时候,我们经常使用“降维”(dimensionality reduction)的方法来发掘它的本质。
  • 我们使用降维的动力在于,一些高维的数据往往隐含了少量的集中特征(factors),比如一张人脸的图片中可能有很多简单的特征,如脸的朝向、戴不戴眼镜等等。
  • 使用关键性的隐藏变量进行训练可以抓住数据的“本质”(essence),从而更好更快地对数据进行学习
  • 最常见的降维方法被称为主成分分析(PCA, principal components analysis)(https://baike.baidu.com/item/%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90/829840?fr=aladdin)    它的核心思想在于根据高维响应Y来逆推需要提取什么样的特征Z,稍微细节的内容可以参考上面的百科
  • 应用:在生物学中,我们经常使用主成分分析的方法。这是因为我们的每一次观测(measurement)都是许多基因综合作用的结果,但是我们希望获取的是影响观测的核心因素(essence)。在自然语言处理中,我们也往往使用“潜在语意”(latent semantic analysis)。在信号处理中,我们使用ICA(PCA的变体)来把信号进行简单分类。在计算机图形学中,我们往往把动作捕捉的数据从高维映射到低维,从而创建特定动作。

1.3.3发现图结构(discovering graph structure)

有的时候我们要处理一系列相关的变量,并且希望发现哪些变量与其它变量相关性最强。这时,我们可以构造一个图,图的顶点即为各个变量,而边则代表所连接的两个变量的相关性。我们可以从数据中挖掘出来这样的图结构,例如,采用argmax(p(G|D))的方法

在无监督学习中,稀疏图的学习有两个应用:发现新知识和获得更好的联合概率密度估计(joint probabaility density estimators)

  • 例如,在生物学中,通过对鸟类的时序脑电图进行学习,可以发现鸟类神经的某些连接特征
  • 有的时候,这些图的结构的意义可能没那么重要,但是仍然有很好的作用。比如在股票预测中,通过学习不同股票的股价之间存在的关联性,我们可以整理预期总收益更高的股票组合。

1.3.4矩阵补全(matrix completion)

有的时候我们的数据会有一些缺失,比如调查问卷中有的人会只填写一部分问题。这时,我们的输入矩阵中会出现“NaN”。于是,我们需要进行填充(imputation),为这些空缺处放入一些合理的数值。进行入门性的数学理解,请参考https://www.cnblogs.com/wuliytTaotao/p/10814770.html

1.3.4.1图像修复(image inpainting)

  • 我们在图像修复中经常用到矩阵补全。因为各种各样的原因,图像会有一部分发生缺失,而我们的目的则是通过学习一些完整的图像来建立各个像素的某种关联,进而掌握根据未缺失部分修复缺失部分的技术。

1.3.4.2协同过滤(collabrative filtering)

  • 我们在推荐算法中也常用矩阵补全。视频软件往往通过我们对所看过的电影的评分推测我们对新的某一部电影的喜好程度,而这种推测往往不是基于电影或用户的特性(features),而是基于一个评分矩阵X。在X中,X(m,u)代表第u个用户对第m个电影的评分。我们的目的是通过给定的数据来预测整个矩阵的数据。显然,每个人看过的电影数量并不多,因此训练矩阵是相当稀疏的。
  • 奈飞曾经举办电影推荐的算法比赛。获胜团队的算法:http://www.netflixprize.com/community/viewtopic.php?id=1537

1.3.4.3购物篮分析(market basket analysis)

  • 在购物数据处理的过程中,矩阵补全同样常用。我们会用Xij=0/1表示第i个购物车中是否含有第j个商品。基于训练集,我们要预测一个人在把某个商品放入购物车后,接下来他会放入什么商品。
  • 当我们解决这类问题时,我们常用的方法是频繁项集挖掘(frequent itemset mining)或者联合密度模型(joint density model)。尽管关联性方法(即根据商品之间的关联性进行预测)的可解释性比较强,但是效果却往往比这两个方法要差。

1.4机器学习的基本概念(basix concepts)

在这一部分,我们会对机器学习中的一些核心思想做出介绍。

1.4.1参数化/非参数化(parametric or non-parametric)模型

  • 参数化模型:参数数量固定
  • 非参数化模型:参数数量随着训练集的变化而变化
  • 参数化模型一般更快,但是在自然分布的处理上要差一些;非参数化模型一般更灵活,但是在大的数据集上往往力不从心。

1.4.2一个简单的非参数化模型:K-近邻(KNN, K-nearest neighbors)

  • K-近邻算法的核心思想非常简单:对于训练集D={X1,X2,...Xn},我们的条件概率模型如下构建:                                                ,其中Nk(x,D)即为距离x最近的K个D中的点的集合,π则是指示函数(indicator function)
  • 这种预测完全基于已有数据的方法被称为基于记忆/实例的学习(memory-based/instance-based learning)
  • K=1时点的分布称为点的Voronoi镶嵌(tessellation),每个点的预测值与离它最近的点相同

1.4.3维度灾难(the curse of dimensionality)

  • 当距离的度量(metric)足够好,而且带标签的训练集足够多的话,KNN分类器可以工作地很好。事实上,可以证明,当N趋向于∞的时候,它的性能在可能达到的最佳分类性能的两倍以内
  • 然而,在高维训练数据中,KNN表现地并不好。这是因为“维度灾难”
  • 具体地,假设我们的数据均匀地分布在一个D维的单位正方体里面,而我们对X的分类的预测是基于其中占比f的元素进行的(例如,10%的元素)。因此,为了在附近纳入这些数据,以X为中心延伸出来的正方体(不是球体,因为这样并不好确定各个维度的取值范围)的体积将是1*f(均匀分布性),从而其边长为f^{\frac{1}{D}}
  • 注意到,当位数D增加的时候,f^{\frac{1}{D}}的取值将会无限接近1,这就意味着,对一个数据做出预测的时候,我们需要调用几乎整个训练集的数据。而这在训练集较大的时候是不可能实现的。

1.4.4在回归和分类中的参数化模型

  • 对抗维度灾难的一个主要方法就是对数据的自然分布做出假设。这种假设被称为归纳偏差(inductive bias),经常以参数模型(parametric model)的形式体现。形式模型是一个有着固定参数的统计模型。在下面我们会介绍两个广泛使用的例子。

1.4.5线性回归

  • 最常用的模型:线性回归(linear regression)。
  • 在线性回归中,我们假设响应是关于输入的一个线性函数:Y(x)=w^{T}x+\varepsilon,表示权值(weight vector)和输入x的数乘再加上残差(residual error)
  • 我们经常假设残差\varepsilon满足正态分布(nomal distribution,又称高斯分布Gaussian distribution),也就是说,我们的模型可以如下表示:
  • 当然了,我们可以改进我们的模型,让它变得不那么线性,这种方法称为基函数展开法(basis function expansion):
  • 在上面的改进中,取\phi (x)为不同的函数,就可以得到很不相同的结果。比如,取为多项式的时候,这种分布称为多项式回归。
  • 使用一个小trick,即将x升维为(1,x),我们可以把残差和权值集中在一个矩阵中。
  • 事实上,许多机器学习的方法,如支撑向量机、神经网络等等,都可以看做是不同的估计基本函数的办法。

1.4.6Logistic回归(Logistic regression)

  • 我们可以对线性回归模型作出两个调整,使得它适用于二分类问题
  • 第一步调整:将正态分布变为二项分布(binomial distribution)
  • 第二步调整:对线性函数w^{T}x使用sigmoid以使得其取值范围为[0,1](这样才能使用二项分布)
  • 这样,我们就得到了我们要的公式:
  • 这个公式计算了y在假设x为二项分布下的概率分布,被称为logistic回归,因为它很像线性回归方程(尽管它的作用是分类)。

1.4.7过拟合

  • 当我们使用高灵活性的模型时,我们还要小心,不能对数据进行过度拟合。也就是说,我们不能把数据中每个细微的变化都放进我们的模型之中,因为这些变化更有可能是数据中的噪声。1.

1.4.8模型选择

  • 当我们有大量复杂度不同的模型的时候,我们应该如何选择适合的那一个?一个自然的思想是计算模型的错分率:
  • 当然了,我们在测试我们的模型的时候会遇到没有测试数据的问题。这个时候,我们可以使用K-折交叉验证(K-fold cross validation)的方法:将训练集平均分成K份,每次取(K-1)份作为训练集,剩下的一份作为验证集(validation set)测试模型的精确度,然后把K次测验的误差取平均值得到模型的错分率。K的取值一般为5。

1.4.9“没有免费的午餐”(no free lunch theorem)

  • 结论:一组在某个领域中有效的假设可能在另一个领域中效果不佳。
  • 正是因为这个结论,我们需要在不同的领域建立很多不同的模型,来囊括所有可能出现的数据变化。总之,这种对数据、模型和算法的整合(combination)将是我们接下来许多章的学习主题。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值