在此之前,接触到的一些机器学习模型都提到监督学习、无监督学习和半监督学习,自己也曾接触了一些算法,比如一开始用的BP神经网络,就是典型的监督学习,受限玻尔兹曼机网络(RBMs)的无监督学习,还有深度信念神经网络的先无监督特征提取再有监督的网络微调等等。但看到最多的就是监督学习。
一、数据集
1.数据集定义
首先给定一个输入集X:
其中X1表示数据集中的第一个样本,每个样本中有1~m个数据(特征维数),X1=(x1,x2,x3,x4,...,xm);对应的,每个样本都有一个标签(输出。当然,一个样本的输出不一定是一个单值,也有可能是一个向量,如条件随机场或者循环神经网络的输出):
注意这里的下标,数据集中有n个样本,每个样本对应一个输出,一个样本中的特征维数为m。
其次,划分数据集,数据集一般划分为训练数据集(70%)、验证数据集(15%),测试数据集(15%)。
监督学习从训练数据集(training set)中学习模型,对测试数据集(test set)进行预测。训练数据集由输入(特征向量)和输出(标签)成对组成,验证数据集(valid set)用于交叉验证或者叫K折验证(后期讲到K近邻时再说)大概就是这么叫吧。
输入变量X和输出变量Y有不同的类型,有离散也有连续(比如语音识别中的输入时连续特征,黑白图像或者编码后的文本是二项分布特征等)。人们根据输入、输出变量的不同类型,对预测任务给予不同的名称:输入变量和输出均为连续变量的预测问题称为回归问题;输出变量为有限个离散的预测问题称为分类问题;输入变量与输出变量均为变量序列的预测问题称为标注问题。
2.联合概率分布
监督学习假设输入与输出的随机变量X和Y遵循联合概率分布P(X,Y)。P(X,Y)表示分布函数或者分布密度函数(连续时)。注意,在学习过程中,假设这一联合概率分布存在,但对学习系统来说,联合概率分布的具体定义是未知的。训练数据与测试数据被看作是依联合概率分布P(X,Y)独立同分布产生的。统计学习假设数据存在一定的统计规律,X和Y具有联合概率分布的假设就是监督学习关于数据的基本假设。
3.模型
在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。举个例子,对于Y=aX1+bX2,我们不同的a、b和Y求出Y和X的函数关系,对于神经网络模型,把数据集输入到网络模型中,网络通过连接权值矩阵和偏置项对x进行求和,再通过非线性函数映射到某个区间,这些权值和偏置所组成的参数就是这个模型的参数,通过它们就可以得到Y和X的关系。
4.策略
策略指的是有了模型假设后,统计学习接着需要按照什么样的准则学习或者选择最优的模型,统计学习的目的在于从假设中选取最优模型。
其实就是机器学习中常常提到的优化算法,如梯度下降。
模型优化首先先给出一个损失函数(loss function)或者代价函数(loss function)来度量预测错误的程度。常记为L(Y,f(X))。
常见的几种损失函数:
常用的就是2和4.不同的损失函数可能对最终的测试精度有影响。比如linear SVM中用到的hinge loss(岭)是一种容易满足的loss,它只要达到一定条件(比如目标为1,当计算到0.9时停止计算)就行了,而softmax分类器中用到的cross-entropy loss(交叉熵代价函数)是一种严格的loss(目标是1,那么它就一定要达到1),是一种死磕类型的loss。
唔,发现这部分用书本上的理论讲真的很啰嗦~~,但是不仔细看后期真的是一脸懵逼。其实最快速的方法是看BP神经网络的代码,模型训练相当于先进行前馈运算,再与期望输出建立目标函数,求得目标函数对参数的梯度,通过梯度下降方法进行误差反传微调网络。测试就是把数据输入到网络中,只进行前向运算得出网络输出。
参考文献
1. 李航的《统计学习方法》,清华出版社,2012