前端工程师有了这个利器,可以更愉快的编程了~
哥本哈根的一家初创公司UIzardTechnologies训练了一个神经网络,能够把图形用户界面的截图转译成代码行,成功为开发者们分担了部分产品的设计流程。
到目前为止,他们能够从一个单一的输入图像中,生成针对三种不同平台(iOS,Android和基于Web的技术)的代码,其精度超过77%,但他们表示,可以通过在较大的数据集上,训练他们的网络来大幅提升代码质量。
此外,用于实现这种GUI的计算机语言,是根据每个目标平台定制化的。从而能够开发软件之前,能够在多个本地化平台上试运行,减少繁琐而重复的工作。
使用CUDA、TeslaK80GPU和cuDNN与TensorFlow深度学习框架,他们训练有素的模型将驱使屏幕抓取UI设计,评估图片-各种图标、功能和布局,然后根据素材生成代码。
跟所有机器学习一样,研究者们需要用手头的任务实例去训练模型。但与其他任务不同的是,它需要做的不是从图片中生成图片,也不是把文本转换成文本,这个算法要做到输入图片后生成对应的文本(在这里就是代码)输出。
为了实现这一点,开发者们需要分三个步骤来训练:
他们推断,以这种方式使用的深度学习,最终会终结对手动编程GUI的需求。
详解
——
该公司发表的一篇研究论文,解释了这个叫做Pix2Code的模型是如何工作的。
计算机开发人员经常将设计师设计的图形用户界面(GUI)截图通过编译计算机代码应用到软件、网站和移动应用程序中。
在本文中,我们展示了给定图形用户界面图像作为输入,深度学习技术可以被用来自动生成代码。我们的模型能够从单一输入图像中生成针对三种不同平台(即iOS、Android和基于Web的技术)的代码,其准确率超过77%。
此外,不同的特定平台用于实现这种GUI的计算机语言也不尽相同;从而导致在开发针对多个平台的软件时繁琐而重复的工作(尽管都运用本机技术)。在本文中,我们描述了一个给定图形用户界面截图作为输入,可以自动生成特定平台代码的系统。我们推断,此方法的扩展版本可能会终止手动编程GUI的需要。
本文的第一个贡献是pix2code,一个基于卷积和循环神经网络的新方法,它能够由单个GUI屏幕截图生成计算机代码。
GUI屏幕截图生成代码的任务,可以类比于给出场景照片生成文本描述的任务。
因此,我们可以将问题分为三个子问题。
首先,是一个计算机视觉问题:理解给定场景(即这种情况下为GUI截图)并推断图中的对象、身份、位置和姿势(即按钮、标签、元素容器)。
第二,是一个语言模型问题:理解文本(即这种情况下为计算机代码)并产生语法和语义正确的样本。
最后,通过利用前两个子问题的解决方案生成代码,即运用从场景理解推断出的潜在变量(latentvariable)来生成相应文本描述(这里是计算机代码而不是文本)。
CNN目前是解决各种视觉问题的首选方法,因为它们自身的拓扑结构便于学习训练的图像中丰富的潜在表征[14,10]。我们通过将输入图像映射到一个学习到的固定长度向量,运用CNN来进行无监督特征学习;从而起到如图1所示的编码器的作用。
我们设计了一个简单的DSL来描述图2所述的GUI。在该项工作中,我们只对GUI的布局感兴趣,只对那些不同图形控件及其相互间的关系感兴趣,因此我们的DSL实际上忽略了标签控件的文本值。
我们的模型采用的是监督学习,它通过投送图像I和符号T的序列X(xt,t∈{0...T1})作为输入,而将符号xT作为目标标注。
该架构允许整个pix2code模型通过梯度下降实现端到端的优化,这样以便系统在看到图像和序列中前面的符号而预测下一个符号。
训练由损失函数对神经网络的权重求偏导数而执行反向传播算法,因此可以最小化多级对数损失而进行训练:
其中xt+1为预期符号(expectedtoken),yt为预测符号。
为了生成DSL代码,我们投送GUI图像和T=48符号的序列X,其中符号xt...xT1设置为空符号,而序列xT设置为特别的符号。
▲表1:数据集统计
在不同训练集的训练损失和模型在训练10个epochs中的抽样ROC曲线。
▲在测试集(表1所述)上的试验结果报告
图4、5、6展示了输入GUI图像(样本真值),和由已训练pix2code模型生成输出的GUI。
▲iOSGUI数据集中的试验样本。
▲安卓GUI数据集中的试验样本
▲网页GUI数据集的试验样本
在本论文中,我们提出了pix2code模型,它是一种给定GUI图片作为输入,且能生成计算机代码的新方法。
我们的模型由相对较少的参数组成,并且只能在相对较小的数据集上训练。而构建更复杂的模型,并在更大的数据集上训练会显著地提升代码生成的质量。并且采用各种正则化方法和实现注意力机制(attentionmechanism[1])也能进一步提升生成代码的质量。
最后,由于近来生成对抗网络(GAN)在图片生成上有极其出色的表现,也许我们可以借助GAN及其思想由GUI图像生成计算机代码。
量子位出品|公众号QbitAI
本月22-29日,是两年一度的国际计算机视觉大会(ICCV)召开的日子。
于往届ICCV相比,本届ICCV堪称火爆。据组委会统计,ICCV2017共收到2143篇论文投稿,其中621篇被选为大会论文,录用比例29%。其中包含45篇口头报告(Oral)和56篇亮点报告(Spotlight),参会人数预计将超过3000人。
本届ICCV中,商汤科技与香港中大-商汤科技联合实验室共发表了20篇论文,其中包括3篇Oral(录取率仅2.09%)和1篇Spotlight,领先于Facebook(15篇)、GoogleResearch(10篇)等科技巨头。
ICCV是计算机视觉领域最高水平的国际学术会议,在其中发表的论文的量与质可以衡量一个公司或者研究机构的学术水平,以及其对未来科技发展潮流的把握。从商汤科技的20篇论文中,可以看到其在研究上重点发力的主线——
在过去几年,随着深度学习的广泛应用,计算机视觉取得了突破性的发展,很多传统任务(比如图像分类,物体检测,场景分割等)的性能大幅度提高。但是在更高的水平上,计算机视觉开始遇到了新的瓶颈。要获得新的技术进步,一个重要的方向就是打破传统视觉任务的藩篱,把视觉理解与自然语言等其它模态的数据结合起来。
在这一方向上,商汤科技有4篇论文被ICCV2017录用,包括一篇Oral。
代表:《TowardsDiverseandNaturalImageDescriptionsviaaConditionalGAN(Oral)》
作者:BoDai,SanjaFidler,RaquelUrtasun,DahuaLin.
看图说话,也就是根据图像生成描述性标题,是今年来非常活跃的研究领域。现有的方法普遍存在一个问题,就是产生的标题很多是训练集中的表述的简单重复,读起来味同嚼蜡。这一问题的根源在于学习目标过分强调与训练集的相似性。
这篇论文提出了一种新型的基于ConditionalGAN的训练方法,把描述生成模型与评估模型合同训练。这样,评估的标准从“像不像训练集”变成“像不像人说话”,从而驱动生成模型产生更加自然、生动,并具有丰富细节的描述。这一工作为看图说话任务提供了新的思路。在UserStudy中,这种新的方法以6:4的胜率战胜了传统的方法。
代表:《SceneGraphGenerationfromObjects,PhrasesandCaptionRegions》
作者:YikangLi,BoleiZhou,WanliOuyang,XiaogangWang,KunWang.
这篇论文把三个有密切关系的任务——物体检测,场景图生成,以及图像区域的描述联合在一起,并且利用它们之间的关系建立了一个多层次的场景描述模型——Multi-levelSceneDescriptionNetwork(MSDN)。
通过这个联合模型,传统上分离开来的三个任务可以结合在一起进行端对端的训练,从而使得每个任务都获得性能的提升。尤其在代表对图像综合理解能力的场景图生成任务上,性能提高超过了3%。
代表:《LearningtoDisambiguatebyAskingDiscriminativeQuestions》
作者:YiningLi,ChenHuang,XiaoouTang,ChenChangeLoy.
这篇论文探索了一个新的方向,即透过提出有鉴别力的问题来区分不同的视觉实体。比如当你需要区分一只白色的狗和一只黑色的狗的时候,可以提出关于颜色的问题。
代表:《Identity-AwareTextual-VisualMatchingwithLatentCo-attention》
作者:ShuangLi,TongXiao,HongshengLi,WeiYang,XiaogangWang.
特征匹配是跨模态学习的核心环节。这篇论文提出了一个新的文本与视觉特征匹配的框架。这个框架由两个阶段组成。
第一阶段能迅速排除明显错误的配对,并为第二阶段的训练提供效度更高的训练样本。第二阶段通过一个新的关联注意力模型(co-attentionmodel),把文本中的单词关联到图像中的特定区域。
在三个公开数据集上(CUHK-PEDES,CUB,Flowers),本文提出的方法都显著超过现行的主流方法。
虽然深度学习在图像分析中取得了巨大的成功,它在视频的理解与分析中的应用还有很长的路要走。相比于图像,视频数据具有更大的数据量以及更丰富的结构,因而也为视觉分析技术提出了更高水平的挑战。
商汤科技在数年前就开始了把深度学习用于视频分析与理解的探索,提出了包括TemporalSegmentalNetworks(TSN)在内的多种有很大影响并被广泛应用的视频分析架构,并在ActivityNet2016取得了冠军。
代表:《RPAN:AnEnd-To-EndRecurrentPose-AttentionNetworkforActionRecognitioninVideos.(Oral)》
作者:WenbinDu;YaliWang;YuQiao.
通常的视频分析模型大部分是基于video-level的类别进行监督学习的,这种方法的局限是难以学习到复杂的运动结构。这篇论文另辟蹊径,着力于动态人体的建模,并提出了一个新型的可以端对端训练的深度网络架构RecurrentPoseAttentionNetwork(RPAN)。
该架构不仅可以自适应地整合人体运动姿态的特征,还能很好地学习其时空演化结构。这项工作一方面为视频动作理解提供了新的方法,另一方面作为副产品也获得了一个不错的粗粒度姿态估计的模型。
代表:《TemporalActionDetectionwithStructuredSegmentNetworks》
作者:YueZhao,YuanjunXiong,ZhirongWu,XiaoouTang,DahuaLin.
最近两年,由于生成对抗网络(GenerativeAdversarialNetworks)的提出,生成模型(generativemodel)的学习成为一个新兴的研究方向。
代表:StackGAN:TexttoPhoto-realisticImageSynthesiswithStackedGenerativeAdversarialNetworks.n(Oral)
作者:HanZhang,TtaoXu,HongshengLi,ShaotingZhang,XiaogangWang,XiaoleiHuang,DimitrisMetaxas.
本文提出的方法把这个困难的任务分解为两个阶段。在第一阶段,先根据文字描述产生粗粒度的草图,以第一阶段的结果作为输入,第二阶段产生高解析度的图像,并补充丰富的细节。此文还进一步提出了一种新型的条件增强技术,以改进训练过程的稳定性。
和现有的生成网络相比,StackGAN在生成图片的质量的解析度上获得了非常显著的进步。
代表:《BeYourOwnPrada:FashionSynthesiswithStructuralCoherence》
作者:ShizhanZhu,DahuaLin,RaquelUrtasun,SanjaFidler,ChenChangeLoy.
和一般的生成任务相比,换装任务更具挑战性,换装照不仅需要符合文字描述,而且需要和原照片中人体的姿态相吻合。此文提出一个两阶段的框架解决这个问题:第一阶段产生一个和人体姿态吻合的分区图,第二阶段以此为基础生成具有精细细节的服装图像。
最后,附所有ICCV2017录用论文列表地址:
论文均可下载查看
谢梁,美国微软总部首席数据科学家,本科毕业于西南财经大学经济学专业,然后在中国工商银行从事信贷评估工作,一年后辞职到纽约州立大学学习应用计量经济学。研究兴趣主要是混合模型(mixedmodel)和数据挖掘方法,以及SAS潜力的挖掘(他认为在各大SAS论坛帮人解决问题同时学习他人经验,是提升自己最快的途径,曾用网名oloolo),著有《Keras快速上手:基于Python的深度学习实战》。
谢梁美国微软总部首席数据科学家
为何转向机器学习
CSDN:你是经济学博士,什么原因让你着迷于机器学习、数据挖掘和人工智能,并将其应用于IT基础架构的优化?
谢梁:我的专业是计量经济学,专注于实证分析各种社会和经济现象,其中很多内容跟统计学习、机器学习都有重合,只是应用领域不同,后面的数理模型还是有很多相通的地方。我一开始也直接从事基于机器学习的商业智能方面的工作,包括自动化的营销、客户画像等,使我对机器学习的应用领域有了比较多的了解。
到微软以后,我先后在Azure云计算部门从事了服务层SaaS和基础架构层IaaS的数据分析工作。SaaS层专注于使用Azure云服务的客户行为分析,而在IaaS则重点构筑基于机器学习的基础架构运营优化工作。这些领域都需要对大量的数据进行分析,对客户运营策略和基础架构上运行的软件行为进行优化,都是在有限资源条件下进行最优化的工作,同时需要对结果进行合理的解读与概念推广,这些都与经济学里的工作很像,因此计量经济学所学的理论,方法和技术都能自然地得到运用。
CSDN:经济学博士入坑机器学习,你遇到的挑战都有哪些?
谢梁:经济学背景的人进行机器学习有自己的优势和劣势。
优势是经济学出身的人对实证分析结果的解释非常重视,往往考虑的是如何在实证结果的基础之上进一步提供理论总结和可执行的策略。这在以后的发展中非常重要。
劣势是经济学出身的人在编程方面相对较弱,特别是生产系统上进行规范的编程相对科班出身的人来讲差距较大,会影响在IT公司里发挥。
经济学里面的一个核心概念是比较优势,作为经济学出身的人,需要懂得合理运用这个理论。
微软Azure存储部门如何开展机器学习
CSDN:你和团队将机器学习与人工智能方法用于大规模高可用并行存储和运维,具体包括哪些方面的工作?是否可以量化说明这些手段的效果?
谢梁:机器学习和人工智能的方法可以应用于IaaS存储系统的多个方面,包括负载平衡、节点故障预测、可售容量预测、系统工作调度等。更新的应用包括内部运维的知识图谱构建,代码质量打分和Bug预测等。这些工作有很大部分也是建立在微软现有其他部门的工作或者建立的基础平台之上。
机器学习的效果非常显著。比如,通过节点故障预测,并相应地合理安排存储拷贝,我们在几乎不损失容量的情况下,将由于节点故障造成的Incidents降低了30%。
CSDN:根据你的经验,是否未来的开发团队和运维团队都应当掌握机器学习和人工智能方法?
谢梁:我觉得未来的运维必须智能化才能有效降低程序员的工作负荷,极大提高系统运作效率。在一个部门里面,至少需要一个专门的数据挖掘团队来提供相应服务,而如果开发和运维团队都能将人工智能方法从一开始就建立到系统中,那将有更大的竞争优势。这也是我在Azure存储部门推动的目标之一。
CSDN:深度学习在互联网公司应用广泛,社区提供的工具很多,你和团队如何根据场景选择深度学习框架?
谢梁:微软作为一个成熟的领先IT公司,内部有自己的系统和深度学习平台。但是微软现在也拥抱各种开源工具。在深度学习框架选择上,仍然是根据自己需要的场景,「哪个能尽快提供从概念到生产系统的实现」是选择的重要依据。
深度学习实战技巧
CSDN:你的著作《Keras快速上手:基于Python的深度学习实战》,选择从Keras入手简单、快速地设计模型,较少注底层代码,那我们是否可以这么推导:现在很多算法都封装好了,并且工业界应用的模型那么多,安心当调包侠就可以了?
谢梁:肯定不是这样的。诚然,现在的机器学习理论和算法越来越先进,很多以前需要数据科学家和分析师进行的工作都可以由算法自动完成,比如以前需要做很多人工的特征工程工作,现在新的算法将这方面的要求降低,但是如何选择合适的模型,如何对结果进行合理的解释仍然需要数据科学家有较好的理论训练和知识深度。
在工业界应用机器学习,包括三个部分:
现在有了较多可调用的机器学习包,只是让中段的一些工作简化,但同时对前端和末端提出了更多的要求,因为现在很多业务问题都非常复杂,如何将其合理地分解为可以进行建模的问题,非常考验实践工作者。同时,如何将分析结果植入到现有生产系统中,高效率高质量地运行也是不低的要求。
「调包侠」会是被人工智能代替的首批白领之一,所以当调包侠可没法安心。
谢梁:写这本书之前就有很多业界朋友问我深度学习问题,最多的就是如何开始,并能了解一些应用。他们也都看了很多市面上的深度学习书籍,基本面临两个难题:一是很多书是大部头论著,作为学校毕业多年已经工作的人来说没有精力研读;二是很多深度学习著作难以入门,学习曲线陡峭,不是适合他们的背景。他们需要一本简单实用的书,能达到快速入门的目的。
CSDN:很多专家对这本书的评价都强调了「实用」,你能否总结这一点如何体现,实用的收获都有哪些?
谢梁:最实用的书就是菜谱,从配料都烹饪的每一步都一一列出。我们这本书也遵循这样的方式,不过多强调理论,而是具体强调对于一个问题去怎么做。没有深度学习基础的读者读完本书以后能自己举一反三进行类似问题的实际操作。
如何进阶
CSDN:通过Keras快速体验深度学习之后,如果还想进一步提升,比如希望透彻理解底层原理和优化,或者这本书的经验用到移动端深度学习,你有什么建议?
CSDN:有人评价说Keras不好调试,编译慢,那么Keras+TensorFlow/CNTK是否可以满足生产环境需求?
谢梁:调参对于传统的机器学习方法通常是通过CrossValidation进行greedysearch,但是对于hyperparameter的范围大致根据经验有一个设定。对于深度学习的模型,还是根据数据量大小和特点选择合适的结构特征比较有效。
人工智能赛博物理操作系统
AI-CPSOS
“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPSOS”:云计算+大数据+物联网+区块链+人工智能)分支用来的今天,企业领导者必须了解如何将“技术”全面渗入整个公司、产品等“商业”场景中,利用AI-CPSOS形成数字化+智能化力量,实现行业的重新布局、企业的重新构建和自我的焕然新生。
AI-CPSOS的真正价值并不来自构成技术或功能,而是要以一种传递独特竞争优势的方式将自动化+信息化、智造+产品+服务和数据+分析一体化,这种整合方式能够释放新的业务和运营模式。如果不能实现跨功能的更大规模融合,没有颠覆现状的意愿,这些将不可能实现。
领导者无法依靠某种单一战略方法来应对多维度的数字化变革。面对新一代技术+商业操作系统AI-CPSOS颠覆性的数字化+智能化力量,领导者必须在行业、企业与个人这三个层面都保持领先地位:
AI-CPSOS是数字化智能化创新平台,设计思路是将大数据、物联网、区块链和人工智能等无缝整合在云端,可以帮助企业将创新成果融入自身业务体系,实现各个前沿技术在云端的优势协同。AI-CPSOS形成的数字化+智能化力量与行业、企业及个人三个层面的交叉,形成了领导力模式,使数字化融入到领导者所在企业与领导方式的核心位置:
AI-CPSOS形成的数字化+智能化力量通过三个方式激发经济增长:
给决策制定者和商业领袖的建议:
子曰:“君子和而不同,小人同而不和。”《论语·子路》云计算、大数据、物联网、区块链和人工智能,像君子一般融合,一起体现科技就是生产力。
如果说上一次哥伦布地理大发现,拓展的是人类的物理空间。那么这一次地理大发现,拓展的就是人们的数字空间。在数学空间,建立新的商业文明,从而发现新的创富模式,为人类社会带来新的财富空间。云计算,大数据、物联网和区块链,是进入这个数字空间的船,而人工智能就是那船上的帆,哥伦布之帆!
新一代技术+商业的人工智能赛博物理操作系统AI-CPSOS作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。
产业智能官AI-CPS
用“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPSOS”:云计算+大数据+物联网+区块链+人工智能),在场景中构建状态感知-实时分析-自主决策-精准执行-学习提升的认知计算和机器智能;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。
新技术:“云计算”、“大数据”、“物联网”、“区块链”、“人工智能”;新产业:“智能制造”、“智能农业”、“智能金融”、“智能零售”、“智能城市”、“智能驾驶”;新模式:“财富空间”、“特色小镇”、“赛博物理”、“供应链金融”。
点击“阅读原文”,访问AI-CPSOS官网
本文系“产业智能官”(公众号ID:AI-CPS)收集整理,转载请注明出处!