SageMaker中内置的方法与Amazon推荐的MLAPI在很大程度上有交集,但在这里它允许数据科学家定制使用,并使用自己的数据集。
一般来说,亚马逊的机器学习服务为经验丰富的数据科学家和只需要完成工作而不需深入准备数据集和建模的人都提供了足够的自由。对于那些已经使用亚马逊环境并且不打算转移到其他云供应商的公司来说,这是一个可靠的选择。
MicrosoftAzure机器学习工作室(MachineLearningStudio)
AzureMachineLearning意在为新手和经验丰富的数据科学家建立一个强大的工作空间。微软的机器学习产品功能与亚马逊的类似,但就目前而言,Azure的现成算法更加灵活。
Azure提供的服务可以分为两大类:AzureMachineLearningStudio和Bot服务。让我们首先了解一下AzureMLStudio,在之后介绍特定API和工具的部分时,回到Bot服务。
使用Azure进行机器学习的学习曲线可能比较陡,但是这也能使得用户对该领域的主要技术有更深入的了解。另一方面,AzureML支持图形界面,可以可视化工作流程中的每一个步骤。使用Azure的主要好处是可以使用各种算法。MLStudio支持大约100种解决分类(包括二分类和多分类),异常检测,回归,推荐和文本分析方法。值得一提的是,该平台也支持一种聚类算法(K-means)。
Google预测API
Google在两个层面上提供AI服务:针对高级数据科学家的机器学习引擎,和高度自动化的Google预测API。不过,谷歌将在2018年4月30日停用预测API服务。
即将停用的预测API类似于AmazonML,只有两个很精简的方法,主要用于解决两个问题:分类(二类和多类)和回归。训练好的模型可以通过RESTAPI接口进行部署。
Google并没有公开预测中使用了哪些算法,也不能让工程师自定义模型。Google的环境最适合在紧迫的期限内进行机器学习,并推出初始版本的ML模型。然而这个产品并没有像谷歌所期望的那么受欢迎。
那么接替Google预测API的是什么呢?
Google云端机器学习引擎
基本上,TensorFlow和Google云服务结合,构成了三层服务模型,包括了基础架构服务和平台服务解决方案。
Amazon,Microsoft,Google机器学习API的比较
除了成熟的平台之外,还可以使用高级的API。这些都是使用训练好的模型的服务,只需要将数据输入,就可以得到结果。API不需要机器学习的专业知识。目前,这三家厂商的API大致可以分为三类:
语音和文本处理API:Amazon
Amazon提供了多个针对文本分析中常见任务的API。这些API是高度自动化的,只需适当的整合就可以工作。
Polly服务与Lex相反,它是将文本转换为语音,这能够使聊天机器人通过语音的方式回复,这个API并不会生成文本,只是让文本的发音更接近与人类。如果你曾经使用过Alexa,你就会知道这种声音是什么样的。目前,它支持25种语言的男性和女性的声音,主要是英语和西欧语言。一些语言有多种男性和女性的声音,所以甚至可以有多种选择。与Lex一样,建议将Polly与Lambda一起使用。
Comprehend是另一个NLPAPI集。与Lex和Transcribe不同,它针对不同的文本分析任务而设计。目前,Comprehend支持:
就像名称所表达的一样,Translate服务是用来翻译文本的。Amazon声称,该服务使用的神经网络,与基于规则的翻译方法相比,能够提供更高的翻译质量。然而,目前版本只支持阿拉伯文、中文、法文、德文、葡萄牙文和西班牙文这六种语言与英文的互译。
语音和文本处理API:MicrosoftAzureCongnitiveServices
Speech
Speech集包含四个API,针对自然语言识别和一些其他任务使用了不同类型的自然语言处理(NLP)技术:
Language
微软的LanguageAPI与AmazonComprehend类似,侧重于文本分析:
语音和本文处理API:Google云服务
虽然这套API与亚马逊、微软Azure的API相似,但也拥有一些独特和有趣的东西。
现今各种聊天机器人已经成为趋势,Google也提供了一些服务。Dialogflow采用了NLP技术,旨在发现文本中表达的意图,并解释人想要什么。可以使用java,Node.js和Python为API调整和定制功能。
这其中的核心功能几乎与Amazoncomprehend和微软的Languate完全相同。
这项服务用于识别自然语音,与其他公司类似的API相比,其主要优势在于Google支持更丰富的语言。目前,它支持全球110多种语言。额外功能如下:
基本上,你可以使用该API将Google翻译集成到产品中,包含100多种语言的自动检测和翻译。
除了文本和语音,Aamzon,Microsoft和Google还提供了用于图像和视频分析的常用API。
图像和视频处理API:AmazonRekognition
图像和视频处理API:MicrosoftAzureCongnitiveService
软件包结合了六个API,分别专注于不同类型的图像,视频和文本分析。
图像和视频处理API:GoogleCloudServices
该工具为图像识别任务而建立,对于查找特定的图像属性非常有用:
Google的视频识别API在开发初期就缺乏AmazonRekognition和MicrosoftCongnitiveServices提供的许多功能。目前,该API提供以下工具集:
虽然在功能级别上,GoogleAI服务可能缺乏一些功能,但是GoogleAPI可以使用Google提供的大量数据集。
特定的API和工具
这一部分,我们将讨论微软和谷歌的特定API产品和工具。这里没有亚马逊,因为其API跟上面提到的文本分析和图像视频分析是一样的。但是,一些其他公司提供的特定API的一些功能也集成于Amazon的产品中。
AzureServiceBot框架
微软为了给用户提供更灵活的开发工具集付出了很多努力。该服务包含通过不同编程语言构建、测试和部署bot的完整环境。
有趣的是,bot服务并不一定需要机器学习方法。微软为bot工具提供了五种模板(基础模板、形式模板、语言理解模板、主动模板和问答模板),只有语言理解模板需要高级的人工智能技术。
目前,你可以使用.NET和Node.js技术,利用Azure构建机器人,并将其部署到平台和服务上:
微软提供了连接Bing核心引擎的七个API,包括自动推荐、新闻、图像和视频搜索。
该API将文本分析与各种任务相结合:
IBMWatson及其他
那么IBMWatsonAnalytics怎么样?
IBMWatsonAnalytics还不是一个用于商业预测的完整机器学习平台。目前,Watson的优势是可视化数据,以及描述不同数据之间的相互作用。它还有类似于Google提供的视觉识别服务和一些其他的认知服务(API)。Watson目前的问题是,该系统只能执行很少的一些相对简单的非专业的任务,涉及到定制机器学习方法或者预测任务时,IBMWatson就无能为力了。
数据存储
如果团队中的数据科学家有足够的知识来操作流行的存储解决方案,那么寻找合适的存储方式来收集数据,并通过机器学习进一步处理数据现在已经不再是一个很大的挑战。
建模和计算
我们已经讨论了主要提供计算能力的ML-as-a-service解决方案。但是如果模型学习的过程需要在公司内部执行,计算能力的挑战迟早会出现。机器学习在大多数情况下需要很多计算能力。即使大数据时代已经来临,数据采样(收集数据集)仍然是一个重要的问题。
下一步
在如此多的选择下,很容易迷失在各种可用的解决方案中。它们在算法上有所不同,所需的技能也不同,所以最终处理任务的结果也会不同。
对于这个年轻的市场,这种情况是非常常见的。即使是我们前面谈到的三个领先解决方案,也不是完全处于相互竞争状态。更重要的是,服务变化的速度常常出人意料。很可能当你坚持使用一个供应商的解决方案时,另一个供应商突然推出一些符合你业务需求的服务。
正确的做法是尽可能早的想清楚你打算用机器学习实现什么。这其实并不容易。如果你缺乏数据科学或者专业领域指示,那么在数据科学和商业价值之间的桥接就非常棘手。这通常是将一般化问题简化为单一属性的问题。无论是价格预测还是其他的数值,确定对象的类别还是将对象分组,一旦找到需要解决的属性,决定供应商并选择其所提供的服务就变得简单起来了。
DCVC创始合伙人BradfordCross认为,ML-as-a-Services不是一个可行的商业模型。根据他的说法,这个模式定位在了使用开源产品的数据科学家和想要购买全套服务的商业高管之间的空白处。然而,目前业界似乎正在克服该模式长期存在的问题,最终我们会看到更多公司转向使用ML-as-a-service这种商业模式,以避免招聘工资高昂的数据科学家,并仍然能够使用足够多功能的数据工具。