什么是合成数据(Synthetic Data)?

关于合成数据您需要知道的一切

推出人工智能(AI)的企业在为其模型采集足够的数据方面会遇到一个主要障碍。对于许多用例来说,正确的数据根本不可用,或者获取数据非常困难且成本高昂。在创建AI模型时,数据缺失或不完整就无法满足需要,即使是大型科技公司在这方面也会难免失误。例如,研究人员在2018年发现,顶尖的面部识别软件可以很容易识别出白人男性的面孔,但在识别肤色较深的人时,错误率却高出34%。用于训练这些模型的数据在缺少一整个种群子集的代表。那么,在这种情况下,企业该何以应对?合成数据提供了一种令人信服的解决方案。 合成数据是通过计算机程序人工生成的数据,而不是由真实事件生成的数据。企业可以用合成数据来增强其训练数据,以填补所有潜在用例和边缘用例,节省数据采集费用,或满足隐私要求。随着计算能力的提高和云数据存储选项的崛起,合成数据比以往更容易获取。这无疑是一个积极的发展:合成数据推动了AI解决方案的开发,从而更好地为所有终端用户服务。  

为什么要使用合成数据?

假设您有一个AI问题需要解决,您不确定是否应该投资于合成数据,用以部分或完全满足您的数据需求。以下是合成数据非常适合您的项目的若干原因:

改进模型的可靠性

无需采集更多数据,即可为您的模型获取更为多样化的数据。有了合成数据,您可以用同一个人的不同发型、面部毛发、佩戴不同的眼镜、不同的头部姿势等来训练您的模型,还能以肤色、种族特征、骨骼结构、雀斑等特征创造出不同的面孔,使该模型变得更加可靠。

比“真实”数据获取更快

团队可以在短时间内生成大量的合成数据。当真实数据依赖于很少发生的事件时,这一点尤其有帮助。例如,当为自动驾驶汽车采集数据时,由于极端路况比较罕见,团队可能难以捕获到足够的真实数据。 此外,数据科学家还可以设置算法,在合成数据创建时自动进行标注,从而减少标注过程的耗时。

边缘案例的解读

机器学习算法更喜欢均衡的数据集。回忆我们的面部识别示例。如果这些企业创造出肤色较深的面孔合成数据来填补数据缺口,那么不仅模型的精确度会提高(事实上,这正是其中几家企业所做的),而且还会生成更符合道德标准的模型。合成数据帮助团队涵盖所有用例,包括数据不足或根本不存在的边缘用例。

保护用户的私人数据

根据行业和数据类型的不同,企业在处理敏感数据时可能会面临安全挑战。例如,在医疗行业,患者数据通常包括个人健康信息(PHI),需要满足较高的安全性要求才能使用。合成数据可以减轻对隐私问题的担忧,因为它不涉及真人的信息。如果您的团队需要满足某些数据隐私要求,可以考虑将合成数据作为备选。  

合成数据的应用场景

从业务角度来看,合成数据有许多应用:模型验证、模型训练、新产品测试数据等。一些行业已率先在机器学习中使用合成数据,我们将重点介绍其中的几个行业:

汽车

开发自动驾驶汽车的企业通常依靠模拟来测试性能。在某些条件下,例如极端天气的情况下,获取真实路况数据可能很困难或很危险。总体而言,在所有可能的驾驶体验中,有太多的变量需要考虑,所以不能依赖于在道路上使用真车进行现场测试。合成数据比人工采集数据更安全、更快捷。

医疗保健

由于数据的敏感性,医疗保健是采用合成数据的首选行业。团队可以利用合成数据捕获所有可能的患者类型的生理信息,最终帮助更快速、更准确地诊断疾病。其中一个生动的示例是Google的黑色素瘤检测模型,该模型使用肤色较深个体的合成数据(不幸的是,该领域的临床数据不足),使模型能够适用于所有皮肤类型。

安全

合成数据促进了组织安全性的提高。回到我们的面部识别示例,您可能听说过“深度伪造品(Deepfakes)”一词,它是指人工创建的图像或视频。企业可以创建深度伪造品来测试自己的安全系统和面部识别平台。 视频监控还利用合成数据以更低的成本和更快的速度训练模型。

数据可移植性

企业需要安全可靠的方法来与他人共享其训练数据。合成数据的另一个有趣的用例是在将数据集提供给其他人之前隐藏个人身份信息(PII)。这被称为隐私保护合成数据,可用于共享科学研究数据集、医学数据、社会学数据和可能包含PII的其他领域。  

如何创建合成数据

团队可使用机器学习技术以编程方式创建合成数据。通常情况下,他们将使用一组样本数据来创建合成数据;合成数据必须保留样本数据的统计属性。合成数据本身可以是二进制、数字或分类数据。它应该是随机生成的,具有任意长度,并且足够可靠能覆盖所需的用例。有几种生成合成数据的技术;最常见的技术如下所述:

从分布数据中提取

如果您没有真实数据,但了解数据集分布情况,则可以按分布生成合成数据。在此技术中,您将生成任意分布(正态分布、指数分布等)的随机样本以创建假数据。

将真实数据与分布数据拟合

如果您确实有真实数据,您可以使用蒙特卡罗方法等技术来找到数据的最佳拟合分布,并使用它生成合成数据。

深度学习

深度学习模型可以生成合成数据。例如:

  • 变分自编码器模型:这种无监督模型压缩初始数据集并将其发送至解码器,然后解码器输出该初始数据集的表示。
  • 生成对抗网络(GAN)模型:GAN模型由两个网络组成。生成器接收样本数据集并输出合成数据。鉴别器将合成数据与真实数据集进行比较,并迭代微调。

结合使用上述方法可能是最有益的,具体取决于您开始使用的真实数据量和您使用合成数据的目的。  

合成数据的未来

在过去的十年中,我们看到合成数据的使用速度大幅加快。虽然这为企业节省了时间和资金,但并非没有挑战。合成数据缺乏异常值,这些异常值自然出现在真实数据中,对于某些模型来说,异常值对于精确度至关重要。还需要注意的是,合成数据的质量通常取决于用于生成的输入数据;输入数据中存在的偏见很容易传播到合成数据中,因此不能低估使用高质量数据作为起点的重要性。最后,它需要额外的输出控制;也就是说,需要将合成数据与人工标注的真实数据进行比较,以确保不会出现不一致的情况。 尽管面临这些挑战,合成数据仍然是一个充满机遇、令人兴奋的领域。即使在无法获取真实数据的情况下,合成数据也能帮助我们生成创新的AI解决方案。最重要的是,合成数据能帮助企业创建更具包容性、更能代表终端用户多样性的产品。 来自澳鹏数据科学总监的专业洞察 请记住,合成数据是一种数据增强技术,它不能取代数据采集和标注。必须要认识到,如果没有任何真实数据,就无法创建在现实世界中运行出色的模型。您可能会涵盖大部分情况,但会出现许多模型将失效的边缘情况(例如,对于我们的人脸识别案例,可能会有一些罕见的光照条件、罕见的面部特征、整形手术等情况,您可能从未考虑过——如果您仅从合成数据开始,无论这些人脸有多么逼真,您都不会知道这些情况)。 除此之外,在创建和使用合成数据时,还需要注意以下几点:

  1. 了解模型的可靠性要求,以定义所需的合成数据:甚至在开始生成合成数据之前,您就希望弄清楚模型真正需要什么,并为需要合成数据类型创建一组功能需求。构建与已有数据类似的合成数据对于模型毫无用处。相反,您可能希望通过数据增强改善多样性(例如,人脸识别用例中具有不同面部特征的人脸)和变化(例如,同一人的轻微偏差)。您可能需要考虑一些罕见或边缘的情况,并在生成合成数据时优先考虑这些情况。另一种方法是从现实世界训练、验证和测试数据集预测的误报和漏报中得出合成数据的需求,以减少这些情况的发生。
  2. 了解合成数据可以为您的数据集和模型做什么,不能做什么:数据增强大大提高了模型的精确度,但并不会使模型达到完美。由于我们的合成数据分布接近我们知道的真实数据,因此它无法神奇地有效理解现实世界中产生的任何显著不同的数据,也无法创建训练数据无法引导它生成的预测或结果。我们还要考虑数据的来源和条件(例如,在ThisPersonDoesNotExist.com上生成的人脸是根据个人资料头像生成的。当天空阴云密布、房间光线很暗时,这些都无法帮助您的模型识别室内的图像)。
  3. 了解您可以使用的各种合成数据工具以及即将推出的工具:合成数据的常见方法是从现实世界克隆部分数据并叠加到另一个真实数据上,或者使用Unity或某些3D环境生成逼真的数据。但由于GAN和VAE技术的变化,这一领域正在快速发展。与其创建全新的数据,不如通过在真实数据基础上合成一些新组件(例如,在真实人脸上添加雀斑、改变阴影角度等)来创建现实世界数据的变体。另一个例子是,可以优化叠加的数据,使其更真实。还有许多其他工具可以使用,不过您需要首先了解它们。
  4. 数据的版本管理:当随着合成数据的生成,生成更好合成数据的能力也会增强。您上个月生成的图像现在可能会被更新版本的图像淘汰,后者看起来会更逼真(例如,您发现一种用于面部的更好的皮肤纹理,新的GPU可帮助您从光线跟踪中获得更细致的效果等)。您不会想用这些旧版本图像训练旧模型。版本管理将帮助您了解用新数据替换了哪些数据,并在您添加不同的合成数据或更新旧数据时验证模型的改进。

总之,您的合成数据可以提高模型在现实世界中的性能。您采取的任何方法或生成的数据都必须使您的模型更可靠,并有助于改善其性能。根据模型的不足之处明确定义模型的需求,将能帮助您集中精力选择合适的工具并生成正确的数据。  

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人尽其才、数尽其用,Smartbi Eagle智慧数据运营平台全新亮相

数据是企业数字化转型的基石,也是赢得未来的核心资产和竞争力。数字化转型的关键,是在全公司建立一种数据驱动的组织和机制,营造数据文化的氛围,让更多的用户、在更多的场景中,有意愿、有能力使用数据,从而…

Android设备通过蓝牙HID技术模拟键盘实现

目录 一,背景介绍 二,技术方案 2.1 获取BluetoothHidDevice实例 2.2 注册/解除注册HID实例 2.3 Hid report description描述符生成工具 2.4 键盘映射表 2.5 通过HID发送键盘事件 三,实例 一,背景介绍 日常生活中&#xff0…

面试热题(单词搜索)

给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相…

【100天精通python】Day37:GUI界面编程_PyQT从入门到实战(上)

目录 专栏导读 1 PyQt6 简介: 1.1 安装 PyQt6 和相关工具: 1.2 PyQt6 基础知识: 1.2.1 Qt 的基本概念和组件: 1.2.2 创建和使用 Qt 窗口、标签、按钮等基本组件 1.2.3 布局管理器:垂直布局、水平布局、网格布局…

记一次前端直接上传图片到oss报错

前端直接上传图片到阿里云oss,相关过程官网和网上资料已经很详细,不做赘述。 但这个过程比较复杂,前后端对接过程中很容易出现报错,这里遇到了以下报错,不容易排查。 请求显示net::ERR_NAME_NOT_RESOLVED错误,catch输…

题目:售货员的难题(状压dp)

售货员的难题 题目描述输入输出格式输入格式&#xff1a;输出格式&#xff1a; 输入输出样例输入样例#1&#xff1a;输出样例#1&#xff1a; 思路AC代码&#xff1a; 题目描述 某乡有n个村庄( 1 < n < 16 )&#xff0c;有一个售货员&#xff0c;他要到各个村庄去售货&am…

【LangChain】P0 LangChain 是什么与准备工作

LangChain 是什么与准备工作 LangChain 是什么&#xff1f;所谓增强数据感知所谓与环境互动 Get Started下载安装 langchain下载安装 openai获取 OpenAI API Key通过名为 openai_api_key 的参数传递密钥 LangChain 是什么&#xff1f; LangChain 是一个利用语言模型开发应用程序…

也许你正处于《孤注一掷》中的“团队”,要留心了

看完这部电影&#xff0c;心情久久不能平静&#xff0c;想了很多&#xff0c;倒不是担心自己哪天也成为“消失的yaozi”&#xff0c;而是在想&#xff0c;我们每天所赖以生存的工作&#xff0c;跟电影里他们的工作比&#xff0c;差别在哪里呢&#xff1f; 目录 1. 产品的本质…

ElementUI 树形表格的使用以及表单嵌套树形表格的校验问题等汇总

目录 一、树形表格如何添加序号体现层级关系 二、树形表格展开收缩图标位置放置&#xff0c;设置指定列 三、表单嵌套树形表格的校验问题以及如何给校验rules传参 普通表格绑定如下&#xff1a;这种方法只能校验表格的第一层&#xff0c;树形需要递归设置子级节点prop。 树…

【0基础入门Python笔记】python 之基础语法、基础数据类型、复合数据类型及基本操作

python 基础&#xff08;一&#xff09; 基础语法规则基础数据类型数字类型&#xff08;Numbers&#xff09;字符串类型&#xff08;String&#xff09;布尔类型&#xff08;Boolean&#xff09; 复合数据类型List&#xff08;列表&#xff09;Tuple&#xff08;元组&#xff0…

Vue CLI创建Vue项目详细步骤

&#x1f680; 一、安装Node环境&#xff08;建议使用LTS版本&#xff09; 在开始之前&#xff0c;请确保您已经安装了Node.js环境。您可以从Node.js官方网站下载LTS版本&#xff0c;以确保稳定性和兼容性。 中文官网下载 确认已安装 Node.js。可以在终端中运行 node -v 命令…

【mysql报错解决】MySql.Data.MySqlClient.MySqlException (0x80004005)或1366

场景&#xff1a;c#使用mysql数据库执行数据库迁移&#xff0c;使用了新增inserter的语句&#xff0c;然后报错 报错如下&#xff1a; 1.MySql.Data.MySqlClient.MySqlException (0x80004005): Incorrect string value: ‘\xE6\x9B\xB4\xE6\x94\xB9…’ for column ‘Migratio…

Sigmastar SSC8826Q 2K行车记录仪解决方案

一、方案描述 行车记录仪是智能辅助汽车驾驶&#xff0c;和管理行车生活的车联网智能终端设备&#xff0c;利用智能芯片处理器、GPS定位、网络通信、自动控制等技术&#xff0c;将与行车生活有关的各项数据有机地结合在一起。 行车记录仪如今已经成了必不可少的车载用品之一&…

如何在安卓设备上安装并使用 ONLYOFFICE 文档

您可以使用文档安卓版应用&#xff0c;在移动设备上访问存在您 ONLYOFFICE 帐号中的文件。阅读本文&#xff0c;了解如何操作。 什么是 ONLYOFFICE 文档安卓版 适用于 Android 系统的 ONLYOFFICE 文档是一款全面的办公工具&#xff0c;您可以使用它&#xff0c;查看、创建、编…

Apache-Maven

安装Maven 解压apache-maven到目录下 Maven目录如下 bin&#xff1a;目录中存放的是可执行文件&#xff0c;JAVA项目中的编译执行打包都要使用bin. conf:存放的是Maven的配置文件&#xff0c;本地配置、私服配置都需要在conf下的settings.xml进行配置。 lib下存放的是Maven所…

ThreadLocal(超详细介绍!!)

关于ThreadLocal&#xff0c;可能很多同学在学习Java的并发编程部分时&#xff0c;都有所耳闻&#xff0c;但是如果要仔细问ThreadLocal是个啥&#xff0c;我们可能也说不清楚&#xff0c;所以这篇博客旨在帮助大家了解ThreadLocal到底是个啥&#xff1f; 1.ThreadLocal是什么&…

VS2019 + Qt : setToolTip的提示内容出现乱码

VS2019 Qt : setToolTip的提示内容出现乱码 在使用setToolTip()时&#xff0c; setToolTip(QString("asd你好&#xff01;");标签提示只有英文是对的&#xff0c;中文是乱码&#xff01; 应该是编码出了问题。默认情况下&#xff0c;Qt使用的是UTF-8编码&#xf…

Linux学习之sed多行模式

N将下一行加入到模式空间 D删除模式空间中的第一个字符到第一个换行符 P打印模式空间中的第一个字符到第一个换行符 doubleSpace.txt里边的内容如下&#xff1a; goo d man使用下边的命令可以实现把上边对应的内容放到doubleSpace.txt。 echo goo >> doubleSpace.txt e…

Redis系列(一):深入了解Redis数据类型和底层数据结构

Redis有以下几种常用的数据类型&#xff1a; redis数据是如何组织的 为了实现从键到值的快速访问&#xff0c;Redis 使用了一个哈希表来保存所有键值对。 Redis全局哈希表&#xff08;Global Hash Table&#xff09;是指在Redis数据库内部用于存储所有键值对的主要数据结构。…

CC2530实现呼吸灯效果-PWM调光-TIM1定时器使用

目录 一、前言 二、思路及实现方法 三、CC2530相关寄存器 四、思路以及代码实现 五、源码 一、前言 前面我们提到了非定时器模式实现呼吸灯效果&#xff0c;但由于其占用单片机主线程&#xff0c;如果不能加入RTOS的话&#xff0c;很难实现与其他功能的同步使用&#xff0…