当前位置: 首页 > 科技观察

Facebook研究开放三个新框架,让深度学习更容易

时间:2023-03-21 18:31:07 科技观察

FacebookResearch开辟了三个新框架,使深度学习更容易。他们的贡献结合了在内部解决方案中经过大规模测试的堆栈,以及来自他们研究实验室的一些非常先进的想法。虽然这家全球最大的科技公司积极为开源深度学习做出贡献令人兴奋,但数据科学家很难跟上该领域的新发展。今天这篇文章就来说说Facebook人工智能研究(FAIR)上个月开源的三个新版本。这对快速增长的趋势有什么影响?FAIR一直是深度学习领域研究和开源框架的定期贡献者。从PyTorch到ONNX,FAIR团队为简化深度学习应用做出了不可思议的贡献。在过去的几周里,FAIR新增了三个系列的开源框架。PolygamesPolygames是一个开源研究框架,用于通过自我博弈训练深度学习网络。Polygames基于众所周知的“零学习”概念,它允许智能体通过与环境交互来掌握环境,而无需任何预先设定的训练。乍一看,Polygames似乎与AlphaZero或ELFOpenGo等其他游戏学习框架相似,但FAIR堆栈也有其自身的贡献。对于初学者,Polygames支持更广泛的策略游戏列表,例如Hex、Havannah、Minishogi、Connect6、Minesweeper、Mastermind、EinSteinwurfeltnicht!、Nogo和Othello。它们为研究人员提供了一个更广阔的环境来测试深度学习网络。此外,Polygames通过结合深度神经网络和蒙特卡洛树搜索方法的巧妙架构扩展了传统的零学习概念。这种架构允许网络泛化到更多的任务和环境。Polygames框架的一个意想不到的好处是在代理中创建神经可塑性。Polygames的模型是渐进式的——该框架带有用于添加新层和通道或增加内核宽度的脚本——并且它们能够进行热启动训练,从而使神经网络随着训练而增长。从编程模型的角度来看,Polygames提供了一个包含游戏的库,以及一个用于实现游戏的单文件API。开发者体验基于PyTorch,因此很容易上手。FAIR团队在Polygames上取得了一些里程碑,包括在Hex19游戏中击败了人类精英玩家。该游戏由诗人、数学家皮特海因、约翰纳什和经济学家于1940年代开发,挑战了一些传统的人类游戏思维过程。规则很简单。黑色和白色依次填充一个空单元格。接南北,则黑人胜;如果你把东西方联系起来,白人就赢了。馅饼规则使游戏更加公平:在第二步,第二个玩家可以决定交换颜色。这个游戏之所以困难,是因为作为一种关系游戏,它的奖励是基于全球标准而不是本地标准。在一系列实验中,Polygames在Hex游戏中击败了最好的人类玩家。结果如下图所示,其中人类玩家操纵白色棋子。第一张图片代表十六进制开局。在游戏的第二阶段,人类(白人)似??乎赢了——两个坚实的群体分别连接到东西方,并且彼此靠得很近。然而,Polygames能够扭转这种局面,创建一个相当复杂的中心位置。Polygames使用两种可能路径中的一种,它找到了获胜组合并扩大了位置。Polygames在GitHub上开源了PyTorch3DP。PyTorch3D是用于在3D环境中训练深度学习网络的框架。尽管有大量视觉智能系统需要在现实环境中运行,但用于在3D环境中训练此类代理的工具和框架仍然非常有限。PyTorch3D是一个高度模块化和优化的库,具有独特的功能,旨在使PyTorch的3D深度学习更容易。PyTorch3D为快速可微分的3D数据提供了一组常用的3D算子和损失函数,以及模块化的可微分渲染API,使研究人员能够立即将这些函数导入当前最先进的深度学习系统。PyTorch3D利用了3D深度学习中最近几个相对较新的里程碑,例如FAIR的MeshR-CNN,它可以对复杂室内空间的图像进行完整的3D对象重建。该框架还使用Detectron2,这是一个高度优化的2D识别库,成功地将对象理解推向了三维空间。PyTorch3D处理旋转和3D变换的能力也是创建C3DPO的核心,C3DPO是一种使用较少注释的训练数据学习图像和3D形状之间关联的新方法。PyTorch3D的一些主要贡献包括:用于存储和操作三角网格的数据结构:PyTorch3D将3D表示存储在称为网格的数据结构中。这种数据结构使研究人员可以轻松地将底层网格数据快速转换为不同的视图,以匹配最有效地表示数据的运算符。对三角网格的高效操作:PyTorch3D包括一系列用于优化几种常见算子和3D数据的损失函数的操作,并支持异构批量输入。这意味着研究人员和工程师可以将运算符导入PyTorch3D以进行更快的实验,而无需在每个新项目开始时重新创建或使用运算符。可微分网格渲染器:PyTorch3D包括一个模块化可微分网格渲染器。渲染器由可组合单元组成,允许用户轻松扩展渲染器以支持自定义照明或阴影效果。PyTorch3D请参考GitHubHiPlot探索高维数据是深度学习应用的挑战之一。HiPlot是一种交互式可视化工具,可帮助人工智能研究人员发现高维数据中的相关性和模式,并使用平行图和其他图形方式来表示信息。HiPlot使用一种称为平行图的技术,这是一种可视化和过滤高维数据的便捷做法。从功能上看,HiPlot相对于其他可视化工具有几个优势:交互性:在HiPlot中,平行图是交互式的,这使得在不同场景下的可视化变得容易。例如,您可以专注于获取一个或多个轴上的范围或值、设置基于另一个轴的配色方案、重新排序或删除轴,或者提取特定数据选择。简单:使用Hiplot只需要几行代码。通过带有“Hiplot”命令的服务器,可以通过给定的URL访问它并使用它来可视化、管理和共享实验。基于人群的训练可视化:HiPlot提供了一种简单的方法来在XY图中可视化基于人群的训练实验,其中不同数据点之间存在边缘。这种可视化在深度学习实验中很常见。Hiplot,请参考GitHub在深度学习的几个领域,Facebook的FAIR团队不断创新,积极为开源社区做出贡献。PyTorch3D、Polygames和HiPlot是FAIR的相对较新的贡献,旨在简化深度学习应用程序。期待未来更多的发展!