解决人工智能中来自合成数据的模型崩溃问题

生成式AI新玩法:用PyTorch和GAN合成你的第一个数据集(避坑指南) 本文详细介绍了如何使用PyTorch和GAN技术生成合成数据集,解决数据不足问题。通过实战案例和避坑指南,帮助开发者掌握生成对抗网络的核心原理、PyTorch实现要点以及常见问题的解决方案,提升AI项目的数据处理效率和质量。 阅读详情

原文:towardsdatascience.com/addressing-concerns-of-model-collapse-from-synthetic-data-in-ai-7cd380208d14?source=collection_archive---------4-----------------------#2024-08-05

https://medium.com/@zredlined?source=post_page---byline--7cd380208d14--------------------------------https://towardsdatascience.com/?source=post_page---byline--7cd380208d14-------------------------------- Alexander Watson

·发表于Towards Data Science ·阅读时间 8 分钟·2024 年 8 月 5 日

–

人工智能领域正在快速发展,合成数据作为模型开发的有力工具应运而生。虽然它提供了巨大的潜力,但关于模型崩溃的近期关注引发了争论。让我们深入探讨合成数据的使用现实及其对人工智能发展的影响。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/5997391275bdce6dfd9c5486678a2034.png

由 DALL-E 生成的图像

解决模型崩溃问题

《自然》期刊上 Shumailov 等人发表的论文“AI 模型在递归生成数据的训练下崩溃”提出了关于使用合成数据的重要问题:

  • “我们发现, 不加区分地使用 模型生成的内容进行训练会导致结果模型中的不可逆缺陷,在这些模型中,原始内容分布的尾部消失。” [1]

  • “我们认为模型崩溃的过程在所有生成模型中都是普遍存在的,这些模型 递归训练 于由前一代生成的数据” [1]

然而,需要注意的是,这种纯粹基于合成数据的递归训练极端情境并不代表现实世界中的人工智能开发实践。作者们自己也承认:

  • “在这里,我们探讨当语言模型被顺序微调,且使用由其他模型生成的数据时,会发生什么…我们评估了训练语言模型的最常见设置——一个微调设置,其中每个训练周期都从一个预训练模型开始,使用最新的数据” [1]

关键要点

  1. 该研究的方法论未考虑到源源不断的新数据流入,这一特点是现实世界 AI 模型训练的一个重要特征。这一局限性可能导致在实际场景中对模型崩溃的高估,而在这些场景中,新的数据可以作为潜在的纠正机制,防止模型退化。

  2. 实验设计中丢弃前代数据的做法与 AI 开发中的常规实践相悖,后者涉及到累积学习和复杂的数据策划。这种做法可能无法准确反映行业应用中典型的知识保持和积累过程。

  3. 在各代之间使用单一静态模型架构(OPT-125m)并未反映出实际中AI 架构的快速演变。这种简化可能夸大了观察到的模型崩溃,因为它没有考虑到架构进展如何潜在地缓解这些问题。实际上,该领域已见证了快速的发展(例如,从 GPT-3 到 GPT-3.5 再到 GPT-4,或从 Phi-1 到 Phi-2 再到 Phi-3),每一次迭代都在模型容量、泛化能力和突现行为上带来了显著的改进。

  4. 尽管论文承认灾难性遗忘问题,但并未采用行业中常用的标准缓解技术,如弹性权重整合(Elastic Weight Consolidation)或经验回放。这一遗漏可能加剧了观察到的模型崩溃效应,限制了研究在实际场景中的适用性。

  5. 研究中合成数据生成和使用的方法缺乏行业中常用的质量控制措施和整合实践。这一方法选择可能导致在实际应用中对模型崩溃风险的高估,而在实际应用中,合成数据通常会更仔细地进行筛选并与真实世界的数据结合。

论文中的支持性引述

  • “我们还简要提到现有文献中与模型崩溃相关的两个相近概念:任务无关的持续学习中的灾难性遗忘和恶意数据中毒导致的非预期行为” [1]

实际上,合成数据的目标是扩充和扩展现有数据集,包括基础模型中内嵌的隐式数据。当团队进行微调或继续预训练时,目标是提供额外的数据以提高模型的鲁棒性和性能。

来自学术界和研究领域的反驳

由 Gerstgrasser 等人(斯坦福大学、麻省理工学院和 Constitution 的研究人员)撰写的论文《模型崩溃是不可避免的吗?通过积累真实和合成数据打破递归的诅咒》提出了对 AI 模型崩溃担忧的显著反驳:

“我们的工作提供了一致的实证和理论证据,表明数据积累避免了模型崩溃.” [2]

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/92bfb503b5fad3f2a16c5b5c4f867649.png

来源:《模型崩溃是否不可避免?通过积累真实与合成数据打破递归的诅咒》。 [2]

这项工作表明,将合成数据与现实世界数据结合可以防止模型退化。

质量重于数量

正如在微软的 Phi-3 技术报告中强调的:

  • “构建一个强大且全面的数据集不仅仅依赖于原始计算能力:它需要复杂的迭代、战略性的主题选择,并深刻理解知识空白,以确保数据的质量和多样性。”[3]

这强调了深思熟虑的合成数据生成的重要性,而不是盲目使用。

以及苹果在训练其新设备和基础模型时:

  • “我们发现数据质量对于模型的成功至关重要,因此我们在训练管道中采用混合数据策略,结合人工标注数据和合成数据,并进行彻底的数据策划和过滤程序。”[10]

这强调了深思熟虑的合成数据生成的重要性,而不是盲目使用。

迭代改进,而非递归训练

正如在 Gretel Navigator、NVIDIA 的 Nemotron 和 AgentInstruct 架构中所强调的,前沿的合成数据是通过代理人迭代地模拟、评估和改进输出生成的——而不是仅仅递归地在自己的输出上进行训练。以下是 AgentInstruct 中使用的合成数据生成架构示例。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c61af22e9c00e2667c93400f26d0c05e.png

来源:AgentInstruct 合成数据生成架构[11]

合成数据改善模型性能

以下是最近合成数据发布的一些示例结果:

行业通过合成数据的进展

合成数据正在推动各行业的重大进展:

医疗保健: SA Health 的首席临床官 Rhys Parker 表示:

“我们与 Gretel 合作的合成数据方法,已经彻底改变了我们处理敏感病患信息的方式。以往需要几个月甚至几年的数据请求,现在几天内就能完成。这不仅仅是技术的进步,更是健康数据管理的根本变革,在确保隐私的同时,显著改善了病患护理。我们预测,合成数据将在未来几年内成为医学研究中的常规工具,为医疗创新开辟新天地。” [9]

数学推理:DeepMind 的 AlphaProof 和 AlphaGeometry 2 系统,

“AlphaGeometry 2 基于 Gemini,且使用比前一版本多一个数量级的数据进行训练”,通过解决复杂的数学问题,在国际数学奥林匹克中获得了银牌,展示了合成数据在提升 AI 能力、应对专业领域挑战中的强大作用 [5]。

生命科学研究:Nvidia 的研究团队报告称:

“合成数据还为使用敏感病患数据提供了一个伦理替代方案,有助于教育和培训 而不妥协病患隐私” [4]

普及 AI 开发

合成数据最强大的一个方面是它有潜力在 AI 开发中实现公平竞争。

赋能数据匮乏行业:合成数据使得数据较少的行业也能参与到 AI 开发中。这对于数据收集因隐私问题或资源限制而困难的行业尤为重要。

大规模定制化:即使是大型科技公司也在利用合成数据进行定制化。微软对 Phi-3 模型的研究展示了如何使用合成数据创建高度专业化的模型:

“我们推测,合成数据集的创建将在不久的将来成为一项重要的技术技能,并且会成为 AI 研究的核心主题。” [3]

针对 AI 模型的定制化学习:特斯拉前 AI 总监 Andrej Karpathy 提出了一个未来愿景,我们为语言模型创建定制化的“教科书”:

借助合成数据进行扩展:AI 研究员 Jim Fan 强调了合成数据为下一阶段训练数据提供潜力:

Fan 还指出,具身代理(如特斯拉的 Optimus 机器人)如果进行大规模模拟,也可以成为合成数据的重要来源。

合成数据的经济学

成本节约与资源效率:

Hugging Face 的博客显示,使用合成数据对定制的小型语言模型进行微调的成本约为 2.7 美元,而使用 GPT-4 处理真实世界数据则需要 3,061 美元,同时合成数据还显著减少了 CO2 排放并提供更快的推理速度。

这是 Hugging Face 的一幅很好的可视化图,展示了在不同使用场景中的好处:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/6b424f898dee4b69f6883eaa4cb7613c.png

来源:Hugging Face 博客 [6]

结论:一种平衡的方式

尽管模型崩溃的潜在风险不应被忽视,但合成数据的实际应用和好处是如此重要,无法轻易忽视。随着我们在这一领域的不断进步,一种结合合成数据、严格的真实世界验证和深思熟虑的生成实践的平衡方法,将是最大化其潜力的关键。

合成数据在负责任地使用并与真实数据结合时,有可能显著加速各个领域的 AI 发展。这并不是要取代真实数据,而是通过扩展和增强我们的能力,探索我们尚在起步阶段的方式。 通过用合成数据增强数据集,我们可以填补关键的数据空白,解决偏差问题,并创建更强大的模型。

通过负责任地使用合成数据,我们可以实现 AI 开发的普及,推动数据贫乏领域的创新,并推动机器学习领域的边界——同时保持我们 AI 系统的完整性和可靠性。

参考文献

  1. Shumailov, I., Shumaylov, Z., Zhao, Y., Gal, Y., Papernot, N., & Anderson, R. (2023). 递归的诅咒:在生成数据上训练使模型遗忘。arXiv 预印本 arXiv:2305.17493.

  2. Gerstgrasser, M., Schaeffer, R., Dey, A., Rafailov, R., Sleight, H., Hughes, J., … & Zhang, C. (2023). 模型崩溃是否不可避免?通过积累真实和合成数据打破递归的诅咒。arXiv 预印本 arXiv:2404.01413.

  3. Li, Y., Bubeck, S., Eldan, R., Del Giorno, A., Gunasekar, S., & Lee, Y. T. (2023). 教科书就是你所需要的一切 II:phi-1.5 技术报告。arXiv 预印本 arXiv:2309.05463.

  4. Nvidia 研究团队. (2024). 通过合成数据生成解决医学影像的局限性. Nvidia 博客.

  5. DeepMind 博客. (2024). AI 达到银牌水平,解决国际数学奥林匹克问题. DeepMind.

  6. Hugging Face 博客关于合成数据的内容. (2024). 合成数据:通过开源节省成本、时间和碳排放. Hugging Face.

  7. Karpathy, A. (2024). 语言模型的定制教科书. Twitter.

  8. Fan, J. (2024). 合成数据与 AI 训练的未来. Twitter.

  9. 南澳大利亚卫生部。(2024 年)。南澳大利亚卫生部与 Gretel 合作,开创全州范围的合成数据倡议,以确保安全的电子健康记录(EHR)数据共享。Microsoft for Startups Blog。

  10. 介绍苹果的设备端和服务器基础模型。machinelearning.apple.com/research/introducing-apple-foundation-models

  11. AgentInstruct: 面向生成性教学的代理流。arxiv.org/abs/2407.03502

  12. Gerstgrasser, M.(2024 年)。评论 Yev Meyer 博士在 LinkedIn 上的帖子。LinkedIn。www.linkedin.com/feed/update/urn:li:activity:7223028230444785664

使用递归合成数据训练AI模型会崩溃吗?——《Nature》封面论文解读 在人工智能领域,数据、算法和算力被视为推动AI发展的三大要素。其中,高质量数据的获取已成为一个重大挑战。近年来,随着技术的不断进步,合成数据逐渐成为训练AI模型的重要手段。然而,2023年6月24日发表在《Nature》上的一篇论文提出了一个令人震惊的结论:使用递归生成的数据进行训练,人工智能模型可能会崩溃。这一发现对AI模型的训练方法提出了严峻的质疑。本文将详细解读这篇论文的核心内容,探讨递归合成数据带来的问题及其背后的原因。 阅读详情

相关推荐

NLP论文速读|如何在没有模型崩溃的情况下合成文本数据?

随着生成性AI技术的发展,合成数据在网络数据生态系统中变得越来越普遍,未来的GPT-n模型训练将不可避免地涉及到合成数据和人类产生数据的混合使用。因此,本文的动机是提出一种新的方法来编辑人类产生的数据,以获得半合成数据,这种方法可以在保持数据分布覆盖的同时,提高数据质量,避免模型崩溃。实验结果表明,随着合成数据比例的增加,GPT-2 Small模型在各个数据集上的PPL值普遍增加,这表明模型性能随着合成数据比例的增加而下降。随着合成数据比例的增加,模型在各个数据集上的PPL值也随之增加。

2401_85576118的博客 770

LLM的自我中毒与去毒:9月1日将施行《人工智能生成合成内容标识办法》,这个必须了解

模型崩溃”指的是在生成式模型训练中,不断使用模型自身或其他模型生成的内容作为训练数据,导致模型逐代偏离真实数据分布,从而引发性能退化的问题(维基百科IBMShumailov 等人在《Nature》对该现象进行了系统描述,并指出其由三种误差累计导致: 统计近似误差(sampling error) , 功能表达误差(functional expressivity error) , 学习误差(learning error)(Nature例如,Emily Wenger在Nature的。

AI_gurubar的博客 2128

模型崩溃:AI训练数据污染与合成数据风险的深度解析

在机器学习领域,数据是模型训练的基石,其质量直接决定了算法的上限。模型通过学习数据中的概率分布来理解和生成内容,这一过程的核心在于准确捕捉真实世界的数据分布。然而,当训练数据中混入大量AI生成的合成数据时,会引发严重的系统性风险——模型崩溃。这并非算法缺陷,而是数据生态的熵增危机:合成数据会平滑掉原始分布中的长尾细节,导致信息丢失;迭代训练中,细微误差会不断累积放大,最终使模型输出偏离现实,丧失多样性与事实准确性。从工程实践看,这一现象凸显了高质量数据稀缺时代,数据供应链污染对AI系统稳健性的威胁。为应对此

weixin_30591551的博客 367

训练大模型数据告罄?合成数据逆袭,开启高效之路

大数据产业创新服务媒体——聚焦数据· 改变商业在大数据时代,数据被称为石油;在生成式AI(GenAI)时代,数据则被称为“智能的基石”,就像建筑需要稳固的基石来支撑一样,生成式AI模型的智能表现完全依赖于数据,高质量的数据是构建和训练这些复杂大模型的基础。Google于2017年发明的transformer模型引发了行业的一个重大转变就是使用无监督学习,使大模型(LLM)能够接触到Web上质量参...

数据猿 995

采用AI生成合成信用数据驱动信用评分模型优化

生成合成信用数据为解决模型公平性、数据稀缺性与隐私保护提供了创新路径。未来,结合联邦学习与差分隐私技术,可进一步实现跨机构数据协同建模,推动信用评分模型的普惠化与合规化。

二进制的梦想 1089

AI训AI惨遭投毒9次大崩溃,牛津剑桥等惊天发现登Nature封面

牛津、剑桥等机构的研究发现,使用AI生成的数据训练AI模型会导致模型崩溃,即模型逐渐失去对原始数据分布的感知能力,生成大量无意义的文本。

百态·数智思维 | 聚焦大数据、量化与未来AI 648

牛津剑桥「投毒」AI失败9次登Nature封面,引爆学术圈激辩!AI训AI能否打破崩溃魔咒?

随着我们连续训练模型,它们逐渐失去了在广泛分布上进行预测的能力。虽然与图6的中图和右图相比,世代的多样性确实下降了,它仍然代表数据集中变化的主要轴,例如性别,但模型似乎不再沿着数据流形的更短轴生成其他细节,例如眼镜和配件。与语言模型不同,他们发现,当替换数据时,在合成数据训练的第一次模型拟合迭代中,性能会显著恶化,并且在后续迭代中不会进一步大幅下降。125M的Llama2和9M的GPT-2,在替换数据(R)时都表现出了质量下降,但在积累数据(A)时,却保持了高质量的文本生成。

lqfarmer的博客 571

txt经纬度批量转面要素(附自定义ArcGIS工具箱方法)

当涉及大量txt坐标文件需要转换成面要素的时候,逐步操作工作量较大。本文由需求出发,以ArcGIS10.2为例,采用python脚本自定义ArcGIS工具,实现批量操作的目的。

m0_59216200的博客 1818

LLMs之Multilingual:《A Deepdive into Aya Expanse: Advancing the Frontier of Multilinguality》翻译与解读

​ LLMs之Multilingual:《A Deepdive into Aya Expanse: Advancing the Frontier of Multilinguality》翻译与解读 目录 《A Deepdive into Aya Expanse: Advancing the Frontier of Multilinguality》翻译与解读 一、引言:突破多语言模型性能瓶颈 二、避免合成数据中的模型崩溃:数据套利 三、迭代改进:全

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1412

UNITY2022 Cardboard环境搭建

必须安装 Git,并且 git 可执行文件必须位于 PATH 环境变量中。考文档:https://developers.google.cn/cardboard/develop/unity/quickstart?转到 Assets/Samples/Google Cardboard//Hello Cardboard/Scenes/HelloCardboard 场景中。粘贴https://github.com/googlevr/cardboard-xr-plugin.git到文本输入字段中。

weixin_39510925的博客 1210

Jupyter Notebook 命名出现“error”且运行后没反应

Jupyter Notebook 命名出现“error”且运行后没反应提前声明错误截图(方便大家看看是不是自己的错误)解决方法 提前声明 我的问题是在看到答主 @开始King的回答后才解决的,因为答主大大的文章后面有些地方不是很详细,我在这里再在King大大的基础上完善一下子 错误截图(方便大家看看是不是自己的错误) 1.命名失败,上面出现一个“error”字样 2.运行失败,无论是点击上方的运行按钮还是按快捷键shift+enter 都只会向下再增加一个代码块,而不会运行程序。 (也不是很多人出现的[*

qq_52770743的博客 1万+

AI数据荒:合成数据的机遇与挑战

合成数据就像一面哈哈镜,不会照出具体某个人的模样,却能精准还原人群的整体特征,比如某类疾病患者的年龄分布、血压波动范围,或是某款APP用户的点击偏好规律等等。顾名思义,合成数据是“非真实数据“,当然它并不是凭空捏造的数据,而是通过算法模型生成的、具有与真实数据相似统计特征和结构模式的人造数据。在这场“数据荒”的全球焦虑中,合成数据被推上风口浪尖, 支持与质疑的交锋日益激烈。真实数据往往会携带一些社会偏见,如招聘数据中的性别歧视倾向,而合成数据则可通过算法修正,修正真实数据里的不合理倾向,过滤掉这些干扰。

2501_92647820的博客 686

excel wind插件使用_Python和wind的交互—在债券中的应用

个人认为学会了怎么用python和wind交互以及怎么用python处理Excel数据,就基本能替换日常很多琐碎的债券工作,还不用担心Excel某个值改变了导致整个报表都毁了。事实上在python调用wind函数和在Excel中调用函数一样简单,只要会基本的操作就够了。下面详细的介绍如何用python和wind进行交互。首先安装好python+pycharm+wind。因为python...

weixin_39863918的博客 5328

模型崩溃!当AI开始自己吃自己……

摘要:本文揭示了人工智能领域出现的"模型崩溃"危机,类比生物学中的"近交衰退"现象。通过剖析信息论基础、实验案例及社会影响,系统提出了"数据保鲜"、"算法免疫"与"伦理规制"三位一体的防御方案。文章指出,模型崩溃将导致AI输出内容同质化、事实失真和认知偏差,最终威胁文化多样性与创新发展。研究强调,通过建立数据保护区、开发健康监测指标和制定AI伦理公约等前瞻性干预手段,可避免这一技术陷阱。

DeepAIedu的博客 849

FPGA实现CAN接口(SJA1000)

学无止境,善于积累,每天积累一点点,成功就在眼前,加油! 1 CAN总线简介 CAN(Controller Area Network,控制器局域网 )总线是一个多主机异步串行总线,也是国际上应用最广泛的现场总线之一。在现场总线中,它是惟一被ISO国际标准化组织批准的现场总线。由于其成本低、容错能力强、支持分布式控制、通信速率高等优点在汽车、工业控制、航天等领域得到广泛应用。特别是由于CAN总线具有...

m0_46498597的博客 1万+

MMCVDeformConv2d转TensorRT记录

MMCVDeformConv2d转Tensorrt

qq_35435798的博客 1778

2024人工智能报告.zip |一文迅速了解今年的AI界都发生了什么?

2024年,大家都在各行各业不断(被迫)内卷,毫无疑问,人工智能(AI)领域也卷疯了,国内外各企业纷纷掏出自己的看家本领,与对手硬碰硬,看谁才是“AI第一强”。小编表示今年AI免费福利没少薅~同时也切身体会到AI工具与应用在快速迭代情况下,性能是越来越牛逼。并且作为一线吃瓜群众,经常看到各科技大牛围绕AI吵成一锅粥,在线开撕;也看到他们围绕AI发表一系列长长长长文表明自己的观点。

金融机器智能社区 1986

BES2700的PMU

BES2700ZP-BES2700芯片的PMU架构分析摘要:本文档分析了BES2700芯片的电源管理单元(PMU)架构。实际应用中仅需为VBAT引脚供电,其余电源均由芯片内部PMU提供。文档包含架构示意图、问题列表和参考链接,涉及PMU工作原理、外部供电要求等关键技术点。待解决问题包括具体供电参数和内部电源转换机制等。通过添加日志信息和代码片段,为开发人员提供了调试PMU功能的实用方法。

云淡风轻 117

AI核心知识15——大语言模型之合成数据(简洁且通俗易懂版)

合成数据(Synthetic Data)是为解决“数据荒”而生的“人造钻石”,即由 AI 自身生成的高质量训练数据。 面对人类高质量语料枯竭、数据杂质及隐私限制等挑战,合成数据通过“以大带小”(蒸馏)或“重写进化”等策略应运而生。它具有成本低、纯净可控、无隐私风险等优势,尤其在代码与数学等具备标准答案的领域效果显著。 然而,过度依赖可能导致“模型崩溃”,即模型因缺乏多样性输入而逐渐退化。总体而言,合成数据是 AI 发展的关键助燃剂,但需警惕“近亲繁殖”带来的风险

学习AI中... 739

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

AI的自我陷阱:大型神经网络训练中的模型崩溃现象

实验结果如下图1所示,训练数据总量为n = 500,横轴表示训练数据仅在真实数据上完成,纵轴表示训练是在合成数据和真实输出的混合数据上完成的,从左到右三张图分别显示了不同合成数据的结果。10月7日,发布在arxiv上的一篇名为Strong Model Collapse的论文,由Meta 、纽约大学和加州大学洛杉矶分校的研究人员共同发表的研究表明在训练大型神经网络(如 ChatGPT 和 Llama)时,由于训练语料库中包含合成数据而导致的模型性能严重下降的现象,即模型崩溃(Model Collapse)。

AI_Mind的博客 1696

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

合成数据在生成式人工智能时代的价值与风险(上)

合成数据随人工智能技术跌宕演进,随生成式人工智能发展成为产业和政策热点:从价值上说,合成数据有助于突破人类数据限制,在产业中的使用场景、数量占比和实际效果都远超预期。从安全上说,合成数据并非“超级智能”逃逸的助力,不会引发新的安全问题,反而是人类控制风险的抓手。从产业发展说,合成数据难以“独自成席”,对其市场规模和催生的创新企业不适合做过高预期。但合成数据是一个合适切口,理解大模型对数据要素价值发挥机制的整体改变,也是一个契机,思考数据相应政策体系如何顺应极速发展的前沿科技。

qq_41432686的博客 1136

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

AI自循环数据革命:合成数据驱动的知识创造与产业变革全景

合成数据已从实验室走向产业前线,成为自动驾驶、医疗、金融、教育、农业、航空航天、能源、时尚等领域创新的关键引擎。其高效、低成本、可扩展的特性,极大提升了行业智能化水平和创新速度。

欢迎来到运通链达的官方博客!我们深度探讨人工智能技术与应用,贯彻科技向善理念,推动科技进步与社会福祉和谐共生。 1823

活动报名|Meta、纽约大学等新研究,合成数据导致模型崩溃,及解决方案

报告主题:下一代 AI 面临危机:合成数据导致模型崩溃及解决方案报告日期:10月24日(周四)10:30-11:30报告要点:生成式 AI 在文本、图像和代码领域的突破性进展,正在引领我们进入“合成数据时代”:我们越来越多地使用像 GPT-4 和 Stable Diffusion 这样的大模型生成的数据。如今,网络上充斥着这些模型生成的合成数据,很多时候已经难以与“真实”数据区分开来。未来,当我们...

BAAIBeijing的博客 251

AI“模型崩溃”风险需警惕

作者:张佳欣 来源:科技日报 发布时间:2024/9/25图片来源:美国《The Week》从客户服务到内容创作,人工智能(AI)影响了众多领域的进展。但是,一个日益严重的被称为“模型崩溃”的问题,可能会使AI的所有成就功亏一篑。“模型崩溃”是今年7月发表在英国《自然》杂志上的一篇研究论文指出的问题。它是指用AI生成的数据集训练未来几代机器学习模型,可能会严重“污染”它们的输出。多家外媒报道称,...

人机与认知实验室 161

合成数据用于大模型训练的3点理解

最近看国内对合成数据的研究讨论也变得多 ,而不单单是多模态,扩散模型这些偏视觉类的, 因此就合成数据写一下目前的情况。2023年国外就有很多研究合成数据的论文, 包括Self-Consuming Generative Models Go MAD, Crowd Workers Widely Use Large Language Models for Text Production Tasks。

Z4400840的博客 1078
上一篇: 加性决策树
下一篇: 处理缺失数据
绝不原创的飞龙
绝不原创的飞龙 优质创作者: 人工智能、数据科学与机器学习技术领域 优质创作者: 人工智能、数据科学与机器学习技术领域
博客等级 码龄15年 4万+粉丝 2万+原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值