风靡朋友圈的妙鸭相机,到底用了哪些底层技术?

news2024/11/16 13:46:51

不知道大家近期的朋友圈有没有被和海马体、天真蓝如出一辙的AI写真刷屏!

在这里插入图片描述

这些面若桃花、精致到头发丝、光影充满氛围感的写真都是一款叫“妙鸭相机”的小程序生成的!只要9.9,就能体验999写真!

在这里插入图片描述

虽然只要9.9,但生成的照片真的很逼真!

在大家被ChatGPT和Midjourney所惊艳之后,如今又惊叹于妙鸭相机的写真能力!

它到底用到了什么AI技术才做到这么厉害的呢?

本文就带大家来探索一下!

01
AIGC关键技术

无论是ChatGPT,还是Midjourney、妙鸭相机,都属于人工智能创造内容(AI Generated Content,AIGC)!

AIGC有两项关键技术:

一个是ChatGPT所代表的大模型(Large Language Model,LLM)技术。

另一个是Midjourney、妙鸭相机等AI绘画作图背后的扩散模型(Diffusion Model)技术。

AI绘画、AI对话、AI游戏创作等这些产物的背后是深度生成模型,它可以根据已有的数据和计算机程序生成新的数据。

真实世界的数据是复杂的,其维度高、分布复杂,变量之间还存在非线性关系,例如,图片数据被认为是二维空间的像素点数据,并且图片内容决定了像素点之间有着复杂的交互关系。这对使用传统模型进行拟合数据分布提出了巨大挑战。

此外,我们不仅希望AI生成的内容有真实性,也希望其是新颖的,即可以对问题提出新的解决方案,而不只是复制已有的内容;高效地利用计算机的运算能力,实现高效的自动化生产;根据用户需求提供相应的内容,等等。

在这些需求下,扩散模型能够捕捉复杂的数据分布、产生真实、新颖的内容,并且能够实现个性化的、高效的生产。因此,引起了人们的广泛关注。

深度生成模型源于生成式建模和深度学习。

生成建模认为数据在相应的空间存在着概率密度分布,其目的就是建模和学习这种潜在分布。早期的生成建模如高斯混合模型(GMM),隐马尔可夫模型(HMM)在表达能力和可扩展性方面存在局限性,在现实数据的复杂性面前表现得较为吃力。

VAE将深度神经网络与变分推断技术相结合,学习潜在先验并生成新样本。它们提供了端到端训练的框架,并提供了更灵活的生成建模能力。

GAN在深度生成模型的历史中是另一个重要的里程碑,GAN引入了一种新颖的对抗训练方法,同时训练生成器网络和判别器网络。该架构通过生成器和判别器网络之间的最小、最大博弈来生成高度逼真的样本。

深度生成模型还有基于能量的模型和基于流的模型,等等。

02
扩散模型

扩散模型于2020年被提出,但其发源可以追溯到2015年,理论背景甚至可以追溯到20世纪对于随机过程、随机微分方程的研究。

扩散模型通过向原始数据逐步加入噪声来破坏原始信息,然后再逆转这一过程生成样本。相较于以往的深度生成模型,扩散模型生成的数据质量更高、多样性更强,并且扩散模型的结构也很灵活,这使得扩散模型很快成为了研究和应用的热点。在《扩散模型:生成式AI模型的理论、应用与代码实践》一书中就详细讨论了扩散模型与其他深度生成模型的关系。

我们可以考虑一个物理过程来通俗地理解扩散模型。把真实世界的数据比作空气中的一团分子,它们互相交织,形成了具有特定结构的整体。由于这个分子团过于复杂,我们无法直接了解其结构,但我们可以理解在空气中做无规则运动的某种粒子,即对应着服从标准高斯分布的某个变量。从无规则运动的粒子出发,我们不断变换这些粒子的相对位置,每次只变换一小步,最终将这些粒子的分布状态变换为我们想要的复杂的分子的形态。也就是说,从纯噪声开始,我们进行了很多小的“去噪”变换,逐渐地将噪声的分布转换为数据的分布,这样就可以利用得到的数据分布进行采样,得到新的数据。可以看到,我们需要知道的信息就是——该如何进行每一步的变换。这比直接学习原始数据的分布简单得多,并且朴素地解释了扩散模型的有效性。《扩散模型:生成式AI模型的理论、应用与代码实践》一书会详细、严格地介绍扩散模型的原理和算法。

扩散模型也有其内在的缺点,如采样速度慢、对结构化数据处理能力较差,等等。例如,扩散模型在将噪声分布逐步转换为数据分布的过程中需要大量调用神经网络,这就导致了生成高质量图片时采样时间较长。后续大量的研究就是致力于提升扩散模型各个方面的性能,使扩散模型可以真正帮助人们高效解决现实问题。《扩散模型:生成式AI模型的理论、应用与代码实践》一书将详细分析扩散模型的优缺点,并系统地讲解扩散模型的进一步发展。

03
扩散模型应用

得益于扩散模型的强大性能,图片生成的应用Stable Diffusion、DALLE·2、Midjourney、妙鸭相机等在实际生产中都有利用扩散模型进行创造性内容生成。

这些应用程序利用扩散模型进行条件生成,即基于输入,引导、生成符合条件的内容。这种引导可以是自然语句,可以是部分图像,也可以用低分辨率的图像作为引导,生成高分辨率的图像,等等。

此外还有利用扩散模型生成语音、视频等各种模态数据的应用。艺术创作者们可以使用这些应用进行直接创作,或者使用它来提供灵感。在生成内容上进行修改可以大大提升工作效率。

但同时,扩散模型的强大能力和广泛引用也导致了潜在的负面影响。

AI的高效让部分创作者面临失业的风险;

扩散模型生成的内容存在版权问题、隐私问题和偏见问题;

AI生成的内容可能被用于有害的用途;

……

此外,扩散模型在科学研究领域也有应用,比如分子结构生成、分子动力学模拟。扩散模型可以生成表示分子的3D表示、分子的图结构,或者二者同时生成,以及控制生成分子的性质。这对于AI制药领域是又一大研究贡献。

在工业界的应用有点云生成和补全、异常检测等。

在医学领域的应用包括医学图像重建和病灶检测等。

总的来看,扩散模型在各个领域正处于一个百花齐放的状态。

《扩散模型:生成式AI模型的理论、应用与代码实践》一书也会详细介绍扩散模型在各个领域的应用研究。

为了推进扩散模型的发展和应用,需要多个学科领域的合作,包括机器学习算法、深度生成学习理论、随机分析理论,各领域的应用研究、隐私保护、法律与监管要求等。

目前扩散模型在各领域的发展和应用的介绍分散于论文和网络上,因此有必要在《扩散模型:生成式AI模型的理论、应用与代码实践》这本书中进行系统地介绍。

《扩散模型 : 生成式AI模型的理论、应用与代码实践》是一本从浅入深、全面系统地介绍扩散模型的书籍,其具备丰富的实践案例,以及前沿视角,受到一众专家、学者的认可、推荐。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/814842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac电脑目录

System(系统)Applications(应用程序)应用程序目录,默认所有的GUI应用程序都安装在这里User(用户)存放用户的个人资料和配置。每个用户有自己的单独目录Library(资料库)系…

定义dubbo自己的异常过滤器

起因 发现这个问题的起因是前端联调接口的时候发现统一的异常处理没有发挥作用,我们定义的处理的异常类型为AppException(国际惯例继承于RuntimeException),但是Dubbo服务端实际返回的异常变成了RuntimeException,我们自定义的异常处理没有发生作用,导致前端报500异…

恒运资本:A股、港股全线爆发,沪指突破3300点,恒指重返2万点上方

7月31日,两市股指高开高走,沪指在金融、地产、酿酒等权重板块的带动下一举突破3300点。截至发稿,沪指、深成指、创业板指涨幅均超1%,上证50指数涨近2%。Wind数据显现,北向资金净买入超25亿元。 职业方面,券…

清风徐来【个人】

清风徐来【个人】 前言版权清风徐来【个人】我的博客我的专栏我的粉丝我获得的奖品我的其他平台我的投稿 最后 前言 2023-7-29 10:57:54 花若向阳花自开 人若向暖清风徐来 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https…

笔记本数据恢复,这5个方法记好了!

我的笔记本从大学就开始用了,里面有很多重要的资料和文件。但昨天打开时,它突然卡着了,等到恢复过来之后,我发现我有些数据就是莫名其妙就消失了。有什么方法能帮我恢复笔记本的数据吗?” 随着笔记本电脑在我们生活中扮…

【LeetCode】不同路劲(动态规划)

不同路劲 题目描述算法流程编程代码 链接: 不同路劲 题目描述 算法流程 编程代码 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m 1,vector<int>(n 1));dp[1][0] 1;for(int i 1;i < m;i){for(int j 1;j < n…

【MySQL】存储过程(十一)

🚗MySQL学习第十一站~ 🚩本文已收录至专栏:MySQL通关路 ❤️文末附全文思维导图,感谢各位点赞收藏支持~ 一.引入 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的工作,可以减少数据在数据库和应用服务器之间的传输,…

基于SSM 球鞋资讯交流平台-计算机毕设 附源码11819

SSM 球鞋资讯交流平台 摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;球鞋资讯交流平台当然也不能排除在外。球鞋资讯交流平台是以实际运用为开发背景&#xff0c;运用…

Cesium态势标绘专题-钳击箭头(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

HDFS高阶优化方案:短路本地读取,节点负载平衡器

HDFS高阶优化方案 短路本地读取&#xff1a;short circuit local reads背景实现老版本的设计实现安全性改进版设计实现Unix domain socket 配置配置一----libhadoop.so配置二---hdfs-site.xml 节点block负载平衡器&#xff1a;balancer背景命令行配置运行balancer 短路本地读取…

进程创建大盘点

进程创建回顾 通过 fork() 创建子进程&#xff0c;然后通过 execve(...) 将子进程的进程空间替代为 path 所指定程序的进程空间&#xff0c;随后执行 path 所指定的程序 问题 进程创建是否只能依赖于 fork() 和 execve(...) ? 再轮进程创建 fork() 通过完整复制当前进程的方…

金蝶云星空和旺店通·旗舰奇门单据接口对接

金蝶云星空和旺店通旗舰奇门单据接口对接 对接系统&#xff1a;旺店通旗舰奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌&#xff0c;国内的零售云服务提供商&#xff0c;基于云计算SaaS服务模式&#xff0c;以体系化解决方案&#xff0c;助力零售企业数字化智能化管理升…

参数量仅有50KB的超轻量级unet变种网络egeunet【参数和计算量降低494和160倍】医疗图像分割实践

今天看到一篇挺有意思的文章&#xff0c;做的是跟医疗图像分割相关的工作&#xff0c;但是不像之前看到的一些工作一味地去追求高精度&#xff0c;因为医疗领域本身就是一个相对特殊的行业&#xff0c;对于模型产生的结果的精确性要求是很高的&#xff0c;带来的是参数量级的庞…

Pytorch深度学习-----神经网络之卷积层用法详解

系列文章目录 PyTorch深度学习——Anaconda和PyTorch安装 Pytorch深度学习-----数据模块Dataset类 Pytorch深度学习------TensorBoard的使用 Pytorch深度学习------Torchvision中Transforms的使用&#xff08;ToTensor&#xff0c;Normalize&#xff0c;Resize &#xff0c;Co…

交通运输安全大数据分析解决方案

当前运输市场竞争激烈&#xff0c;道路运输企业受传统经营观念影响&#xff0c;企业管理者安全意识淡薄&#xff0c;从业人员规范化、流程化的管理水平较低&#xff0c;导致制度规范在落实过程中未能有效监督与管理&#xff0c;执行过程中出现较严重的偏差&#xff0c;其营运车…

【C++入门到精通】C++入门 —— 类和对象(初始化列表、Static成员、友元、内部类、匿名对象)

目录 一、初始化列表 ⭕初始化列表概念 ⭕初始化列表的优点 ⭕使用场景 ⭕explicit关键字 二、Static成员 ⭕Static成员概念 &#x1f534;静态数据成员&#xff1a; &#x1f534;静态函数成员&#xff1a; ⭕使用静态成员的优点 ⭕使用静态成员的注意事项 三、友…

国际化警告Fall back to translate ‘creator‘ key with ‘zn‘ locale.

发现是自己粗心写错了一个单词 这个需要改成zh

OC对象内存布局与isa指针

文章目录 一、Objective-C的本质二、一个objc对象如何进行内存布局&#xff1f;考虑父类的情况三、一个objc对象的isa指针指向什么&#xff1f;有什么作用四、objc对象的类方法和实例方法有什么本质区别和联系&#xff1f; 一、Objective-C的本质 Objc的底层实现是C\C代码&…

微信小程序tab加列表demo

一、效果 代码复制即可使用&#xff0c;记得把图标替换成个人工程项目图片。 微信小程序开发经常会遇到各种各样的页面组合&#xff0c;本demo为list列表与tab组合&#xff0c;代码如下&#xff1a; 二、json代码 {"usingComponents": {},"navigationStyle&q…

goctl template一定制化服务配置生成

官网介绍&#xff1a; 模板&#xff08;Template&#xff09;是数据驱动生成的基础&#xff0c;所有的代码&#xff08;rest api、rpc、model、docker、kube&#xff09;生成都会依赖模板&#xff0c; 默认情况下&#xff0c;模板生成器会选择内存中的模板进行生成&#xff0c…