机器学习现在已经运用在很多领域和行业,比如通过机器学习系统来提高自己系统的准确率和目标、进行商业数据的分析与预测等等。机器学习是关于计算机基于数据构建的概率统计模型并运用模型对数据进行预测和分析。 机器学习:一个系统能够通过执行某个过程改进它的性能,它的对象是数据,从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到对数据的分析和预测中去。 机器学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习的前提。
机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。计算的手段有很多方法,下面介绍一下机器学习方法 1.supervised learning-监督学习 2.unsupervised learning-无监督学习 3.semi-supervised learning-半监督学习 4.reinforcement learning-强化学习 从给定的、有限的、用于学习的训练数据集合出发,假设数据时独立同分布产生的,并且假设要学习的模型属于每个函数的集合成为假设空间,应用某个评价准则,从假设空间中选取一个最优的模型,使它对未知数据在给定评价准则下有最优的预测,最优模型的选取由算法实现。 有的资料将模型称之为”学习算法“ 机器学习三要素: 1.model-模型 2.strategy-策略 3.algorithm-算法 实现机器学习的基本步骤如下:
作为机器学习入门,我们暂且只掌握监督学习和无监督学习即可。何为监督和无监督?主要是根据训练数据是否拥有标记信息,含有标记信息一般称为监督学习,不含有标记信息的一般称为无监督学习。
监督学习的任务是学习一个模型,使模型能对任意给定的输入,对其相应的输出做出一个号的预测。在详细了解监督学习,先说几个基本的概念。 输入空间:数据输入的有限集合或者整个欧式空间。 特征空间:输入空间中的每个具体的实例,都有特征向量组成,特征向量构成的空间为特征空间。有时输入空间和特征空间一致,有时不一致,将实例从输入空间映射到特征空间,模型是定义在特征空间。 输出空间:模型经过算法选择最优模型后,预测的数据构成空间。
输入变量和输出变量均为连续变量的预测问题为回归问题;输出变量为有限个离散变量的预测问题为分类问题;输入变量和输出变量均为变量序列的预测问题成为标注问题。
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y)。P(X,Y)表示分布函数或者分布密度函数。但是在学习过程中,假定这个联合概率分布存在,但对学习系统来说,联合概率分布的具体定义是未知的。 假设空间:由输入空间到输出空间的映射的集合,这个集合就是假设空间。监督学习的模型可以是概率模型(条件概率模型)或者非概率模型(决策函数)。学习算法对新样本的预测和分析能力称为泛化能力。学习过程看做一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集匹配的假设。 版本空间:可能有多个假设与训练集一致,即存在着一个与训练集一致的假设集合。
在监督学习过程中,模型是所要学习的条件概率或者决策函数,模型的假设空间包含了所有可能的条件概率或决策函数。
F = \\{f|Y=f(X)\\} \tag{1.1决策函数} F=\\{f|Y=f_{\theta}(X),X \in R^n\\} \tag{1.2概率模型}
条件概率
机器学习的目标就是从假设空间中选取最优模型。损失函数或者代价函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
1.0-1损失函数 **
L(Y,f(X))=\begin{cases} {1,Y\neq f(X) \\\\ 0,Y = f(X)} \end{cases}
2.平方损失
L(Y,f(X))=(Y-f(X))^2
3.对数损失函数
L(Y,P(Y|X))=-logP(Y|X)
损失值越小,模型越好。所以损失函数的期望:
R_{exp}(f)=E_{p}[L(Y,f(X))]=\int _{XxY}L(Y,f(x))P(x,y) dxdy
这成为期望损失或者风险函数,学习的目标就是选择期望风险最小的模型。但是由于联合分布P(X,Y)是未知的,所以期望风险不能直接计算,但是如果你知道了联合分布那么也就不需要学习了,因为可以根据联合分布来求出条件概率分布。所以我们只能根据大数定理,当数据量足够大时用训练数据级的平均损失(经验损失)来估算期望风险。
R_{emp}(f)=\frac{1}{N}\sum_{i=1}^N L(y_{i},f(x_{i}))
这样我们就可以用经验风险估计期望风险,这样通过求解经验风险最小化来找到最优的模型,这是有一个前提:样本量足够大或者无穷。如果当数据量不足或者较少时,怎么去处理这个问题?经验风险最小化和结构风险最小化
min {R_{emp}(f)=\frac{1}{N}\sum_{i=1}^N L(y_{i},f(x_{i}))}
当样本数量足够小时,经验风险最小化的效果未必就很好,会产生过拟合的现象,泛化能力差。该模型只对训练数据产生很好的效果,在新样本分析和预测时很差。为了防止过拟合的出现,我们引入了结构风险最小化或者正则化,对模型复杂度进行了罚项。 结构风险
R_{emp}(f)=\frac{1}{N}\sum_{i=1}^N L(y_{i},f(x_{i}))+\lambda J(f) \tag{1.3结构风险最小化}
复杂度或者正则化表示了对模型的惩罚,具体惩罚如下
\lambda \geq 0是系数,用以权衡经验分享和模型复杂度,结构风险小需要经验风险和模型复杂度同时小,这样可以有效的防止过拟合现象。
所以求解的最优模型是:
min\frac{1}{N}\sum_{i=1}^N L(y_{i},f(x_{i}))+\lambda J(f)
算法是学习模型的具体计算方法,依据策略来找到最优的模型,然后根据数值计算的方法来求最优解。
林軒田在他的PPT中对机器学习做了简单的的概述和提炼,如下图: machine learning:improving some performance measure with experience computed from data. data———>ML———->improved performance measure 例如: stock data———>ML———->more investment gain 那么为什么使用机器学习? ML: an alternative route to build complicated systems. 当人们出现以下情况时可以考虑一下使用ML来解决问题: 1.当人们不能去编一个系统时,比如:移到火星程序等。 2.当人们不能定义一个解决方法,比如:语音和视觉识别等。 3.当需要人们不能去做复杂的决定,比如:高频交易等。 4.在大规模数据集中,需要面向用户时,比如:消费者的划分和定位等 ….. 当出现这些问题时,采用ML方法或许是一个不错的选择。
1.存在一些潜在模式或者规律可以被学习,这样一些性能度量才可以被提高。 2.没有可编程的定义或者说没有可编程的简单定义,所以才需要机器学习。 3.有大量的数据 这些重要的essence决定是否使用机器学习。
1.《机器学习》—周志华 2.《统计学习方法》—李航 3.《机器学习基石》—林軒田