乐趣区

关于机器学习:机器学习洞察-挖掘多模态数据机器学习的价值

在过来的数年里,咱们见证了机器学习和计算机科学畛域的很多变动。人工智能利用也愈趋宽泛,正在减速融入人们的日常生活之中。机器学习作为技术外围,也在继续地倒退进化,在更多畛域施展出越来越重要的作用。机器学习会有哪些新的演进趋势和倒退方向?咱们又该如何提前布局,紧跟这一热门技术的前沿变动?

亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注 / 珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!

《机器学习洞察》系列文章将基于机器学习的倒退现状,逐个解读和剖析目前机器学习在实际落地中颇具后劲的四个演进趋势,包含 多模态机器学习、分布式训练、无服务器推理,以及 JAX 这一新崛起的深度学习框架。

什么是多模态数据机器学习

人们听到的声音、看到的食物、闻到的滋味,这些都属于模态信息,而咱们生存在多模态信息互相融合的环境之中。

为了使人工智能能够更好地了解世界,人们须要赋予人工智能学习了解和推理多模态信息的能力。多模态数据机器学习就是指通过建设模型,使机器从多模态中学习各种模态信息,并且实现各个模态的信息交换和转换的过程。

多模态利用范畴宽泛,既涵盖包含人工智能音箱、电商的商品举荐零碎、图像识别等生活化场景,还能够利用于一些工业畛域,包含导航和主动驾驶、生理病变钻研、环境监测和天气预报等等,也能够反对将来元宇宙场景下虚拟人和人类之间沟通等等。

多模态学习畛域的演进

随着多模态数据机器学习的热度越来越高,有对于多模态数据机器学习的钻研也迎来许多创新性的冲破,特地是以下三个重要停顿:

  • ZSL:Zero-Shot Learning(University of Tübingen, 2009)

    https://ieeexplore.ieee.org/document/5206594?trk=cndc-detail

  • CLIP:基于比照文本 - 图像对的预训练(OpenAI, 2021)

    https://arxiv.org/abs/2103.00020?trk=cndc-detail

  • ZESREC:基于 Zero-Shot 的举荐零碎(Amazon, 2021)
    https://www.amazon.science/publications/zero-shot-recommender…

Zero-Shot Learning (ZSL)

通过训练集图片学习出一些属性,将这些属性相结合失去交融特色之后,匹配与训练集图片不重合的测试集图片,来判断其类别,这一过程就是 Zero-Shot Learning (ZSL),即用见过的图片特色去判断没见过的图片类别。

让咱们先以人类的个别推理过程来做个类比:

假如小明和爸爸一起到动物园玩耍。首先看到了马,于是爸爸通知小明,马就是这个形态的;之后,又看到了老虎,爸爸又通知小明:“看,这种身上有条纹的动物就是老虎。”;最初,又带他去看了熊猫,对他说:“你看这熊猫是黑红色的。”

而后爸爸给小明安顿了一个工作,让他在动物园里找一种他从没见过的动物,叫斑马,并通知了小明有对于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑红色的。”最初小明依据爸爸的提醒,在动物园里找到了斑马。

上述例子中蕴含了 一个人类的推理过程,就是利用过来的常识 (马,老虎,熊猫的形容),在 脑海中推理出新对象 (斑马) 的具体状态,从而能对新对象进行识别

例如下图中,从训练集图片 (Seen Classes Data) 中学习出一些属性 (比方 horselike、stripe 和 black&white),而后将这些属性相结合失去交融特色,交融特色刚好和测试集的斑马特色相匹配,最终失去预测后果为斑马:

图片起源:论文《Learning To Detect Unseen Object Classes by Between-Class Attribute Transfer(University of Tübingen, 2009)》

Zero-Shot Learning 蕴含了一个推理的过程,就是如何利用过来的常识,在脑海中推理出新的对象的具体状态,从而对新对象进行识别。

现在通过深度学习和监督学习尽管在很多工作上都能够给出令人惊叹的后果,然而这种学习形式也存在以下弊病:

  • 须要足够多的样本数据,给样本打标签的工作量微小
  • 分类后果依赖训练样本,无奈推理辨认新类别

这显然难以满足人类对于人工智能的终极设想。而 Zero-Shot Learning 就是心愿可能模仿人类通过推理辨认新类别的能力,使得计算机具备辨认新事物的能力,进而实现真正的智能。

CLIP:基于比照文本 - 图像对的预训练

2021 年之前,在自然语言解决 (Natural Language Processing, NLP) 畛域有很多预训练方法都取得了胜利。例如,GPT-3 175B 从网上收集了近 5 亿 tokens 进行预训练,在很多上游工作上实现 SOTA (State-of-the-Art) 性能和 Zero-Shot Learning。这阐明从海量互联网数据 (web-scale) 中学习,是能够超过高质量的人工标注 NLP 数据集的。

然而在计算机视觉 (Computer Vision, CV) 畛域的预训练模型还是次要基于人工标注的 ImageNet 数据进行训练。因为人工标注的工作量微小,许多科学家们开始构想,如何构建更为高效、便捷的形式用于训练视觉表征模型呢?

在 2021 年发表的论文《Learning Transferable Visual Models From Natural Language Supervision》中隆重推出了 CLIP (Contrastive Language-Image Pre-training) 模型,并且具体地介绍了如何通过自然语言解决监督信号,训练可迁徙的视觉模型。

论文中是怎么解决 NLP 的监督信号呢?

在论文中次要介绍了以下三个局部:

图片来自论文

第一局部:比照的预训练。

在训练的过程中,通过两个编码器:文字编码器和图片编码器,实现模型输出的配对,造成 N 组图片和文本的特色。上图矩阵中蓝色对角线上的特色组作为正样本,其余红色特色组作为负样本,CLIP 会基于这些特色进行比照学习,齐全不须要手工标注。

须要留神的是,这种无监督的比照学习须要大量的数据训练。在论文中的数据集中有 4 亿组文字图片的配对,保障了输入后果的品质。

第二局部:用 CLIP 实现 Zero-Shot 分类。

在上游工作中,CLIP 防止应用非凡的分类头,以实现齐全不须要进行微调的数据集迁徙。论文中设计了一个很奇妙的办法,Prompt Template,利用自然语言将分类工作奇妙的移植到现有的训练方法中。

第三局部:Zero-Shot 推理

通过将样本图片输出到图像编码器中失去图像的特色,而后拿这个图像的特色去和所有的文本特色计算类似度,抉择类似度最大的文本特色对应的句子来实现分类工作,最初造成后果图片。

通过验算,咱们可能看到基于 CLIP 训练进去的模型成果十分现实:

图片来自论文

这个试验通过 ImageNet 数据集的从新筛选,制作了几个变种的版本。

在 ImageNet 数据集上训练进去的 ResNet 101 模型准确率是 76.2%,用 CLIP 训练进去的 VIT-Large 模型准确率同样是 76.2%。然而当咱们换成其它数据集,严格依照 1000 类的分类头再次训练,得出的模型准确率却降落得很快。特地是应用上图中最初两行样本(素描画或者对抗性样本)时,准确度仅为 25.2% 和 2.7%,根本属于随机猜想,迁徙成果惨不忍睹。比照应用 CLIP 训练进去的模型,准确率根本在线。

这从侧面阐明了:因为和自然语言解决的联合,所以导致 CLIP 学进去的这个视觉特色,和咱们用语言所形容的某个物体,曾经产生了强烈的分割

代码示例:在 Amazon SageMaker 运行 CLIP 模型

这个示例展现了如何下载和运行 CLIP 模型,计算任意图像和文本输出之间的相似性,以及执行 ZSL 图像分类。

  1. 下载和运行 CLIP 模型,输出之后可失去咱们须要的模型;
import clip

clip.available_models()
model, preprocess = clip.load("ViT-B/32")
model.cuda().eval()
input_resolution = model.visual.input_resolution
context_length = model.context_length
vocab_size = model.vocab_size

图片起源:ImageNet 数据集

  1. 计算类似度:通过对特色进行归一化并计算每对的点积,来计算余弦类似度。

图片起源:CIFAR100 数据集

  1. ZSL 图像分类:应用余弦类似度(乘以 100)作为 softmax 运算的对数对图像进行分类。
from torchvision.datasets import CIFAR100

cifar100 = CIFAR100(os.path.expanduser("~/.cache"), transform=preprocess, download=True)

text_descriptions = [f"This is a photo of a {label}" for label in cifar100.classes]
text_tokens = clip.tokenize(text_descriptions).cuda()

with torch.no_grad():
    text_features = model.encode_text(text_tokens).float()
    text_features /= text_features.norm(dim=-1, keepdim=True)

text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)
top_probs, top_labels = text_probs.cpu().topk(5, dim=-1)

这里展现了执行 ZSL 图像分类的最终后果:在一个模型从未见过的图像集(这里以 CIFAR100 图像集为例)上,CLIP ViT-B/32 模型针对 CIFAR100 图像集分类标签的匹配后果。

图片起源:CIFAR100 数据集

整个过程无需在上游做微调,不必在数据集上训练,间接在基准上评估。

对于 CLIP 论文的残缺代码请参考: https://github.com/openai/CLIP?trk=cndc-detail

ZESREC:基于 Zero-Shot 的举荐零碎

除此之外,在多模态数据机器学习中,除了 CLIP 以外,咱们也有一些其余的摸索,例如亚马逊云科技的 AI Labs。

在论文《Zero-Shot Recommender Systems》中分享了基本思路,即应用 BERT 训练的商品详情形容信息代替商品 id embedding 作为产品输出,下层连贯 mlp 转为 300 dim,而后连贯 hmn 学习序列特色。

对于未呈现的商品和用户进行举荐,它很好地解决了举荐的冷启动问题,甚至在跨数据集的 Zero-Shot 也有很好的体现,实用于新批发的全渠道 (Omni-Channel),并扩大减少输出的维度,例如视频和商品图等。

架构案例:多模态数据的模型训练

在下图中介绍了多模态数据管道在生命科学畛域的参考部署架构。

图片起源:官网博客《在 Amazon SageMaker 上应用多模态衰弱数据训练机器学习模型》

该架构将解决来自基因组数据、临床数据和医学成像数据,并将每种模式的解决性能加载到 Amazon SageMaker Feature Store 中。

这个案例展现了如何会集来自不同模式的特色,并训练一个预测模型,该模型的性能优于在一种或两种数据模式上训练的模型。

咱们会在后续文章中持续介绍无关分布式训练、无服务器推理,以及 JAX 框架的演进趋势,请继续关注 Build On Cloud 微信公众号。

随着机器学习的重要水平一直突显,以及相干技术钻研的不断丰富,置信在将来围绕机器学习的技术将会逐步欠缺,并以此赋能、推动人工智能等技术畛域迎来更广大的倒退空间,造福人类。

咱们会在后续文章中持续介绍无关分布式训练、无服务器推理,以及 JAX 框架的演进趋势,请继续关注 Build On Cloud 微信公众号。

随着机器学习的重要水平一直突显,以及相干技术钻研的不断丰富,置信在将来围绕机器学习的技术将会逐步欠缺,并以此赋能、推动人工智能等技术畛域迎来更广大的倒退空间,造福人类。

文章起源:https://dev.amazoncloud.cn/column/article/63e32a58e5e05b6ff89…

退出移动版