为了说明What-if工具的功能,我们使用预先训练的模型发布了一组Demo:

在谷歌官方博客上,研究人员还发布了用预训练模型进行的一组演示,比如检测错误分类的原因,评估二元分类模型的公平性和调查不同子数据集中模型的表现等。可以移步官方博客查看更多,博客地址:

将CoreML模型集成到你的App中

本教程使用Places205-GoogLeNet模型,您可以从Apple的“机器学习页面.”页面下载。
向下滚动到Working with Models,并下载第一个。
当您在那里时,请注意其他三个模型,它们都会在图像中检测物体 –
树木,动物,人物等。

如果您使用受支持的机器学习工具(如Caffe,Keras或scikit-learn)创建的训练模型,将训练模型转换为CoreML可描述如何将其转换为Core
ML格式。

来源:Google AI

betway88 1

苹果提供了什么?

苹果在iOS5中引入了NSLinguisticTagger来分析自然语言。Metal出现在iOS8中,提供对设备GPU的低级访问。
去年,苹果公司将基本神经网络子程序(BNNS)添加到其加速框架中,使开发人员可以构建神经网络来进行推理(而不是训练)。
而今年,苹果给出了CoreML和Vision!

  • Core ML 使您更容易在您的应用程序中使用经过训练的模型
  • Vision
    让您轻松访问Apple的模型,以检测脸部,面部地标,文字,矩形,条形码和对象。

您还可以在Vision模型中包装任何图像分析Core
ML模型,这在本教程中将会如何。
因为这两个框架是基于Metal构建的,所以它们在设备上高效运行,因此您不需要将用户的数据发送到服务器。

模型性能和算法公平性分析

用L1或L2距离从选定的数据点创建距离特性,并将其可视化进行进一步分析。

在Vision模型中包装Core ML模型

最后,你将需要写些代码!打开ViewController.swift,在import UIKit下面导入两个框架:

import CoreML
import Vision

然后在IBActions扩展末尾添加如下扩展:

// MARK: - Methods
extension ViewController {

  func detectScene(image: CIImage) {
    answerLabel.text = "detecting scene..."

    // Load the ML model through its generated class
    guard let model = try? VNCoreMLModel(for: GoogLeNetPlaces().model) else {
      fatalError("can't load Places ML model")
    }
  }
}

代码意思如下:
首先,您显示一条消息,以便用户知道某些事情正在发生。
GoogLeNetPlaces的指定的初始化程序会引发错误,因此在创建时必须使用try。
VNCoreMLModel只是一个用于Vision请求的Core ML模型的容器。
标准Vision工作流程是创建模型,创建一个或多个请求,然后创建并运行请求处理程序。
您刚刚创建了该模型,因此您的下一步是创建一个请求。

detectScene(image:):末尾添加下面代码:

// Create a Vision request with completion handler
let request = VNCoreMLRequest(model: model) { [weak self] request, error in
  guard let results = request.results as? [VNClassificationObservation],
    let topResult = results.first else {
      fatalError("unexpected result type from VNCoreMLRequest")
  }

  // Update UI on main queue
  let article = (self?.vowels.contains(topResult.identifier.first!))! ? "an" : "a"
  DispatchQueue.main.async { [weak self] in
    self?.answerLabel.text = "\(Int(topResult.confidence * 100))% it's \(article) \(topResult.identifier)"
  }
}

VNCoreMLRequest是使用Core
ML模型来完成工作的图像分析请求。它的完成处理程序接收requesterror对象。
您检查该request.results是一组VNClassificationObservation对象,这是当Core
ML模型是分类器而不是预测器或图像处理器时,Vision框架返回的。而GoogLeNetPlaces是一个分类器,因为它仅预测了一个特征:图像的场景分类。
VNClassificationObservation有两个属性:identifier – 一个String类型 –
和confidence – 介于0和1之间的数字 –
这是分类正确的概率。当使用对象检测模型时,您可能只会看到那些confidence大于某个阈值的对象,例如30%。
然后,取第一个结果将具有最高的置信度值,并将不定冠词设置为“a”或“an”,具体取决于标识符的第一个字母。最后,您将返回主队列更新标签。你很快会看到分类工作发生在主队列中,因为它可能很慢。
现在,到第三步:创建和运行请求处理程序。
detectScene(image:):末尾添加下面代码:

// Run the Core ML GoogLeNetPlaces classifier on global dispatch queue
let handler = VNImageRequestHandler(ciImage: image)
DispatchQueue.global(qos: .userInteractive).async {
  do {
    try handler.perform([request])
  } catch {
    print(error)
  }
}

VNImageRequestHandler是标准的Vision框架请求处理程序;
它不是核心ML模型的具体。
你给它作为一个参数进入detectScene(image :)的图像。
然后通过调用其perform方法运行处理程序,传递一个请求数组。
在这种情况下,您只有一个请求。
perform方法抛出一个错误,所以你把它包装在一个try-catch。

评估二元分类模型的公平性:上面提到的用于微笑表情检测的图像分类模型。What-if工具有助于评估不同子图像组的算法公平性。在该模型的训练中,有意没有提供来自特定人群的示例,目的是为了显现What-if工具如何能够揭示模型中的这种偏差。对模型预测公平性的评估需要仔细考虑整体背景,不过What-if工具是一个有用的量化起点。

不用写代码?

开始

下载启动项目。他已经包含了显示图片的用户界面,并且可是让用户从照片库中选择另一张图片。所以你可以专注于实现应用程序的机器学习和视觉方面。
编译并运行项目,你将看到一个城市的图片和一个按钮:

betway88 2

image.png

从相册中选择领一张图片。这个启动项目的Info.plist已经包含了Privacy – Photo Library Usage Description,因此将会提示你允许使用。
在图片和按钮之间还包含一个文本框,它用于显示模型对图片场景的分类。

Google AI
PAIR计划的一个重点就是让更广泛的人群能够更方便地对机器学习系统进行检查、评估和调试。

不过,这还不是What-If Tool的全部实力。

机器学习是很火的,许多人只是听说过,但知之甚少。这篇iOS机器学习的教程将会介绍CoreML和Vison,这是iOS11中引入的的两个全新的框架。
具体来说,将学习如何使用Places205-GoogLeNet模型将这些新API用于对图像的场景

检测错误分类、评估模型公平性、调查模型不同数据集

对于包含描述真实标签特性的二分类模型和示例,使用阈值、ROC曲线、数值混淆矩阵和成本比交互式地探索模型性能。

添加模型到项目中

下载完GoogLeNetPlaces.mlmodel后,拖到项目的Resources目录中。

betway88 3

image.png

选中这个文件,并稍等一下。当Xcode生成模型类时,将会出现一个箭头:

betway88 4

image.png

点击箭头就可以看到生成的类:

betway88 5

image.png

Xcode已经生成输入输出类,并且主要的类GoogLeNetPlaces有一个model属性和两个prediction方法。
GoogLeNetPlacesInput用一个CVPixelBuffer类型的sceneImage属性。这是什么?不要害怕,不要哭泣,Vision框架将会将我们属性的图像格式装换为正确的输入类型。
Vision框架还将GoogLeNetPlacesOutput属性转换为自己的结果类型,并管理对预测方法的调用,所以在所有生成的代码中,代码将只使用model属性。

我们期待Google内外的人们都来使用What-If工具,以更好地理解机器学习模型,并开始评估预测模型的公平性。
我们的代码是开源的,欢迎对该工具继续添砖加瓦。

传送门

iOS机器学习

机器学习是一种人工智能,其中计算机“学习”而不被明确编程。机器学习工具不用编码算法,而是通过大量数据中查找模式,使计算器能够开发和优化算法。

在下面的截图中,该工具用于二进制分类模型,该模型根据美国人口普查数据集的公共人口普查数据,预测一个人的年收入是否超过5万美元。这是机器学习研究人员使用的基准预测任务,尤其是在分析算法的公平性时。

功能二:编辑一个数据点,看模型表现如何

使用模型来分类场景

现在只需要在两个地方调用detectScene(image :)
viewDidLoad()imagePickerController(_:didFinishPickingMediaWithInfo :)的末尾添加以下行:

guard let ciImage = CIImage(image: image) else {
  fatalError("couldn't convert UIImage to CIImage")
}

detectScene(image: ciImage)

编译并运行。很快就可以看到分类:

betway88 6

image.png

嗯,是的,图像中有摩天大楼。 还有火车。
点击按钮,并选择照片库中的第一个图像:一些太阳斑点的叶子的特写镜头:

betway88 7

image.png

引用:

  • Apple’s Core ML
    Framework
    documentation
  • WWDC 2017 Session
    703
    Introducing Core ML
  • WWDC 2017 Session
    710
    Core ML in depth
  • Core ML and Vision: Machine Learning in iOS 11
    Tutorial

责任编辑:

深度学习

自20世纪50年代以来,AI研究人员开发了许多机器学习方法。苹果的核心ML框架支持神经网络,树组合,支持向量机,广义线性模型,特征工程和流水线模型。然而,神经网络已经产生了许多最壮观的最近的成功,从2012年谷歌2012年使用YouTube视频来训练其人工智能来识别猫和人。只有五年后,Google正在赞助一个比赛,以确定5000种植物和动物。像Siri和Alexa这样的应用程序也存在于神经网络中。
一个神经网络试图用层次的节点来模拟人类脑部过程,并以不同的方式联系在一起。每个附加层需要大量增加计算能力:Inception
v3,一个对象识别模型,有48层和约2000万个参数。但是计算基本上是矩阵乘法,哪些GPU处理非常有效。
GPU的成本下降使得人们能够创建多层深层神经网络,因此是深入学习的术语。

betway88 8

image.png

神经网络需要大量的训练数据,理想地代表了全方位的可能性。
用户生成数据的爆炸也促成了机器学习的复兴。
训练模型意味着向神经网络提供训练数据,并使其计算用于组合输入参数以产生输出的公式。
培训发生在离线状态,通常在具有多个GPU的机器上。
要使用这个模型,你给它新的输入,它计算输出:这被称为推论。
推论仍然需要大量的计算,来计算新输入的输出。
由于像Metal这样的框架,现在可以在手持设备上进行这些计算。
如本教程末尾所示,深入学习远非完美。
建立真正有代表性的培训数据真的很困难,过分训练模型太容易了,所以对古怪的特征给予太多的重视。

只需一键,自动对比数据点与模型预测最相似点

功能五:按相似度排列示例

用户只需单击一个按钮,就可以将数据点与模型预测不同结果的最相似点进行比较。我们称这些点为“Counterfactuals”,可以显示出预测模型的决策边界。用户也可以手动编辑数据点,并探索模型预测的变化。

轻轻一点,你就能比较数据点与模型预测出不同结果的最相似点。我们将这些点称为“反事实”(Counterfactuals),可以反映出模型的决策边界。

What-If工具显示一组250张面部图片及其检测微笑模型的结果

功能七:测试算法公平性限制

在这种情况下,对于选定的数据点,模型预测该人年收入超过5万美元的信度为73%。该工具自动定位数据集中最相似的人,模型预测其年收入低于5万美元,然后将选定数据点和与之最相似、但预测结果相反的数据点进行并排比较。如下图所示,二者只有在年龄和职业上存在微小的差异,但模型的预测结果已经完全相反了。

功能三:发掘单个特征的效果

betway88 9

betway88 10

责任编辑:

betway88 11

【新智元导读betway88,】Google AI推出“what-if
”工具,用户完全不需要编写代码就能分析机器学习模型。该工具提供交互式可视化界面,用户可以探索并比较模型结果,可以快速地发现模型中的错误。

原标题:无需写代码!谷歌推出机器学习模型分析神器,代号What-If

使用What-if工具对微笑检测模型两部分数据的预测表现的比较,其中预测模型分类阈值设置满足“机会公平”

betway88 12

7大功能

—返回搜狐,查看更多

用户还可以探索不同分类阈值的影响,同时考虑不同数值公平性标准等约束条件。下图所示为微笑探测器模型的结果,该模型在开源CelebA数据集上训练,数据集是已标记的名人面部图像。

没错,只需为TensorFlow模型和数据集提供指针,What-If
Tool就能给出一个可用来探索模型结果的可交互的视觉界面。

下图所示数据集中的面部图像按照头发是否为棕色分开,两个图像中的每一组都建立一条ROC曲线和一个预测结果的混淆矩阵,再设置一个置信度滑块,设定模型必须在超过某一置信度时才能判定目标的面部是微笑的。本例中,What-If工具自动设置两组的置信度阈值,以优化模型,实现机会均等。

What-If Tool主要有七大功能,不知道有没有你需要的那一款:

新智元将于9月20日在北京国家会议中心举办AI WORLD
2018世界人工智能峰会,MIT物理教授、未来生命研究所创始人、《生命3.0》作者Max
Tegmark,将发表演讲《我们如何利用AI,而不是被其压制》
,探讨如何直面AI军事化和杀人武器的出现,欢迎到现场交流!

功能一:可视化推断结果

探索数据点上的What-if情景

倒计时 8

250张人脸和在模型中检测微笑后的结果

betway88 13

betway88 14

对Counterfactuals的比较。二人只有在年龄和职业上存在微小的差异,但模型的预测结果已经完全相反

betway88 15

根据推断结果的不同,你的示例会被分成不同的颜色,之后可用混淆矩阵和其他自定义形式进行处理,从不同特征的角度显示推断结果。

我们将What-If工具在Google内部团队中进行了测试,该工具在测试中显现出了直接价值。有团队很快发现他们的模型错误地忽略了数据集的整个特征,修复了以前未发现的代码错误。
还有团队使用该工具将模型示例按性能高到低排列出来,并发现表现不佳的模型示例的运行模式。

功能四:探索反事实示例

调查模型在不同子群体中的表现:回归模型可以用于根据人口普查信息预测受试者的年龄。What-if工具能显示出模型在不同子群体中的相对表现,以及不同特征如何单独影响预测结果。该模型使用美国人口普查数据集进行训练。

你可以编辑、添加或删除任何选定数据点的特性或特性值,然后运行推断来测试模型性能,也可上传全新示例。

倒计时**8**天

可以用来探索为选中数据点中的单个特征自动生成的图,显示特征有效值不同时推断结果的变化。

betway88 16

What-If
Tool里功能很多,包括自动用Facets将数据集可视化,也有从数据集中手动编辑示例并查看更改效果的功能,还能自动生成部分关系图,显示模型预测随着单个特征的改变而改变的趋势。

构建高效的机器学习系统,需要提出并解决许多问题。仅仅训练模型然后就放着不管是远远不够的。优秀的机器学习从业者要像侦探一样,时刻注意探索如何更好地理解构建的模型:数据点的变化将对模型的预测结果造成什么影响?同一个模型对不同的群体会有哪些不同的表现?用来测试模型的数据集的多样化程度如何等等。

对于二分类模型来说,这个工具可以将你的数据集分成子数据集,继而探索不同算法公平性约束(fairness
constraints)的影响。

要回答这些问题并不容易。要回答这些“假设”问题,通常要编写自定义的一次性代码来分析特定模型。这个过程不仅效率低下,而且除了程序员,其他人很难参与改进机器学习模型的过程。

betway88 17

检测错误分类:多类分类模型,模型根据对植物的花的四次观测来预测植物的种类。What-if工具有助于显示模型的决策边界,弄清导致错误分类的原因。

What-If Tool介绍主页:

编辑:大明

功能六:查看混淆矩阵和ROC曲线

今天,我们正式发布What-If工具,该工具是开源的TensorBoard
Web应用程序的一项新功能,它允许用户在不编写代码的情况下分析机器学习模型。
What-If工具给出了TensorFlow模型和数据集的指针,提供了一个交互式可视化界面,用于探索模型结果。

今天,谷歌推出了已开源的TensorFlow可视化工具TensorBoard中一项新功能:What-If
Tool,用户可在不编写程序代码的情况下分析机器学习(ML)模型。

betway88 18

返回搜狐,查看更多

betway88 19

原标题:测试机器学习模型不用写代码!谷歌“what-if”工具轻松搞定

铜灵 编译整理

Github:

What-If工具功能强大,可以使用Facets自动显示数据集,从数据集手动编辑示例并查看更改的效果,还能自动生成部分依赖图(partial
dependence
plots),显示模型的预测结果随任何单个功能的更改而变化的情况。

下面详细介绍What-If工具的两个功能。

What-If工具的实地应用

betway88 20

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章