学习了一点概率论和贝叶斯原理的知识,再尝试开始学习机器学习。因为工作的原因,我们会经常用到语音识别、语音合成、语义理解(文本算法)、图像智能等,这些主要是分类算法,我会重点学习和了解其中的一些算法,再结合我们的具体业务场景提出一些思考。此文章主要说统计学习。
一、机器学习概念
机器学习是个比较大的概念,周志华《机器学习》中说机器学习是研究如何通过计算的手段、利用经验改善系统自身的性能,在计算机系统中,“经验”通过指的是数据形式存在,所谓的大数据其实就是大经验吧。机器学习所研究的主要内容是关于在计算机上从数据中产生“模型”的算法,即“学习算法”,是关于算法的算法。
机器学习博大精深,主要有五大流派,按照《终极算法》的划分,分别是符号学派、廉洁学派、进化学派、贝叶斯学派和类推学派。对于符号学派,所有的信息都可以简化为操作符号,为了解方程,会用其他表达式代替本来的表达式。主要算法是逆向演绎;联结学派认为,学习就是大脑所做的事情,我们要做的就是对大脑进行逆向演绎,主算法是反向传播算法和深度学习算法;进化学派认为,所有的学习都源自自然选择,进化主义解决的关键问题是学习结构,不只是像反向传播那样调参数,还创造大脑,用来对参数进行微调,主算法是基因编程;贝叶斯学派最关注的问题是不确定性,是一种不确定的推理形式,运用概率推理,主算法是贝叶斯原理及其衍生定理;类推学派认为,学习的关键是认识相似性,由此推导其他相似性,主算法是支持向量机。
二、统计学习概念
统计学习应该归属于贝叶斯学派吧,统计学习也成为统计机器学习,是基于数据,构建统计概率模型并运用模型对数据进行预测和分析的一门学科。以数据为研究对象,从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到数据的分析和预测。数据可以包括结构化数据和非结构化数据(文字、图像、视频、声音数据以及他们的组合)。统计学习关于数据的基本假设是同类数据具有一定的统计规律性,数据可以是连续变量或者离散变量,好像与我们工作相关的主要是离散变量吧。
统计学习的方法和步骤,学习方法包括监督学习(用于分类)、非监督学习(用于聚类)、半监督学习和强化学习,与我们工作相关的主要是监督学习,下面以监督学习为主。
监督学习可以概况为:从给定的、有限的、用于学习的训练数据(已知知识或者数据)集合出发,假设数据是独立同分布的,假设要学习的模型属于某个函数的集合(假设空间);应用某个评价准则,从假设空间中选取一个最优的模型,使得它对已知训练数据(已有数据)和未知测试数据(预测)在给定的评价准则下最优的预测;最优模型的选择由算法实现。这样统计学习方法包括模型的假设空间、模型选择的准则(策略)和模型学习的算法,这被成为统计学习的三要素:模型、策略和算法。监督学习主要用于分类、标注与回归问题,这些方法在自然语音处理、信息检索、文本数据挖掘等领域中有着极为广泛的应用。
监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出给出一个好的预测。模型就是所要学习的条件概率分布或决策函数,模型的假设空间包括所有可能的条件概率分布或决策函数。策略是按照什么样的准则学习或选择最优的模型,统计学习的目标就是从假设空间中选取最优模型;首先引入损失函数和风险函数的概念,损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
监督学习问题是在假设空间F中选取模型f作为决策函数,对于给定的输入X,由f(X)给出相应的输出Y,这个输出的预测值f(X)与真实值Y可能一致也可能不一致,用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。损失函数是f(X)和Y的非负实值函数, 记作L(Y,f(X))。统计学习常用的损失函数有以下几种:
1、0-1损失函数(0-1 loss function) 相同为0,不相同为1
2、平方损失函数L(Y,f(X))=(Y-f(X))的平方
3、绝对损失函数L(Y,f(X))=|(Y-f(X))|
4、对数损失函数或对数似然损失函数L(Y,P(Y|X))=-logP(Y|X)
损失函数数值越小,模型就越好。由于模型的输入、输出(X,Y)是随机变量,遵循联合分布P(X,Y),所以损失函数的期望值是
这是理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。学习的目标就是选择期望风险最小的模型。
期望风险是模型关于联合分布的期望损失,经验风险是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时候,经验风险趋于期望风险。但是由于现实中训练样本数目有限,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略,经验风险最小化和结构风险最小化。
经验风险最小化(ERM)的策略认为,经验风险最小的模型就是最优的模型。当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中被广泛采用,比如极大似然估计(MLE)就是经验风险最小化的例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。
当样本容量很小时,经验风险最小化学习的效果就未必很好,会产生“过拟合”现象,过拟合是指学习时选择的模型过于复杂,以至于出现这一模型对样本数据拟合的很好,对测试的未知数据预测很差的现象。
结构风险最小化是为了防止过拟合而提出来的策略,结构风险最小化等价于正则化,结构风险在经验风险上加上表示模型复杂度的正则化项或者惩罚项。结构风险的定义如下:
模型f越复杂,复杂度J(f)就越大,反之越小。结构风险最小需要经验风险和模型复杂度同时小。结构风险小的模型往往对训练数据和未知测试数据的拟合都比较好。正则化符合奥卡姆剃刀原理:在所有可能选择的模型中,能够很好地解释已知数据并且足够简单的模型才是最好的模型。贝叶斯估计中的最大后验概率估计(MAP)就是结构风险最小化的一个例子。
另一种模型选择策略叫做:交叉验证方法,如果给定的样本足够丰富,可以将数据分为训练集、验证集和测试集,训练集用来训练模型,验证集用于模型的选择,测试集用于预测评估。
三、主要解决的问题
1、分类问题,当输出变量取有限多个离散值时,预测问题便成为分类问题,评价分类器性能指标的一般是准确率。2、标注问题,是分类问题的推广。当输出是一个标记序列或者状态序列,能够对观测序列给出标记序列作为预测,NLP中的词性标注就是一个典型的标注分类问题。3、回归问题,回归模型正是输入变量到输出变量之间的映射函数,回归问题等价于函数拟合。主要包括趋势预测、满意度调查等等。