1.2 从数据中训练ML算法

一个典型的预处理数据集的正式定义如下所示:

其中y是与输入向量x对应的期望输出值。因此,ML的动机是使用数据来发现使用高度复杂的张量(向量)乘法和加法来求出x的线性和非线性变换,或者简单地找到某种方法来衡量数据点之间的相似性或距离,最终目的是基于x的取值预测y的取值。

有一种常见的基于x预测y的思考方式,即给出某个关于x的未知函数的近似表示,如下所示:

其中w是某个未知的向量,用于实现对x和b的变换。这个公式非常基本,它是线性的,只是简单地说明了一个简单的机器学习模型应该是什么样子的。在这个简单的例子中,ML训练算法的目的是寻找最佳的w和b,使其最接近(如果没有达到完美的话)y的期望输出。例如,感知机(Rosenblatt,F.1958)算法尝试w和b的不同取值,利用过去关于w和b的选择错误,根据所犯错误的比例进行下一次选择。

直观地说,将多个类似感知机的模型结合起来观察相同的输入,得到的预测结果应该比使用单个模型更好。后来,人们意识到,将它们堆叠起来可能是通往多层感知机的下一个逻辑步骤。但是问题在于,对于20世纪70年代的人而言,学习过程相当复杂。这种多层系统类似于大脑神经元,因此将其称为神经网络。随着ML中一些有趣发现的出现,一些新的特定类型的神经网络和算法被开发出来,通常称之为深度学习。