合成数据在金融服务中的应用

开发成功的 AI 和 ML 模型需要访问大量高质量数据。但是,收集此类数据具有挑战性。与收集大型数据集相比,生成合成数据的成本低廉,并且可以在不损害客户隐私的情况下支持 AI/深度学习模型开发或软件测试。

合成数据在金融服务中的应用

人工智能在金融服务中有着广泛的应用,从流程自动化到聊天机器人和欺诈检测。据估计,到 447 年,银行从人工智能应用中节省的潜在成本总额将达到 2023 亿美元。

但是,其中一些应用程序有其局限性,因为财务数据是最敏感和个人身份的数据类型之一。举例来说,87%的美国人认为信用卡数据是适度或极度私密的。健康和遗传数据的数字为68%,位置数据为62%。

金融机构可以利用合成数据或基于真实数据人工生成的数据来克服隐私(和其他)挑战,并为客户提供创新的产品和服务。

您可以在下面看到金融机构的合成数据用例/优势:

1. 实现数据共享、协作和创新

GDPR 和 CCPA 等法规可能会阻止公司内部和机构之间共享财务数据。这可能会阻碍金融机构与金融科技合作伙伴之间或机构内部团队之间的宝贵合作。向第三方提供访问许可可能需要数月的官僚程序,甚至可能是不可能的。这使得金融机构在开发新产品之前很难评估潜在的合作伙伴。

在共享之前使用传统的数据屏蔽技术对敏感数据进行匿名化处理可能容易受到链接攻击。这些攻击旨在从匿名数据集中重新识别个人,通常是通过将匿名数据集与其他公开可用的数据集相结合。根据 2000 年一项经常被引用的研究,87% 的美国人口可以通过结合他们的性别、出生日期和邮政编码来唯一识别。

合成数据可以消除共享的风险。金融机构可以共享保留原始数据集重要特征的合成数据,而不是原始数据集。合成数据生成技术可以应用于广泛的数据类型,从表格到时间序列和人工图像。

2. 启用罕见事件(例如欺诈)预测

欺诈交易检测是机器学习在金融领域的主要应用之一。但是,包含欺诈活动的银行交易数据集通常是不平衡的:欺诈活动只占所有活动的一小部分。对于ML模型来说,从这种类型的数据集中学习以检测新的欺诈情况具有挑战性,因为较小的数据量会导致不准确的结果。

欠采样和过采样是处理不平衡数据集的两种技术。欠采样涉及删除非欺诈观测值以平衡数据集。它要求数据集很大,因为删除观测值可能会产生偏差。

另一方面,过采样正在产生新的欺诈活动,类似于真正的欺诈行为。然后,可以在平衡的数据集上训练 ML 模型,以获得更准确的结果。合成数据生成技术可用于创建人为的欺诈实例,以获得平衡的数据集。

3. 启用模拟

有时,金融机构可能希望在极端条件下测试策略,例如市场崩盘或应用程序故障。他们没有此类事件的不平衡数据集,而是可能缺少由这些条件产生的数据。合成数据可用于填补这些空白,并可以帮助组织制定针对此类事件的策略。

4. 提高监督式深度学习模型的准确性

大多数机器学习模型,尤其是深度学习模型,都是数据饥渴的。即使金融机构不缺乏训练 ML 模型的数据,ML 模型的准确性也很大程度上取决于数据大小。合成数据可用于增加数据大小。

除了增加数据量外,标记数据是合成数据在模型准确性方面的另一个优势。这与监督学习应用程序尤其相关,因为这些类型的模型从标记数据中学习。数据标注是一个劳动密集型过程,手动标注容易出错,从而导致模型不准确。合成数据为观察结果提供了正确的标签,消除了数据标记工作的必要性,并让位于更准确的 ML 模型。

5、合成数据工具

与合成数据相关的工具通常是为了满足以下需求之一而开发的:

  • 用于软件开发和类似目的的测试数据
  • 机器学习模型的训练数据

UnrealSynth 虚幻合成数据生成器 利用虚幻引擎的实时渲染能力搭建逼真的三维场景,为 YOLO 等 AI 模型的训练提供自动生成的图像和标注数据。UnrealSynth 生成的合成数据可用于深度学习模型的训练和验证,可以极大地提高各种行业细分场景中目标识别任务的实施效率,例如:安全帽检测、交通标志检测、施工机械检测、车辆检测、行人检测、船舶检测等。

UnrealSynth 生成合成数据的步骤:

1、将 GLB 文件添加到场景后,接下来就可以配置 UnrealSynth 合成数据生成参数,参数配置说明如下:

  • 模型类别: 生成合成数据 synth.yaml 文件中记录物体的类型
  • 环境变更 : 变更场景背景
  • 截图数量 : 生成合成数据集 image 目录下的图像数量,在 train 和 val 目录下各自生成总数一半数量的图片
  • 物体个数 : 设置场景中的物体个数,目前最多支持 5 个,并且是随机的选取模型的类别
  • 随机旋转 : 场景中的物体随机旋转角度
  • 随机高度 : 场景中的物体随机移动的高度
  • 截图分辨率: 生成的 images 图像数据集中的图像分辨率
  • 缩放 : 物体缩放调整大小

2、点击【确定】后会在本地目录中...\UnrealSynth\Windows\UnrealSynth\Content\UserData 自动生成两个文件夹以及一个 yaml 文件:images、labels、test.yaml 文件。

UnrealSynth\Windows\UnrealSynth\Content\UserData
    |- images
        |-train
            |- 0.png
            |- 1.png
            |- 2.png
            |- ...
         |-val
            |- 0.png
            |- 1.png
            |- 2.png
            |- ...
    |- labels
        |-train
            |- 0.txt
            |- 1.txt
            |- 2.txt
            |- ...
        |-val
            |- 0.txt
            |- 1.txt
            |- 2.txt
            |- ...
    |- synth.yaml

3、模型训练:数据集生成后有三个办法可以进行模型训练:使用 python 脚本、使用命令行、使用在线服务。

第一种是使用 python 脚本,需首先安装 ultralytics 包,训练代码如下所示:

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights

# Train the model
results = model.train(data='synth.yaml', epochs=100, imgsz=640)

第二种是使用命令行,需安装 YOLO 命令行工具,训练代码如下:

# Build a new model from YAML and start training from scratch
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

第三种是使用ultralytics hub 或者其他在线训练工具。

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号