TowardsDataScience 2023 博客中文翻译(三百四十七)

原文:TowardsDataScience

协议:CC BY-NC-SA 4.0

解锁路线可视化的力量:3 种基本技巧

原文:towardsdatascience.com/unlocking-the-power-of-route-visualization-3-essential-techniques-d9a4dbce4fec

分析路线的必知技巧

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Pranay Dave

·发布于 Towards Data Science ·4 分钟阅读·2023 年 1 月 29 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 José Martín Ramírez Carrasco 提供,来源于 Unsplash

路线可视化对交通规划、物流和供应链管理至关重要。在 AI 和数据科学领域,它被用于 ETA(预计到达时间)或车队优化等各种应用。

在博客中,我将介绍可视化路线的顶级技巧。为了说明博客内容,我将以波尔图市的出租车数据为例。出租车配有 IoT 设备,每 15 秒发出一次位置。

为了说明目的,我将使用与一次出租车旅行相关的数据。这些数据包含出租车在每个位置的速度和位置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

出租车轨迹数据(图片由作者提供)

现在让我们使用不同的技巧来可视化数据。

1. 路线折线图——基本但必备的技巧

路线折线图通常创建一个宽度为两像素的红色线条,显示路径或轨迹。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

路线折线图(图片由作者提供)

这是一个简单但非常有效的技巧,用于可视化出租车的行驶路线,从 Palacio de Bolso 到 HF Tuela Porto。你还可以观察到,路线的一半沿着杜罗河,另一半在城市内部。

看到简单的表格数据转变为充满见解的可视化图表总是令人惊叹!

2. 路线热力图——炫酷的展示

让我们通过使用热图来使分析更加生动。这里展示的是相同的路线,但用红色和绿色点标记。红色点表示数据中有更多的定位点,相比之下绿色点则较少。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

路线热图(图片由作者提供)

上图中带有红色和绿色点的卫星地图,看起来像是一部惊悚片的场景!

我们可以观察到定位点更多的地方。由于物联网传感器每 15 秒发射一次数据,这意味着出租车停了下来或速度较慢。通过进一步的分析,我们可以得出结论,出租车在起点和终点停靠,在转弯处速度较慢。

如你所见,与路线折线图相比,这提供了更多的信息。

3. 路线标记分析——在路线中加入数据分析

现在,让我们通过将路线分析与数据分析结合起来使其更加智能。数据中有一个速度列,急需被分析!让我们为这个列做一些公正的分析。

分析附加数据的有效方法之一是使用标记。下图展示了带有标记的路线,这些标记指示了最大速度点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

带有最大速度标记的路线分析(图片由作者提供)

除了最大速度之外,你可以引入其他任何数据科学技术。其中一个有趣的分析是异常值分析。这里展示的是带有标记的路线,标记指示了高值的异常点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

带有异常速度标记的路线分析(图片由作者提供)

也可以将其与箱线图进行比较。通常,在速度分析中,只有高值的异常值是有用的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

速度箱线图(图片由作者提供)

基于数据科学算法放置标记提升了路线分析。这里你看到的是速度的示例,但你可以在其他各种数据上引入标记,例如加速度或任何其他车辆传感器数据。

结论

路线可视化可以通过简单、花哨和智能的技术来完成。掌握所有这些技术对于有效解决交通规划、物流和供应链管理等关键用例非常有用。

数据源

用于本文的数据摘自以下数据集:archive.ics.uci.edu/ml/datasets/Taxi+Service+Trajectory+-+Prediction+Challenge,+ECML+PKDD+2015

可用于商业或非商业用途,引用时请使用以下说明

Moreira-Matias, L., Gama, J., Ferreira, M., Mendes-Moreira, J., Damas, L., “使用流数据预测出租车乘客需求”。发表于:IEEE 智能交通系统学报,第 14 卷,第 3 期,第 1393–1402 页,2013 年 9 月

使用我的推荐链接加入 Medium

[## 使用我的推荐链接加入 Medium - Pranay Dave

阅读 Pranay Dave 和数以千计的其他作者在 Medium 上的每一个故事。您的会员费直接支持……

pranay-dave9.medium.com

订阅以便每当我发布新故事时保持更新

[## 每当 Pranay Dave 发布新内容时,获取电子邮件。

每当 Pranay Dave 发布新内容时,您将收到一封电子邮件。通过注册,您将创建一个 Medium 账户(如果您还没有的话)……

pranay-dave9.medium.com

额外资源

网站

您可以访问我的网站,这是一个无代码平台,从应用程序和业务用例的角度学习 AI 和数据科学。https://experiencedatascience.com

YouTube 频道

这是我 YouTube 频道的链接

www.youtube.com/c/DataScienceDemonstrated

利用 LLMs 解锁文本数据的力量

原文:towardsdatascience.com/unlocking-the-power-of-text-data-with-llms-3ddcd063274a

数据科学实验室

学习如何使用 LLMs 处理文本数据:新手逐步指南

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Sofia Rosa

·发表于 Towards Data Science ·11 分钟阅读·2023 年 10 月 23 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

作者使用 Midjourney 生成的图像

客户评论、员工调查和社交媒体帖子在揭示人们对特定产品或服务的态度方面可能非常有力。然而,大多数数据分析师对这种类型的数据几乎不做任何处理。你问为什么? 从文本数据中生成见解并非易事,即使是最有经验的数据分析师也可能为此苦恼数天。

这就是大型语言模型(LLMs)派上用场的时候。它们可以帮助执行翻译、总结、情感分析等任务。但究竟什么是 LLM? 简而言之,你可以把 LLM 想象成一只鹦鹉。就像鹦鹉重复它在家听到的东西一样,LLM 模仿人类语言。一个关键的区别是,LLMs 已经在大量数据上进行过训练——远远超过了鹦鹉在笼子里能学到的东西!这就是 LLMs 能够生成连贯且与上下文相关的文本,而不是像鹦鹉那样偶尔说些无稽之谈的原因。🦜

在这篇文章中,我们将探讨 LLMs 如何工作,以及它们如何使数据分析师比以往更容易从文本数据中提取见解。目前有多种 LLMs 通过 API 提供,每种 LLM 具有不同的功能和价格。我们将使用 OpenAI API 中的 GPT-3。在撰写时,OpenAI 根据请求次数和生成的令牌数量收费。此次教程的总费用为$0.2。

现在开始深入探索吧!

目录

▹ 第 1 步:下载数据

▹ 第 2 步:读取数据

▹ 第 3 步:数据预处理

▹ 第 3a 步:处理 NaN 值

▹ 第 3b 步:为 GPT-3 转换文本

▹ 第 3c 步:计算令牌

▹ 第 4 步:设置 OpenAI 账户

▹ 第 5 步:使用 GPT-3

▹ 第 6 步:总结结果

先决条件

为了跟随本教程,你需要具备以下内容:

  • Python 的基础知识

  • Python 3 环境

  • OpenAI API 密钥(见第 4 步

第一步:下载数据

我们将使用的数据集是 Kaggle 在 2017 年进行的一项行业调查,旨在揭示机器学习和数据科学的新趋势。在本教程中,我们将仅使用 freeformResponses csv 文件,该文件包含对 Kaggle 问题的开放式回答。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

freeformResponses csv 文件的片段

第二步:读取数据

接下来,我们将把 csv 文件读取到数据框中,并重点关注“PersonalProjectsChallengeFreeForm”列。该列包含人们在使用公共数据集进行个人项目时面临的挑战。作为数据科学和机器学习平台,Kaggle 可以利用这些见解来改进其服务(例如,通过开发相关内容、教程和专门解决这些挑战的资源)。

# load library
import pandas as pd

# read file and create df
df = pd.read_csv('freeformResponses.csv', usecols = ['PersonalProjectsChallengeFreeForm'])

# check output
df.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出

第三步:数据预处理

数据预处理涉及一系列步骤,以清理和准备数据以进行分析。GPT-3 可以处理相对干净和结构化的文本数据,而无需 extensive 预处理。然而,对于复杂或非标准的数据,可能需要一些额外的预处理,以确保在利用 GPT-3 时获得最佳结果。如果你的文本包含多种语言、拼写错误或领域特定术语,需要特别注意这一点。

第 3a 步:处理 NaN 值

我们将首先处理 NaN(非数字)值。NaN 值表示缺失或未定义的值,具有非常独特的属性,因此在早期使用 isna() 函数检测它们是很重要的。一旦识别出这些值,我们可以采取适当的措施有效地处理它们。

# count NaN values
df.isna().sum()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出

有 13,214 个 NaN 值(占所有响应的 80%!),这意味着这些人没有回答问题。最简单的方法是使用 dropna() 函数删除所有包含 NaN 值的条目。然而,根据你的具体使用情况,你可能更愿意以其他方式处理 NaN 值,例如通过用特定值替换它们。

# drop NaN values
df = df.dropna()

# check output
df.head()

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出

为演示目的,我们将仅使用调查中的前 500 条(非空)响应。

# select first 500 rows
df = df.head(500)

第 3b 步:为 GPT-3 转换文本

接下来,我们将把文本数据转换为适合 GPT-3 的格式。我们将从“PersonalProjectsChallengeFreeForm”列中提取所有值,并将它们存储在“challenges”列表中。这一转换从使用 squeeze()函数开始,该函数将数据框转换为 pandas 系列。随后,tolist()函数将这个系列转换为列表。

# convert df into a series and then into a list
challenges = df.squeeze().tolist()

# check output
challenges[:5]

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出

在这个示例中,“challenges”是一个列表,其中每个元素代表原始调查的一个回应。我们将把这个文本作为输入提供给 GPT-3。

第 3c 步:计算 tokens

我们的文本几乎准备好用于 GPT-3 了。在我们继续之前,了解 GPT-3 如何处理文本是很重要的。最初,它执行分词,这涉及将文本拆分成称为tokens的更小单元。Tokens 是文本单元,例如句子、单词、数字,甚至标点符号。例如,短语“hello friend!”可以拆分为三个 tokens:“hello”、“friend”和“!”。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分词示例

在分词之后,GPT-3 继续进行编码,这意味着它将这些 tokens 转换为 token 数字。在我们的示例中,三个 tokens“hello”、“ friend”和“!”可以转换为三个 token 数字:“15339”、“4333”和“0”。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

编码示例

通过确定文本中的 tokens 数量,我们将知道文本是否过长而无法被模型处理,以及 OpenAI API 调用的费用(API 调用的费用是根据输入中发送的 tokens 数量以及 GPT 返回的 tokens 数量来计费的)。

为此,我们将安装一个名为tiktoken的库,并导入必要的模块encoding_for_model。由于不同的 LLM 使用不同的方法对文本进行编码,我们需要指定我们将使用的模型,即“gpt-3.5-turbo-16k”。然后,我们将对每个句子进行分词和编码。

# install library
pip install tiktoken

# import library
from tiktoken import encoding_for_model

# define the model for encoding text, in this case, "gpt-3.5-turbo-16k"
enc = encoding_for_model("gpt-3.5-turbo-16k")

# create an empty list to store tokens
tokens = []

# loop through each sentence in the 'challenges' list
for sentence in challenges:
    # encode the sentence using the specified model and append it to the 'tokens' list
    tokens.append(enc.encode(sentence))

# check output
pd.DataFrame(data={'challenges':challenges, 'tokens':tokens}).head(3)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出

最后一步是计算 tokens,这可以通过确定列表“num_tokens”的长度来完成。

# create an empty list to store the number of tokens
num_tokens = []

# iterate through the 'tokens' list, which is a list of lists
for item in tokens:
    # nested loop to iterate through sublists within 'tokens'
    for subitem in item:
        # append the subitem (token) to the 'num_tokens' list
        num_tokens.append(subitem)

# check output
len(num_tokens)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输出

要根据我们的输入估算总费用,我们可以参考定价文档。在我们的情况下,4629 个 tokens 将转换为 0.01 美元的费用。

第 4 步:设置 OpenAI 账户

我们的文本终于准备好用于 GPT-3 了(我们离好东西越来越近了!)。要使用 GPT-3,我们将使用 OpenAI API。确保你已经设置了 OpenAI 账户以访问 OpenAI API。如果你还没有账户,请按照下面的步骤创建一个。

首先,访问 OpenAI 网站,并点击页面右上角的“注册”按钮。填写表单,输入你的电子邮件地址,创建一个密码,并提供其他必要的信息。然后,点击“创建账户”按钮。请留意你的收件箱,你会收到一封确认邮件。点击邮件中的链接来验证你的账户。完成这些步骤后,你就可以登录了。

账户创建后,下一步是为其充值。请记住,在使用 API 时,你会为使用量付费。只需前往“管理账户”并找到“账单”标签。在那里,你可以添加你的支付卡详细信息,并指定你希望在账户中存入的初始金额。

最终的重要步骤是生成你的 API 密钥,它作为对 API 的私密访问密钥。你可以在“API 密钥”标签中创建它。请妥善保管此密钥,因为如果丢失无法恢复。不过,如果不幸丢失,你可以选择创建一个新的密钥。

第 5 步:使用 GPT-3

现在我们已经通过 OpenAI API 访问了 GPT-3,我们可以发送包含输入和 API 密钥的请求。作为回报,我们将获得包含 GPT-3 输出的响应。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用 GPT-3 通过 OpenAI API

首先,我们将安装一个名为 openai 的库。然后,我们将设置 API 密钥以验证我们的请求。

# install library 
pip install openai

# import library
import openai as ai

# replace 'your_api_key' with your actual API key
ai.api_key = 'your_api_key'

我们将文本发送给 GPT-3 并要求其总结主要话题,这些话题随后存储在“response”变量中。

💡 注意这段代码是一个简化的示例,你可以根据具体需求调整用户消息和系统消息,以适应各种任务。

# get GPT-3 response
response = ai.ChatCompletion.create(
    model = 'gpt-3.5-turbo-16k',
    messages = [
        {"role": "system", "content": "You're a helpful assistant. Your task is to analyze a set of reviews."},
        {"role": "user", "content": f'''
            Below is a set of reviews. Please, identify the main topics mentioned in these comments. 
            Return a list of 5 topics with description. Reviews:
            {challenges}
            '''
        }
    ],
    temperature = 0,
    max_tokens = 6000
)

让我们一步步分析代码:

  • response = ai.ChatCompletion.create(:这一行发起一个请求到 GPT-3,并将响应赋值给变量“response”。

  • model = 'gpt-3.5-turbo-16k':这个参数指定使用哪个 GPT-3 模型。

  • messages = [ ... ]:这一部分定义了一系列消息,GPT-3 将为这些消息生成响应。每条消息都有一个角色(例如系统或用户)和内容。系统消息有助于设置 GPT-3 的行为。例如,我们可以说:“你是一个有用的助手。你的任务是分析一组评论”。而用户消息则提供指示以完成任务。例如,我们可以说:“下面是一组评论。请识别这些评论中提到的主要话题”。

  • temperature = 0:这个参数影响响应的随机性。你可以将其视为控制响应的创意性和不可预测性的方式。将其设置为 0 意味着你每次提问都会得到相同的输出,几乎像是坏掉的唱片。另一方面,将其设置为较高的值(例如 0.8)则意味着你将获得新的输出。

  • max_tokens = 6000:此参数指定了响应可以包含的最大令牌数。将其设置为 6000 可确保响应不会超过此长度。如果响应超出此限制,它将被截断。

在收到 GPT-3 的响应后,我们将返回内容(不包括任何额外的元信息)。

# show response
response['choices'][0]['message']['content']

GPT-3 返回了五个话题:

1. 数据清理和准备:许多评论提到清理和准备数据进行分析的挑战。这包括处理缺失值、格式问题、非结构化数据和数据整理的需求。

2. 数据质量和文档:一些评论强调了数据质量差的问题,包括缺乏文档、不正确的文档和不可靠的数据。还提到了数据完整性、准确性和可靠性的问题。

3. 寻找和访问相关数据集:许多评论者表达了在为他们的项目寻找合适数据集方面的困难。这包括找到符合特定要求的数据集的挑战、可用性不足、公共数据集的规模或相关性有限以及收集个人数据的需求。

4. 连接性和数据融合:一些评论提到与数据连接性和融合相关的挑战,例如整合来自不同来源的数据、处理不一致的格式和合并数据集。

5. 计算能力和可扩展性:一些评论提到与计算能力和可扩展性相关的挑战,特别是在处理大型数据集或在单台机器上处理数据时。

这些话题反映了个人在处理数据时面临的常见挑战,包括数据质量、数据准备、数据集可用性和技术限制的问题。

💡 注意虽然 GPT-3 本身很强大,但通过用你的训练数据对模型进行微调,通常可以获得更好的结果。

第 6 步:总结结果

这些话题反映了个人在处理数据时面临的常见挑战,包括数据准备、数据质量、可靠性和可扩展性相关的问题。像 Kaggle 这样的公司可以利用这些见解来开发专门解决这些挑战的教育材料,从而为他们的社区提供宝贵的支持。

结论

在这篇文章中,我们探讨了大型语言模型(LLMs)在从文本数据中提取洞察力方面的巨大潜力。我们讨论了 LLMs 是如何工作的,以及它们如何成为处理文本数据的数据分析师的游戏规则改变者。现在你有了将这些概念应用于你自己文本分析任务的知识。

希望你发现这篇文章对你有帮助。如果你有任何问题或想法,我很乐意在评论中阅读它们!

解锁慢变维(SCD)的秘密:八种类型的全面视角

原文:towardsdatascience.com/unlocking-the-secrets-of-slowly-changing-dimension-scd-a-comprehensive-view-of-8-types-a5ea052e4b36

深入指南:何时以及如何使用 8 种类型的 SCD

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Chengzhi Zhao

·发布在Towards Data Science ·12 分钟阅读·2023 年 7 月 17 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由Donald Tran拍摄,发布在Unsplash

如果你正在设计数据仓库,了解维度建模的方法论至关重要。这个方法论中最重要的概念之一是慢变维(SCD)。许多在线资源提供了关于慢变维的概述,但往往缺乏对使用哪种类型 SCD 的深入解释。

本文将讨论八种类型的 SCD,每种类型都有其独特的特点和应用场景。到最后,你将清楚地理解每种类型,并能在创建下一个维度建模中的 SCD 时进行区分。

为什么在维度建模中需要 SCD?

通常,OLTP 只存储近期数据。在执行更新语句时,当前数据会被替换,之前的数据将丢失,除非系统专门设计来保留历史数据,否则可能会增加延迟。

另一方面,OLAP 系统通常使用维度建模,它关注趋势并为业务提供洞察,通常更愿意保留历史记录。

SCD 的主要目标是追踪变化的历史。

在维度建模中,最常用的模式是星型模式。该模式围绕一个大的事实表展开,该事实表包含了您业务的各种度量字段。围绕事实表的维度表包含了允许对事实表中的数据进行操作和分析的字段。事实表通常有许多行,并且期望快速更新。另一方面,维度的变化很慢或永不变化。

替代键的重要性

事实表与维度表之间的连接是每个表中的键。这些通常是替代键,而不是 OLTP 系统中使用的 ID。替代键通常在数据仓库处理数据时生成,并在查找 OLTP ID 后确定。这对于某些类型的 SCD 来说至关重要,以避免在表上丢失主键,我们将在稍后的类型 2 中讨论这些问题。

为什么在维度建模中必须生成“替代”键,而不是重用原始业务 ID?使用替代键的一个好处是能够跟踪历史变化,同时避免键的重复。

让我们以一个名为“公司”的表作为 OLTP 系统中的示例。假设我们只有一家公司叫 Xesla,总部在加州帕洛阿尔托。然后 Xesla 决定迁往加州奥斯丁。然而,由于夏天湿度过高,Xesla 又回到了加州帕洛阿尔托。

如果我们查看 OLTP 端,它通常只保留当前的 location_id,而总部从加州搬迁到奥斯丁再到加州的过程是不可见的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

公司表的 OLTP 模式 | 作者提供的图片

在 OLTP 中直接执行分析查询有一定的劣势。对历史数据的忽视可能对业务不利。我们无法回答诸如“公司利润因总部搬迁而表现如何?”、“由于总部搬迁,员工流动率如何?”等问题。

在这种情况下,跟踪历史数据和替代键有助于保持行的唯一性和表的完整性。

我们引入了一个作为替代键的“键”列,这解决了多个问题。首先,它使我们能够跟踪公司总部的迁移历史。其次,它提供了一个唯一的主键,替代了业务 ID,消除了违反要求每行的主键唯一性的基础数据库规则的情况。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

维度的替代键 | 作者提供的图片

我们仍需讨论维度表与事实表之间的关系及其使用。我们将在讨论每种 SCD 时解决这些问题。

SCD 类型 0 — 不允许更改

概述

SCD 是一种“特殊”类型的 SCD,不跟踪变化。本质上,类型 0 表示维度将保持不变。一旦条目进入 SCD 类型 0,它将不会改变。例如,我们可以有一个不会改变的日期维度。

这里一个令人困惑的点是日期维度将是固定的(SCD 类型 0),但我们对日期的解释可能会有所不同。例如,我们可能有与日历年不同的财政年度。我们可以设计我们的事实表,其中一个键是 calenderKey,另一个键是 fiscalCalenderKey。

实施

SCD 类型 0 也可以包括业务 ID,因为变化不会被跟踪,原始条目不能被覆盖。

何时考虑使用

对于固定维度,如日期和时间,SCD 类型 0 是最佳选择。这种类型最适合在您确定维度只需要添加新记录而没有未来更新时使用。

SCD 类型 1 — 更改覆盖

概述

SCD 类型 1 类似于许多 OLTP 设计,这些设计用新数据替换原始数据,使得跟踪单行的变化变得不可能。

与 SCD 类型 0 不同,类型 1 中更新维度行是可实现的。然而,类型 1 不保留历史记录。使用数据的用户可以假设维度的当前快照始终是最新的。

实施

SCD 类型 1 的实现可以是直接的:查找正确的 ID 并执行更新。

何时考虑使用

“我们是否总是希望保留历史记录?”

是否需要跟踪历史数据取决于您的业务用例。保留更多的数据点可以提供对数据集的更全面了解。将历史记录纳入您的维度建模设计可能是有利的。然而,不跟踪历史记录可以简化 ETL 管理。

有趣的是,前两种 SCD 类型无法跟踪任何变化。更强大的 SCD 类型从 SCD 类型 2 开始。

SCD 类型 2 — 使用新行跟踪历史记录

概述

SCD 类型 2 是一种强大的 SCD 类型,广泛用于跟踪维度建模中的变化。它具有快速显示变化历史记录的能力,非常实用。

当数据发生变化时,SCD 类型 2 会复制未更改的字段,这可能会重复并增加存储成本。为了更好地适应快速更新的维度,需要改进。

我们已经有了类似于我们在 Xelsa 示例中查看的模式的代理键。现在,我们可以添加有效的开始和结束日期,以指示该行处于活动状态的时间段。

在这种情况下,当前活动行的有效结束日期设置为未来的 12/31/9999,因此它不会(至少在较长时间内)过期。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SCD 类型 2 示例 | 作者提供的图片

实施

要执行 SCD 类型 2,我们需要执行两个任务:

  • 添加代理键

  • 添加一个当前行标识符,例如:开始/结束日期、版本号或当前标志。

在 ETL 方面,相比于 SCD 类型 1,实施过程更为复杂。此过程通常包括以下步骤:

  1. 用所有行的结束有效日期设置为 12/31/9999 来初始化维度表

  2. 当识别到更新时,查找 ID 以确定正确的行

  3. 按需要更新现有行的结束日期。

  4. 插入一行新的数据,ID 相同但替代键不同。使用前一行的结束日期 + 1 作为新行的开始日期,并将结束有效日期设置为 12/31/9999。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SCD 类型 2 实施步骤 | 图片由作者提供

何时考虑使用

关于 SCD,默认情况下通常选择类型 2 选项,因为它对消费者更简单。然而,如果一个维度频繁发生变化,可能会有更好的选择,因为重复未更改的字段多次可能会很昂贵。例如,我们有一个展平的维度,包含 50 个字段,一次字段更新可能导致其余 49 个字段再次重复。

SCD 类型 3—使用新字段跟踪历史

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 Super SnapperUnsplash 提供

概述

我认为 SCD 类型 3 是一种“队列”选项。与其复制整个行并跟踪表的历史,SCD 类型 3 只跟踪选定字段的变化。由于类型 3 是在列级别进行的,保持有限数量的历史(通常是当前值和前一个值)是其实施方式。

继续以 Xesla 为例,假设我们只对跟踪状态和城市历史感兴趣。我们可以包括前一个状态和城市的列以跟踪历史。这里的历史仅限于最后一个,但我们可以通过额外的列追溯尽可能远的历史。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SCD 类型 3 示例 | 图片由作者提供

实施

SCD 类型 3 类似于一个大小有限的队列。在更新过程中,需要执行查找,前一个值将被丢弃,然后当前值将移到前一个值字段。

何时考虑使用

如果你希望跟踪一小部分列的历史,SCD 类型 3 是有利的。为了有效掌握业务的性质和变化频率,拥有坚实的知识基础是至关重要的。特别是在将 SCD 类型 3 扩展到新领域时,这一点尤为重要,因为这需要添加额外的列。

SCD 类型 4—使用单独的表(迷你维度)跟踪历史

概述

我们已经覆盖了通过 SCD 类型 2 在同一表中垂直跟踪历史和通过 SCD 类型 3 水平跟踪历史。SCD 类型 4 就像 Z 轴一样,我们在另一个表中跟踪历史。

一个表是当前视图表,另一个表是历史表。这与 CDC 的概念类似。当前表显示现在;历史表变更日志可以从头重建一切。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SCD 类型 4 | 作者图片

如果我们将这两个表合并,那就是 SCD 类型 2。那我们为什么要拆分当前视图和历史视图?主要原因是如果维度表更新迅速并最终达到数百万条记录,拆分当前视图可以帮助提高查询性能。保持当前视图相对较小可以提升最终用户的查询性能。

实现

关于数据更新,SCD 类型 2 涉及在同一个表中更新信息。然而,对于 SCD 类型 4,你必须使用两个独立的表。SCD 类型 4 的数据更新过程与 SCD 类型 2 遵循相同的模式。

使用时机

如果 SCD 类型 2 变得过大并开始影响查询速度,可能值得考虑切换到 SCD 类型 4。此外,如果你注意到维度表更新频繁,SCD 类型 4 可能是一个更好的选择,以准确跟踪完整的历史记录。

以下 SCD 类型 5、6、7 都是混合方法

SCD 类型 5 — 类型 4 小维度 + 类型 1 附加表

概述

SCD 类型 5 是对 SCD 类型 4 的一种增强,它融合了类型 1 的元素。它允许将一个维度的当前视图嵌入到另一个维度中。

SCD 类型 5 创建了一个雪花模式,并将当前视图保留为附加维度。然而,对于任何 BI 工具或展示层,将这两个维度合并为一个更好,以减少混淆。

例如,我们希望将公司的维度嵌入到员工表中,并链接到 employer_key。Current_Company_D 是当前视图。如在 SCD 类型 4 中讨论的那样,它通过 employer_key 作为外键引用。

如果需要进行更新,它将像 SCD 类型 1 一样工作。这意味着我们必须用新的当前公司 ID 参考覆盖 employer_key。为了避免与 SCD 类型 4 的历史数据混淆,最好将当前表前缀设置为 “Current_”。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SCD 类型 5 | 作者图片

实现

在 ETL 层维护 SCD 类型 5 可能是一项复杂的任务。这需要大量的工作来与 SCD 类型 4 和类型 1 结合。此外,确保适当的引用和准确的查找非常重要。

三个表必须一致并在更新时进行实现:主表、当前视图表和历史表。

使用时机

与其他 SCD 类型相比,SCD Type 5 通常讨论较少。管理 SCD Type 5 的 ETL 工作量很大。当当前视图的更新速度迅速增加时,单靠引用键变更很难跟踪所有变化,这时可以考虑使用 SCD Type 5。

SCD Type 6— 混合 SCD 1 + SCD 2 + SCD 3

概述

SCD Type 6 是将 SCD 1 + SCD 2 + SCD 3 混合而来的。这一过程初看可能比较冗长,但当你需要澄清未来潜在变化时,它非常适用。拉尔夫·金博尔(Ralph Kimball)说 SCD Type 6 是“一版本覆盖的不可预测变化”。

让我们继续使用示例来说明 SCD Type 6 的工作原理。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SCD Type 6 | 作者提供的图片

要将 SCD Type 6 拆分为各个类型,我们可以通过检查以下内容来实现:

  • SCD Type 1:我们为特定 ID 的所有行覆盖当前状态和当前城市。

  • SCD Type 2:当发生新变化时,我们创建第二行以跟踪演变和历史,并且翻转当前行标志和有效日期。

  • SCD Type 3:我们还添加了历史状态和历史城市字段,以便我们知道过去的值是什么。

实施

SCD Type 6 是 SCD Type 1 到 3 的组合。实施细节可以参考上述之前的实施方案。

使用时机

SCD Type 6 拥有丰富的上下文,并且可以相对快速地执行查询。由于它是一种混合的 SCD 方法,所有功能都包含在一个视图中,初看时可能会吸引你。

然而,SCD Type 6 增加了维度的行和列,导致增长速度远超用户的预期。在这些情况下,找到灵活性与丰富性之间的平衡至关重要,进行业务访谈和对齐也非常关键。

当你想展示信息的呈现方式并在一个视图中展示各种 SCD 类型时,SCD Type 6 是一个出色的 POC 选择。

SCD Type 7 — 通过逻辑拆分重新思考 Type 6

概述

SCD Type 7 是 SCD Type 6 的一种变体,也称为“Dual Type 1 and Type 2 Dimensions”。在 SCD Type 7 中,我们将一个 SCD Type 6 维度表分成两个不同的表:历史视图和当前视图。我们在事实表中使用双重外键来引用这些表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

SCD Type 7 | 作者提供的图片

使用 SCD Type 7 的一个优点是它允许我们为历史和当前表保持独立的键,保留各自的历史。这消除了将当前公司表绑定到与历史表相同的代理键的需要。

实施

基于当前视图,SCD Type 7 需要较少的 ETL 努力,因为它是从历史表中衍生出来的视图。一旦你有了 SCD Type 2 表,剩下的任务就是创建当前视图表并将键连接到事实表。

使用时机

使用 SCD 类型 7,用户可以快速访问当前视图和历史数据,而无需花费时间理解维度表的结构。与需要选择生效日期或当前行标志来查看现有数据的 SCD 类型 2 不同,SCD 类型 7 通过在事实表中推导出另一个关键字段来简化了这一过程。这为用户节省了时间和精力。

最终思考

理解慢变维(SCD)在数据仓库的维度建模中至关重要。虽然 SCD 类型 2 或类型 3 常用于跟踪历史,但其他类型的 SCD 也可以根据用户需求解决特定的问题。

我希望我对维度建模中的慢变维(SCD)的深入探讨能够对你在设计和构建数据仓库时有所帮助。

解锁用户激活与根本原因分析

原文:towardsdatascience.com/unlocking-user-activation-with-root-cause-analysis-f7469a672c88?source=collection_archive---------16-----------------------#2023-03-20

逐步指南:如何进行结构化根本原因分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Jordan Gomes

·

关注 发布于 Towards Data Science ·6 分钟阅读·2023 年 3 月 20 日

在我之前的文章中,我讨论了如何为你的业务定义激活指标——那些你可以在短期内推动并在长期内产生影响的指标。

建立这些是迈向产品增长伟大旅程的第一步,一旦你识别出这些内容——这时有趣的部分才开始。你接下来的任务就是理解哪些方法和最有效的杠杆可以推动这些内容。

这就是根本原因分析可以帮助你的地方。RCA 是一种结构化的问题解决方法,可以提供对使用哪些杠杆以及它们对你期望结果的贡献程度的更好理解。它将帮助你深入了解当前的问题并识别其根本原因。

我特别喜欢这种分析方法,因为它位于定量和定性方法的交汇点。这使其成为一种高度跨职能和全面的研究,其中利用定性数据对于识别潜在原因和测试假设是必要的。

为了让这些内容更易于理解,我们将重用我在之前文章中使用的相同例子:

  • 你经营一个健身应用程序。

  • 你刚刚发现,上传锻炼视频的用户在下载应用程序后的 7 天内更有可能继续使用你的应用程序,而不是那些没有上传的用户。

  • 你现在在思考如何才能最好地推动这个指标。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Matteo Grando 拍摄的照片,来源于 Unsplash

什么是 RCA

根本原因分析(RCA)是一种结构化的问题解决方法,它帮助你识别问题的根本原因,而不仅仅是处理其症状。它可以让你真正了解“为什么”——为什么事情会以这种方式发生。其输出可以有多种形式——但通常可以表示为“决策树”或“失败树”,这些形式易于理解,非常直观,商业利益相关者尤其喜欢。

Digressing a bit — this methodology can be applied to virtually any problem, 
and in its simplest form, it doesn’t require any particular data knowledge. 
If properly used, it can be a great tool to make you think about complex 
systemic interactions and allow you to move away from a symptom to its cause. 

它通常包括大约 5 个步骤:定义问题、收集数据、识别和评估不同的原因、识别根本原因以及制定解决方案计划。此外,它不仅允许你了解“为什么”,还可以让你对如何能在你的问题上取得多大进展有个粗略估计(从这些估计中你可以建立优先级模型、OKRs 等)。

常规的根本原因分析步骤

#1: 定义问题:根本原因分析的第一步是明确你想解决的问题。在我们的例子中(以及在此阶段),问题相当直接:“我们如何在用户注册我们的移动健身应用程序后的 7 天内增加上传锻炼的用户数量,以提高用户保留率?”

#2: 收集数据:下一步是收集有关问题的数据。这包括收集有关问题的信息,例如何时发生/发生了什么/谁受到影响/他们如何受到影响。重要的是要获得问题的定量和定性视角,并与受影响的人员和/或该主题的专家交谈。

#3: 识别和评估可能的原因:这才是真正有趣的部分!一旦你有了数据,下一步就是识别问题的可能原因。这包括与一些主题专家进行头脑风暴,并与用户交谈,以便能够全面了解可能导致问题的所有因素——包括非常明显的因素,也包括那些可能不那么明显的潜在原因。

在这一步中,你可以使用回归分析来获取一些灵感。当你完全不知道从哪里着手时,回归分析会很有用。它可以帮助你找到与问题高度相关的特征,然后从那里手动深入研究,以更好地理解问题。

在我们的例子中,假设我们发现某些国家或设备与激活的可能性高度负相关。在这种情况下,可能值得进一步探讨:

  • 也许翻译存在一些问题?

  • 也许在某些设备上存在显示错误?

  • 等等。

Note that as always, correlation is not causation — this method can help you 
find subsets of users worth looking into, but the results shouldn’t be taken
directly (i.e. without further checking) for your root cause analysis. 

一旦你识别出所有可能的原因,并开始构建你的树形图,重要的是要评估这些原因并了解它们对问题的贡献程度。对于一些原因,这将很简单,因为你会有数据;而对于其他原因,则可能稍微复杂一些,你可能需要收集更多的数据和/或发挥一些想象力来生成一些现实的估计——但通过这些权重,当你开始撰写建议并决定调整哪些杠杆时,这将使事情变得更加简单。

#4: 迭代直到识别出根本原因:现在你已经识别出决策树的第一个节点,你可以重新迭代,直到找到实际的原因。作为一个经验法则,你应该尝试进行最多 5 次迭代(即“5 个为什么”技术)——这是一个很好的强迫性方法,挑战你真正思考第二/第三层次的效果,而不仅仅是明显的原因。

如果我们回到我们的例子,它可能看起来像这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

针对健身应用激活率的根本原因分析示例(图像由作者提供)

#5: 制定行动计划:现在你已经对潜在根本原因有了清晰的了解,最后一步是制定一个行动计划来解决这些问题。我写了一篇关于“如何优先考虑进行哪些数据科学项目”的文章:这里的思路类似:你需要根据不同的参数来优先考虑要调整哪个杠杆,这些参数可以包括(但不限于):机会的大小、执行能力、对结果的信心、市场时间等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据项目的时间投资矩阵(图像由作者提供)

附赠:根本原因分析(RCA)和目标设定(例如 OKRs)

根本原因分析(RCA)不仅能让你更好地了解是什么驱动了问题,还能让你更好地理解如何解决它,以及你的修复可能会如何影响最终指标。

你在这里所做的工作,实际上也可以用于为你的公司设定目标/关键成果(OKRs):在上述示例中,你可以使用不同的权重(可能使用你用于优先级排序的参数,如对结果的信心进行折扣)来告知公司可以设定的不同目标。

最终,根本原因分析(RCA)是一个易于使用、漂亮的工具,可以帮助你的团队做出更好的决策。它不需要高水平的技术技能,但需要有组织性,并结合定量和定性数据。如果操作得当,它可以产生巨大的影响。

希望你喜欢阅读这篇文章!你有什么想分享的技巧吗?请在评论区告诉大家!

如果你想阅读更多我的文章,这里有一些你可能会喜欢的内容

使用倾向评分匹配来构建领先指标

构建产品激活指标的简短指南

如何构建成功的仪表盘

来自于一些构建了几个不成功的项目的人提供的清单

如何选择数据项目

如果你对如何使用时间有合理的方法,你可以优化你产生的价值。

选择数据项目的短指南

揭示 AI 对跨性别社区的有害影响

原文:towardsdatascience.com/unmasking-ais-detrimental-effects-on-the-trans-community-d8f870949d79

性别识别软件的危险、不足的医学模型以及跨性别恐惧内容的放大

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Conor O’Sullivan

·发布于Towards Data Science ·阅读时间 8 分钟·2023 年 6 月 20 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由Delia GiandeiniUnsplash提供

对 AI 风险的讨论常常集中在人工通用智能(AGI)和世界末日情景的假设危险上。机器人不会统治世界。然而,目前的 AI 确实带来了切实的风险,特别是对已经受到此技术影响的跨性别和性别非顺应社区。

我们将重点阐述对该社区的危险:

  • 自动性别识别

  • 医学模型的局限性

  • 社交媒体上跨性别恐惧内容的放大

虽然跨性别社区感受到直接后果,但这些危险影响到我们所有人。它们传播仇恨,限制了多样性的丰富性,制约了我们全面表达自我的集体能力。我们必须理解作为技术专业人士的角色如何支持跨性别者,并创造一个更强大的社会。

我们已进入可以大规模部署 AI 的阶段,仅因为我们拥有大量数据和计算能力。令人担忧的是,AI 未能应对伦理挑战。

Alex Hanna

面部滤镜

我们将通过一个表面上看似不严重的例子来逐渐了解这些危险。如果你在社交媒体上,你知道什么是面部滤镜。它们使用机器学习来扭曲你的脸,使你看起来年老,甚至把你的狗变成迪士尼角色。大多数人会认为这些只是无害的娱乐。谈到性别时,情况可能会更复杂。不过,负面后果不应被夸大。

我只是一个盟友,不能代表跨性别者发言。即使在跨性别社区内部,性别转换滤镜的后果也是有争议的。它们可以让你探索你的性别认同和表达。然而,它们也可能强化性别刻板印象排斥非二元性别者。一些人甚至利用这些滤镜来嘲弄过渡过程

探索性别和与分配给你的性别不同的性别是好事,我鼓励这样做。你可能会发现自己意外的新东西,可能会对跨性别者更加友善。

Charlie Knight

在讨论这类技术时,应区分允许你选择性别的应用程序和那些试图预测性别的应用程序。例如,查看 Pixar 滤镜合集中的第一个视频。算法在用户没有传统男性或女性特征时会遇到困难。

这揭示了这些应用程序的问题——其底层技术基于一个假设:你可以预测某人的性别认同。这是一种伪科学。将这个假设应用到其他场景可能会有重大后果。

自动性别识别(AGR)

AGR 或性别识别软件是机器学习的一个分支,试图预测一个人的性别。这是通过分析面部特征、身体形状、衣物、声音模式或行为特征来实现的。然而,性别是复杂的,这些方面无法完全捕捉。尤其是对跨性别者来说更是如此。

对 4 个 AGR 系统的研究,如图 1所示,平均数据显示它们误判跨性别女性的比例为 12.7%,跨性别男性为 29.5%。相比之下,生理女性和男性的误判率为 1.7%和 2.4%[1]。这些系统还完全忽视了其他性别群体。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1:AGR 系统的准确性(来源:M. K. Scheuerman 等

错误地确定跨性别者的性别是不尊重的。这也可能对心理健康产生严重影响。持续被称为你不认同的性别可能是既令人疲惫又令人气馁的。现在想象一个世界,这一切被自动化并融入我们的日常系统中。

你不必想得太多。 这些系统已经被部署了:

这些系统造成的伤害是众所周知的,以至于欧盟已被敦促禁止它们

依赖于性别的医疗保健模型。

AGR 涉及机器学习,其中性别是目标变量。当我们将性别作为模型特征时也会出现问题。更具体地说,当我们不区分性别(出生时分配的性别)和性别(社会构建的角色)时。这一问题在医疗模型中普遍存在。

在医疗保健中,性别和性别认同常常被混淆。以至于提出了性别–性别认同医学这一术语[2]。事实上,关于跨性别和其他性别群体的数据收集非常有限。结果是,使用单一二元特征——男性/女性来训练模型,以出生时分配的性别作为性别和性别认同的代理[3]。

性别和性别认同是二元的、静态的且一致的错误假设在医疗系统中深深根植。

Kendra Albert, Maggie Delano

问题在于,许多诊断和治疗中,性别与性别认同之间的互动非常重要[4]。这对于 HIV 预防、生殖健康、荷尔蒙替代疗法和心理健康都适用。将性别与性别认同合并为一个变量,我们在医疗系统中忽视了跨性别者。结果是相比于顺性别者,跨性别者的护理水平较差。

在社交媒体上放大跨性别恐惧症内容。

到目前为止,我们关注的是更直接的影响。通过巩固性别期望和模型表现不佳,AI 可能导致跨性别者体验到负面影响。AI 也可能有间接影响,即影响他人对跨性别者的看法。

社交媒体推荐算法的唯一工作就是保持你在平台上。不幸的是,对你不属于的群体的愤怒,特别是,对激发参与的愤怒,[5]非常有效。还有担忧认为这些算法可能会强制执行已有的信念[6]。也就是只推荐与你过去互动过的内容类似的内容。

性别在现代社会规范和期望中占据核心地位。跨性别者的存在可能挑战这些规范。对于一些人来说,这种挑战带来了恐惧、愤怒以及不愿接受科学事实。这些都是容易导致增加参与度并创造反跨性别回音室的条件。

我们在Facebook上看到了这一点。用户在这里对影响跨性别者的问题有着偏颇和不准确的理解。如图 2所示,右倾页面上的跨性别问题帖子获得的互动几乎是其他页面的两倍。这些互动大多数出现在反跨性别网站发布的帖子上。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2:2020 年 10 月至 2021 年 9 月,各页面意识形态下的所有跨性别相关帖子在 Facebook 上的互动情况(图片来源:作者)(来源:媒体关注

Facebook 并不是唯一存在问题的平台。在与反跨性别内容互动后,TikTok会把你带入极端主义、仇恨和暴力的兔子洞。我在 YouTube 短视频中被推荐反跨性别内容的经历促使我写下这篇文章,这也是其他人的共同经历。

这些平台上的内容试图推动错误的说法,即跨性别是一种意识形态或心理疾病。事实并非如此。它们还试图将辩论从基本人权问题转移到体育、卫生间和代词上。最隐蔽的做法是将追求平等重新框定为对儿童的攻击。

跨性别社区对儿童没有任何风险。然而,这些内容对儿童却构成了重大风险。在 2023 年,79 项反跨性别法案在美国通过。社交媒体被认为对这些政策变化有所贡献。反跨性别内容也导致了负面的社会变化。

82%的变性人曾考虑过自杀,40%的人尝试过自杀。导致这一数据的最重要因素是简短而普遍的日常侮辱或轻视[7]。这些行为被反变性内容正常化和推广。

人际微侵略对终生自杀尝试产生了独特且统计学上显著的影响。

Ashley Austin 等

基于这些后果,社交媒体平台在道义上有责任遏制这些内容。至少,应该将其标记为虚假和不科学。我们都应该拒绝变性恐惧。作为科技工作者,我们也应该利用我们独特的影响力。我们有能力反击这些趋势,并塑造那些伤害变性人的系统。

我们可以从了解 变性意味着什么 开始。我们可以推动包容性训练数据和更多样化的团队。我们还应该倡导旨在增加透明度、可解释性和人工监督的 AI 系统监管。在这样做时,我们不应被假设性的灾难情景分散注意力,而应关注 AI 的直接风险。

本文中的所有中等合作资金将捐赠给 TGEU。如果你想了解变性意味着什么或如何成为更好的盟友,请查看下面的视频。快乐的骄傲月 😃

变性意味着什么?

变性的神经科学

Trans 101 — 成为变性盟友

你可以在 Mastodon | Twitter | YouTube | Newsletter 上找到我——免费注册以获得 Python SHAP 课程

[## 通过我的推荐链接加入 Medium — Conor O’Sullivan

作为 Medium 会员,你的会员费的一部分会用于支持你阅读的作者,并且你可以完全访问每个故事……

conorosullyds.medium.com](https://conorosullyds.medium.com/membership?source=post_page-----d8f870949d79--------------------------------)

参考文献

[1] Scheuerman, M.K., Paul, J.M. 和 Brubaker, J.R., 2019。计算机如何看待性别:对商业面部分析服务中性别分类的评估ACM 人机交互学报, 3(CSCW), 第 1-33 页 docs.wixstatic.com/ugd/eb2cd9_963fbde2284f4a72b33ea2ad295fa6d3.pdf

[2] Campesi, I., Montella, A., Seghieri, G. 和 Franconi, F., 2021. 个人护理需要性别和性别方法Journal of Clinical Medicine, 10(20), 第 4770 页. www.ncbi.nlm.nih.gov/pmc/articles/PMC8541070/

[3] Chen, I.Y., Pierson, E., Rose, S., Joshi, S., Ferryman, K. 和 Ghassemi, M., 2021. 医疗中的伦理机器学习年度生物医学数据科学回顾, 4, 第 123–144 页. www.ncbi.nlm.nih.gov/pmc/articles/PMC8362902/

[4] Albert, K. 和 Delano, M., 2022. 性别困扰:使用电子健康记录的机器学习中的性别/性别滑移、性别混淆和性别痴迷Patterns, 3(8), 第 100534 页. www.sciencedirect.com/science/article/pii/S2666389922001313

[5] Rathje, S., Van Bavel, J.J. 和 Van Der Linden, S., 2021. 群体外敌意驱动社交媒体参与国家科学院学报, 118(26), 第 e2024292118 页. www.pnas.org/doi/abs/10.1073/pnas.2024292118

[6] Jiang, R., Chiappa, S., Lattimore, T., György, A. 和 Kohli, P., 2019 年 1 月. 推荐系统中的退化反馈循环。在 2019 AAAI/ACM 人工智能、伦理与社会会议论文集 (第 383–390 页)。 arxiv.org/pdf/1902.10730.pdf

[7] Austin, A., Craig, S.L., D’Souza, S. 和 McInroy, L.B., 2022. 跨性别青少年的自杀倾向:阐明人际风险因素的作用人际暴力杂志, 37(5–6), 第 NP2696-NP2718 页. pubmed.ncbi.nlm.nih.gov/32345113/

解开物理信息神经网络的设计模式:第二部分

原文:towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-02-2156516f2791

通过集成学习和动态解空间扩展来增强 PINN 训练稳定性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Shuai Guo

·发表于 Towards Data Science ·7 分钟阅读·2023 年 5 月 19 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 Clay Banks 提供,Unsplash

欢迎来到本系列关于物理信息神经网络(PINN)设计模式的第二篇博客🙌 在这里,我们将探讨集成学习动态解空间扩展技术,以增强 PINN 训练的稳定性和准确性。

展望未来,我们将从提出的策略试图解决的具体问题开始,然后详细介绍该策略、其实施方式以及为什么可能有效。之后,我们将看看哪些物理问题被用作基准,以及所提出方法的优缺点。最后,我们讨论替代方案和该方法的未来机会。

随着本系列的不断扩展,PINN 设计模式的集合变得更加丰富🙌 这里有一个预告,展示你将看到的内容:

PINN 设计模式 01:优化残差点分布

PINN 设计模式 03:用梯度提升训练 PINN

PINN 设计模式 04:梯度增强 PINN 学习

PINN 设计模式 05:自动超参数调整

PINN 设计模式 06:因果 PINN 训练

PINN 设计模式 07:使用 PINN 进行主动学习

让我们开始吧!

1. 论文概览:

  • 标题:通过模型集成改进物理信息神经网络的训练

  • 作者:K. Haitsiukevich, A. Ilin

  • 机构:阿尔托大学

  • 链接arXiv

2. 设计模式

2.1 问题

物理信息神经网络(PINNs)提供了一种解决偏微分方程(PDEs)的有力途径,因其固有的灵活性、优雅性和对观测数据的无缝集成。尽管有这些优势,实际训练 PINNs 往往面临重大挑战:网络由于其复杂性和对超参数的敏感性,倾向于收敛到不正确的解决方案

这个问题对 PINNs 应用的现状有着重要影响,因为它限制了它们能够产生的解决方案的准确性和可靠性。

现在的问题是:我们如何改进训练过程,以确保 PINNs 收敛到正确的解决方案?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PINN 工作流程。在实践中,PINNs 在训练过程中可能会收敛到错误的解决方案。一种有前景的解决方法是逐步扩展解区间,以解决这个问题。(图像由本博客作者提供)

2.2 解决方案

关键思想是逐步扩展解区间和利用集成学习

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

残余点逐渐被纳入,以模拟解域扩展的行为。(图像由本博客作者提供)

在开始时**(a),仅部署接近已知初始条件下采样点(实心蓝色矩形)的残余点(预先采样以填充整个解域)用于 PDE 损失计算。这启动了 PINN 训练,其中多个初始化权重不同的 PINN 模型进行训练,从而形成 PINN 的集成。在训练若干次迭代后(b),如果在这些位置的 PINN 集成预测的方差足够小,则将一些先前部署的残余点视为“伪点”。随后,解域可以扩展(c),如果新的残余点足够接近“伪点”,则将部署新的残余点。迭代继续进行(d)**,直到所有残余点都用于损失计算。

上述演练假设只知道初始条件。在其他情况下,如果观察数据在模拟域内可用,则解决区间也可以从那里扩展。

根据作者的实现,该策略引入了几个新的超参数,这些超参数决定了距离阈值以部署新的残差点,距离阈值以将部署的残差点转变为“伪点”,以及方差阈值以决定 PINN 集成是否一致。有关更多详细信息,请参阅原始论文。

2.3 为什么这个解决方案可能有效

解决方案区间的逐步扩展模拟了经典数值解算器的行为,这些解算器将解决方案从初始条件和边界条件“传播”到整个领域。因此,物理因果关系得到了尊重,这可能有助于更稳定的 PINN 训练。

通过利用 PINN 的集合,提出的算法将有更高的机会摆脱传统的单一 PINN 训练方法常见的错误解。这解释了为什么提出的算法能够达到更高的准确性和可靠性。

2.4 基准测试

论文对提出的策略在五个不同问题上的性能进行了广泛的基准测试,每个问题代表了一个独特的物理现象:

  • 对流方程:这个方程模拟了输送现象,这在流体动力学、热传递和质量传递等领域中都是基础的。在这些场景中,理解能量、质量或动量等量的移动,主要由于差异性力量或梯度,是至关重要的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 反应系统:这一问题类别模拟了化学反应。从基础化学课程到复杂的生物工程过程,理解反应动力学和化学平衡可能是实验成功或工业过程成功与灾难性失败之间的区别。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 反应扩散方程:这个方程模拟了反应与物质扩散的结合。这种问题在生物学等领域至关重要,它们描述了发育生物学中的模式形成过程,或在化学中模拟了不同物质在介质中的扩散和相互作用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 扩散方程(具有周期边界条件):这种方程对于理解热传导、流体流动和布朗运动等现象至关重要。周期边界条件意味着系统行为在时间或空间上重复,这是处理周期性或重复系统问题时常见的假设。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 扩散方程(与上面展示的方程相同,但具有 Dirichlet 型边界条件):Dirichlet 型边界条件规定了解决方案在领域边界上必须取的值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基准测试结果显示:

  • 所提出的算法提供了稳定的训练,并对所有考虑的问题表现出竞争力;

  • 所提出的算法通常稳定,对超参数选择的敏感性较小。

此外,论文建议以下做法可以帮助提高 PINN 的准确性:

  • 将输入(包括空间输入 x 和时间输入 t)归一化到[-1, 1];

  • 在通常的 Adam 优化后,使用 L-BFGS 对 PINN 训练进行微调。

2.5 优势与劣势

👍优势

  • 能够稳定 PINN 的训练并取得竞争力的性能。

  • 不需要预定义的间隔扩展计划(与“替代方案”部分中解释的时间自适应策略相对)。

  • 时间和空间处理得同样。

  • 足够灵活,允许在任意位置轻松融入测量值。

  • 由于集成方法,预测的置信区间会自动获得。

👎劣势

  • 相比于传统 PINN,计算开销较大(所有集成方法都存在这种情况)。

  • 引入了额外的超参数(尽管所提出的解决方案对超参数值不敏感)。

2.6 替代方案

其他解决类似问题的方法是时间自适应技术系列,这些技术对当前的方法有很大影响。时间自适应技术将时间区间 [T₁, T₂] 划分为多个子区间,并通过单独的 PINN 依次在每个子区间上求解方程。一个子区间的解然后作为后续子区间的初始条件。

当前的算法继承了时间自适应技术的优点,即能够实现更准确和稳定的时间解传播。此外,它还消除了对预定义间隔扩展计划的要求。因此,当前的方法更灵活,可以在任意位置融入已知的测量值。

3 未来的潜在改进

有几种可能性可以进一步改进所提出的策略:

  • 创建模型集成的高效方法(例如,dropout)。

  • 将当前算法与其他 PINN 最佳实践结合(例如,在第一篇博客中讨论的智能采样残差点)。

4 收获

在这篇博客中,我们探讨了通过集成学习和动态解区间扩展来增强 PINN 训练的稳定性。这个话题非常相关,因为它直接影响 PINNs 的准确性。

以下是从论文中提出的设计模式中获得的收获:

  • [问题]:如何确保 PINNs 收敛到正确的解?

  • 解决方案1. 逐步扩展解区间,在整个领域内逐渐部署残差点。2. 集成学习,其中多个 PINN 使用不同的权重初始化。

  • [潜在好处]:1. 稳定 PINN 训练。2. PINN 预测的不确定性估计

如果你更喜欢视觉呈现,这里是我准备的 PINN 设计卡:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中提出的 PINN 设计模式。(图片由本博客作者提供)

我希望你觉得这个博客有用😃如果你想了解更多关于 PINN 设计模式的内容,可以随时查看这一系列中的其他文章:

期待在即将到来的博客中与您分享更多见解!

参考文献

[1] Haitsiukevich 等,使用模型集成改进物理信息神经网络的训练,arXiv,2022 年。

揭示物理信息神经网络的设计模式:第三部分

原文:towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-03-fe365ef480d9

通过梯度提升训练超充 PINN 的性能

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Shuai Guo

·发布于 Towards Data Science ·阅读时间 7 分钟·2023 年 5 月 25 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由 Haithem Ferdi 提供,来源于 Unsplash

欢迎来到本系列的第三篇博客,在这里我们继续探索物理信息神经网络(PINN)的设计模式,进行令人兴奋的旅程。

在这篇博客中,我们将探讨使用梯度提升训练 PINNs,这是一种神经网络与梯度提升算法的激动人心的融合 🚀。

如往常一样,我将按照以下方式结构化这篇博客:

  • 问题,提出的策略试图解决的具体问题;

  • 解决方案,提出的策略的关键组件,它是如何实施的,以及它可能有效的原因;

  • 基准,评估了哪些物理问题,以及相关的性能;

  • 优点与缺点,提出的策略在什么条件下可能有效,同时也突出其潜在的局限性;

  • 替代方案,为解决类似问题提出的其他方法,从而提供更广泛的潜在解决方案视角。

随着本系列的不断扩展,PINN 设计模式的集合变得更加丰富🙌 这里是对你即将迎接内容的预览:

PINN 设计模式 01: 优化残差点分布

PINN 设计模式 02: 动态解决方案区间扩展

PINN 设计模式 04:梯度增强的 PINN 学习

PINN 设计模式 05:自动化超参数调整

PINN 设计模式 06:因果 PINN 训练

PINN 设计模式 07:与 PINN 的主动学习

让我们深入了解一下!

1. 快速了解论文:

  • 标题:用于物理信息神经网络的集成学习:一种梯度提升方法

  • 作者:Z. Fang, S. Wang, P. Perdikaris

  • 机构:宾夕法尼亚大学

  • 链接:arXiv

2. 设计模式

2.1 问题

原始 PINNs 已知在模拟对输入的小变化非常敏感并需要高度准确性以准确捕捉其动态的物理过程时存在困难。这些物理系统的例子包括多尺度问题和奇异摄动问题,这些问题与流体动力学和气候建模等领域密切相关。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PINN 工作流程。原始 PINNs 在解决复杂 PDE 时通常面临挑战。解决此问题的一种有前景的方法是通过提升算法训练 PINNs。(图像由本博客作者提供)

2.2 解决方案

结果显示,其他机器学习算法也会遇到相同的问题,解决此问题的一种有前景的方法是采用“梯度提升”方法。因此,自然产生了一个问题:我们能否模拟梯度提升算法来训练 PINNs?论文对此给出了肯定的答案。

提升是一种通用的机器学习算法,可以简洁地表达为以下迭代形式:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在每一次提升轮次中,都会导出一个增量模型 hₘ(•) 并在上一次迭代的预测器 fₘ_₁(•) 上添加(以学习率 ρₘ 进行折扣),以便提高 f(•) 的准确性。

现在,如果我们将 fₘ_₁(•)、f(•) 和 hₘ(•) 替换为物理信息神经网络,我们可以实现通过提升算法训练 PINNs。下面是展示训练过程的示意图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PINN 模型按顺序训练以迭代地最小化损失。只有标记为绿色的块是可训练的。损失是通常的 PINN 损失,即 PDE 损失、边界条件损失等。(图像由本博客作者提供)

在论文的实现中,加性 PINN 模型hₘ(•)的结构和超参数是预先确定的。这与原始的梯度提升算法不同,后者会利用梯度下降找到最佳的hₘ(•)形式。然而,作者声称使用预选的hₘ(•)仍然可以模拟提升算法的行为,但计算复杂性显著降低。

根据论文中进行的数值实验,通常 3~5 个 PINNs 足以提供令人满意的结果。对于设置学习率ρₘ,建议的做法是将初始ρ设置为 1,并且随着m的增加,ρ值按指数衰减。

2.3 解决方案为何可能有效

由于所提解决方案模拟了传统的“梯度提升”机制,因此自动继承了该方法提供的所有优点:通过顺序添加弱模型,每个新模型能够纠正前一模型所犯的错误,从而迭代地提高整体性能。这使得该方法在处理多尺度或奇异摄动问题等具有挑战性的问题时尤其有效。

同时,对于提升算法,即使每个提升阶段的组件模型相对“弱”,也仍然可以实现“强”的模型。这一特性使得整体 PINN 模型对超参数设置的敏感性降低。

2.4 基准测试

论文在四个不同的数学问题上对所提策略的性能进行了基准测试,每个问题都代表一个独特的数学挑战:

  • 1D 奇异摄动问题:奇异摄动问题是一类特殊情况,其中方程中的某些项变得极小或极大,导致不同的行为模式,难以建模。这些问题通常出现在科学和工程的许多领域,如流体动力学、电路和控制系统。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ε = 1e-4。

  • 2D 对流主导的扩散方程:这个方程模拟了对流效应(由于整体运动而产生的传输)远强于扩散效应(由于浓度梯度产生的传输)的物理现象。这些类型的问题出现在气象学(如风传播污染物)和海洋学(如洋流输送热量)等各种领域。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ε = 1e-3, Ω = (0, 1)²。

  • 2D 对流主导的扩散问题(特征为弯曲流线和内部边界层):这是前述问题的一个更复杂的变体,其中流动模式弯曲,并且在问题领域内存在显著的边界层。这些复杂性需要更复杂的数值方法,使得问题更具现实世界挑战的代表性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ε = 1e-4, Ω = (0, 1)², β = eˣ(sin(y), cos(y))。

  • 2D 非线性反应-扩散方程(时间依赖):这个方程模拟了物质扩散与反应的结合,但它也具有非线性,并且随时间变化。这类问题在生物学和化学等领域很常见,在这些领域中,物质在介质中相互作用并扩散,且反应速率可能随时间变化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ω = (0, 2π),周期边界条件。

基准研究结果显示:

  • 与传统的 PINNs 相比,所提出的算法在所有测试案例中显示了显著的准确性提升;

  • 所提出的算法显示出鲁棒性,对超参数选择不太敏感。

2.5 优缺点

👍优点

  • 相比于单一的 PINN,准确性显著提升。

  • 对网络结构和排列的选择具有较强的鲁棒性。

  • 调整超参数所需的努力较少。

  • 灵活且可以轻松与其他 PINNs 技术集成。

👎缺点

  • 不适用于解决具有导数爆炸的守恒定律(例如,无粘性 Burgers 方程、Sod 冲击管问题等),这是由于这些方程解对 PDE 损失的敏感性不足。

  • 在可扩展性方面存在限制,因为它可能需要更多的计算资源和时间来顺序训练多个神经网络。

2.6 替代方案

由于这是第一篇将提升算法引入 PINN 领域的论文,目前尚无类似的工作。

尽管如此,在增强 PINN 建模具有挑战性的物理过程的能力方面,论文特别提到了 Krishnapriyan et al. 的工作。该策略是将时间域划分为子区间,PINNs 被逐步构建以模拟每个子区间(类似于 之前博客 中涵盖的想法)。

目前的论文在最后的基准案例研究(上述 2.4 节)中将 Krishnapriyan 的方法与新提出的方法进行了比较。结果表明,所提出的提升方法能够将误差降低 4 倍。

3 未来潜在改进

对所提出的策略的进一步改进包括研究神经网络的最佳顺序组合,与其他类型的神经网络架构混合并匹配梯度提升训练迭代,以及将 PINN 训练的其他最佳实践(例如,残差点生成)集成到梯度提升训练框架中。

4 主要收获

在这篇博客中,我们探讨了一种基于提升的集成学习的新型 PINN 训练范式。这个话题非常相关,因为它增强了 PINNs 处理像多尺度和奇异摄动问题这样具有挑战性问题的能力。

和往常一样,这里是本论文提出的设计模式的要点:

  • [问题]:如何提升 PINN 解决复杂问题的能力?

  • 解决方案梯度提升,其中多个“弱”PINN 按顺序训练,以迭代地提高整体性能。

  • [潜在的好处]:1. 能够解决简单 PINN 的复杂问题。2. 超参数调整的工作量减少

这是另一个 PINN 设计卡片:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中提出的 PINN 设计模式。(图像由本博客作者提供)

希望您觉得这篇博客有用😃如果您想了解更多关于 PINN 设计模式的内容,请随时查看本系列的其他帖子:

期待在即将到来的博客中与您分享更多见解!

参考文献

[1] Fang 等,物理信息神经网络的集成学习:一种梯度提升方法,arXiv,2023。

[2] Krishnapriyan 等,物理信息神经网络中可能的失效模式的特征,arXiv,2021。

揭示物理信息神经网络的设计模式:第四部分

原文:towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-04-c778f4829dde

利用梯度增强学习提高 PINN 训练效率

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Shuai Guo

·发表于 Towards Data Science ·7 min read·2023 年 5 月 29 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片由 Hassaan Qaiser 提供,来源于 Unsplash

欢迎来到本系列的第 4 篇博客,我们将继续激动人心的旅程,探索物理信息神经网络(PINN)的设计模式🙌

在这篇博客中,我们将探讨一篇提出了新的 PINN 变体的研究论文,这种变体被称为 梯度增强 PINN。更具体地,我们将研究 问题解决方案基准以及 优缺点,以提炼论文提出的设计模式。

随着本系列的不断扩展,PINN 设计模式的集合变得更加丰富🙌 这里是未来内容的一些预览:

PINN 设计模式 01: 优化残差点分布

PINN 设计模式 02: 动态解决方案区间扩展

PINN 设计模式 03: 使用梯度提升训练 PINN

PINN 设计模式 05: 自动超参数调优

PINN 设计模式 06: 因果 PINN 训练

PINN 设计模式 07:利用 PINN 进行主动学习

让我们开始吧!

1. 论文概览 🔍

  • 标题:用于前向和逆向 PDE 问题的梯度增强物理信息神经网络

  • 作者:J. Yu,L. Lu,X. Meng,G. E. Karniadakis

  • 机构:圣马克学校(德克萨斯州)、宾夕法尼亚大学、布朗大学

  • 链接arXiv

2. 设计模式 🎨

2.1 问题 🎯

在实际应用中,通常观察到即使有许多训练点,传统 PINN 的准确性仍然有限,特别是在处理具有刚性解的挑战性 PDE 时。这一限制影响了 PINN 在解决各种前向和逆向 PDE 问题中的有效性,限制了其在高精度解决这些问题的能力。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PINN 工作流程。传统的 PINN 即使在有许多残差点的情况下通常也有限制精度。提升 PINN 准确性的一个有前途的方法是通过梯度增强学习算法来训练 PINN。(图片由本博客作者提供)

2.2 解决方案 💡

提升 PINN 准确性的一个有前途的方法是采用梯度增强学习方法来训练 PINN。

梯度增强学习在传统机器学习中已被证明是有用的[2]。如下面的插图所示,除了通常的输入-输出对(xy),梯度增强学习还将已知的函数梯度值dy/dx作为额外的监督信号纳入。这种学习方法如果梯度信息可以低成本获得(例如,解析上可用、易于测量等),则可以有效。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

常规学习(上图)只要求模型预测在 x 处与真实函数值 f(x)匹配;梯度增强学习(下图)额外要求模型预测在 x 处的导数与已知的梯度值 df(x)/dx 匹配。(图片改编自维基百科

同样的理念也可以应用于 PINN 训练,如论文中所示。

以简单的二维拉普拉斯方程(∂²u/∂x² + ∂²u/∂y² = 0)为例,当使用 PINN 求解该方程时,我们会强制要求 PDE 残差f为零,其中f = ∂²u/∂x² + ∂²u/∂y²。f 本质上衡量预测是否符合控制方程,并构成训练 PINN 的整体损失函数中的 PDE 损失项。

在梯度增强 PINN(gPINN)中,我们还可以强制要求 PDE 残差的导数为零:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这样做的理由很简单:因为 f 在整个模拟域中为零,我们知道 f 的梯度也为零。因此,除了通常的 PDE 损失 f = 0 外,我们还会有两个额外的损失项。

2.3 为什么解决方案可能有效 🛠️

使 gPINN 有效的关键在于梯度提供了关于函数行为的额外信息。因此,它可以更有效地指导学习过程。这个特性在传统机器学习领域中已知,但当前论文显示相同的好处也可以用于 PINN 训练。

2.4 基准 ⏱️

论文考虑了总共 6 个不同的基准问题,包括 2 个前向问题,2 个反向问题,以及 2 个由标准 gPINN 和 gPINN+RAR 解决的带有刚性解的 PDE(基于残差的自适应细化用于采样残差点):

  • 1D 泊松方程(前向问题,用标准 gPINN 解决):泊松方程是数学物理中一个基本的偏微分方程,描述了系统中物质的分布。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Dirichlet 边界条件:u(x=0) = 0,u(x=π) = π

  • 扩散-反应方程(前向问题,用标准 gPINN 解决):该方程模型了物质的反应与扩散。这里的前向问题涉及在给定初始条件和反应速率的情况下预测物质的浓度。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

D=1(扩散系数)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

R 是化学反应

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

初始和边界条件

  • Brinkman-Forchheimer 方程(反向问题,用标准 gPINN 解决,识别有效粘度 νₑ 和渗透率 K):该方程描述了在多孔介质中的流动,这在石油开采和地下水流动等领域很普遍。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

边界条件:u(0) = u(1) = 0,H=1,ν=1e-3,ε=0.4,g=1

  • 1D 扩散-反应系统(反向问题,用标准 gPINN 解决,识别空间依赖的反应速率 k(x)):类似于第二个问题,这也是一个扩散-反应方程。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

扩散系数 λ = 0.01,f = sin(2πx)。除了用于预测 u 的网络外,还使用了一个单独的神经网络来近似 k。

  • 1D Burgers 方程(前向问题,用 gPINN+RAR 解决):这是流体动力学中的一个基本方程,结合了非线性对流和扩散。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

初始条件:u(x, 0) = -sin(πx),边界条件:u(-1, t) = u(1, t) = 0,ν=0.01/π

  • Allen-Cahn 方程(前向问题,用 gPINN+RAR 解决):该方程模型了相分离过程,这在材料科学中至关重要。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

初始条件:u(x, 0) = x² cos(πx),边界条件:u(-1, t) = u(1, t) = -1,D = 0.001

基准研究表明:

  • 提出的梯度增强 PINN 学习(gPINN)在残差点更少的情况下实现了更高的准确性;

  • gPINN 结合先进的残差点采样方案(例如,RAR)在挑战性 PDE 问题中表现最佳。

2.5 优点与缺点 ⚡

优点 💪

  • 不仅函数预测的准确性提高,函数导数预测的准确性也得到了改善。

  • 收敛速度更快。

  • 在训练点更少的情况下比传统 PINN 表现更好。

  • 适用于前向问题和反向问题。

  • 可以轻松与先进的残差点采样方案(参见上一篇博客)结合,以进一步提高性能,特别是在具有陡峭梯度的 PDE 解中。

缺点 📉

  • 引入了新的加权参数来平衡整体 PINN 损失函数中的梯度损失项。

  • 模型训练的复杂性增加,可能导致计算成本增加。

2.6 替代方案 🔀

由于这是第一篇将梯度增强学习范式引入 PINN 领域的论文,目前还没有其他类似的方法。论文中所有的比较都在普通 PINN、gPINN 及 gPINN+RAR 采样方案之间进行。

3 潜在的未来改进 🌟

还有几种可能性可以进一步改善提出的策略:

  • 自动调整梯度损失项的权重。

  • 改进残差点的选择以评估额外的梯度损失。当前论文使用相同的残差点来评估 PDE 残差和 PDE 残差的梯度。然而,如果两组残差点不相同,可能会获得更好的性能。

  • 需要更高效的自动微分策略来计算高阶导数。

4 个要点 📝

在这篇博客中,我们探讨了通过梯度增强学习来提高 PINN 的准确性和训练效率。以下是论文中提出的设计模式的亮点:

  • [问题]:如何提高 PINNs 的准确性和训练效率?

  • 解决方案梯度增强学习,在 PINN 损失函数中不仅强制 PDE 残差为零,还强制其梯度为零。

  • [潜在好处]:1. 比简单 PINN 表现更佳,残差点更少。2. 不仅函数预测的准确性提高,函数导数预测的准确性也得到了改善。

像往常一样,我准备了一张 PINN 设计卡来总结要点:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中提出的 PINN 设计模式。(图像由本博客作者提供)

希望您觉得这篇博客有用!要了解更多关于 PINN 设计模式的内容,请随时查看本系列的其他文章:

期待在接下来的博客中与您分享更多见解!

参考 📑

[1] Yu 等,基于梯度增强的物理信息神经网络用于正向和反向 PDE 问题,arXiv,2021 年。

[2] Laurent 等,梯度增强元模型的概述及应用,Arch Computat Methods Eng,2019 年。

揭示物理信息神经网络的设计模式: 第五部分

原文:towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-05-67a35a984b23

利用自动化超参数优化提升 PINN 效果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Shuai Guo

·发布于 Towards Data Science ·阅读时间 9 分钟·2023 年 6 月 4 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来源:Drew Patrick MillerUnsplash

欢迎来到本系列的第 5 篇博客,我们继续探索物理信息神经网络(PINN)的设计模式之旅🙌

你是否曾经想过,物理信息神经网络的最佳架构是否可以自动搜索?事实证明,有一种方法可以做到这一点,如我们今天要讨论的论文所示。

和往常一样,我们将从讨论当前问题开始,然后介绍提出的解决方案、基准测试过程以及所提技术的优缺点。博客最后将探讨一些潜在的未来机会。

如果你对本系列中涵盖的其他 PINN 设计模式感兴趣,可以在这里跟进:

PINN 设计模式 01: 优化残差点分布

PINN 设计模式 02: 动态解区间扩展

PINN 设计模式 03: 用梯度提升训练 PINN

PINN 设计模式 04: 梯度增强 PINN 学习

PINN 设计模式 06:因果 PINN 训练

PINN 设计模式 07:使用 PINN 进行主动学习

让我们深入探讨!

1. 论文概览 🔍

  • 标题:Auto-PINN:理解和优化物理信息神经网络架构

  • 作者:Y. C. Wang, X. T. Han, C. Y. Chang, D. C. Zha, U. Braga-Neto, X. Hu

  • 机构:德克萨斯农工大学,莱斯大学

  • 链接:arXiv

2. 设计模式 🎨

2.1 问题 🎯

在物理信息神经网络(PINNs)的应用中,神经网络超参数,如网络深度、宽度、激活函数的选择等,都会对 PINN 的效率和准确性产生显著影响,这并不令人意外。

自然,人们会求助于AutoML(更具体地说,神经架构搜索)来自动识别最佳网络超参数。但在此之前,有两个问题需要解决:

  1. 如何有效地在广阔的搜索空间中导航?

  2. 如何定义合适的搜索目标?

后者的原因在于 PINN 通常被视为一个“无监督”问题:由于训练是通过最小化 ODE/PDE 残差来指导的,因此不需要标记数据。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PINN 工作流。PINN 的性能对网络结构非常敏感。解决这一问题的一个有前途的方法是利用 AutoML 进行自动超参数调优。(图片由本博客作者提供)

为了更好地理解这两个问题,作者进行了大量实验,以调查 PINN 性能对网络结构的敏感性。现在,让我们看看他们发现了什么。

2.2 解决方案 💡

论文提出的第一个观点是训练损失可以作为搜索目标的替代指标,因为它与 PINN 的最终预测准确性高度相关。这解决了为超参数搜索定义合适优化目标的问题。

第二个观点是无需同时优化所有网络超参数。相反,我们可以采用逐步解耦策略,例如,首先搜索最佳激活函数,然后固定激活函数的选择,寻找最佳网络宽度,再固定之前的决定并优化网络深度,依此类推。在他们的实验中,作者证明了这一策略非常有效。

有了这两个观点,我们来详细看看如何执行搜索。

首先,考虑哪些网络超参数?在论文中,推荐的搜索空间是:

  • 宽度:每个隐藏层中的神经元数量。考虑的范围是[8, 512],步长为 4 或 8。

  • 深度:隐藏层的数量。考虑的范围是[3, 10],步长为 1。

  • 激活函数:Tanh、Sigmoid、ReLU,以及Swish

  • 变化点:使用 Adam 的周期占总训练周期的比例。考虑的值为[0.1, 0.2, 0.3, 0.4, 0.5]。在 PINN 中,通常的做法是首先使用 Adam 训练若干周期,然后切换到 L-BFGS 继续训练若干周期。此变化点超参数决定了切换的时机。

  • 学习率:固定值为 1e-5,因为它对最终的架构搜索结果影响较小。

  • 训练周期:固定值为 10000,因为它对最终的架构搜索结果影响较小。

其次,让我们详细审查提出的过程:

  • 第一个搜索目标是激活函数。为此,我们采样宽度和深度参数空间,并计算不同激活函数下所有宽度-深度样本的损失。这些结果可以为我们提供哪个激活函数是主导的线索。一旦决定,我们将在后续步骤中固定激活函数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第一步是识别主导的激活函数。(图片由博客作者提供)

  • 第二个搜索目标是宽度。更具体地说,我们寻找几个 PINN 表现良好的宽度区间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第二步是识别网络宽度的有前景区间。(图片由博客作者提供)

  • 第三个搜索目标是深度。在这里,我们只考虑在上一步确定的最佳表现区间内变化的宽度,并希望找到 PINN 表现良好的最佳 K 个宽度-深度组合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

第三步是识别表现最好的宽度-深度组合的前 K 名。(图片由博客作者提供)

  • 最终搜索目标是变化点。我们仅需为上一步识别的前 K 个配置中的每一个寻找最佳变化点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后一步是识别最佳变化点。(图片由博客作者提供)

这一搜索过程的结果是K 种不同的 PINN 结构。我们可以从这些 K 个候选中选择表现最好的一个,或简单地使用所有这些模型形成一个 K-ensemble PINN 模型。

注意,上述过程需要指定若干调优参数(如宽度区间的数量、K 的数量等),这将取决于可用的调优预算。

至于具体优化算法的使用,可以利用现成的 AutoML 库来完成任务。例如,论文中的作者使用了Tune package来执行超参数调优。

2.3 为什么解决方案可能有效 🛠️

通过解耦不同超参数的搜索,搜索空间的规模可以大大缩小。这不仅大大降低了搜索复杂性,还显著提高了为研究中的物理问题找到(近)最优网络架构的可能性。

此外,使用训练损失作为搜索目标既简单易行又令人期望。由于训练损失(主要由 PDE 残差损失构成)与推理过程中的 PINN 准确性高度相关(根据论文中进行的实验),识别出能提供最小训练损失的架构也可能会导致一个高预测准确度的模型。

2.4 基准测试 ⏱️

论文考虑了总共 7 个不同的基准问题。所有问题都是正向问题,PINN 用于求解 PDE。

  • 具有 Dirichlet 边界条件的热方程。这类方程描述了给定区域内的热量或温度分布。

    时间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 具有 Neumann 边界条件的热方程。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 波动方程,描述了空间中振动的传播,如机械波和电磁波。这里考虑了 Dirichlet 和 Neumann 条件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Burgers 方程,已被用来模拟冲击流、燃烧室中的波动传播、交通流动等。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 对流方程,描述了标量场在已知速度矢量场的作用下的运动。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 对流方程,具有不同的边界条件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 反应方程,描述化学反应。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基准研究结果显示:

  • 提出的 Auto-PINN 在各种 PDE 问题中表现稳定。

  • 在大多数情况下,Auto-PINN 能够识别出具有最小误差值的神经网络架构。

  • 使用 Auto-PINN 方法的搜索尝试次数较少。

2.5 优势和劣势 ⚡

优势 💪

  • 显著降低了进行 PINN 应用的神经架构搜索的计算成本。

  • 提高了识别适用于不同 PDE 问题的(近)最优神经网络架构的可能性。

劣势 📉

  • 使用训练损失值作为搜索目标的有效性可能依赖于特定的 PDE 问题特征,因为基准测试仅针对特定的一组 PDE 进行。

  • 数据采样策略影响 Auto-PINN 的性能。尽管论文讨论了不同数据采样策略的影响,但并未提供如何选择适合特定 PDE 问题的最佳策略的明确指南。这可能为使用 Auto-PINN 增添了另一层复杂性。

2.6 替代方案 🔀

传统的现成 AutoML 算法也可以用于解决物理信息神经网络(PINNs)的超参数优化问题。这些算法包括 随机搜索遗传算法贝叶斯优化 等。

与那些替代算法相比,新提出的 Auto-PINN 专门为 PINN 设计。这使得它成为优化 PINN 超参数的独特且有效的解决方案。

3 个潜在的未来改进 🌟

还有几个可能的方式来进一步改进所提议的策略:

  • 结合更复杂的数据采样策略,例如自适应和基于残差的采样方法,以提高搜索精度和模型性能。

要了解更多关于如何优化残差点分布的信息,请查看 这篇博客 这是 PINN 设计模式系列中的一篇文章。

  • 对搜索目标进行更多的基准测试,以评估训练损失值是否确实是各种类型 PDE 的良好代理。

  • 纳入其他类型的神经网络。目前版本的 Auto-PINN 仅为多层感知机(MLP)架构设计。未来的工作可以探索卷积神经网络(CNNs)或递归神经网络(RNNs),这些可能增强 PINNs 解决更复杂 PDE 问题的能力。

  • Auto-PINN 中的迁移学习。例如,在某些类型的 PDE 问题上表现良好的架构可以作为类似类型 PDE 问题搜索过程的起点。这可能加快搜索过程并提高模型的性能。

4 个收获 📝

在这篇博客中,我们讨论了如何使用 Auto-PINN 方法有效调优 PINN 模型超参数。以下是论文中提出的设计模式的亮点:

  • [问题]: 如何自动调优 PINNs 的模型超参数?

  • [潜在好处]: 1. 更高效的搜索,显著降低计算成本。2. 提高识别不同类型 PDE 问题的(近似)最优神经网络超参数的可能性。

一如既往,我准备了一张 PINN 设计卡来总结收获:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中提出的 PINN 设计模式。(图像由该博客作者提供)

希望您觉得这篇博客对您有用!要了解更多关于 PINN 设计模式的内容,请随时查看本系列的其他文章:

期待在即将发布的博客中与您分享更多见解!

参考 📑

[1] Wang et al., Auto-PINN: 理解和优化物理信息神经网络架构, arXiv, 2022.

揭开物理信息神经网络设计模式的面纱:第六部分

原文:towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-06-bcb3557199e2

将因果关系引入 PINN 训练

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Shuai Guo

·发布于Towards Data Science ·阅读时间 9 分钟·2023 年 6 月 13 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

照片由Delano Ramdas提供,来源于Unsplash

欢迎来到本系列的第六篇博客,我们将继续探索物理信息神经网络(PINN)的设计模式🙌

在这一集里,我们将讨论将因果关系引入物理信息神经网络训练的内容。正如我们今天将要查看的论文所建议的:尊重因果关系就是你所需的一切!

一如既往,让我们首先讨论当前的问题,然后转到建议的解决方案、评估程序以及所提方法的优缺点。最后,我们将通过探索潜在的机会来结束博客。

随着这一系列的不断扩展,PINN 设计模式的集合变得更加丰富🙌 这里是一些即将到来的内容的预览:

PINN 设计模式 01:优化残差点分布

PINN 设计模式 02:动态解区间扩展

PINN 设计模式 03:使用梯度提升训练 PINN

PINN 设计模式 04:梯度增强的 PINN 学习

PINN 设计模式 05:自动化超参数调整

PINN 设计模式 07:使用 PINN 的主动学习

让我们深入探讨!

1. 论文概述 🔍

  • 标题:尊重因果性是训练物理信息神经网络所需的一切

  • 作者:S. Wang, S. Sankaran, P. Perdikaris

  • 机构:宾夕法尼亚大学

  • 链接arXiv, GitHub

2. 设计模式 🎨

2.1 问题 🎯

物理信息神经网络(PINNs)在结合观察数据和物理法则方面是一个重大进展。然而,在实践中,它们常常无法处理高度非线性、多尺度动态或混沌问题,并趋向于收敛到错误的解。

为什么会这样呢?

好吧,根本问题在于当前论文揭示的 PINN 公式中的因果性违背

物理意义上的因果性意味着未来时刻的状态依赖于当前或过去时刻的状态。然而,在 PINN 训练中,这一原则可能不成立;这些网络可能隐含偏向于首先在未来状态下近似 PDE 解,然后才解决初始条件,实质上是“跳过”时间,从而违反因果性。

相比之下,传统的数值方法通过时间推进策略固有地保持因果性。例如,在时间上离散化 PDE 时,这些方法确保在近似时间 t + ∆t 时的解之前解决时间 t 时的解。因此,每个未来状态是依赖于已解决的过去状态,从而保持因果性原则。

对这个问题的理解引出了一个有趣的问题:我们如何纠正 PINN 中的因果性违背,使其符合基本物理法则?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PINN 工作流程。简单的 PINN 没有“因果性”嵌入其中。一种简单而有效的策略是动态加权不同时间实例的 PDE 残差损失。(图像由本博客作者提供)

2.2 解决方案 💡

这里的关键思想是重新制定 PINN 损失函数

具体来说,我们可以引入动态加权方案,以考虑在不同时间位置评估的 PDE 残差损失的不同贡献。让我们通过插图来详细分析。

为了简化起见,我们假设在空间-时间域中的配点是均匀采样的,如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

总 PDE 残差损失是计算在所有配点上的,其梯度值用于驱动网络参数优化。(图像由本博客作者提供)

为了进行一步梯度下降,我们必须首先计算所有配点的累计 PDE 残差损失。具体做法是首先计算与在各个时间点采样的配点相关的损失,然后进行“简单的求和”以获得总损失。接下来的梯度下降步骤可以基于计算得到的总损失来优化 PINN 权重。

当然,配点的求和顺序不会影响总损失的计算;所有方法都会得到相同的结果。然而,按时间顺序分组损失计算的决定是有目的的,旨在强调‘时间性’的元素。这个概念对于理解提出的因果训练策略至关重要。

在这个过程中,评估在不同时间位置的 PDE 残差损失被视为同等重要。这意味着所有时间残差损失同时被最小化。

然而,这种方法存在风险,可能会导致 PINN 违反时间因果关系,因为它没有对在连续时间间隔最小化时间残差损失进行时间上的规范化。

那么,我们如何引导 PINN 在训练过程中遵循时间优先原则呢?

秘诀在于有选择地加权各个时间残差损失。例如,假设在当前迭代中,我们希望 PINN 专注于在时间点t₁处逼近解。那么,我们可以简单地在 Lᵣ(t₁)上加上更高的权重,这就是在t₁处的时间残差损失。这样,Lᵣ(t₁)将成为最终总损失中的主导成分,结果是优化算法将优先最小化 Lᵣ(t₁),这与我们首先在时间点t₁逼近解的目标一致。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过在不同时间点分配时间残差损失的权重,我们可以引导优化器专注于在我们期望的时间点最小化损失。(图片由本博客作者提供)

在随后的迭代中,我们将注意力转向时间点t₂处的解。通过增加 Lᵣ(t₂)的权重,它现在成为总损失计算中的主要因素。因此,优化算法被引导去最小化 Lᵣ(t₂),从而提高了在t₂处解的预测准确性。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片由本博客作者提供)

从我们之前的演示可以看出,通过改变在不同时间点分配的时间残差损失权重,我们可以引导 PINN 在我们选择的时间点逼近解。

那么,这如何帮助将因果结构纳入 PINN 训练中呢?事实证明,我们可以设计一种因果训练算法(如论文中提出的),使得时间t的时间残差损失的权重 Lᵣ(t),只有在t之前的损失(Lᵣ(t-1), Lᵣ(t-2), 等)足够小时才显著。这有效地意味着神经网络仅在对先前步骤的近似准确度令人满意时才开始最小化 Lᵣ(t)。

为了确定权重,论文提出了一个简单的公式:权重ωᵢ设置为与所有之前时间实例的累计时间残差损失的大小成反向指数比例。这确保了当所有之前时间实例的累计损失较小时,权重ωᵢ才会活跃(即,具有足够大的值),即 PINN 已经能够准确地近似之前时间步的解。这就是时间因果关系在 PINN 训练中体现的方式。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片来自博客作者)

解释了所有组件后,我们可以将完整的因果训练算法拼凑如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中提出的因果训练算法的示意图。(图片来自博客作者)

在结束本节之前,有两个值得提及的备注:

  1. 论文建议使用ωᵢ的大小作为 PINN 训练的停止标准。具体来说,当所有ωᵢ的值都大于预定义的阈值δ时,训练可以认为完成。推荐的δ值为 0.99。

  2. 选择合适的ε值很重要。虽然可以通过传统的超参数调整来调整此值,但论文推荐了一种退火策略来调整ε。详细信息请参见原始论文(第三部分)。

2.3 为什么这个解决方案可能有效 🛠️

通过动态加权在不同时间实例评估的时间残差损失,提出的算法能够引导 PINN 训练首先在较早的时间近似 PDE 解,然后再尝试解决较晚时间的解。

这个属性有助于将时间因果关系明确地融入 PINN 训练中,并构成潜在更准确的物理系统模拟的关键因素。

2.4 基准 ⏱️

论文考虑了总共 3 个不同的基准方程。所有问题都是前向问题,其中 PINN 用于求解 PDE。

  • 洛伦兹系统:这些方程出现在行星大气对流和不稳定性的研究中。洛伦兹系统对其初始条件具有强烈的敏感性,且对普通 PINN 来说是具有挑战性的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Kuramoto–Sivashinsky 方程:该方程描述了各种波动模式的动态,如火焰、化学反应和表面波。它被认为表现出丰富的时空混沌行为。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Navier-Stokes 方程:这组偏微分方程描述了流体物质的运动,并构成了流体力学的基本方程。当前论文考虑了一个经典的二维衰减湍流示例,位于一个具有周期性边界条件的方形区域内。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基准研究表明:

  • 与原始 PINN 训练方案相比,提出的因果训练算法能够实现 10 到 100 倍的准确性改进。

  • 演示了配备因果训练算法的 PINNs 能够成功模拟高度非线性、多尺度和混沌系统。

2.5 优势与劣势 ⚡

优势 💪

  • 尊重因果性原则,使 PINN 训练更加透明。

  • 引入了显著的准确性改进,使其能够解决那些对 PINNs 仍然难以处理的问题。

  • 提供了一个实用的定量标准,用于评估 PINNs 的训练收敛性。

  • 与原始 PINN 训练策略相比,计算成本几乎可以忽略不计。唯一的额外成本是计算ωᵢ,这与自动微分操作相比几乎可以忽略。

劣势 📉

  • 引入了新的超参数ε,该参数控制时间残差损失权重的调度。尽管作者提出了一种退火策略作为替代方案,以避免繁琐的超参数调优。

  • 使 PINN 训练工作流程复杂化。应特别关注时间权重ωᵢ,因为它们现在是网络可训练参数(如层权重和偏差)的函数,计算ωᵢ的梯度不应反向传播。

2.6 替代方案 🔀

有几种替代方法试图解决与当前“因果训练算法”相同的问题:

  • 自适应时间采样策略 (Wight et al.):该策略不是对不同时间点的配点进行加权,而是修改配点的采样密度。这种方法类似于将优化器的关注点转移到不同时间点的时间损失最小化上。

  • “时间推进”/“课程训练”策略(例如,Krishnapriyan et al.):通过在不同的时间窗口内顺序学习解决方案来尊重时间因果性。

然而,与那些替代方法相比,“因果训练算法”将时间因果性置于核心,更适应各种问题,且计算成本低。

3 潜在的未来改进 🌟

有几种可能性可以进一步改进提出的策略:

  • 结合更复杂的数据采样策略,如自适应和基于残差的采样方法,以进一步提高训练效率和准确性。

欲了解如何优化残差点分布,请查看此博客中的 PINN 设计模式系列。

  • 扩展到逆问题设置。当信息点源(即观测数据)可用时,如何确保因果关系将需要对目前提出的训练策略进行扩展。

4 个要点📝

在这篇博客中,我们探讨了如何通过重新制定训练目标将因果关系引入 PINN 训练。以下是论文中提出的设计模式的亮点:

  • [问题]:如何让 PINN 遵守支撑物理系统的因果关系原则?

  • 解决方案重新制定 PINN 训练目标,引入动态加权方案,以逐步将训练重点从早期时间步骤转移到后期时间步骤。

  • [潜在收益]:1. 显著提高 PINN 的准确性。2. 扩展 PINN 对复杂问题的适用性。

这是 PINN 设计卡,总结了主要收获:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中提出的 PINN 设计模式。(图片由此博客作者提供)

希望你觉得这篇博客有用!要了解更多关于 PINN 设计模式的信息,请随时查看此系列中的其他帖子:

期待在即将到来的博客中与您分享更多见解!

参考📑

Wang 等人,尊重因果关系是训练物理信息神经网络所需的一切arXiv,2022 年。

揭示物理信息神经网络的设计模式:第七部分

原文:towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-07-4ecb543b616a

高效训练参数化 PINN 的主动学习

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Shuai Guo

·发表于 Towards Data Science ·阅读时长 8 分钟·2023 年 7 月 25 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图片来源于 Scott GrahamUnsplash

欢迎来到本系列的第 7 篇博客,我们将继续激动人心的探索物理信息神经网络(PINN)设计模式的旅程🙌

在这篇博客中,我们将详细探讨一篇将主动学习引入 PINN 的论文。和以往一样,我们将从设计模式的角度分析这篇论文:首先,我们会介绍目标问题,然后引入提出的方法。接下来,我们将讨论评估过程以及该方法的优缺点。最后,我们将通过探索未来的机会来总结博客内容。

随着系列的不断扩展,PINN 设计模式的集合也变得更加丰富!以下是一些即将呈现的内容预览:

PINN 设计模式 01: 优化残差点分布

PINN 设计模式 02: 动态解决方案区间扩展

PINN 设计模式 03: 使用梯度提升训练 PINN

PINN 设计模式 04: 梯度增强 PINN 学习

PINN 设计模式 05: 自动超参数调优

PINN 设计模式 06:因果 PINN 训练

让我们深入了解吧!

1. 论文概述 🔍

  • 标题:主动训练物理信息神经网络以聚合和插值 Navier-Stokes 方程的参数化解

  • 作者:C. A., Arthurs, A. P. King

  • 机构:伦敦国王学院

  • 链接计算物理学期刊

2. 设计模式 🎨

2.1 问题 🎯

PINN 的主要用途之一是替代高保真度、耗时的数值模拟(例如,结构动力学的 FEM 模拟)。得益于已知控制微分方程强有力的正则化(表现为额外的损失项),PINN 的训练通常只需从少量模拟运行中收集的最少数据。

然而,这种理想的情况仅限于研究的问题不涉及变量参数的情况。在实际应用中,我们经常需要推断不同领域几何形状、模型参数(例如,材料属性)以及初始和/或边界条件的解。我们肯定不希望为每种不同的情况重新训练一个新的 PINN,因为这会非常低效且计算成本高。

解决这个挑战的一种策略是将普通 PINN 升级为参数化 PINN:本质上,变量参数被视为 PINN 的额外输入,如下图所示。一旦训练完成,我们可以使用参数化 PINN 在任何给定条件下进行即时预测。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 1. 与仅接受空间/时间坐标的普通 PINN 相比,参数化 PINN 还将变量参数作为输入。(图片由本博客作者提供)

如预期的那样,更多的输入要求更多的训练数据。由于生成新训练数据意味着运行耗时的模拟,因此一个关键问题出现了:如何在达到期望的预测准确度的同时,最小化模拟运行次数(从而提高数据效率)以进行 PINN 训练?

2.2 解决方案 💡

回答这个问题的关键在于战略性地选择参数空间(即θ空间)中的点来运行模拟,而论文提出的解决方案是主动学习

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2. 主动学习工作流程。对于 PINN 训练,“标签”步骤对应于在参数空间中选择的样本位置运行数值模拟。(图片由本博客作者提供)

针对解决参数化 PDE 的应用,所提出的工作流程可以在下图中说明:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3. 论文中提出的主动学习流程示意图。在这里,θ₁和θ₂表示变量参数(在实际应用中,可能有更多这样的变量参数),而 u 表示我们尝试模拟的物理量(例如,在流体仿真中,u 可以是速度、压力等)(图片由本博客作者提供)

提出的主动学习流程从随机采样参数空间开始(在图示中,θ₁和θ₂是变量参数),并进行数值仿真以收集训练数据(即在不同空间/时间位置的u,即所建模的物理量)。

然后,我们继续进行常规的 PINN 训练,其中神经网络的预测不仅需要与收集的模拟结果u匹配,还需要满足主导的微分方程。

一旦训练收敛,我们将获得一个能够在仿真空间/时间域内准确预测u的 PINN 模型,前提是θ₁-θ₂值包含在训练数据集中。然而,到目前为止,对于未见过的θ₁-θ₂值组合,没有保证 PINN 也能提供准确的预测。

这就是为什么我们启动主动学习过程的原因。我们的目标是选择下一个θ₁-θ₂样本来进行仿真。理想情况下,我们希望这个新的θ₁-θ₂样本能够提供最多的信息,一旦将其相关的模拟结果附加到训练数据中,它可以带来 PINN 准确性的最大提升。

那么我们应该如何选择新的θ₁-θ₂样本呢?论文提出了一个简单的标准:首先,使用当前训练好的 PINN 预测参数空间中所有候选θ₁-θ₂样本的u(这些候选样本可以预先大量生成以均匀填充空间),然后计算不同候选θ₁-θ₂样本的相应 PDE 残差。最后,选择具有最高 PDE 残差的下一个θ₁-θ₂样本。

换句话说,论文建议使用PDE 残差作为 PINN 预测准确性的指标。由于当前训练的 PINN 在选定的θ₁-θ₂位置最难准确预测满足已知微分方程的u,因此在选定的θ₁-θ₂位置运行耗时的仿真,并将模拟结果附加到原始训练数据中是有意义的。一旦训练数据得到丰富,我们就开始另一轮 PINN 训练,从而完成一次主动学习的迭代。整个过程在计算的最大 PDE 残差降到预定义的阈值以下时终止。

2.3 为什么解决方案可能有效 🛠️

主动学习是一种成熟的技术,用于减少模型训练成本。它之所以有效,是因为它能够识别当前 PINN 预测不够满意的参数空间区域,然后相应地选择下一步要模拟的点,以最大化模型的改进。通过这种方式,主动学习可以显著提高数据效率,同时确保达到所需的预测准确性。

2.4 基准测试 ⏱️

与其他 PINN 论文不同,当前论文专注于解决连续 2D 管道域中的参数稳态不可压 Navier-Stokes 方程:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

考虑了两个变量参数,包括流动边界条件,即流入速率,以及域形状参数。

论文展示了,通过提出的主动学习策略训练的 PINN 可以准确高效地预测给定流入速率和域形状值的流场,且这些值都在考虑的变动范围内。

该论文还展示了,使用提出的主动学习策略相比于在所考虑的参数空间内进行随机或均匀数据选择,需要的模拟次数要少得多,同时在流场预测中的误差也要小得多。

最后,论文展示了训练后的参数化 PINN 的一个实际应用:参数扫描。更具体地说,训练后的 PINN 可以用于搜索参数空间,并识别当流场满足给定条件时两个参数的值。

2.5 优势与劣势 ⚡

优点 💪

  • 大幅减少训练具有所需预测准确性的参数PINN 模型所需的模拟数据。

  • 训练后的 PINN 模型能够在参数空间的区域内提供极快的 PDE 解决方案近似值。

  • 训练后的 PINN 具有高度灵活性,因为它可以在不需要全面重新训练的情况下适应不同的参数空间。这是可能的,因为主动学习允许模型随着新的模拟回合在扩展参数空间中被轻松更新。

  • 不需要存储大量模拟结果,因为训练后的参数化 PINN 可以按需生成流场结果。由于典型的神经网络只消耗少量存储空间,因此潜在的数据压缩是显著的。

劣势 📉

  • 提出的主动训练流程的有效性可能取决于初始数据。如果初始数据集不能充分代表系统的基本行为,模型可能难以识别潜在的改进区域,从而导致后续模拟的选择不理想。

  • 此外,所提的方法使用 PDE 残差作为模型预测精度的指示。然而,对于模型预测精度与 PDE 残差不相关的情况,所提方法的有效性可能会被打折扣。

  • 目前,本文仅考虑了两个变量参数。然而,随着问题维度的增加,主动学习可能变得计算昂贵。因此,所提方法的可扩展性仍需进一步研究。

2.6 替代方案 🔀

替代使用主动学习方案,样本(用于运行模拟以生成训练数据)也可以通过采用准随机采样方法生成。流行的准随机采样方法包括拉丁超立方体采样(LHS)、Sobol 序列和 Halton 序列。与简单随机采样方案相比,准随机采样方法具有更好的空间填充特性,这意味着需要更少的样本来均匀覆盖所研究的参数空间。

然而,与论文中提出的主动学习方法相比,准随机采样方案需要用户预先指定样本数量,因此在新模拟数据可用时,在丰富训练数据集方面的灵活性较差。然而,主动学习会引入额外的计算成本,因为需要估计模型的性能并确定最具信息量的点以进行下一次模拟运行。

3 个潜在的未来改进 🌟

有几个可能的方向可以进一步改进所提的策略:

  • 利用更复杂的主动学习算法来自动选择训练数据点。这可能进一步提高预测的准确性,并减少训练所需的时间。

  • 开发策略以允许在每次主动学习迭代中采样多个数据点。由于相应的模拟可以并行运行,因此整体训练效率可以大大提高。

  • 将其他经过验证的最佳实践(如协同点采样、因果训练、集成学习等)与所提的主动学习方案整合,以进一步提升模型性能。

4 个要点 📝

在这篇博客中,我们探讨了如何使用主动学习进行数据高效的参数化 PINN 训练。以下是论文中提出的设计模式的亮点:

  • [问题]:如何用尽可能少的数据样本训练参数化 PINN。

  • 解决方案使用主动学习训练 PINN,在这种方法中,数据会被自适应地收集,以最大化 PINN 预测精度的提升。

  • [潜在好处]:1. 显著降低了参数化 PINN 的训练成本。2. 训练后的参数化 PINN 在参数空间的区域内提供了对 PDE 解的快速近似。

以下是总结要点的 PINN 设计卡:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中提出的 PINN 设计模式。(图片由本博客作者提供)

参考文献 📑

[1] Arthurs 等人,《物理信息神经网络的主动训练以聚合和插值 Navier-Stokes 方程的参数解》,计算物理学期刊,2021 年。

解密物理信息神经网络的设计模式:第 01 期

原文:towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-series-01-8190df459527

优化残差点分布以提升 PINN 训练效率和准确性

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Shuai Guo

·发表于 Towards Data Science ·阅读时间 9 分钟·2023 年 5 月 15 日

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Sebastian Yepes拍摄,Unsplash

近年来,物理信息神经网络(PINNs)作为一种卓越的方法出现,将神经网络的强大功能与基本物理定律的洞察力结合在一起。当我深入这个领域时,我经常感到被大量的研究论文和它们提出的各种技术所压倒。在这片信息的海洋中导航成为了一项挑战,特别是当我想找到最有效的解决方案来应对特定问题时。

我的个人经历激发了我开始这个博客系列的想法:我的想法是,在每篇博客文章中,我将集中于一篇或几篇研究论文,并将其贡献提炼成易于理解的见解。我希望这个博客系列能够作为一个结构化的地图,供 PINN 从业者依赖,以识别最适合当前挑战的技术,保持对最新进展的了解,并更自信地探索 PINNs 的世界。

那么,这个提炼过程应该是什么样的呢?就个人而言,我发现设计模式的概念是一个非常好的框架:

设计模式指的是经过测试并证明有效的可重用解决方案,用于常见问题。设计模式提供了解决这些问题的模板,可以根据需要适应不同的情况。它们作为最佳实践,捕捉了该领域专家的集体知识和经验。

因此,本博客系列将超越传统的论文评论。它将作为一个有组织的目录,涵盖:

  • 问题,提出的策略试图解决的具体问题;

  • 解决方案,提出策略的关键组成部分,如何实施以及为什么可能有效;

  • 基准,评估了哪些物理问题,以及相关的性能;

  • 优缺点,在何种条件下提出的策略可以有效,同时也突出其潜在的局限性;

  • 替代方案,为解决类似问题而提出的其他方法,从而提供对潜在解决方案的更广泛视角。

我希望这种方法能引起你的共鸣,因为它真正反映了我对组织知识和使其易于获取的热情。事不宜迟,让我们通过探索第一篇 PINN 论文一起踏上这段激动人心的旅程,专注于为 PINN 训练创建更好的残差点。

随着这一系列的不断扩展,PINN 设计模式的集合变得更加丰富🙌 这里是对未来内容的简要预览:

PINN 设计模式 02:动态解空间扩展

PINN 设计模式 03:使用梯度提升训练 PINN

PINN 设计模式 04:梯度增强的 PINN 学习

PINN 设计模式 05:自动化超参数调优

PINN 设计模式 06:因果 PINN 训练

PINN 设计模式 07:与 PINN 的主动学习

1. 论文概览:

  • 标题:关于物理信息神经网络的非自适应和基于残差的自适应采样的综合研究

  • 作者:C. Wu, M. Zhu, Q. Tan, Y. Kartha, L. Lu

  • 机构:宾夕法尼亚大学、南加州大学、乔治亚理工学院

  • 链接arXiv

2. 设计模式

2.1 问题

物理信息神经网络(PINNs)通过显式地集成已知的物理过程的常微分方程或偏微分方程(ODEs/PDEs)提供了相对于传统神经网络的独特优势。PINNs 中这些控制方程的强制执行依赖于称为残差点的一组点。这些点在仿真领域内被战略性地选择,并将相应的网络输出代入控制方程以评估残差。残差指示了网络输出与基础物理过程的一致程度,因此作为一个关键的物理损失项来指导神经网络的训练过程。

显然,这些残差点的分布在影响 PINNs 训练过程的准确性和效率方面发挥着关键作用。然而,当前的方法通常涉及简单的均匀采样,这留有相当大的改进空间。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

PINN 的示意图。虚线圈起来的部分,即残差点的分布,是本文主要解决的问题。(图像由本博客作者提供)

因此,一个紧迫的问题是:我们如何优化残差点的分布,以提高 PINNs 的准确性和训练效率?

2.2 解决方案

分配残差点的有前途的方法是采用自适应策略精细化策略

  1. 自适应策略意味着在每经过一定数量的训练迭代后,可以生成一批新的残差点来替换先前的残差点;

  2. 精细化策略意味着可以向现有残差点中添加额外的残差点,从而“精细化”残差点。

基于这两种基础策略,本文提出了两种新颖的采样方法:基于残差的自适应分布(RAD)和基于残差的自适应分布精细化(RAR-D):

  1. RAD: Residual-based Adaptive Distribution

关键思想是基于自定义的概率密度函数在空间域x上绘制新的残差样本。概率密度函数 P(x) 的设计使其与x处的 PDE 残差 ε(x) 成正比:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用于生成残差点的自定义概率密度函数。(来源于原始论文)

在这里,kc 是两个超参数,分母中的期望项可以通过例如蒙特卡罗积分来近似。

RAD 方法总共有三个超参数:kc 和重新采样的周期 N。尽管最佳的超参数值依赖于问题,但建议的默认值为 1、1 和 2000。

  1. RAR-D: Residual-based Adaptive Refinement with Distribution

从本质上讲,RAR-D 在提出的 RAD 方法基础上增加了精炼元素:经过一定的训练迭代后,RAR-D 不会完全用新的残差点替换旧的残差点,而是保留旧的残差点,并根据上述自定义概率密度函数绘制新的残差点。

对于 RAR-D,建议的默认值为 kc 分别为 2 和 0。

2.3 为什么解决方案可能有效

关键在于设计的采样概率密度函数:该密度函数倾向于在 PDE 残差较大的区域放置更多的点,而在残差较小的区域放置较少的点。这种点的战略分布使得在残差较高的区域能够进行更详细的 PDE 分析,可能导致 PINN 预测精度的提高。此外,优化的分布还允许更高效地利用计算资源,从而减少了准确解决控制 PDE 所需的总点数。

2.4 基准测试

论文对两种提出的方法与其他八种采样策略进行了基准测试。他们在处理各种物理方程中的前向和逆向问题时对这些方法进行了评估:

  • 一维扩散方程:这种方程描述了热传导、分子扩散以及其他类似的物理过程。该方程描述了物质密度如何随着时间的推移而扩散或扩展。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Burgers’ 方程:该方程将非线性对流与扩散/粘度相结合。它被应用于包括流体力学、交通流、气体动力学等各种应用数学领域,有时还用于模拟冲击波。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Allen-Cahn 方程:该方程广泛用于描述相分离过程,这是材料科学中的一个关键现象。它模拟了一个二元(两相)系统向最小能量配置的演变。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 波动方程:该方程是描述波动的二阶线性偏微分方程——如声波、光波或水波——在介质中传播的方程。它在声学和电磁学领域中具有基础性作用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 扩散-反应方程(逆问题,标定反应速率 k(x)):该方程是扩散方程和反应系统的结合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Korteweg-de Vries 方程(逆问题,标定 λ₁ 和 λ₂):该方程描述了某些类型的波动传播,如浅水波。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比较研究表明:

  1. RAD 策略始终表现最佳,使其成为一个强有力的默认策略。

  2. 如果计算成本是一个问题,RAR-D 可以作为一种强有力的替代方案,因为它提供了足够的准确性,并且计算需求低于 RAD。

  3. RAD 和 RAR-D 在处理复杂 PDE 时表现特别有效。

  4. 当模拟的 PDE 具有光滑解时,RAD 和 RAR-D 的优势会减少。

2.5 优势与劣势

👍优点

  • 动态改善基于 PDE 残差的残差点分布。

  • 提高了 PINN 的准确性。

  • 在较少的残差点下实现了与现有方法相当的准确性。

👎缺点

  • 可能比其他非自适应均匀采样方法计算成本更高。然而,这是为了更高的准确性所付出的代价。

  • 对于具有光滑解的 PDE,例如扩散方程、扩散反应方程等,一些简单的均匀采样方法可能会产生足够低的误差,使得提出的解决方案在这些情况下可能不太适用。

  • 引入了两个新的超参数 kc,需要调整,因为它们的最佳值依赖于问题。

2.6 替代方案

当前论文之前已经提出了其他方法:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

论文中研究了总共 10 种采样方法。两种新提出的方法用红色突出显示。(图片由这篇博客作者提供)

在这些方法中,有两种方法对当前论文提出的方法影响深远:

  1. 基于残差的自适应细化 (Lu et al.),这是提出的 RAR-D 的一个特殊情况,其中 k 的值很大。

  2. 重要性采样 (Nabian et al.),这是通过设置 k=1 和 c=0 得到的 RAD 特殊情况。

3 潜在的未来改进

未来的改进可以在以下几个方向进行:

  • 进一步优化残差点生成的概率密度函数,可能使用 元学习 技术。

  • 利用更复杂的 主动学习强化学习 技术来优化采样策略。

4 收获

在这篇博客中,我们探讨了优化 PINNs 中残差点分布的有前景的解决方案。这个主题高度相关,因为它直接影响 PINNs 的准确性和效率。论文中提出的设计模式的要点总结如下:

  • [问题]:如何分配残差点以评估物理损失?

  • 解决方案1. 自适应采样,即在高 PDE 残差区域采样更多。2. 细化采样,即在现有点上添加新的残差点。

  • [潜在好处]:1. 提高准确性。2. 需要较少的残差点。

这是我准备的 PINN 设计模式卡片:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文提出的 PINN 设计模式。(图片来自本博客作者)

希望你觉得这个博客有用😃 如果你想了解更多关于 PINN 设计模式的内容,请随时查看系列中的其他文章。

参考文献

[1] Wu 等人,关于物理信息神经网络的非自适应和基于残差的自适应采样的综合研究,arXiv,2022 年。

揭开大数法则的面纱

原文:towardsdatascience.com/unraveling-the-law-of-large-numbers-e36a3219acb2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Pixabay

大数法则的有趣之处在于它不仅仅是它所说明的内容,还有它所未说明的内容。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 Sachin Date

·发表于Towards Data Science ·阅读时间 15 分钟·2023 年 7 月 12 日

1966 年 8 月 24 日,一位才华横溢的剧作家汤姆·斯托帕德在苏格兰爱丁堡上演了一部戏剧。这部戏剧有一个奇特的标题,“罗生门与吉尔登斯特恩死了”。其主要角色,罗生斯坦和吉尔登斯特恩,是哈姆雷特(莎士比亚名著中的角色)的童年朋友。戏剧开场时,吉尔登斯特恩反复掷硬币,每次都是正面。每次结果使吉尔登斯特恩的钱包变轻,而罗生斯坦的钱包变重。随着正面的鼓点不断重复,吉尔登斯特恩感到担忧。他担心自己是否在暗中希望每次硬币都是正面,以此作为对某个早已遗忘的罪行的自我惩罚。或者时间是否在第一次掷硬币后停滞不前,他和罗生斯坦在经历着相同的结果。

斯托帕德出色地展示了概率法则如何融入我们的世界观、期望感和人类思维的基本结构中。当第 92 次掷硬币仍然是正面时,吉尔登斯特恩问道,他和罗生斯坦是否处于一个不自然的现实中,在那里概率法则不再适用。

吉尔登斯特恩的担忧当然是没有根据的。确实,连续 92 次都是正面的可能性小得不可思议。实际上,这个概率是一个小数点后跟 28 个零再跟 2。吉尔登斯特恩更有可能被一颗陨石砸中。

Guildenstern 只需在第二天再抛一次 92 次硬币,这个结果几乎肯定会与之前大相径庭。如果他每天都进行这个例程,他会发现大多数天里正面数量会与反面数量大致相等。

在连续出现 92 个正面的情况下,Guildenstern 得到了一个极度偏倚的样本。而他所目睹的是我们宇宙中的两种迷人行为——概率收敛大数法则

用简单的英语解释大数法则

大数法则,简称 LLN,有两个版本:弱版本和强版本。弱大数法则更直观、更易于理解,但也容易被误解。本文将讨论弱版本的内容,而强版本将在之后的文章中讨论。

弱大数法则关注的是样本均值与总体均值之间的关系。我将用简单的文字解释它的含义:

假设你从总体中随机抽取一个特定大小的样本,比如 100 个样本。记住样本大小这个术语。样本的大小是这个法则中的指挥者,是大拿。现在计算这个样本的均值并将其放置一旁。接下来,多次重复这一过程。你会得到一组不完美的样本均值。样本均值之所以不完美,是因为样本均值和真实总体均值之间总会存在误差。假设你能容忍一定的误差。如果你从这些均值中随机选择一个样本均值,有可能样本均值与总体均值之间的绝对差异会超过你的误差容忍度。

弱大数法则指出,样本均值与总体均值之间的误差落在你选择的容忍水平内的概率,随着样本量的增长,会趋近于完美的 1.0,也就是确定性,这种趋势在样本量无限增长或等于总体量时尤为明显。

无论你如何缩小容忍度水平,当你抽取越来越大规模的样本时,随机选择的样本均值超出这个容忍度的可能性将越来越小。

一个弱大数法则如何运作的现实世界示例

要了解弱大数法则的工作原理,我们将通过一个例子来演示。为此,请允许我带你到寒冷而阴郁的东北大西洋。

爱尔兰政府每天都会发布一个水温数据集,该数据集记录了从东北大西洋表面测得的水温。这份数据集包含了按纬度和经度索引的数十万条表面水温测量数据。例如,2023 年 6 月 21 日的数据如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

东北大西洋海面温度数据集 (CC BY 4.0)

很难想象八十万温度值的样子。所以让我们创建一个散点图来可视化这些数据。我在下面展示了这个图。图中空白的区域代表爱尔兰和英国。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

东北大西洋海面温度的彩色散点图(图片来源:作者)(数据来源:数据集

作为实践者,你永远无法接触到‘总体’。所以如果我将这组 80 万温度测量值称为‘总体’,你完全可以严厉批评我。但请稍等片刻。你很快会明白为什么将这些数据视为‘总体’对我们有帮助。

假设这些数据是……呃……总体。这个总体中 810219 个位置的平均海面温度是 17.25840 摄氏度。我们将这个值标记为总体均值μ。记住这个值,你将需要经常参考它。

现在假设你无法接触到这个 810219 个值的总体。相反,你只能接触到一个从该总体中抽取的 20 个随机位置的小样本。这是一个这样的随机样本:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

大小为 20 的随机样本(图片来源:作者)

样本的平均温度是 16.9452414 摄氏度。这是我们的样本均值X_bar,其计算方式如下:

X_bar = (X1 + X2 + X3 + … + X20) / 20

你可以同样轻松地从同一总体中绘制第二个、第三个,甚至任意多个这样大小为 20 的随机样本。这里有一些随机样本供参考:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

从总体中抽取的每个大小为 20 的随机样本(图片来源:作者)

关于随机样本究竟是什么的简要说明

在继续之前,我们先稍作绕道,了解一下随机样本究竟是什么。为了获得这个视角,我们将看一下赌场老虎机:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Pixabay

上面展示的老虎机包含三个槽位。每次你拉下机器的把手时,机器会从内部维护的图片总体中随机选择一张图片填充每个槽位,例如一系列水果图片。现在想象一个有 20 个槽位的老虎机,命名为X1 到X20。假设该机器被设计为从 810219 个温度测量值的总体中选择值。当你拉下把手时,20 个槽位中的每一个——X1 到X20——都会填充一个从 810219 个值的总体中随机选择的值。因此,X1 到 X20 是可以容纳总体中任何值的随机变量。它们一起形成了一个随机样本换句话说,随机样本的每一个元素本身都是一个随机变量。

在老虎机的例子中,X1X20具有一些有趣的性质**:**

  • X1 获得的值与X2 到X20 获得的值是独立的。同样适用于X2、X3,……,X20。因此,X1 到 X20独立的随机变量

  • 由于X1X2,……,X20可以容纳总体中的任何值,因此它们每一个的均值都是总体均值μ。使用期望值的符号 E(),我们可以将这个结果写为:

    E(X1) = E(X2) = … = E(X20) = μ。

  • X1X20具有相同的概率分布。

因此,X1X2,……,X20独立同分布(i.i.d.)随机变量。这些变量的均值是总体均值μ。对于任何特定的观测样本,X1X2,……,X20的观测值均值即为样本均值X_bar。

…然后我们回到展示弱大数法则如何工作的部分

让我们计算这个 20 个元素样本的均值(记作X_bar),然后将其放置一旁。如果你再次拉下机器的把手,又会弹出另一个 20 元素的随机样本。继续计算它的均值并将其放置一旁。如果你重复这一过程一千次,你将计算出一千个样本均值。

这里是以这种方式计算出的 1000 个样本均值的表格。我们将其标记为X_bar_1 到X_bar_1000:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个包含 1000 个样本均值的表格。每个均值是从一个 20 个样本的随机样本中计算得出的

现在仔细考虑以下陈述:

由于样本均值是从随机样本中计算得出的,样本均值本身也是一个随机变量

此时,如果你智慧地点头并抚摸下巴,那确实是非常正确的。认识到样本均值是一个随机变量是统计学中最深刻的领悟之一。

请注意,上表中的每个样本均值与总体均值μ之间都有一定的距离。让我们绘制这些样本均值的直方图,以查看它们如何围绕μ分布:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

样本均值的直方图(图片由作者提供)

大多数样本均值似乎接近于 17.25840 摄氏度的总体均值。而且有些均值与μ有相当大的距离。假设你对这个距离的容忍度是 0.25 摄氏度。如果你将手伸进这 1000 个样本均值的桶里,抓取任何一个在你手掌范围内的均值,并将其取出,那么你取出的均值超出这个容忍阈值的概率是多少?要估计这个概率,你必须计算那些在两个方向上与μ相距至少 0.25 度的样本均值的数量,并将这个数量除以 1000。在上表中,有 422 个这样的样本均值。因此,随机抽取一个这样的均值的概率是:

P(|X_bar — μ | ≥ 0.25) = 422/1000 = 0.422

让我们暂时搁置这个概率。

现在重复上述所有步骤,但这次使用样本大小为 100 而不是 20。所以你将做的是:从中抽取 1000 个大小为 100 的随机样本,计算每个样本的均值,存储所有这些均值,计算那些与μ相距至少 0.25 摄氏度的均值,并将此计数除以 1000。如果这听起来像是赫拉克勒斯的劳作,你没有听错。所以花点时间喘口气。当你都赶上来后,看看你为自己的劳作所获得的奖励。

下表包含了 1000 个随机样本的均值,每个样本的大小为 100:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1000 个样本均值的表格。每个均值是从一个大小为 100 的随机样本中计算得出的

在这 1000 个均值中,有 56 个均值与μ的偏差至少为 0.25 摄氏度。因此,你遇到这样的均值的概率仅为 56/1000 = 0.056。这个概率明显小于我们之前计算的当样本大小为 20 时的 0.422。

如果你用不同的样本大小逐步增加来重复这个实验,你将得到一个满是概率的表格。我已经为你做了这个练习,通过将样本大小从 10 逐步增加到 490。结果如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

概率表。展示了当样本大小从 10 增加到 490 时的 P(|X_bar — μ | ≥ 0.25)(图片由作者提供)

此表中的每一行对应我从 810219 个温度测量值的总体中随机抽取的 1000 个不同样本。sample_size列提到每个这 1000 个样本的大小。一旦抽取,我计算了每个样本的均值,并统计了那些在两个方向上与μ相距至少 0.25 摄氏度的均值。num_exceeds_tolerance列提到这个计数。probability列是num_exceeds_tolerance / sample_size的比率。

注意到样本量增加时,这个计数迅速减小。相应的概率 P(|X_bar — μ | ≥ 0.25) 也是如此。样本量达到 320 时,概率已降至零。偶尔会小幅上升至 0.001,但那是因为我绘制了有限数量的样本。如果每次我绘制 10000 个样本而不是 1000 个,不仅偶尔的小幅上升会平滑掉,概率的衰减也会变得更平滑。

下图展示了 P(|X_bar — μ | ≥ 0.25) 随样本量的变化。它清晰地反映了随着样本量的增加,概率急剧下降至零。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

P(|X_bar — μ | ≥ 0.25) 随样本量的变化(图像由作者提供)

如果将 0.25 摄氏度的容差换成不同的容差值——无论是更低还是更高的值——结果会如何?概率是否会无论你选择的容差水平如何而衰减?以下一系列图示说明了这个问题的答案。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

概率 P(|X_bar — μ | ≥ ε) 会随着样本量的增加而衰减(至零)。这适用于所有 ε 的值(图像由作者提供)

无论你选择多么小的容差(ε),概率 P(|X_bar — μ | ≥ ε) 总是会随着样本量的增加而收敛至零。这就是弱大数法则的实际应用。

弱大数法则,正式陈述

弱大数法则的行为可以正式陈述如下:

假设 X1, X2, …, Xn 是 i.i.d. 随机变量,组成了一个大小为 n 的随机样本。假设 X_bar_n 是该样本的均值。还假设 E(X1) = E(X2) = … = E(Xn) = μ。则对于任何非负实数 ε,X_bar_n 距离 μ 至少 ε 的概率随着样本量的增加趋向于零。以下精美方程捕捉了这种行为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

弱大数法则(图像由作者提供)

在这一法则的三百年历史中,数学家们逐渐放宽了 X1 到 Xn 必须是独立同分布的要求,同时仍保留了该法则的精神。

“概率收敛”原则、“plim”符号以及用极少的话说出重要事情的艺术

使用概率作为运输手段逐渐收敛到某个值的特定方式称为 概率收敛。一般来说,概率收敛 原则可以陈述如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

概率收敛(图像由作者提供)

在上述方程中,X_n 和 X 是随机变量。ε 是一个非负实数。上述方程表示,当 n 趋向于无穷大时,X_n 在概率上收敛于 X。注意,如果你将 X 替换为 μ,你会得到 WLLN 的方程。

在广袤的统计领域,你会不断遇到一个默默无闻的符号,叫做plim。它的发音是‘p lim’,或‘plim’(像‘plum’这个词,但‘i’发音),或概率极限。plim 是指一个度量如均值以概率收敛到一个特定值的简短说法。使用 plim,弱大数法则可以简洁地表述如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用极少的墨水表达的弱大数法则(图片作者提供)

或者简单地表示为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(图片作者提供)

符号的简洁性一点也不令人惊讶。数学家对简洁如蜜蜂对花蜜一样热衷。当涉及到传达深刻真理时,数学可能是最省墨水的领域。在这个追求效率的领域中,plim 占据了重要位置。你将很难找到像 plim 这样用更少的墨水或电子表达出的深刻概念。

但不要再挣扎了。如果 plim 的简洁美让你渴望更多,这里还有另一种,可能更高效的符号,它传达与 plim 相同的含义:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用更少的墨水表达的弱自然数法则(图片作者提供)

揭穿一些关于弱大数法则的误解

在这篇文章的开头,我提到弱大数法则的显著性在于它所没有说的东西,甚至胜过它所说的。让我解释一下我的意思。弱大数法则常常被误解为样本量增加时,样本均值接近于总体均值或该思想的各种泛化。如我们所见,这种关于弱大数法则的观点与现实毫无关联。

实际上,让我们揭穿几个关于弱大数法则的误解。

神话 #1: 随着样本量的增加,样本均值趋向于总体均值

这很可能是对弱大数法则的最常见误解。弱大数法则确实没有做出这样的断言。为了理解原因,请考虑以下情况:你成功地获得了一个非常大的样本。虽然你欣喜地欣赏着自己的成就,但你也应该问自己以下问题:仅仅因为你的样本很大,它就必须也平衡吗?是什么阻止自然用一个含有大量偏差的巨型样本来给你带来打击?答案是绝对没有。实际上,Guildenstern 的 92 个正面序列不就是这样吗?他的样本毕竟是完全随机的。如果大样本恰好有很大的偏差——虽然不太可能,但也不是不可能——那么尽管样本量很大,大偏差会把样本均值推到远离真实总体值的地方。相反,小样本可能会被证明是非常平衡的——再次强调,这虽然不太可能,但也不是不可能。关键是,随着样本量的增加,样本均值并不保证会忠实地向总体均值靠拢。自然并没有提供这样的绝对保证。自然提供的保证是,随着样本量的增加,样本均值落在总体均值的任何选定误差阈值内的概率会逐渐增加,换句话说,即 WLLN。

神话 #2:随着样本量的增加,样本的几乎所有特征——中位数、方差、标准差——都会收敛到相同的总体值。

这句话将两个神话打包成一个易于携带的包裹。首先,弱大数法则(LLN)假设的是概率上的收敛,而不是值上的收敛。其次,弱大数法则适用于样本均值的概率收敛,而不是任何其他统计量。弱大数法则不涉及中位数、方差或标准差等其他测量的收敛。

如何知道弱大数法则是否实际有效?

陈述弱大数法则(WLLN)以及用实际数据演示它的工作原理是一回事,但如何确保它始终有效呢?是否存在某些情况,会让它成为破坏者——样本均值无法以概率收敛到总体值的情况?要了解这些,我们必须证明 WLLN,并在此过程中精确定义它适用的条件。

恰巧的是,弱大数法则(WLLN)有一个美味的证明,其中一个关键要素是令人垂涎的切比雪夫不等式。如果这激起了你的兴趣,请关注我下一篇关于弱大数法则证明的文章

再谈 Guildenstern

如果不安抚我们的朋友 Guildenstern 的担忧就离开是无礼的。让我们深入理解他所经历的结果是多么不可能。我们将使用伪随机生成器模拟 92 次不偏不倚的抛硬币。正面将被编码为 1,反面编码为 0。我们将记录 92 次结果的均值。均值是硬币正面朝上的次数的分数。例如,如果硬币正面朝上 40 次,反面朝上 52 次,均值为 40/92=0.43478。我们将重复进行 92 次抛硬币的动作一万次,得到一万次均值,并绘制其频率分布图。此分布的 X 轴代表均值,Y 轴表示观察到该值的次数。完成此练习后,我们得到以下类型的直方图:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

10000 个样本的样本均值直方图(作者提供的图像)

我们看到大多数样本均值集中在 0.5 的总体均值附近。这是你最有可能观察到的结果。Guildenstern 的结果——连续 92 次正面——对应的均值是 92/92=1.0。这是一个极不可能的结果。在图中,你可以看到它在 10000 次实验中的出现频率基本为零。但与 Guildenstern 的担忧相反,这个结果并没有什么不自然的,概率法则依然以其惯有的果断性运作。Guildenstern 得到的完美 1.0 结果仅仅是在图的右尾的遥远区域潜伏,耐心等待一些不幸的抛硬币者,其唯一的错误就是不幸到令人难以想象。

参考文献和版权

数据集

DATA.GOV.IE 下载的 北东大西洋实时海面温度数据集,版权归 CC BY 4.0 所有。

图像

本文中的所有图像版权归 Sachin Date 所有,使用 CC-BY-NC-SA,除非图像下方提到不同的来源和版权。

感谢阅读!如果你喜欢这篇文章,请 关注我 以获取回归和时间序列分析的技巧、教程和编程建议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值