微软AI Lab:助你从零开始成为AI开发者

编者按:AI Lab是微软在Build 2018大会上发布的人工智能开放项目平台,向开发者展示微软最新AI技术的使用案例。微软希望AI Lab能帮助全球的开发者运用微软丰富的开放资源和平台来探索自己的人工智能项目。本文翻译自微软研究院机器学习博客“AI Lab: Learn to Code with the Cutting-Edge Microsoft AI Platform”,有删减。

在今年的Build大会上,微软推出了人工智能开放项目平台——AI Lab,旨在帮助规模庞大且正在快速增长的开发者队伍来探索、学习和使用微软AI平台的最新技术,探索自己的第一个人工智能项目。

AI Lab目前开放了五个人工智能项目,展示了微软自定义视觉服务(Custom Vision Service)、AttnGANVisual Studio Tools for AICognitive Search、机器阅读理解等最新技术的使用。在每个项目中,开发人员都可以访问GitHub上的开源代码,尝试Demo演示,还可以观看清晰的介绍视频,从而获得对人工智能潜在的商业问题和解决方案的深入理解。

绘画机器人

绘画机器人(DrawingBot)是由微软研究院人工智能实验室的研究人员开发的,能根据文本信息绘制出相应图像的模型。DrawingBot的核心技术是GAN网络(Generative Adversarial Network),其中包含两个机器学习模型,一个模型根据文本描述生成图像,另一个模型用文本描述去鉴别生成图像的真实性。如果生成的图像和文字描述相差甚远,就无法通过鉴别模型的检测,因此GAN网络通过两个模型的合作,能够使生成的图像越来越接近本文所描述的内容。然而,GAN网络对“一只蓝色的鸟”、“一棵常青树”这样比较简单的文字描述能生成效果较好的图像,而对于“一只绿冠红腹、黄色翅膀的鸟”这样复杂的描述,生成的图像还不那么尽如人意。

想象一下,如果让我们来根据一段描述画一幅画,我们会怎么做?通常来说,我们会在这个过程中不断地参考文本描述,尤其是正在绘制的区域所对应的那部分文字。基于这个启发,研究人员将GAN网络改进为AttnGAN网络(attentional GAN),用数学表达来模拟人类的这种注意力特征,将输入的文本分解为单个的单词,将单个单词与待生成图像的特定区域相匹配。根据CVPR上的一篇研究论文的测试结果,这种方法使生成图像的质量提高了近三倍。

项目链接:

https://www.ailab.microsoft.com/experiments/1e9e1eef-2ab1-41f1-b341-0118f414bd78

JFK文件演示

为了帮助用户更好地了解美国总统肯尼迪被暗杀的整个事件,微软的研究人员利用Azure搜索服务和微软认知服务开发了一个应用程序,能够自动分析与暗杀有关的所有解密文件,并将原始文档整理成结构化的信息。

JFK文件演示背后的核心技术是Cognitive Search,这是微软在Build大会上发布的一项基于AI的内容理解技术,由内置认知服务功能的Azure搜索提供支持,能从任何内容资源中提取数据,并运用可组合的认知功能从数据中提取需要的知识。这些知识将被整理和存储在索引中,优化搜索数据的体验。Cognitive Search能方便快捷地利用云和AI的强大力量处理数据,当我们第一次将应用于JFK文件演示系统时,效果令人惊叹,我们提出的许多有趣的问题不仅可以获得回答,还可以在原始文件中看到答案和问题之间的关系。JFK文件演示系统能使我们的客户轻松将其应用到自己的领域、回答他们所需要的问题。

项目链接:

https://www.ailab.microsoft.com/experiments/7d6b0652-51dc-440d-a12a-481f28525143

风格迁移

风格迁移(Style Transfer)是一种对图片风格进行转换的技术,能从一张图片中提取出风格并应用到另一张图片中,也就是我们常见的“滤镜”功能。这个项目展示了如何训练和部署深度学习模型,开发一个简单有趣的风格迁移应用。

风格迁移项目使用Visual Studio Tools for AI来训练和部署深度学习模型。Visual Studio Tools for AI能让开发者在本地开发机器上轻松部署Keras + Tensorflow模型的训练代码,然后上传到Azure VM上,利用强大的Nvidia GPU来训练模型,大大提高工作效率。我们在提高模型训练速度的同时,在生成图像中保留了与原始图像的语义相似性。此外,Visual Studio Tools for AI还能直接从训练好的TensorFlow模型生成C#代码,无需再手动重新编写。使用全新的Microsoft.ML.Scoring库,开发者可以便捷地在应用中使用TensorFlowONNX模型,在设备端或者云端运行。

风格迁移只是采用训练机器学习模型方法的应用之一,在应用中使用机器学习技术的过程本质上是相同的。开发者可以使用TensorflowCNTK等框架自行训练模型,也可以使用Azure认知服务等预先训练的AI模型。

项目链接:

https://www.ailab.microsoft.com/experiments/99907c05-d487-450b-9ee9-901b40205e81

机器阅读理解

机器阅读理解(MRC)是让计算机根据给定的上下文来回答问题,需要对上下文和问题之间的复杂交互进行建模。微软的研究人员采用新的神经网络ReasoNet(Reasoning Network)来模仿人类阅读时的推理过程:ReasoNets会带着问题反复阅读文档,每次关注文档的不同部分,直到给出令人满意的答案。

同时,微软亚洲研究院的研究人员也提出一种独特的R-NET算法,使机器阅读理解能力在SQUAD数据集上超越了人类平均水平R-NET是一个端到端的深度学习模型。模型分为四层,最下面一层给问题和文本中的每一个词做一个表示,即深度学习里的向量;第二步,将问题中的向量和文本中的向量做一个比对,找出与问题接近的文字部分。接下来,将结果放在全局中进行比对。这些都是通过注意力机制attention)达到的。最后一步,针对挑出的答案候选区中的每一个词汇进行预测,哪一个词是答案的开始,到哪个词是答案的结束。这样,系统会挑出可能性最高的一段文本,最后将答案输出出来。

当我们将这些机器阅读理解算法用于由沈向洋和Brad Smith撰写的《未来计算:人工智能及社会角色》一书时,机器阅读理解回答了大量有趣的问题。机器阅读理解技术能够应用于企业级数据处理,帮助客户回答特定领域的问题。

项目链接:

https://www.ailab.microsoft.com/experiments/ef90706b-e822-4686-bbc4-94fd0bca5fc5


Drones + AirSim

Drones + AirSim是一项有趣的模拟“搜索与拯救”的任务。我们先在AirSim中创建了一个3D环境来模拟微软园区中的足球场,将各种动物放置在球场中;创建了一个Python脚本模拟无人机,它可以在球场中自由拍摄照片。然后我们将无人机拍摄的图像上传至Azure自定义视觉(Custom Vision)服务,训练模型来识别图像中的动物,利用Azure IoT Edge将训练好的模型部署到无人机上。于是,无人机能够在足球场中飞行、拍照,并实时识别出画面中的动物。这一项目能够让用户了解实时自定义的AI如何在无人机这样的边缘设备上运行。

项目链接:

https://www.ailab.microsoft.com/experiments/92262b36-de2e-444e-86ca-8bcb8bd02454

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

产业AI Lab
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

机器人技术技术

机器人学(Robotics)研究的是「机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理」 [25] 。 机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。之前章节中提及的技术都可以在机器人上得到应用和集成,这也是人工智能领域最早的终极目标之一。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

无人机技术

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

暂无评论
暂无评论~