@sambodhi
2018-03-28T08:43:29.000000Z
字数 7947
阅读 2736
作者|Liu Zhiyong
编辑|Natalie Cai
AI前线导读:近年来,机器学习领域已催生出了很多激动人心的成果,其应用已经延展到了图像识别、语言翻译、医学诊断等许多领域。对研究科学家来说,随着机器学习系统的广泛应用,理解模型解读数据的方式正变得越来越重要。但是,探索数据的一大主要难题是数据往往具有数百个乃至数千个维度,这意味着我们需要使用特别的工具才能调查清楚数据空间。为此,AI前线整理了Google 大脑团队出品的可视化项目的简介,分享给广大读者。
更多干货内容请关注微信公众号“AI前线”,(ID:ai-front)
本文所介绍的可视化项目都可在https://research.google.com/bigpicture/中找到。
机器学习已经成为一个日益强大的工具,该工具可以应用到横跨物体识别、语言翻译、健康医疗等各种领域。然而,目前,常常只有具备能够处理共用机器学习库的计算资源和技术专家的开发商才可以开发机器学习系统。
下面开始分别介绍Google大脑团队的可视化项目。
Deeplearn.js是一款基于硬件加速的开源JavaScript库,可被用在机器智能领域。
Deeplearn.js将高性能的机器学习构建模块引入到web开发领域。通过DeepLearn.js,可以实现在浏览器中训练神经网络模型,也可在推理阶段运行预训练模型。该库可以直接在您的浏览器中运行,而无需进行安装,也无需借助后端运行。
在当前深度学习的浪潮下,deeplearn.js为浏览器构建了强大的交互式机器学习工具,几乎可以被用在任何领域,包括教育、模型的理解、艺术项目等。
Facets是一款旨在帮助用户理解并分析各类机器学习数据集的开源可视化工具。
由于机器学习数据集可以包含数亿个数据点,每个数据点由数百(甚至数千)的特征组成,几乎不可能以直观的方式了解整个数据集。Google开源的Facets就是专门为解决这个痛点而生。
Facets包含两个部分——Facets Overview和Facets Dive——允许用户从不同的粒度观看其数据的全景图。你可以使用Facets Overview可视化数据每一个特征,或者使用Facets Dive探索个别的数据观察集。这些可视化允许你调试数据,这在机器学习中和调试模型一样重要;还可以轻易地被用在Jupyter notebooks之内,或者嵌入网页之中。我们除了开放 Facets 源代码,还创建了演示网站,允许任何人在浏览器中直接可视化数据集而无需安装任何软件或设置,也无需数据离开你的计算机。
一种提高sensitivity masks的技术。
当机器学习模型做出预测时,我们通常会想要确定输入(像素、图像)的哪些特征对预测很重要。如果模型做出错误的预测,我们可能想知道是哪些特征导致了错误分类。为了做到这一点,我们可以将特征重要性蒙版可视化为与原始图像具有相同尺寸的灰度图像,其亮度与像素的重要性相对应。这种就叫做sensitivity mask。
有很多技术可以用来计算特定预测的图像的sensitivity mask。其中最简单的方法是,根据输入像素,进行一个类预测神经元的梯度计算。这种方法让我们知晓了像素的微小改变会对预测产生多大的影响。从视觉上看,这个mask通常有很多噪点。
SmoothGrad技术通常会为sensitivity mask进行显著的降噪。该技术将像素高斯噪声添加到图像的许多副本中,并简单地平均所得到的梯度。
一款高维数据的开源可视化工具。
随着机器学习系统的广泛采用,研究科学家能够的探索数据如何被模型解释变得越来越重要。然而,探索这些数据的主要挑战之一是,数据通常有数百甚至数千维度,需要用专门的工具来探索、调查高维数据空间。为了实现一种更为直观的探索过程,Google开源了一款用于交互式可视化和高维数据分析的网页工具:Embedding Projector,作为TensorFlow的一部分,Google还在projector.tensorflow.org上发布了一个独立版本,用户可以在上面直接运行可视化其高维数据,而无需安装和运行TensorFlow。
使用Embedding Projector,用户可以通过2D或3D模式浏览数据视图,使用自然的点击和拖动手势缩放,旋转和平移。在该可视化中单击任何点(其代表对于给定单词的向量维度点),引出语义最相近词语的点和维度空间距离的列表。这种类型的交互代表一种重要的方式,人们可以探索算法如何执行。
Embedding Projector 提供了三种常用的数据维数降低方法,允许更容易地显示复杂数据:PCA、t-SNE和定制线性投影。 PCA通常有效地探索嵌入的内部结构,揭示数据中最具影响力的维度。另一方面,t-SNE对于探索局部邻域和找到有用的同类,确保嵌入保留数据中的含义(例如,在MNIST数据集中,看到相同的数字被聚集在一起)。最后,自定义线性投影可以帮助在数据集中发现有意义的“方向”:例如语言生成模型中正式和休闲的语调之间的区别,这将允许设计更适合的机器学习系统。
Embedding Projector网站包括几个可以应用的数据集。用户可以轻松地发布和与他人分享其结果(只需点击左侧窗格中的“发布”按钮)。Google希望Embedding Projector将是一个有用的工具,帮助研究团体探索和改进他们的机器学习应用程序,以及使任何人能够更好地了解机器学习算法如何解释数据。
尝试不同的权衡,来理解公平性和机器学习的问题。
随着人工智能的发展,人类将会把越来越多的决策权交给机器。但是,从目前的一些事例看,基于机器学习的决策并非那么公正完美,相反,那些决策也渗透着偏见。确保这些决策不具歧视性的工作变得至关重要。
我们希望机器能够为我们执行起关键作用的的任务(比如自动驾驶,理财或者手术等),机器是公平、可靠和透明的。换言之,我们希望机器学习系统能够更加安全、更加通用,更加透明/可解释,以及能够通过小样本和知识推理来解决问题,这将会是机器智能迈向通用智能(AGI)的重要方向。
Google使用了“阈值分类器”(threshold classifiers)的概念,这是机器学习系统的一部分,它对歧视问题至关重要。从本质上来说,阈值分类器做出“是/否”的决定,将事物放在一个类别或另一个类别中。我们看看这些分类器是如何工作的,它们可能缺乏公平性的公式,以及如何将不公平的分类器变成一个更公平的分类器。例如,我们在贷款发放的场景中,银行可以根据单个的、自动计算的数字(比如信用评分)来授予或拒绝贷款。这就涉及到机器学习的公平性。
现在计算机科学家已经组成一个团队,称为机器学习公平、透明、问责制( Fairness, Accountability and Transparency in Machine Learning)
Google发布的神经网络机器翻译(GNMT:Google Neural Machine Translation)系统,该系统使用了当前最先进的训练技术,能够实现到目前为止机器翻译质量的最大提升。
机器翻译,即跨语言间的自动翻译,是机器学习社区最活跃的研究领域。在机器翻译的众多方法中,序列到序列(sequence-to-sequence,seq2seq)模型近期获得巨大成功。由于其可以使用深度神经网络获取句义,该模型成为Google翻译等多数商业翻译系统事实上的标准模型。但是,尽管有关OpenNMT或tf-seq2seq等seq2seq模型的资料已经非常丰富,但能够指导人们快速构建高质量翻译系统的知识和技能仍然略显不足。
以词组为基础的传统翻译系统将源语言句子拆分成多个词块,然后进行词对词的翻译。这使得翻译输出结果流畅性大打折扣,远远不如人类译文。我们会通读整个源语言句子、了解句子含义,然后输出翻译结果。神经机器翻译(NMT)竟然可以模仿人类的翻译过程!
一款研究地震周期的开源可视化工具。
为了帮助研究人员更好地了解地震周期并探索相关数据,Google发布了一种新的交互式数据可视化方法,通过相对于真实位置放大位置估计值,在地形图顶部绘制大地测量速度线(geodetic velocity lines)。与现有方法——集中于小段时间或单个观测站位置不同,新的可视化方法可以一次显示整个阵列所有观测站的数据。获取开源代码可以访问 GitHub,用的是Apache 2许可证。这种可视化技术是哈佛大学地球与行星科学系与Google机器感知(Machine Perception)和大图片(Big Picture)团队之间的合作成果。这种新的方法可以帮助科学家快速评估地震周期各阶段的变形——包括地震(同震)和(地震)之间的时间。 例如,我们可以到站的方位角(方向)反转,因为它们与地形结构和活动断层有关。挖掘这些运动将帮助科学家审查他们的模型和数据,而这两者是开发准确的计算机表征的关键,有助于预测未来的地震。
这次研究人员采用的可视化方法很简单:通过放大每天的经度和纬度位置变化,显示每个站的位置随时间演变的轨道。这些放大的位置轨迹被示为划在阴影浮雕地形顶部上面的轨迹,从而给观看者一种在地理情景中位置演变的感觉。
Tensorflow Playground是Google开源的一个神经网络深度学习展示demo,以图形化形式展示,可以直观地理解神经网络的工作原理。
PlayGround是一个在线演示、实验的神经网络平台,是一个入门神经网络非常直观的网站。这个图形化平台非常强大,将神经网络的训练过程直接可视化。同时也能让我们对Tensorflow有一个感性的认识。
在Tensorflow Playground这个平台上我们可以选择不同的参数和设计,神经网络训练的每一步迭代将会用可视化显示出来。Google已经把开源代码放在GitHub上了,就是希望能够让入门和学习神经网络变得更加容易。拉到网页的最上面一行,我们会看到有一个参数选项列表。现在对我们对这些选项一一进行解释:
Activation是激活函数,定义了每一个神经元的输出,Google提供了四种选择。用户可以一一尝试并且通过可视化清楚的看懂他们的区别。
Learning Rate是学习率,决定每一步学习的步长。这个和前面的问题里我们谈到梯度学习有关。运用梯度下降算法进行优化时,在梯度项前会乘以一个系数,这个系数就叫学习率。学习率如果太小函数收敛很慢,太大则可能无法找到极值,甚至函数无法收敛。
Unfiltered News意为“未过滤新闻”,其最大的价值在于呈现出用户所在地区未报导的全球新闻与观点,使其看到自己世界观之外其他地方正在发生的事件,甚至是同一个事件在不同地区的相异观点。
Unfiltered News用视觉化图谱的方式,动态的呈现出全球地图上各地的焦点话题,以气泡大小展现话题热度,并且可以在地图上自由缩放移动,快速聚焦某些地区或主题的话题。类似的功能其实 Google 新闻也能在切换不同语言时看到,事实上Unfiltered news就是去读取 Google 新闻的数据库,但是做了全新的视觉化呈现,用全球地图的鸟瞰,一次展现出多元并陈观点,阅读与挖掘起来更容易。
一款TensorFlow计算图的高级视图的开源可视化工具。
TensorFlow计算图功能强大但复杂。图表可视化可以帮助用户理解和调试它们。TensorFlow采用数据流图(Dataflow Graph)来表达机器学习算法的计算过程,用户可以定制不同的数据流图来构建自己的算法。然而,随着深度学习的兴起与流行,各类神经网络渐趋大规模、复杂化。算法开发者仅凭借自身的理解与记忆、很难把握算法的各部分体系结构,相互之间也难以进行沟通。为此,Google提出了可视化工具TensorFlow Graph Visualizer,通过可视分析帮助用户在TensorFlow中进行算法分析与开发。
用户可以通过输入自然语言指令,来让Google Sheets Explore自动生成合适的图表。
Sheets中的Explore由机器学习驱动,它能够帮助团队迅速发掘出数据的意义。不需要公式,只要简单地用文字输入一些问题,你就能迅速地对数据进行分析。比如:“卖出去的产品是如何分布的?”或是“每周日的平均销量如何?”随后Explore就会帮你找到答案。
Google在Explore上运用相同的技术来让数据可视化工作变得更为容易。如果用户找不到自己需要的图表,让Explore来搞定就行。输入“2017年客户评级的直方图”或是“冰淇淋销量的条形图”,图表就会自动生成在用户面前。
用户可以在Google Sheets对你的电子表格数据生成口头的见解。
Google在Sheets Explore应用了机器学习,使得艰涩的数据得以用语言形式(Data Verbalization)来描述,让数据更为人们容易理解。
Google对经典的元素周期表推出了可视化版本。
门捷列夫元素周期表是非常经典的表格,Google推出了可视化版本,用户可以在其上选择三种视觉方式来交互,效果非常炫酷。
查看随时间推移,不同的音乐流派如何变得流行,并发现每种流派都有哪些艺术家。
Google发布了“Music Timeline”,这款可视化工具能够调用Google Play Music上的音乐播放汇总数据信息,用来显示艺术家和流派在数十年间的起起伏伏,从而揭示音乐是如何风靡和过时的。
在这个网站中你不仅能够查看一些经典的依然保存在消费者收藏夹里面的歌曲,也能够针对艺术家的流派阅读音乐背后的故事,当然在阅读这些参数的时候你能够跳转到Google Play上试听这些音乐。
Digital Attack Map源于Google Ideas和Arbor网络的合作,通过展现匿名的攻击数据向用户提供历史性的攻击数据和报告。
Digital Attack Map展现的数据是由Arbor网络ATLAS全球智能威胁系统搜集和发布。ATLAS通过分布在全球的270家以上的ISP客户寻求数据,当然这些ISP客户同意分享匿名网络通讯数据和攻击统计数据。这些数据每小时更新一次,也可以在Arbor的ATLAS威胁入口中找到。
因为流量属性的变化和监测范围的问题,不太可能在线展现完整的攻击情况。尽管Digital Attack Map的数据来自可用的最完整的数据集之一,但它仍然是不全面的地图。在Arbor网络观测的数据中可能有未经确定的或非活跃攻击的数据,还有可识别的攻击中有高威胁趋势的数据。Digital Attack Map是一个展现全球流量攻击活跃程度的工具,它搜集的数据均是匿名的,并不包含在任何特定攻击中可识别的攻击者或受害目标的信息。
了解单词的词源及其使用量。
Google推出了Google Dictionary,使用这款可视化工具可以了解单词的起源以及随着时间变化的使用量的变化。
要使用Google Dictionary,你只需在Google上搜索欲查的单词时,前面加上“define:”就可以了。下图所示,是搜索单词mortgage,键入define:mortgage后的结果页面,从下图我们可以看到单词mortgege的起源,并且还能看到在过去某段时间内的使用情况。
Google推出的内容分析工具YouTube Trends Map,这款产品可以让用户实时了解全美最受欢迎的视频,同时允许他们按照年龄和性别获取实时信息图。
想知道美国最受欢迎的剧集是哪部吗?你可以使用YouTube Trends Map,为什么说要用这个功能呢?就是因为YouTube建立了一个Trends Map,功能就是以一个地图加影片缩图的形式去显示当下有什么影片是在YouTube上多人看的,那些数据是基于本来的已经支持很多地区的Trends Dashboard,不过Trends Maps目前就只是支持美国而已,用户可检视美国个别地区的情况。虽然如此,Trends Map却可以为用户带来一个更宏观的检视方式。当然地,Trends Dashboard原本支持的性别和年龄过滤功能是有的,所以依然可以看到个别群组的人在看什么。
尽管 YouTube Trends Map 的界面设计极其简洁,它却可以让用户知道视频内容在不同地区或城市的受欢迎程度;通过对比不同内容,用户可在页面展示的地图上看到视频的缩略图,而这些图示正是各支视频在全美各地区的热门排名。另外,如果YouTube刚好拥有这些视频的播放版权,那么它会在对应处标注出内容链接。
流可视化(Flow Visualization)是Google Analytics的一个新功能。
访问流报告、导航流报告和目标流报告,是分析人们如何在内容间浏览的一种新方式。长期以来,Google Analytics中没有真正的点击路径分析。虽然有导航摘要和进入路径报告,但是这些都非常有限。绝大多数点击路径报告,无论什么分析工具,都几乎没有价值。为解决这一痛点,Google推出了新的流可视化报告,希望改善这个问题,使用户可以更简单的理解访问者的行为,理解访问者如何在内容间移动。
点击路径报告长久以来一直被人们诟病,是因为将海量的数据塞进了确实相当蹩脚的界面中。Google想要用新的可视化、维度下拉菜单和联系滑块解决这个问题。你可以控制查看的数据,以便让分析有的放矢。
用流可视化,用户可以看到人们从哪里来,跟着他们到不同的页面并且评估跳出率,看一下在着陆页之后他们看了什么内容。
流可视化将对Google Analytics产生比大绝多数人所认为的更大的影响。确实,这些报告很诱人。但是,这种数据可视化是关键的改变。我相信我们将看到Google将包含更多的有创造性的数据可视化来帮助分析。这才是真正激动人心的。
Ripples是由Google+上的公开信息打造的公开分享情况互动图表。
Google+ Ripples是Big Picture Group的第一个可视化产品,这个可视化产品展现了一条消息是怎样在Google+的社交网络里被分享传播的。每个转发和评论都是一个圈,被再转发次数越多圈就越大。箭头从原帖指向转发的消息。把鼠标移到圈上可以看到消息的内容。
Ripples让用户查看相应信息在网络中的传播情况,让用户发现新的感兴趣的人加入关注列表。它不仅可以显示谁分享了用户的内容,当有人转贴,并分享了你的内容,Ripples可以为用户提供一个可视化的总览概观,并告知最有用且最主要的影响力分布在哪些地方。
在下面的图里,我们可以看到Glenn Thomas的消息被转发了很多次,其中有三个消息又再次被转发。在可视化的下面还有时间轴来可视化转发的历史。点击播放甚至可以回放转发的过程。最下面还有关于参与转发的用户的社交影响指数及和这个消息传播范围有关的统计数据。这个可视化信息量不小但是设计的非常简单明了,很不错。