苹果首篇AI论文 SimGANs 代码及详解

2024-01-20 03:20

本文主要是介绍苹果首篇AI论文 SimGANs 代码及详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:Michael Dietz,Waya.ai创始人
原文:SimGANs - a game changer in unsupervised learning, self driving cars, and more
译者:王安阳 上海交通大学研究生在读
责编:王艺,CSDN记者,专注人工智能。寻求报道及投稿请请联系wangyi@csdn.net。同时运营CSDN AI相关微信群,「面向AI从业者及研究员做深入讨论与交流,分享业内领先案例」,欢迎加微信Qunnie-Yi申请入群。(请备注姓名+公司+职位,以快速审核通过)

编者按

本文为苹果最新AI论文SimGANs写就,作为GANs的变种,SimGANs一经提出便引发众议。本文分析论文思想及代码,并就将SimGANs应用于基于无监督学习的自主驾驶为例进行探讨。文中多连接,推荐您一一打开,会有惊喜。

译文

苹果公司在2016年年尾发布了其首篇AI论文《通过对抗训练从模拟的和无监督的图像中学习》(Learning from Simulated and Unsupervised Images through Adversarial Training)。该文使用了如今最炙手可热的深度学习“对抗训练”方法,提出了一个所谓“模拟+无监督学习”(simulated + unsupervised learning)的方法,可以使用合成的和未标记的数据训练先进的神经网络。文章一经登出,便广受关注。

图片描述

本文将分析为什么说SimGAN方法有着巨大的潜力,并把它应用于一个有趣的问题——自动驾驶。

我们将参考SimGAN的一个实现,以及除了waya.ai(译者注:作者为Waya.ai的创始人)之外我最喜欢的公司——Comma.ai,来进行讲解。(译者注:Comma.ai是一家致力于自动驾驶技术研发的科技公司)

若您需要了解GAN,请点击这里。

论文思想简介


苹果这篇论文背后的核心思想是,标记的数据通常是稀缺和昂贵的。然而,标记数据可以通过强大的引擎(如Unity)或其他方法进行合成。问题是,合成的和真实的数据之间存在差距,这导致用合成数据进行训练的网络不能很好地推广到真实世界。

“模拟+无监督学习”一文认为,使用真实的,非必需有标记的数据集,可以跨越这一差距。生成网络(generator)可以通过“对抗训练”来学习精炼(refine)合成数据,使得它更接近于真实数据集的分布,同时保持合成数据的标注(即,它的标签保持有效)。

以下链接是要解释的概念的相关代码。使用精炼网络(refiner)改进合成数据,可以:

  1. 通过自正则化损失项使精确和合成数据之间的差异最小化来保留标注。
  2. 使合成数据看起来是真实的(GAN的标准概念)。

精炼网络(refiner)将合成数据样本作为输入,输出相同维度的改进数据样本。判别网络(discriminator)将数据样本作为输入,并将其分类为改进的或真实的。

在苹果所发“模拟+无监督学习”一文中,GAN架构和培训过程是标准的,但是建议两种简单和直观的方法来提高应用于GAN的生成数据的质量。

  1. 在当前的GAN架构中,判别网络仅对最新产生的数据进行训练。这导致其忘记先前生成的数据的特征,并且意味着生成网络可以重新引入旧的特征以欺骗判别网络。生成的数据就是生成的数据,判别网络应该总能将其正确识别。设置一个先前生成的数据的历史缓冲器,就可以用来自当前生成网络的数据以及来自过去的生成网络的数据共同训练该判别网络。

  2. 在当前GAN架构中,判别网络通过全局分析输入数据将数据分类。这意味着生成网络可以通过在生成的数据中局部作假来欺骗判别网络。真实数据的任何局部数据块都应该看起来是真实的,因此鉴别器应该将数据分成局部块并且将每个块分类为真实的或生成的,将这些局部对抗损耗平均化以获得更平衡的全局对抗损失。

将SimGANs应用于基于无监督学习的自主驾驶


想象你是Comma.AI的一员,有大量的由Dash收集的真实的未标记的驾驶数据。虽然你当前的标记数据的方法很棒,但你只有少量的有标记数据。使用SimGAN,你可以训练一个改进神经网络来改进侠盗飞车的数据(开发者使用侠盗飞车游戏模拟真实车辆行驶),使数据看起来像是来自你的真实数据集,同时保留标注。现在,你可以在这个几乎无限精细标记的数据集上训练你的生产模型,并使用少量的真实标记数据集作为验证。

我没有参加任何自动驾驶的课程,但我知道他们使用侠盗飞车和模拟环境来训练他们的模型。有了这样的技术,他们的软件可以更接近现实世界。SimGAN在现实世界中似乎有许多可能的应用,自主驾驶只是我选择使用的一个有趣的例子。


【CSDN_AI】面向AI从业者及研究员做深入讨论与交流,分享业内领先案例

扫码关注CSDN AI公众号 「人工智能头条」

图片描述

这篇关于苹果首篇AI论文 SimGANs 代码及详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/624635

相关文章

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads