Meta实习生让AI「调教」AI?ResNet-50无需训练,2400万参数秒级预测

简介: Meta实习生让AI「调教」AI?ResNet-50无需训练,2400万参数秒级预测
【新智元导读】10年前,当我们有了足够的数据和处理能力,深度神经网络也就实现了对传统算法的超越。今天,神经网络对数据和算力更加饥渴,甚至需要微调数百万甚至数十亿的参数来进行训练。不过,这种情况或许很快就会改变。

为了摆脱繁琐的训练过程,Boris Knyazev团队设计了一个「超网络」, 对于任意全新的深度神经网络,可以在几分之一秒内预测出该网络的参数,不再需要进行训练。开源项目:https://github.com/facebookresearch/ppuda项目在开源之后团队也没闲着,最近还发布了一波更新,极大地提升了训练的速度。

训练AI的AI训练师


从某种角度来说,人工智能就是一种数字游戏。


目前,训练和优化深度神经网络的最佳方法之一是使用随机梯度下降(SGD)。一个SGD算法通过大量的标记数据来调整网络的参数并减少错误或损失。梯度下降是一个迭代过程,从损失函数的高值爬升到某个最小值,这代表了足够好(有时甚至是最好的)参数值。当然了,首先得有一个网络需要优化时,SGD才能发挥作用。为了建立最初的神经网络,从输入到输出,研究人员都必须依靠直觉和经验法则。这些架构可以在神经元的层数、每层的神经元数量等方面有所不同。利用梯度下降找到全局最小值以最小化损失理论上,对于某个任务来说,可以先选出好几种架构,然后对每一个进行优化,并挑选出最好那的。然而,谷歌大脑的访问研究员Mengye Ren表示,训练和测试每个候选网络架构是不可能的,尤其是考虑到有数百万种可能的设计。因此,在2018年,Chris Zhang、Mengye Ren以及Raquel Urtasun一起,尝试了一种不同的方法。他们设计了一个所谓的图超网络(GHN),在给定一组候选架构的情况下,找到解决某些任务的最佳深度神经网络架构。论文链接:https://arxiv.org/abs/1810.05749「图」指的是深度神经网络的架构,可以认为是一个由线或边连接的点或节点的集合。这里的节点代表计算单元(通常是神经网络的整个层),而边代表这些单元相互连接的方式。论文提出的方法首先随机抽取神经网络架构,形成一个GHN;在图传播之后,GHN中的每个节点都产生了自己的权重参数;然后,对GHN进行训练,以最小化具有生成权重的采样网络的训练损失;最后,根据使用GHN生成的权重的性能,对随机网络进行排名,并选择表现最好的。当Knyazev和他的同事们发现图超网络的想法时,他们意识到可以在此基础上更进一步。论文链接:https://arxiv.org/abs/2110.13100在论文中,团队展示了如何使用GHN不仅从一些样本集中找到最佳架构,而且还能预测最佳网络的参数,使其在绝对意义上表现良好。通过在给定的图像数据集和我们的DEEPNETS-1M架构数据集上预测的参数进行反向传播训练Knyazev和他的同事们称他们的「超网络」为GHN-2。首先,他们依靠初代GHN的技术,将神经网络的结构描述为一个图。图中的每个节点都编码了关于进行某种特定类型计算的神经元子集的信息。图中的边描述了信息如何从节点到节点,从输入到输出。他们借鉴的第二个想法是训练超网络以对新的候选架构进行预测的方法,这需要另外两个神经网络。第一个实现了对原始候选图的计算,从而更新每个节点相关的信息,第二个将更新的节点作为输入,预测候选神经网络的相应计算单元的参数。而这两个网络也有自己的参数,在超网络能够正确预测参数值之前,必须进行优化。要做到这一点就需要训练数据,也就是人工神经网络(ANN)架构的随机样本。对于样本中的每个架构,从一个图开始,用图超网络来预测参数,并用预测的参数来初始化候选的ANN。然后,再用ANN去执行一些特定的任务,如识别图像。通过计算ANN的损失,更新最先做出预测的超网络的参数,而不是更新ANN的参数以做出更好的预测,这使得超网络在下一次能做得更好。通过在有标注的图像训练数据集中的每一幅图像和架构随机样本中的每一个ANN上进行迭代,每一步都减少损失,直到它不能做得更好。在某种程度上,最终会得到一个训练有素的超网络。ViT计算图的视觉化由于GHN的代码并没有开源,于是Knyazev的团队便从0开始写他们自己的软件。首先,他们确定了15种类型的节点,这些节点可以混合和匹配,以构建几乎任何现代深度神经网络。他们还取得了一些进展,以提高预测的准确性。最重要的是,为了确保GHN-2学会预测广泛的目标神经网络架构的参数,Knyazev创建了一个由100万个可能架构组成的独特数据集。因此,GHN-2的预测能力更有可能很好地归纳到未见过的目标架构。


比SGD更好用?


当然,真正的考验是让GHN-2发挥作用。通过训练的方式,让GHN-2预测给定任务的参数,例如对特定数据集中的图像进行分类,他们就测试了它预测任何随机候选架构参数的能力。新的候选架构可能和训练数据集中的上百万种架构有相似的属性,也可能属性不同。在前一种情况下,目标架构被称作分布式架构;后一种情况,被称作分布外架构。深度神经网络在对分布外架构进行预测的时候经常会失败,因此在此类数据上测试GHN-2非常重要。在可视化的图中,一个节点是15个基元中的一个,用底部的标记进行编码,它们在训练集中按频率排序。出于可视化的目的,一个蓝色的三角形标记将1×1卷积(相当于全连接层)与其他卷积区分开来,但其原始类型仍然只是卷积。有了充分训练过的GHN-2,该团队预测了500个随机目标网络架构的参数,这些架构此前是看不到的。之后,研究人员先将这500个网络的参数设置为预测值,再把它们和使用随机梯度下降法训练的相同网络进行对比。新的超级网络在经过数千次SGD迭代之后,基本还是能够稳住的,甚至有的时候还能做的比原来更好,虽说有的结果会出现弄混的情况。对于CIFAR-10图像数据集,GHN-2在分布式架构上的平均准确率达到66.9%,使用2500次SGD迭代训练的网络所达到的平均准确率为69.2%。对于分布外架构,GHN-2的表现出奇的好,达到了60%左右的准确率。特别是,它在ResNet-50上实现了58.6%的准确率,这个结果相当好。「ResNet-50架构比我们的平均训练架构大20倍左右,所以对这个架构的泛化效果尤其出色。」Knyazev 在该领域的旗舰会议NeurIPS 2021上表示。然而,GHN-2在ImageNet上表现不佳。平均来说,GHN-2的准确率只有27.2%左右。但就算是这样,这个准确率和使用SGD训练5000步的相同网络的准确率相比还是有优势的,后者只有 25.6%(当然,如果不计成本地一直执行SGD,最终可以获得95%的准确率)。最关键的是,GHN-2在不到一秒的时间内做出了对ImageNet预测。如果使用SGD来获得和预测参数相同的性能,要花10000倍的时间在GPU上。GHN-2会从很多架构样本中为一项任务找到最佳的神经网络,哪怕这个最佳选择还不够好,最起码胜者也得到了部分的训练并且在未来可以进一步优化。与其在一个用随机参数初始化的网络上使用SGD,不如用GHN-2的预测作为起点。Knyazev表示,「可以说,我们模仿的就是预训练这个环节。」

超网络的未来——在GHN-2之后


尽管取得了这些成功,Knyazev认为机器学习社区短时间内并不想使用图像超网络。就比如说在2012年之前,机器学习的研究人员更喜欢手写的算法,而不是神秘的深度网络。但是,当对大量数据进行训练的大型深度网络开始超越传统算法时,这种抵制发生了变化。在未来,他设想在更多样化的架构和不同类型的任务(例如图像识别、语音识别和自然语言处理)上训练图象超级网络。然后可以根据目标架构和手头的特定任务来进行预测。如果这些超级网络真的有一天可以推广,新的深度神经网络的设计和开发将不再局限于财力雄厚和有能力访问大数据的公司,任何人都可以参与其中。Knyazev非常清楚这种能「使深度学习接地气」的潜力,他把这称为一个长期的愿景。DeepMind的研究科学家Petar Veličković则表示:「神经网络就像一个黑盒子,你用一个神经网络预测另一个神经网络的参数,如果它出错了,你根本没办法解释它。」如果有一天像GHN-2这样的超级网络真的成为了优化神经网络的标准方法,Veličković表示,这种无法解释将会是一个大问题。而Kipf则看到了一线希望。「一些其它的东西让我对神经网络感到尤其兴奋,」他说道,「 GHN-2展示了图象神经网络在复杂数据中寻找模式的能力。」通常,深度神经网络会在图像、文本或音频信号中找到模式,这些是相当结构化的信息类型。GHN-2则可以在完全随机的神经网络架构图中找到模式。此外,GHN-2也可以泛化,对于那些看不见的,甚至分布外的网络架构参数来说,GHN-2也可做出合理的预测。「这项工作向我们展示了许多模式在不同架构中有相似之初,并且模型可以学习如何将知识从一种架构转移到不同的架构,」Kipf 说,「这可能会激发一些神经网络的新理论。」如果是这样的话,它可能会引发对这些黑盒的更新、更深入的理解。

参考资料:

https://www.quantamagazine.org/researchers-build-ai-that-builds-ai-20220125/

相关文章
|
27天前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1415 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
2月前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
25天前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
82 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
21天前
|
人工智能 自然语言处理 安全
【通义】AI视界|Adobe推出文生视频AI模型,迎战OpenAI和Meta
本文精选了过去24小时内的重要科技新闻,包括微软人工智能副总裁跳槽至OpenAI、Adobe推出文本生成视频的AI模型、Meta取消高端头显转而开发超轻量设备、谷歌与核能公司合作为数据中心供电,以及英伟达股价创下新高,市值接近3.4万亿美元。这些动态展示了科技行业的快速发展和激烈竞争。点击链接或扫描二维码获取更多资讯。
|
2月前
|
人工智能 测试技术
语言图像模型大一统!Meta将Transformer和Diffusion融合,多模态AI王者登场
【9月更文挑战第20天】Meta研究人员提出了一种名为Transfusion的创新方法,通过融合Transformer和Diffusion模型,实现了能同时处理文本和图像数据的多模态模型。此模型结合了语言模型的预测能力和Diffusion模型的生成能力,能够在单一架构中处理混合模态数据,有效学习文本与图像间的复杂关系,提升跨模态理解和生成效果。经过大规模预训练,Transfusion模型在多种基准测试中表现出色,尤其在图像压缩和模态特定编码方面具有优势。然而,其训练所需的大量计算资源和数据、以及潜在的伦理和隐私问题仍需关注。
67 7
|
2月前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
2月前
|
人工智能 测试技术 PyTorch
AI计算机视觉笔记二十四:YOLOP 训练+测试+模型评估
本文介绍了通过正点原子的ATK-3568了解并实现YOLOP(You Only Look Once for Panoptic Driving Perception)的过程,包括训练、测试、转换为ONNX格式及在ONNX Runtime上的部署。YOLOP由华中科技大学团队于2021年发布,可在Jetson TX2上达到23FPS,实现了目标检测、可行驶区域分割和车道线检测的多任务学习。文章详细记录了环境搭建、训练数据准备、模型转换和测试等步骤,并解决了ONNX转换过程中的问题。
|
2月前
|
机器学习/深度学习 人工智能 测试技术
AI计算机视觉笔记二十五:ResNet50训练部署教程
该项目旨在训练ResNet50模型并将其部署到RK3568开发板上。首先介绍了ResNet50网络,该网络由何恺明等人于2015年提出,解决了传统卷积神经网络中的退化问题。项目使用车辆分类数据集进行训练,并提供了数据集下载链接。环境搭建部分详细描述了虚拟环境的创建和所需库的安装。训练过程中,通过`train.py`脚本进行了15轮训练,并可视化了训练和测试结果。最后,项目提供了将模型转换为ONNX和PT格式的方法,以便在RK3568上部署。
|
3天前
|
机器学习/深度学习 人工智能 供应链
AI技术在医疗领域的应用与未来展望###
本文深入探讨了人工智能(AI)技术在医疗领域的多种应用及其带来的革命性变化,从疾病诊断、治疗方案优化到患者管理等方面进行了详细阐述。通过具体案例和数据分析,展示了AI如何提高医疗服务效率、降低成本并改善患者体验。同时,文章也讨论了AI技术在医疗领域面临的挑战和未来发展趋势,为行业从业者和研究人员提供参考。 ###
|
4天前
|
机器学习/深度学习 人工智能 算法
AI技术在医疗领域的应用与挑战
【10月更文挑战第21天】 本文探讨了人工智能(AI)在医疗领域的多种应用,包括疾病诊断、治疗方案推荐、药物研发和患者管理等。通过分析这些应用案例,我们可以看到AI技术如何提高医疗服务的效率和准确性。然而,AI在医疗领域的广泛应用也面临诸多挑战,如数据隐私保护、算法透明度和伦理问题。本文旨在为读者提供一个全面的视角,了解AI技术在医疗领域的潜力和面临的困难。