谷歌DeepMind Lab开源,量身打造个人AlphaGo;Facebook开源跨平台前端布局引擎Yoga……
谷歌DeepMind Lab开源,
量身打造个人AlphaGo
近日,DeepMind在官方博客 宣布了开源其AI 核心平台DeepMind Lab,并将其训练环境的所有源代码上传至开源社区GitHub上,供大众进行实验和研究。
这是继OpenAI 开放其训练平台OpenAI Gym之后,人工智能研究领域的又一次开源大事记。同时,DeepMind 的这一举动也证明了该实验室对研究成果所抱有的积极的开放态度。
关于DeepMind,可能很多人了解的是它是2014年被谷歌收购的一家英国的人工智能公司,再或者就是2016年3月赚足眼球的DeepMind 的AlphaGo大败围棋界传奇李世石事件。不仅如此,2016年7月,DeepMind还宣布了与NHS(英国国家医疗服务体系)建立合作关系,双方将探索如何利用信息技术整合医疗资源。再加上最近刚发生的DeepMind Lab开源事件,可以毫不夸张的说,在各大巨头公司都想在人工智能领域分得一杯羹的当下,DeepMind的风头还真是一时无两。
其实,DeepMind的过人之处并不是它在人工智能界出现过多少次轰动一时的事件,而在于其通过深度神经网络与强化学习等方法相结合的解决方案,让智能体自行发现数据中存在的模式并能进行自我学习的核心理念。
此次对外开放的DeepMind Lab便是基于该理念专为AI研究而量身打造的一款类似于3D游戏的平台。在该平台中,通过让虚拟代理(智能体)环顾周围、来回移动等动作去执行不同的任务,包括收集水果、走迷宫、穿越危险的通道(同时要避免掉下悬崖)、打激光标记以及迅速学习和记忆随机生成的环境,从而在没有预编程的前提下,虚拟代理能够自适应不断变化的外界环境,以实现自我学习,增强人工智能能力。
从下图可以了解DeepMind Lab 中的代理是如何感知世界及与世界进行互动的。
DeepMind Lab是高度定制化并且可扩展的,通过对外开放平台和源代码,所有开发者都能下载源代码并对其进行个性化设置,以此训练及测试原有的AI系统。一方面,此种做法不仅可以让更多人接触及研究该系统,另一方面,也正向推动了该系统软件的进一步发展。
Facebook人工智能研究部门负责人Yann LeCun曾直言不讳地说:“当你秘密进行(人工智能)研究时,你就落伍了。”
人工智能正在快速发展,谷歌、Facebook、微软、百度等科技巨头公司对技术与研究成果的开放态度,具有很好地榜样作用。这种做法不但能不断提高自身在人工智能研究和应用领域的地位,吸引更多顶尖人才,对于推动整个行业的快速发展,也具有非常重要的意义。
下面是2016年科技巨头们在人工智能领域的开放大事件:
12月5日,苹果宣布将允许其人工智能研究部门的员工公开发表研究论文,并积极参与到行业学术研讨交流和会议中。
2016年12月,Facebook宣布开源TorchCraft,让每个人都能编写出星际争霸人工智能玩家Bot。
2016年9月,百度正式对外宣布推出其深度学习开源平台PaddlePaddle。
2016年8月,Facebook开源了三款人工智能图像分割(Image Segmentation)软件,分别是DeepMask、SharpMask和MultiPathNet。
2016年7月,微软AI平台Project Malmo宣布开源。
2016年5月,亚马逊在GitHub网站将其擅长训练稀疏数据的深度学习和机器学习工具DSSTNE开源。
2016年4月,OpenAI开放其用于研发和比较强化学习算法的工具包GymOpenAI Gym。
2016年1月,百度硅谷人工智能实验室(SVAIL)宣布,开源其人工智能软件 Warp-CTC。
本文作者:朱昊冰
Facebook开源:
跨平台前端布局引擎Yoga
随着这几年前端技术的崛起,作为前端UI骨架的布局系统也在其中占据了越来越重要的位置。不管是在移动端、桌面端还是Web端,特别是不同设备的屏幕大小和分辨率千变万化,如何构建良好的布局系统以便应付这些变化已经变得越来越重要。
目前,各个平台都有自己的一套解决方案。iOS平台有自动布局系统,Android有容器布局系统,而Web端有基于CSS的布局系统。多种布局系统共存所带来的弊端是很明显的,平台间的共享变得很困难,而每个平台都需要专人来开发维护,增加了开发成本。
Facebook在这个问题上没有少下功夫。首先,Facebook在React Native里引入了一种跨平台的基于CSS的布局系统,它实现了Flexbox规范。基于这个布局系统,不同团队终于可以走到一起,一起解决缺陷,改进性能,让这个系统更加地贴合Flexbox规范。
随着这个系统的不断完善,Facebook决定对它进行重启发布,并取名Yoga。虽然目前还不知道为什么会给它取名Yoga,但从字面理解——瑜伽——我们很自然地联想起柔韧、舒展、变化等名词,这个跟布局系统的跨平台特性似乎不谋而合。借助Yoga,开发人员不仅可以在React Native里,还能在各个平台上快速地构建UI布局。
Yoga是基于C实现的。之所以选择C,首先当然是从性能方面考虑的。基于C实现的Yoga比之前Java实现在性能上提升了33%。其次,使用C实现可以更容易地跟其它平台集成。到目前为止,Yoga已经有以下几个平台的绑定:Java(Android)、Objective-C(UIKit)、C#(.NET)。而且已经有很多项目在使用Yoga,比如React Native、Components for Android、Oculus,等等。
不同于其它的一些布局框架,比如bootstrap的栅格系统或Masonry,它们要么不够强大,要么不支持跨平台。Yoga遵循了Flexbox规范,同时又将布局元素抽象成Node,为各个不同平台暴露出一组标准的接口,这样不同的平台只需实现这些接口就可以了。
当然,Facebook不会就此止步。作为一款跨平台的布局引擎,自然需要各个平台的开发人员一起努力来促进它的发展,所以Facebook把Yoga开源了。目前微软已经成为Yoga的贡献者之一,他们不仅修复缺陷,还为Yoga带来新的特性。
除了完全遵循Flexbox规范,Facebook还计划在未来为Yoga加入更多特性,这些特性将超出Flexbox的范畴。
Yoga的源码托管在GitHub上 ,有兴趣的开发人员可以在上面进行反馈。
本文作者:薛命灯
没有Angular 3,
下一个Angular主版本将是Angular 4
在上周举行的比利时NG-BE 2016的主题演讲上,Google Angular团队首席开发Igor Minar透露了Angular的后续发布计划, 他提到下一个Angular主版本将是Angular 4。
随着Angular 2的发布,Angular团队引入了语义化版本控制规范,语义化版本用三组数字表示,按照major.minor.patch(主要版本.次要版本.补丁)的顺序排列,比如2.3.1。patch版本将每周发布,通常只是修复问题而不加入新的功能;minor版本将每月发布,加入一些新的功能但是相对旧版本来说并没有大的更改;major版本将每半年发布一次,加入一些新功能并且可能带来一些重大更改。
从目前来看,尚不明确这些重大更改是什么,但是Minar邀请Angular社区来一起建言献策。它可以是一个简单的编译警告,目前被当成错误处理,也可以是API签名的更改,这将会影响所有使用Angular的第三方代码。
据Minar所说,在不久的将来,Angular团队计划使用TypeScript 2.1甚至2.2来替代目前使用的TypeScript 1.8,这将会带来一些重大更改,也就是说将带来一个主要版本更新。
由于目前最新的Angular router版本号是3.3.0,而其他的模块版本号是2.2.0,并不一致,所以Angular团队计划将他们同步,发布的下一个主版本是Angular 4而不是3。并且以后的产品将不会叫做AngularJS、Angular 2、2.x 或者4.x,而是直接叫做Angular,版本号仍然是次要信息。Angular 4的第一个测试版本(4.0.0-beta.0)目前已经发布,为了在2017年3月1日发布稳定版4.0.0,后续还将有6个其他的测试迭代版本和3个发布候选版。同时,2.3.X版本将只有patch版本发布。
Angular 4将尽可能兼容Angular 2,因为Angular团队不想重蹈从Angular 1.X到Angular 2.X的覆辙。Minar补充道:“我们不会再做任何会破坏软件生态系统的重大更改,我们也不想破坏现有的组件。”所以,现有的稳定的或者遵循Angular一般使用规范的API将不会有重大更改。Minar说如果未来的一些新功能被证明会破坏生态系统并且产生的问题不能被修复的话,他们会移除该功能而不是冒险使用它们。
Angular团队计划每六个月发布一个主要版本,所以Angular 5将在2017年9月到来,而Angular 6和Angular 7将分别在2018年3月和2018年9月发布。没人知道Angular以后会如何发展,但毫无疑问的是未来的版本将带来最低限度的重大更改。
本文翻译已获授权,原文链接:
本文译者:尚剑
今日荐文
点击下方图片即可阅读
盘点:2016年互联网界发生的十大事件