机器学习

少数据学习(一)—— 机器学习基础

本文主要是介绍少数据学习(一)—— 机器学习基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

少数据学习(一)—— 机器学习基础

机器学习是一种数据科学技术,它帮助计算机从现有数据中学习,从而预测未来的行为、结果和趋势。

Machine learning is a technique of data science that helps computers learn from existing data in order to forecast future behaviors, outcomes, and trends. —— Microsoft

参考:

机器学习的基本概念和相关术语

机器学习(概述一)——定义

机器学习中模型、策略、算法的区别和联系

机器学习系列(一)——机器学习简介

监督学习与非监督学习

有监督学习

监督学习的训练集要求包括特征和目标(输入x和输出y),目标多为人工标注。

监督学习的应用中,机器需从输入数据中预测合适的模型(函数),并从中计算出目标变量的结果。

监督学习一般使用两种类型的目标变量 :标称型(也叫离散型)和数值型(也叫连续型)。

标称型目标变量的结果只在有限目标集中取值,如真与假、动物分类集合 { 爬行类、鱼类、哺乳类、两栖类 } ;数值型目标变量则可以从无限的数值集合中取值,如 0.100、42.001、1000.743 等。数值型目标变量主要用于回归分析。

有监督学习根据生成模型的方式又可分为判别式模型和生成式模型

  • 判别式模型:直接对条件概率p(y|x)进行建模,常见判别模型有线性回归、决策树、支持向量机SVM、k近邻、神经网络等;
  • 生成式模型:对联合分布概率p(x,y)进行建模,常见生成式模型有隐马尔可夫模型HMM、朴素贝叶斯模型、高斯混合模型GMM、LDA等。

生成式模型更普适;判别式模型更直接,目标性更强。
生成式模型关注数据是如何产生的,寻找的是数据分布模型;判别式模型关注的数据的差异性,寻找的是分类面。
由生成式模型可以产生判别式模型,但是由判别式模式没法形成生成式模型

无监督学习

与监督学习相比,无监督学习的训练集中没有人为的标注的结果(只有输入x),在非监督的学习过程中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。

与有监督学习“对于输入数据 X 能预测变量 Y”不同的是,这里要回答的问题是 :“从数据 X 中能发现什么?” 这里需要回答的 X 方面的问题可能是 :“构成 X 的最佳 6 个数据簇都是哪些?” 或者 “X 中哪三个特征最频繁共现?”。

无监督学习试图学习或者提取数据背后的数据特征,或者从数据中抽取出重要的特征信息,常见的算法有聚类、降维、文本处理(特征抽取)等。

无监督学习一般是作为有监督学习的前期数据处理,功能是从原始数据中抽取出必要的标签信息。

半监督学习

考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题,是有监督学习和无监督学习的结合。半监督学习对于减少标注代价,提高学习机器性能具有非常重大的实际意义。但抗干扰能力弱。

机器学习的典型任务

机器学习的典型任务包括:分类(classification)、回归(regression)、聚类(clustering)、排序(ranking)、密度估计(density estimation)、特征降维(dimensionality reduction) 等。其中分类(离散)和回归(连续)属于有监督学习,而聚类属于无监督学习。

其中

分类(classification)

基于已知类别标签的样本构成的训练集,学习预测模型;最终预测模型,对新的观测样本,预测相应的输出;预测结果为事先指定的两个(两类别分类,binary classification)或多个类别(多类别分类,multiclass classification)中的某一个或预测结果来自数目有限的离散值之一

比如:垃圾邮件检测(是否为垃圾邮件)、人脸检测(是否为人脸)

回归(regression)

基于已知答案的样本构成的训练集,估计自变量与因变量之间关系的统计过程,进而基于该关系对新的观测产生的输出进行预测,预测输出为连续的实数值。反映了样本数据集中样本的属性值的特性,通过函数表达样本映射的关系来发现属性值之间的依赖关系。

具体可见机器学习中的五种回归模型及其优缺点

聚类(clustering)

对给定的数据集进行划分,得到若干“簇(cluster)”;使得“簇内”样本之间较“簇间”样本之间更为相似。通过聚类得到的可能各簇对应一些潜在的概念结构,聚类是自动为给定的样本赋予标记的过程。

img

特征降维(dimensionality reduction)

将初始的数据高维表示转化为关于样本的低维表示,借助由高维输入空间向低维空间的映射,来简化输入。

常见应用:特征提取(PCA等)、高维数据的低维可视化

机器学习方法三要素:模型、策略与算法

统计机器学习通过对已知数据构建模型,从而完成对未知的数据进行预测和分析,预测和分析这种行为可以使得计算机看起来很智能,这就是人工智能的一种体现。

统计机器学习的总目标就是考虑学什么样的模型和如何学习模型,以使得模型能够对未知数据进行准确的预测和分析。总的来说,机器学习方法由模型、策略、算法构成,可以简单的表示为:方法=模型+策略+算法。

通常学习一个好的模型(函数),分为以下三步:

  • 选择一个合适的模型,这通常需要依据实际问题而定,针对不同的问题和任务需要选取恰当的模型。
  • 判断一个模型的好坏,这需要确定一个衡量标准,也就是我们通常说的损失函数(Loss Function),损失函数的确定也需要依据具体问题而定,如回归问题一般采用欧式距离,分类问题一般采用交叉熵代价函数。
  • 对模型参数进行求解,找到最优模型,这一步是最大的难点,做到又快又准往往不是一件容易的事情。常用的方法有梯度下降算法,最小二乘法等和其他一些技巧。

模型

统计学习首要考虑的问题是学习什么样的模型,即找一个模型去描述我们已经观测到的数据。比如购买产品的顾客到达服务台的时间或许可以用泊松分布描述,文中某个词出现的概率或许可以用隐狄雷科雷分布描述。

在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。数据构成假设空间,在这个假设空间中包含所有可能的条件概率分布或者决策函数,每一个条件概率分布或者决策函数对应一个模型,那么这个样本空间中的模型个数有无数个。

怎样理解模型呢?简单来说就是使用什么映射函数来表示特征X和Y标签之间的关系F,F有两种形式F={f|y=f(x)}或者F={P|P(Y|X)}F={f|y=f(x)}为决策函数,它表示的模型为非概率模型。F={P|P(Y|X)}是条件概率表示,它的模型为概率模型。

策略

设定一系列的标准来验证模型的选择和学习,即按照什么样的规则选择或学习最优的模型,这就是策略。

经验风险(解决欠拟合)和结构风险(解决过拟合)最小化是一个参数优化的过程,我们需要构造一个损失函数来描述经验风险,损失函数可以理解为我们预测一个数据错了给我们带来的代价。每个人对损失函数的定义都不同,所以优化出来的结果也不同,这也导致最终我们学习到的模型会各种各样,解决一个问题的方案有多种多样。

常见的损失函数有:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数或对数似然损失函数

算法

算法是指学习模型的具体计算方法,统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型。简单来说,就是优化模型参数的计算方法。

线性回归(linear regression)

参考:机器学习-线性回归总结

线性回归是指目标值预期是输入变量的线性组合,即选择一条线性函数来很好的拟合已知数据并预测未知数据。是一种最基本的回归模型。要了解其他回归模型可以参考你应该掌握的 7 种回归模型!

  • 多元线性回归模型定位为 h θ ( x i ) = θ 0 + θ 1 x 1 + . . . + θ n x n h_\theta (x^i)=\theta_0+\theta_1x_1+...+\theta_nx_n hθ​(xi)=θ0​+θ1​x1​+...+θn​xn​,默认x0等于1,改写成向量形式为 h θ ( x i ) = θ T X h_\theta(x^i)=\theta^TX hθ​(xi)=θTX,另有训练集 D = ( X 1 , Y 1 ) , ( X 2 , Y 2 ) , . . . , ( X n , Y n ) D={(X_1,Y_1),(X_2,Y_2),...,(X_n,Y_n)} D=(X1​,Y1​),(X2​,Y2​),...,(Xn​,Yn​)。

  • 损失函数用均方差表示,即最小二乘法, J ( θ ) = 1 2 m ∑ i = 0 m ( h θ ( x i ) − y i ) 2 = 1 2 m ( X θ − y ) T ( X θ − y ) J(\theta)=\frac{1}{2m}\sum^m_{i=0} (h_\theta(x^i)-y^i)^2=\frac{1}{2m}(X\theta-y)^T(X\theta-y) J(θ)=2m1​∑i=0m​(hθ​(xi)−yi)2=2m1​(Xθ−y)T(Xθ−y),求解向量 θ \theta θ使得 J ( θ ) J(\theta) J(θ)最小(凸二次函数求最小值)。

    我们有很多的给定点,这时候我们需要找出一条线去拟合它,那么我先假设这个线的方程,然后把数据点代入假设的方程得到观测值,求使得实际值与观测值相减的平方和最小的参数。

  • 两种算法求解 θ \theta θ,梯度下降和正规方程法。梯度下降法是搜索算法,先给 θ 赋个初值,然后再根据使 J(θ) 更小的原则对 θ 进行修改,直到最小 θ 收敛,J(θ) 达到最小,也就是不断尝试;另外一种是正规方程法,要使 J(θ) 最小,就对 θ 求导,使导数等于 0,求得 θ。

    相比梯度下降,当n不是很大时,正规方程得到结果更快一些,一般线性回归问题更偏向运用正规方程,但是梯度下降法在机器学习中适用范围更大。当n很大时,这时矩阵运算的代价就变的很大,所以正规方程求解也会变的很慢,所以梯度下降更适合特征变量很多的情况,一般n小于10000时,选择正规方程是没问题的。

梯度下降法

梯度下降算法是一种求局部最优解的方法,但线性回归使用梯度下降算法最优化问题只有一个全局最优,没有其它局部最优。这是因为 J(θ) 是凸二次函数。所以这里的梯度下降会一直收敛到全局最小。

当变量之间大小相差很大时,应该先将他们做处理,对特征值进行相应的缩放,使得他们的值尽量在同一个范围,这样会收敛的更快些,我们称之为特征值缩放

  • 首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
  • 改变θ的值,使得 J ( θ ) J(\theta) J(θ)按梯度下降的方向(梯度向量的反方向,梯度指向函数在给定点上升最快的方向)进行减少,步长(学习率)设为 α \alpha α,直到到达局部最低。

详见:梯度下降算法原理讲解——机器学习

这篇关于少数据学习(一)—— 机器学习基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!