如果没有人告诉它答案是对还是错,人工智能如何训练自己?

人工智能 机器学习 术语
2021-11-05 19:47:25

我是一名程序员,但不在人工智能领域。一个经常让我困惑的问题是,如果我们人类不告诉它的计算是正确的,如何训练人工智能?

例如,新闻通常会说“A公司拥有庞大的人脸数据库,以便更有效地训练其面部识别程序”。这条新闻没有提到的是人类工程师是否需要告诉人工智能程序每个程序的识别结果是否准确。

有没有工程师不断地告诉人工智能它产生的正确或错误?如果不是,人工智能如何确定它产生的结果是正确的还是错误的?

4个回答

“A公司有一个大的人脸数据库,这样它可以更有效地训练它的面部识别程序”这篇文章可能意味着有一个训练数据集S形式的

S={(x1,y1),,(xN,yN)}

在哪里xi是人脸的图像i人类和yi(通常称为标签目标)是例如i人类。因此,程序员提供了一个监督信号(标签)供 AI 学习。程序员还根据 AI 模型的答案和yi.

这种学习方式称为监督学习(SL)。但是,还有其他训练 AI 的方法。例如,有无监督学习(UL),其中 AI 需要通过基于程序员指定的某种相似性度量聚合对象来找到数据中的模式。还有强化学习(RL),程序员只指定某些强化信号,也就是说,程序员告诉人工智能哪些动作或结果是“好的”,哪些是“坏”的,以实现其目标,通过给予人工智能,分别是正面或负面的奖励。您还可以将这三种方法结合起来,还有其他变体。

有没有工程师不断地告诉人工智能它产生的正确或错误?

是的,在 SL 的情况下。在 RL 的情况下,程序员还需要提供强化信号,但不需要明确告诉 AI 它需要采取什么行动。在 UL 中,程序员需要指定 AI 需要聚合对象的方式,因此,在这种情况下,程序员也参与了学习过程。

以您的面部数据为例,请记住,当模型在新的看不见的图像上运行时,模型只能返回作为最接近匹配出现的已经看到的身份。结果可能不正确。随着包含的特征数量的增加,错误识别的可能性要低得多。

工程师的输入在于训练数据的层面。假设我们有一张需要包含在模型中的个人的新照片。现在的工程任务是变形该图像以模拟不同的环境、视角、大气条件、照明等,以提供大量的数据输入案例,所有这些都将是“真实的”,因为自这些图像基于同一个人。然后使用附加数据重新计算模型。

还要记住,将一组新数据添加到现有训练集的优点是模型的参数在很大程度上已经在正确的范围内,并且添加新面孔只会产生很小的变化。交叉验证将显示添加是否改进或破坏了模型。

我认为您可能以错误的方式看待这个问题。传统的老式 AI 不会进行猜测,然后需要确认该猜测是对还是错。相反,(在最简单的情况下)它经历了一次性的计算密集型“训练”/“学习”阶段,在此期间,您向它提供大量正确答案(被标记为正确)和更多不正确的答案(被标记为不正确)。使用它拥有的任何学习机制,它会识别出“正确”中不存在“错误”中的一些潜在结构。将来,当它遇到似乎也表现出这种结构的新事物时,它会将其归类为“正确”。它可能做得很好,也可能做得很糟糕。一旦一次性训练阶段完成,它就会被它所拥有的任何能力所困。

假设你提到的公司叫做 Facebook,他们有一个功能可以让你在照片中“标记”你的朋友。无需支付工程师费用来创建人类历史上最大的标记图像数据库来训练您的 AI。

如果我们人类不告诉它的计算是正确的,如何训练人工智能?

您正在寻找的东西称为自我监督学习现代神经网络系统的创始人之一 Yann LeCun 表示,即使在没有人工标签的情况下,机器也可以通过学习辅助任务来进行有用的推理,其答案已经编码在数据样本中。自我监督已经成功地应用于各种任务,显示出由于自我监督而提高了多任务性能。无监督学习通常是自我监督的一个子集。

自我监督可以通过多种方式进行。最常见的一种是将部分数据用作输入,将其他部分用作标签,并使用数据的“输入”子集来预测标签。

监督学习是这样的:

model.fit(various_data, human_labels)

human_labels 对应于 various_data 中的条目,我们希望模型能够预测。

同时,自我监督学习看起来像这样:

model.fit(various_data[:,:500], various_data[:,500:]) 

(使用 Python 数组切片表示法,一些输入数据用作训练标签。)

例如,机器可以使用手写数字图像中的一半像素来尝试预测丢失的像素。这是一种自我监督的形式:由于机器知道哪些像素属于同一个样本,它可以从输入本身“自动”生成自己的标记数据,只需使用一些输入作为输出。然而,从其他像素预测像素通常不是理想的任务。因此,通常使用自我监督或无监督学习技术对神经网络进行训练,然后在一定数量的人工标记数据上进行训练,作为迁移学习的一种形式。

假设的新闻文章的摘要所承诺的是,自我监督使学习更有效率,而不是它超出了对任何人类干预的需求。这正是我们在预训练中从成功的自我监督中得到的。

在最好的情况下,机器学会“识别”每一类数字 0-9,但它仍然不知道如何将自己的内部标签与人类的标签联系起来。然后,人类提供机器标签和人类指定 ID 之间的映射将是将自我监督机器升级到直接用于数字识别的唯一必要步骤。

人类总是需要通过直接监督来训练机器,以便机器学习预期的任务。为了解决一个特定的问题,总是需要足够的监督,并且必须提供足够的标签来反映意图。