教机器像人类一样学习

时间:2024-06-11 16:55:24

作者:欧陆注册科技

浏览: 次

建立有效的 AI 模型等同于教计算机像人类一样学习。传统上,计算机视觉感知迫使工程师选择在图像中寻找哪些特征,以便识别某个对象来教计算机。他们还习惯于为每一类对象选择相应的特征集。随着类数量的增加,这种方法很快变得越来越复杂。颜色、边缘和对比度只是需要考虑的几个方面,但它们并没有考虑到许多必须由工程师手动微调的参数。


image.png 


另一方面,深度学习利用了“端到端学习”的概念。当使用深度学习时,算法会被简单地指示学习在每个特定类别中寻找什么。它通过研究样本图像自动确定每个类别最突出和最具描述性的特征。结果的差异是巨大的:传统方法的70% 准确率是一个很好的结果,而使用深度学习方法的85% 准确率是相当普遍的。


当我们构建人工智能模型时,我们实际上是在构建人类知识和机器之间的通信系统。我们假设机器什么都不知道(字面意思是什么),而你教它的唯一方法就是给它提供例子。机器的唯一目标是学习您需要它学习的任务(神经网络的最后一层根据从示例中学习到的神经网络模式做出决定)。


让我们举一个简单的例子——教一个蹒跚学步的孩子(比未经训练的神经网络更聪明)。如果您需要教他们什么是鸟,您将避免显示图像中不主要包含鸟类的图片。如果图片中有小鸟但还有其他元素,在大多数情况下,您会指向小鸟,让幼儿“专注”于您希望他们学习的相关对象。话虽如此,蹒跚学步的孩子仍然需要了解一只鸟可以在天空中,在地面上,或部分被树隐藏。


让我们再举一个稍微复杂一点的例子。想象一下有人试图教你一个叫做“padada”的新概念。你不知道这意味着什么,你所拥有的只是包含 1000 个你不知道的其他元素的图片。您可能可以通过尝试识别图像之间的相似性来识别它,并假设如果图像包含相似的特征,它们将被翻译为“padada”,但要破译您是否真的学会了“padada”将非常困难“ 是。

如果你的导师指着图片告诉你什么是“padada”,你自然会更快地理解这个概念。


使用上面的示例,我们需要关注几个基本步骤:

正确定义问题并确保它“简单”到足以理解(参见下面的示例)

 

提供足够多的代表“真实世界”的样本和尽可能多的边缘情况(以最大化方差)

 

确保在不更改问题的情况下提供捕获所需信息的答案(例如,在许多情况下,分类无法回答检测问题,因为说这张图片包含“鸟”并不能说明在哪里或有多少)


以下示例是传输图像中信息的 4 种最常见的方式。


分类

整个图像的标签 = 鸟


image.png 


边界框

盒子区域是“鸟”(默认情况下,其余的是我们需要学习忽略的噪音):


image.png 


多边形

绿色区域是“鸟”(默认情况下,其余的是我们需要学习忽略的噪音):


image.png 


语义分割

绿色像素属于“鸟”类

紫色像素属于“花”类

橙色像素属于“背景”类


image.png 


上述方法从提供给模型的最少信息量发展到提供给模型的最多信息量。前几个例子给机器提供了很多噪音,而后面的例子试图最小化噪音并磨练需要学习的主要信息。


SNR(信噪比)是比较整个标签中所需信号电平的常用公式。在实践中,这意味着“我从样本中获得了多少信息对我理解很重要?”


关于我们尝试优化的 SNR 值,有 2 个主要考虑因素:

实际信号与标签大小的比值:低于 0.5% = 不可靠,不能用于您的特定行业

0.5%-1% = 只能处理大量数据和计算

1%-10% = 在大多数情况下应该可以工作

超过 10% = 模型易于学习

 

将标签与数据中的相似模式区分开来——我们希望避免标注可能混淆模型的标签。例如,如果我们在一辆全黑点的12像素汽车周围标注一个框,我们可能会不小心告诉模型 12 个黑色像素实际上是一辆汽车。

那么为什么我们不应该总是获得最多的信息呢?

简单地说,因为它有其成本,而且通常您提供的信息越多,您需要投入的资金就越多(时间=金钱)。上述示例中的鸟类分类可能需要 1-4秒才能完成,而如果您的图像很复杂(乘以数千张图像),语义分割可能需要数小时。

因此,为了保持我们的任务成本效益,我们应该找到一个权衡:我们需要找到合适的工具(分类/检测/检测-分类/像素级语义分割)。在许多情况下,使用多边形不会增强简单边界框任务的结果,但会更加昂贵。


概括

深度学习教计算机解决谜题。为了使学习过程有效,我们需要提供各种示例,同时提高每个样本的价值。

重要的是要记住计算机只知道你教它的事实。因此,您需要验证和优化信号以捕获数据中的差异。


做AI行业客户的数据参谋