2. 材料实验数据的结构化表示

材料实验数据天然是多模态的:一次合金设计实验可能同时产生成分表(如 Fe-18Cr-8Ni-0.05C,wt.%)、工艺参数(固溶温度 1050 ℃、保温 1 h、水淬)、结构表征(XRD 物相为 FCC,晶格常数 3.59 Å,晶粒尺寸 25 μm)以及性能结果(屈服强度 310 MPa、延伸率 42%)。如果这些信息散落在 Excel、仪器导出文件和实验记录本中,主动学习算法就无法直接使用。本节的核心任务,是把“实验事实”转化为“可计算的结构化记录”,并在此基础上完成特征工程、清洗标准化与数据库构建。

一、多模态数据的统一组织:以“实验记录”为最小单元

结构化表示的第一步,是确定数据的最小单元。对材料主动学习而言,最小单元通常是一条“实验记录”,它对应一个具体样品或一次具体实验。每条记录应包含四类字段:

  • 标识与元数据:样品编号、实验日期、操作人、数据来源、版本号。
  • 成分:各元素的质量分数或原子分数,必须明确单位与基准(wt.% 或 at.%)。
  • 工艺:温度、时间、气氛、冷却速率、压力等过程变量,需记录完整工艺路径而非仅最终状态。
  • 结构:物相、晶格参数、晶粒尺寸、织构、缺陷密度等表征结果。
  • 性能:力学、电学、热学、腐蚀等目标量,并标注测试标准与条件。

这四类字段并非简单并列,而是存在明确的因果链:成分与工艺共同决定结构,结构决定性能。主动学习模型要学习的正是这条链上的映射关系。因此,数据库设计时应把“成分+工艺”作为输入特征,“结构”作为中间可观测变量,“性能”作为输出标签。结构字段既可作为特征,也可作为待预测目标,取决于具体任务。

材料实验记录的多模态结构与因果链 成分 Fe-18Cr-8Ni-0.05C 单位:wt.% 基准:质量分数 工艺 1050 ℃ / 1 h / 水淬 冷却速率:约 100 ℃/s 气氛:空气 结构 FCC,a=3.59 Å 晶粒尺寸:25 μm XRD + EBSD 性能 屈服强度:310 MPa 延伸率:42% 拉伸测试,室温 成分决定 工艺调控 结构决定 主动学习输入:成分 + 工艺 → 预测结构/性能;结构作为中间可观测变量,可参与特征构建

二、特征工程基础:从原始字段到可学习表示

原始字段往往不能直接送入模型。例如成分字段是各元素的质量分数,但合金的相稳定性更多与电子浓度、原子半径差、混合焓等物理量相关。特征工程的任务,就是基于领域知识构造更有表达力的特征。常见做法包括:

  • 成分派生特征:价电子浓度(VEC)、原子尺寸差 δ、混合熵 ΔSmix、混合焓 ΔHmix。以 VEC 为例,VEC = Σ ci·VECi,其中 ci 为原子分数,VECi 为元素 i 的价电子数。
  • 工艺派生特征:将温度、时间组合为热输入参数,如均方根扩散距离 √(Dt),或使用同系温度 T/Tm 进行归一化。
  • 结构特征编码:物相用 one-hot 编码,晶格参数、晶粒尺寸保留数值并做对数变换以压缩量纲。
  • 交互特征:如“固溶温度 × 碳含量”,用于捕捉工艺与成分的耦合效应。

需要强调的是,特征工程不是越多越好。对主动学习而言,特征维度应与实验预算匹配。若只有 50 条实验数据,却构造了 200 维特征,模型极易过拟合,采集函数也会被噪声主导。建议先使用 5~15 个有物理意义的特征,再根据特征重要性逐步筛选。

三、数据清洗与标准化:保证不同来源数据可比

材料实验数据常存在缺失、量纲不一、异常值和批次偏差。清洗与标准化应遵循以下顺序:

  1. 缺失值处理:对关键字段缺失的记录,优先补做实验或从原始记录中回溯;无法补齐时,若缺失比例低于 5%,可用中位数填充并增加“缺失指示”特征;若缺失比例过高,应剔除该字段或该记录。
  2. 异常值识别:结合物理边界与统计方法。例如屈服强度不可能为负,晶粒尺寸不应超过样品尺寸;再用 IQR 或 Z-score 标记可疑点,但必须回查原始实验记录确认是否为真实异常。
  3. 单位统一:成分统一为 wt.% 或 at.%,温度统一为 ℃ 或 K,时间统一为 s 或 h,并在数据库中显式记录单位字段。
  4. 标准化:对连续特征做 Z-score 标准化,x' = (x − μ)/σ;对成分等有界量可做 Min-Max 归一化。标准化参数必须只在训练集上拟合,再应用到验证集和主动学习候选集,避免数据泄漏。
注意:标准化参数(均值 μ、标准差 σ)必须随模型一起保存。主动学习迭代中,新实验数据加入后若重新拟合标准化参数,会导致历史模型与当前特征空间不一致,采集函数的排序结果将不可复现。

四、面向主动学习的数据库构建实战

下面以一个“奥氏体不锈钢成分-工艺-性能”数据库为例,给出可执行的建库流程。假设已有 60 条历史实验记录,目标是通过主动学习在剩余预算内找到屈服强度高于 350 MPa 的配方。

步骤 1:定义表结构。使用 SQLite 或 CSV 均可,推荐字段如下:

sample_id, Fe_wt, Cr_wt, Ni_wt, C_wt, Mn_wt, Si_wt,
solution_temp_C, solution_time_h, cooling_rate_C_s,
phase, lattice_a_A, grain_size_um,
yield_MPa, elongation_pct, source, version

步骤 2:导入与校验。将历史 Excel 记录逐行导入,检查每行成分总和是否在 99.5~100.5 wt.% 之间;若偏差过大,说明存在未记录元素或录入错误,需回查。

步骤 3:特征构造。计算 VEC、δ、ΔSmix,并将 phase 做 one-hot 编码。以 Fe-18Cr-8Ni-0.05C 为例(原子分数近似:Fe 0.70,Cr 0.19,Ni 0.10,C 0.01),VEC ≈ 0.70×8 + 0.19×6 + 0.10×10 + 0.01×4 = 8.18。

步骤 4:清洗与标准化。剔除屈服强度缺失的 4 条记录,对 1 条晶粒尺寸为 500 μm 的记录回查原始金相照片,确认是粗晶异常样品后保留但标记为异常。对连续特征做 Z-score 标准化,保存 μ 和 σ。

步骤 5:划分与迭代。将 56 条有效记录按 8:2 划分训练集与验证集。用高斯过程回归建立“成分+工艺 → 屈服强度”的代理模型,以期望改进(EI)为采集函数,在候选空间中推荐 5 个新配方。每完成一轮实验,将新数据追加到数据库,重新训练模型,但标准化参数保持与首轮一致,仅在新数据上做相同变换。

实践建议:数据库应保留 version 字段,每次主动学习迭代生成一个新版本号。这样当模型预测与实验结果偏差较大时,可以回溯到具体版本,检查是数据问题还是模型问题。

完成上述流程后,数据库不再是一张静态表格,而是一个可持续增长的实验知识库。成分、工艺、结构、性能四类字段通过统一的 sample_id 关联,特征工程与标准化流程被固化为可复现的脚本,主动学习每轮推荐的新实验都能无缝并入。下一轮迭代时,模型面对的是同一特征空间、同一标准化基准下的数据,采集函数的排序才具有可比性,主动学习闭环才能真正运转起来。