13.9 机器学习与神经网络
1.机器学习系统架构
2.样本
样本就是“训练数据”,包括输入和结果两部分。比如:自动化新闻分类的机器学习系统,能够自动发送对应新闻分类频道里面。比如:体育,军事,财经等。这时候我们就需要批量的新闻和其对应的分类类别作为训练数据。通常选取一批现成的新闻素材,人工标注(人工阅读新闻,根据内容打赏对应的分类标签)
T=(x1,y1),(x2,y2),......,(xn,yn)
其中 xn 表示一个输入,比如一篇新闻;yn 表示一个结果,比如这篇新闻对应的类别。
3.模型
模型就是映射输入与样本结果的函数,可能是一个条件概率分布,也可能是一个决策函数。一个具体的机器学习系统所有可能的函数构成了模型的假设空间,数学表示是:
其中 X 是样本输入,Y 是样本输出,f 就是建立 X 和 Y 映射关系的函数。所有 f 的可能结果构成了模型的假设空间 F。很多时候 F 的函数时明确的,需要计算的时函数的参数。比如确定 f 函数的一个线性函数,f 的函数就可以写为:
这时候需要计算 a,b 连个参数值。
这种情况下模型的假设空间的数学表示:
其中为 f 函数的参数取值空间,一个 n 维欧式空间,被称作参数空间。
4.算法
算法就是要从模型的假设空间中寻找一个最优的函数,使得样本空间的输入 X 经过该函数的映射得到的 f(X),和真实的 Y 值之间的距离最小。这个最优的函数通常没办法直接计算得到,即没有解析解,需要用数值计算的方法不断迭代求解。因此如何寻找到 f 函数的全局最优解,以及使寻找过程尽量高效,就构成了机器学习的算法。
如何保证 f 函数或者 f 函数的参数空间最接近最优解,就是算法的策略。机器学习中用损失函数来评估模型是否接近最优解。损失函数用来计算模型预测值与真实值的差距,常用的有 0-1 损失函数,平方损失函数,绝对损失函数,对数损失函数等。一平方损失函数为例,损失函数如下:
对于一个给定的样本数据集
模型 f(X)相对于真实值的平均损失为每个样本的损失函数的求和平均值:
这个值被称作经验风险,如果样本量足够大,那么使经验风险最小的 f 函数就是模型的最优解,即求:
但是相对于空间的可能取值范围,实际中使用的样本量总是有限的,可能会出现使样本经验风险最小的模型 f 函数并不能使实际预测值的损失函数最小,这种情况被称作过拟合,即一味追求经验风险最小,而使模型 f 函数变得过于复杂,偏离了最优解。这种情况下,需要引入结果风险即防止过拟合。结果风险表示为:
在经验风险的基础上加上,其中 J(f)表示模型 f 的复杂度,模型月复杂,J(f)越大。要是结构风险最小,就要使经验风险最小,就要使经验风险和模型复杂度同时小,求解模型最优解就变成求解结构风险最小值:
5.机器学习的数学原理
给定模型类型,也就是给定函数类型的情况下,如何寻找使结构风险最小的函数表达式。
由于函数类型已经给定,实际上就是求函数的参数。各种有样本的机器学习算法基本上都是在各种模型的假设空间上求解结构风险最小值的过程,理解了这一点也就理解了各种机器学习算法的推导过程。
机器学习要从假设空间寻找最优函数,而最优函数就是使样本数据的函数值和真实值距离最小的哪个函数。给定函数模型,求最优函数就是求函数的参数值。给定不同参数,得到不同函数数值和真实值的距离,这个距离就是损失,损失函数就是关于模型参数的函数,距离越小,损失越小。最小损失对应的函数参数就是最优解。
数学上求极小值就是求一阶导数,计算每个参数的一阶导数为零的偏微分方程组,就可以算出最优函数的参数值。这就是为什么机器学习要计算偏微分方程的原因。
6.感知机
感知机是一种比较简单的二分类模型,将输入特征分类为+1,-1 两类,就像下图所示的,一条直线将平面上的两类点分类。
感知机模型如下:
其中 x 代表输入的特征空间向量,输出空间是{-1,+1},为权值向量,b 叫做偏置,sign 是一个符号函数。
训练感知机模型就是要计算出 w,b 的值。当有新的数据需要分类的时候,输入感知机模型就可以计算出+1,-1 从而进行分类。
由于输出空间只有{-1,+1}两个值,所以只有误分类的时候,才会有模型计算值和样本真实值之间的偏差,偏差之和就是感知机的损失函数。
其中 M 为误分类点集合,误分类点越少,损失函数的值越小;如果没有误分类点,损失函数值为 0.求模型的参数 w 和 b,就是求损失函数的极小值。
数学上求函数的极小值就是求函数的一阶导数,但是感知机损失函数用统计求和函数表达,没办法计算解析解。机器学习采用梯度下降法求损失函数的极小值。实质上就是求导过程的数值计算方法。
对于误分类点集合 M,损失函数 L(W,b)变化的梯度,就是某个函数变量的变化引起的函数值的变化,根据感知机损失函数可知:
使用梯度下降更新 W 和 b,不断迭代使损失函数 L(w,b)不断减小,直到为 0,也就使没有误分类点。
感知机算法的实现过程:
1.选择初始值 w0,b0
2.在样本集合中选择样本数据 xi,yi
3.如果 yi(w*xi+b)<0,表示 yi 为误分类点,那么 w=w+nyixi,b=b+nyi,在梯度方向校正 w,b.
其中 n 为步长;步长太短又会导致收敛速度慢,计算时间长。
4.跳回 2,直到样本集合中没有误分类点,即全部样本数据 yi(w*xi+b)>=0
评论