高斯过程:从基础到定制化应用
立即解锁
发布时间: 2025-08-31 01:43:00 阅读量: 10 订阅数: 12 AIGC 

### 高斯过程:从基础到定制化应用
#### 1. 高斯过程基础回顾
高斯过程是一种强大的概率模型,它将多元高斯分布扩展到无限维度,成为函数上的分布。即使没有训练数据,高斯过程也能根据先验产生预测。训练后,其均值预测能平滑地插值训练数据点。
高斯过程的一个显著优势是能够对不确定性进行校准量化。在观测数据点附近的预测更有信心,而远离训练数据的预测则更不确定。使用多元高斯分布或高斯过程进行条件设定,就像在观测点打一个结,迫使模型精确通过观测点,并将该区域的不确定性降为零。
当使用 GPyTorch 实现高斯过程时,可编写一个模块化的模型类,具体实现两个方法:
- `__init__()`:为给定输入构建多元高斯分布。
- `forward()`:声明高斯过程的均值和协方差函数。
#### 2. 实际数据集上的高斯过程训练
以一个材料发现任务的实际数据集为例,每个数据点代表一种由铅(Pb)、锡(Sn)、锗(Ge)和锰(Mn)按不同比例混合而成的合金。前四列是这些母体化合物的百分比,最后一列是混合温度,即合金能够形成的最低温度。任务是根据合金的成分百分比预测混合温度。
具体步骤如下:
1. 创建包含在表中的四维数据集。
2. 对第五列进行归一化处理,即从所有值中减去均值,然后除以标准差。
3. 将前四列作为特征,第五列作为标签,在这些数据上训练高斯过程。可以复用之前实现的 GP 模型类。
4. 创建一个测试数据集,其中锗和锰的百分比为零。也就是说,测试集是一个单位正方形上的网格,其坐标轴是铅和锡的百分比。测试集应类似于以下 PyTorch 张量:
```python
tensor([[0.0000, 0.0000, 0.0000, 0.0000],
[0.0000, 0.0100, 0.0000, 0.0000],
[0.0000, 0.0200, 0.0000, 0.0000],
...,
[1.0000, 0.9800, 0.0000, 0.0000],
[1.0000, 0.9900, 0.0000, 0.0000],
[1.0000, 1.0000, 0.0000, 0.0000]])
```
5. 在测试集上预测混合温度,即计算测试集中每个点的归一化混合温度的后验均值和标准差。
6. 可视化预测结果,以与图中相同的方式将均值和标准差显示为热图。
数据集示例如下:
| % of Pb | % of Sn | % of Ge | % of Mn | Mixing temp. |
| ---- | ---- | ---- | ---- | ---- |
| 0.50 | 0.50 | 0.00 | 0.00 | 192.08 |
| 0.33 | 0.33 | 0.33 | 0.00 | 258.30 |
| 0.00 | 0.50 | 0.50 | 0.00 | 187.24 |
| 0.00 | 0.33 | 0.33 | 0.33 | 188.54 |
#### 3. 先验知识在贝叶斯模型中的重要性
先验知识在贝叶斯模型中起着至关重要的作用。以一个有趣的场景为例,假设你和朋友 Bob、Alice 在嘉年华上遇到一个自称是灵媒的人。测试方法是你和朋友各自想一个 0 到 9 之间的数字,灵媒来猜出这个数字,可重复测试多次。
经过
0
0
复制全文
相关推荐









