热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

本周AI热点回顾:GAN生成的超级马里奥关卡,可以永不通关的那种;MLP回归,纯多层感知机视觉架构媲美CNN、ViT...

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍点击左上方蓝字关注我们01MLP回归,无需卷积、自注意力,纯多层感知机视觉架构媲美CNN、ViT当前,

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍点击左上方蓝字关注我们

01

MLP回归,无需卷积、自注意力,纯多层感知机视觉架构媲美CNN、ViT

当前,卷积神经网络(CNN)和基于自注意力的网络(如近来大火的 ViT)是计算机视觉领域的主流选择,但研究人员没有停止探索视觉网络架构的脚步。近日,来自谷歌大脑的研究团队(原 ViT 团队)提出了一种舍弃卷积和自注意力且完全使用多层感知机(MLP)的视觉网络架构,在设计上非常简单,并且在 ImageNet 数据集上实现了媲美 CNN 和 ViT 的性能表现。

近日,原 ViT 团队提出了一种不使用卷积或自注意力的 MLP-Mixer 架构(简称 Mixer),这是一种颇具竞争力并且在概念和技术上都非常简单的替代方案。

Mixer 架构完全基于在空间位置或特征通道重复利用的多层感知机(MLP),并且仅依赖于基础矩阵乘法运算、数据布局变换(如 reshape 和 transposition)和非线性层。

  • 论文地址:https://arxiv.org/pdf/2105.01601.pdf

  • 项目地址:https://github.com/google-research/vision_transformer/tree/linen

结果表明,虽然 Mixer 架构很简单,但取得了极具竞争力的结果。当在大型数据集(约 1 亿张图像)上进行预训练时,该架构在准确率 / 成本权衡方面能够媲美 CNN 和 ViT,实现了接近 SOTA 的性能,在 ImageNet 数据集上取得了 87.94% 的 top1 准确率。

信息来源:机器之心

02

爷青回!GAN生成的超级马里奥关卡,可以永不通关的那种

先来一波回忆杀~

《超级马里奥兄弟》的重度玩家们,可能已经发现了,这并不是原本32关里面的。不过,如果你以为这是《马里奥制造》的杰作,那你就猜错了~这是AI利用GAN搞出来的!利用GAN生成红白机游戏画面,并不是新鲜事,不过,这一次是可以无限延长的那种~

想永不通关?用cGAN

现在,只需把一张张“截图”连接起来,你就会得到:半个库巴、半个管道,以及半个马里奥……

怎么才能无缝拼接,得到连贯的关卡呢?这就需要利用「有条件的GAN」,把前一个场景作为后一个场景的边界条件

就像这样:

可以看出,场景的左侧部分,是以第一行图像作为边界条件生成的。具体来说,首先要在之前的基础上,向生成器输入一组16×4的图像,作为上一个场景的边界部分。

网络架构是这样的:

生成器在输入条件的限制下,生成16x16的图像,然后,把它们与16×4的输入图像进行拼接,再用拼接后的图像来训练鉴别器。

利用16×4图像的不断迭代,最终就能拼接成连续的场景,比如,经过40次迭代的结果:

开发者表示,虽然效果不是特别完美,但是已经具备了趣味性和可玩性~

信息来源:量子位

03

超越YOLOv5的PP-YOLOv2和1.3M超轻量PP-YOLO Tiny都来了!

mAP 50.3%,106.5FPS 的 PP-YOLOv2,1.3M超轻量PP-YOLO Tiny, 让目标检测界再起风波。

单阶段目标检测界的扛把子--YOLO,以其 「又快又好的效果」 在学术及产业界全面风靡。自 20 年下半年 YOLOv4、YOLOv5、PP-YOLO、YOLO-Fastest 和 YOLOv4 Tiny 等等轮番轰炸、掀起「YOLO 狂潮」后,时隔半年,超越 YOLOv5的PP-YOLOv2 和1.3M 超超超轻量级的PP-YOLO Tiny一起来了!!!

图 1:PP-YOLOv2 和其他目标检测器性能对比

如图 1 可见,PP-YOLOv2 在同等速度下,精度超越YOLOv5!相较 20 年发布的 PP-YOLO,v2 版本在 COCO 2017 test-dev 上的精度提升了 3.6%,由 45.9% 提升到了 49.5%;在 640*640 的输入尺寸下,FPS 达到 68.9FPS,而采用 TensorRT 加速的话,FPS 更是达到了 106.5!这样的性能,超越了当前所有同等计算量下的检测器,包括 YOLOv4-CSP 和 YOLOv5l !

而如果将骨架网络从 ResNet50 更换为 ResNet101,PP-YOLOv2 的优势则更为显著:mAP 达到 50.3%,速度比同计算量的 YOLOv5x 高出了 15.9%。

不仅如此,与 PP-YOLOv2 一同面世的,还有体积只有 1.3M 的 PP-YOLO Tiny,比 YOLO-Fastest 更轻、更快!这样超超超轻量的算法面世,更是很好的满足了产业里大量边缘、轻量化、低成本芯片上使用目标检测算法的种种诉求!

精度速度数据

感兴趣的小伙伴可以直接查看 PP-YOLOv2 论文:

https://arxiv.org/abs/2104.10419

并查看 PP-YOLOv2 和 PP-YOLO Tiny 的代码实现:

https://github.com/paddlepaddle/paddledetection

信息来源:飞桨PaddlePaddle

04

用GAN创造新蛋白只需几周,大幅缩短制药周期 | Nature子刊

你以为GAN只能用来生成虚假的人脸吗?现在GAN又有了新用途。

它还可以用来生成功能蛋白序列

这一工具叫做ProteinGAN,可以处理和学习不同的天然蛋白质序列,随后利用获取的信息生成新的序列。

值得注意的是,它应用于功能蛋白序列,减少了非功能蛋白序列的实验消耗;还有效保证了蛋白质活性;并且只需几周时间,可以显著提高药物研发的速度。

ProteinGAN由立陶宛维尔纽斯大学和瑞典查尔默斯理工大学共同开发,研究论文已经在Nature子刊《机器智能》上发表。

功能蛋白,是指携带能够完成人体的生理功能的蛋白质,它们主要完成人体的各种代谢活动。

蛋白质序列,通常表示为字母串,列出了氨基末端开始至羧基末端的氨基酸,其顺序最终决定蛋白质的3D结构、理化性质和分子功能。

蛋白质设计,可以分为结构预测、固定骨架设计、全从头设计三种。

不同于AlphaFold根据序列预测蛋白质结构,ProteinGAN是用于生成蛋白质序列。

过去的方法依赖于将随机突变引入蛋白质序列。但是这通常会导致蛋白质活性下降,甚至丧失,必须进行多轮昂贵且耗时的实验,设计过程非常缓慢。

信息来源:量子位

05

Jupyter Notebook已出现“返祖现象”,这款工具让你在终端里使用它

Jupyter Notebook,一般都是在网页上使用,可是你想过它有一天也可以在命令行中运行吗?

这就是用于终端的Jupyter Notebook工具nbterm:

正在使用Jupyter Notebook又更习惯终端编辑的开发者们,一起来看看这款轻便的工具吧。

安装

你可以使用任何你喜欢的软件包管理器来下载它:

$ pip install nbterm

$ mamba install nbterm -c conda-forge

运行一个已存在的Jupyter Notebook文档

$ cd ~/nbterm #你的nbterm存储路径
$ nbterm my_notebook.ipynb

然后使用终端来进行开发:

这是一款目前正在开发中的软件,作者David Brochart是一位任职于quantstack的软件开发员,致力于Jupyter生态库的开发,比如nbclient、jupyter-client、ipykernel、ipywidgets等。而对于这款软件,David Brochart也提到,nbterm不会重用Jupyter的基本组件,如jupyter-client和nbformat。

因为作为一名参与Jupyter软件包的维护的贡献者,他想要尝试不涉及向后兼容限制的新项目,或者说测试一下开发一个轻量notebook客户端的难度,这就导致nbterm相当精简的代码库。不过现在,他也有了一些关于nbterm未来的构想:比如尝试增加其输出方式。终端虽然只限制于显示字符,但ASCII码可以使这个问题迎刃而解。David在前段时间已经使用ASCII后端对matplotlib图形库尝试了绘制:

目前只能在MacOS上使用。

信息来源:量子位

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,包括飞桨开源平台和飞桨企业版。飞桨开源平台包含核心框架、基础模型库、端到端开发套件与工具组件,持续开源核心能力,为产业、学术、科研创新提供基础底座。飞桨企业版基于飞桨开源平台,针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。

END


推荐阅读
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • Prim算法在处理稠密图时表现出色,尤其适用于边数远多于顶点数的情形。传统实现的时间复杂度为 \(O(n^2)\),但通过引入优先队列进行优化,可以在点数为 \(m\)、边数为 \(n\) 的情况下显著降低时间复杂度,提高算法效率。这种优化方法不仅能够加速最小生成树的构建过程,还能在大规模数据集上保持良好的性能表现。 ... [详细]
  • 我正在使用 Ruby on Rails 构建个人网站。总体而言,RoR 是一个非常出色的工具,它提供了丰富的功能和灵活性,使得创建自定义页面变得既高效又便捷。通过利用其强大的框架和模块化设计,我可以轻松实现复杂的功能,同时保持代码的整洁和可维护性。此外,Rails 的社区支持也非常强大,为开发过程中遇到的问题提供了丰富的资源和解决方案。 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 在Unity中进行3D建模的全面指南,详细介绍了市场上三种主要的3D建模工具:Blender 3D、Maya和3ds Max。每种工具的特点、优势及其在Unity开发中的应用将被深入探讨,帮助开发者选择最适合自己的建模软件。 ... [详细]
  • 在主从复制架构中,Bingo_MySQL 同步工具的应用与优化具有重要意义。为确保高效同步,建议使用相同或兼容的 MySQL 版本,并确保两台服务器位于同一局域网内,且网络连接畅通无阻。若无法 ping 通,请检查 IP 配置及防火墙设置,以保证网络连通性。此外,合理的配置参数和定期维护也是提升同步性能的关键因素。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 深入解析零拷贝技术(Zerocopy)及其应用优势
    零拷贝技术(Zero-copy)是Netty框架中的一个关键特性,其核心在于减少数据在操作系统内核与用户空间之间的传输次数。通过避免不必要的内存复制操作,零拷贝显著提高了数据传输的效率和性能。本文将深入探讨零拷贝的工作原理及其在实际应用中的优势,包括降低CPU负载、减少内存带宽消耗以及提高系统吞吐量等方面。 ... [详细]
  • Go语言中的高效排序与搜索算法解析
    在探讨Go语言中高效的排序与搜索算法时,本文深入分析了Go语言提供的内置排序功能及其优化策略。通过实例代码,详细讲解了如何利用Go语言的标准库实现快速、高效的排序和搜索操作,为开发者提供了实用的编程指导。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
author-avatar
蒲哟独CrRz
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有