移动终端人工智能技术与应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.6 训练与推理

从以上阐述中,我们知道模型是机器学习的结果,这个学习的过程就称为训练(Training)。机器学习的训练过程可以看作利用数据(样本)和算法生成模型的过程。训练神经网络时,训练数据被输入到网络的第一层,然后所有的神经元都会根据任务执行的情况以及其正确或者错误的程度来分配一个权重参数(权重值)。在一个用于图像识别的网络中,第一层可能是用来寻找图像的边。第二层可能是寻找这些边所构成的形状——矩形或圆形。第三层可能是寻找特定的特征——比如眼睛或鼻子。每一层都会将图像传递给下一层,直到最后一层。最后的输出由该网络所产生的所有权重总体决定。对于深度学习来说,训练需要海量的数据输入才能训练出一个复杂的机器学习模型。

训练并不是我们的最终目的,训练好的模型如何发挥作用呢?深度学习过程中除了训练环节之外,还有推理(Inference)环节。无论是对于图片分类、物体识别还是其他人工智能任务,模型都确定了“输入—输出”的关系。推理指利用训练好的模型,使用待判断的输入数据去“推理”得出各种结论。可以把训练得到的模型比作被简化过的应用程序,这些应用程序可以基于已经学到的知识,对新的数据进行推理并给出结果。

我们可以打一个实际一点的比方来更好地理解训练和推理这两个过程。现在想要训练一个能区分苹果和香蕉的模型,你需要搜索一些苹果和香蕉的图片,将这些图片放在一起构成训练数据集(Training Dataset),训练数据集是有标签的,苹果图片的标签是苹果,香蕉图片的标签是香蕉。通过对初始的神经网络参数不断地优化来让模型变得更准确。可能开始对于20张苹果的照片,只有10张被判断为苹果,对另外10张没有做出正确判断,这时可以通过优化参数让神经网络对20张图片都做出正确判断,这个过程就是训练过程。训练后的模型能对训练数据集中所有苹果图片准确地加以识别,但是我们的期望是它可以对以前没看过的图片进行正确识别。你重新拍一张苹果的图片让神经网络判断时,这种图片叫作现场数据(Live Data),如果神经网络对现场数据识别的准确率非常高,就证明你的网络训练是非常成功的。我们把用训练好的模型识别新图片的过程称为推理。图1-9中给出了深度学习中训练和推理的关系。

图1-9 推理是模型的应用过程

训练是利用已有数据进行学习的过程,对计算的精度要求较高,会直接影响推理的准确度。而推理是在新的输入数据下,应用训练形成的模型完成特定的任务,如图像识别、自然语言处理等,通常数据量会比训练小很多,可以放到移动终端设备上进行。这又涉及一个概念——部署(Deployment)。把一个训练好的模型应用起来,使它能够在移动终端上运行推理,这个过程就称为部署。本书后文中所阐述的人工智能应用开发均基于移动终端的推理应用。