机器学习的核心要素

xiaoxiao2021-02-28  26

一、数学函数的组成

y=f(X)=WTX

X是自变量,y是因变量。X是向量,代表每个样本的多个特征值(观察值),而y则是该样本的结果值。每个样本记为(X(j)),y(j)),表示样本集中第j个样本,总共有m个样本。

二、机器学习和监督学习

机器学习包括监督学习和非监督学习。监督学习是指在因变量y确定的情况下的学习,而非监督学习则是y未确定的情况下的学习。

监督学习可以大致分为预测和分类两种类型。预测用于因变量是连续时的场景,如房价预测;而分类则用于因变量是离散时的场景,如识别一个病人是否得了某种病,是代表1。非监督学习的典型应用是聚类,如用户群划分。

以下以房价预测为例说明机器学习的核心要素。

三、机器学习核心要素

1. 模型和目标函数

       机器学习就是为了获得一个表达样本自变量和因变量之间关系的数学模型(即目标函数),明显,最后是为了获得该模型下的最佳W参数值。这样,当给模型一个新的Xtest,它就能算出对应的ytest值。

如何高效地获得这个模型?这需要你有较强的数学思维和较为敏锐的观察能力。我们都知道函数分线性函数和非线性函数,也即对应着线性模型和非线性模型。在二维平面,线性模型就是一条直线,在三维里面,线性模型就是一个平面。而非线性模型可以表达丰富复杂的关系,如圆形、抛物线等。

当我们在思考模型时,最先要做的就是对样本数据进行图示(matlab),观察样本的点状图,试图找出一种近似的模型表达。如果点状图看起来像是对数分布,如果还用线性模型来进行训练,那不管样本量有多大,拟合出来的模型都不好。当然,人类一般只能观察三维模型,高维数据可以尝试降维。

机器学习更加考究各种数学表达式的理解和运用,有时,物理模型的数学表达更有借鉴意义。深度学习的开山鼻祖Hinton就是利用RBM (受限玻尔兹曼机)突破了多层神经网络遇到的难题,而RBM是借鉴热力统计学的能量模型。

2. 损失函数loss

       损失函数,有时也称成本函数cost。对于单一样本来说,就是利用目标函数计算出的f(X(j))和真实值y(j)之间的差异。差异不能简单地相减,因为我们一般认为完全相同时的差异是0,也即是最小差异是0,所以表达差异值是大于等于0. 最简单的是差的平方。

       构造损失函数在机器学习中是非常重要的步骤。因为训练的最终目的是找到最佳的W参数值,使得对于所有的样本的损失函数最小。构造一个属于凸优化的损失函数是模型成功的关键。

       对于线性预测来说,损失函数比较简单。但对于分类来说,损失函数会比较复杂。

       1)二元分类意味着使用概率模型来预测,概率在0和1之间,因此目标函数需要进行一次Sigmoid(指数)运算(将值域限定在0和1之间)。相应地,在损失函数里面使用对数做一次转换。

       2)二元分类结果是离散的,所以目标函数也相应地有分段表示。损失函数要放大预测错误的差异,缩小预测正确时的差异。

       3)正则化。正则化是防止模型过拟合的重要方法。过拟合是机器学习的关键问题。机器学习是为了表达数据的本质关系,能够区分或者忽略噪声点;而过拟合则是以完美地拟合数据结果值为目的,对噪声也一样。我们以后再来详细说明。

3. 训练

       明显,损失函数是关于W的表达式。如果损失函数是一个严格凸函数,那通过matlab图示,可以看出损失函数有一个全局最低点(想象一座山的山脚),也就是最佳W参数所在的位置。假设W随机确定在某一个点(山顶或者山腰),那训练的目的就是让W从这个点以最快的速度跑到最低点。这里包括两点:一是跑步的方向,平着跑是跑不下去的,最好的方式是沿最陡的方向跑(也即是梯度算法,数学上就是损失函数对该W维度的偏导),二是跑步的速度,也即是学习率。这个是经验值,或者刚开始跑快一点,后面跑慢一点。一直跑太快,可能一直都听不到最佳位置。跑太慢,效率太低了。

       模型初始化非常重要,尤其深度学习;由于样本数据量大,训练过程中也可以每次只采用小批量数据来训练,而不是整个数据集;GPU计算可以加速训练。

关注微信公众号:嵌入式企鹅圈,获得上百篇物联网原创技术分享!

转载请注明原文地址: https://www.6miu.com/read-59643.html

最新回复(0)