正态误差下的对数似然为:
ℓ(θ;D)=−2nlog(2πσ2)−2σ21i=1∑n(yi−f(xi;θ))2
若 σ 已知,最大化对数似然等价于最小化平方误差:
θmini=1∑n(yi−f(xi;θ))2
这说明普通最小二乘法可由概率模型推出。
后验必须满足:
∫p(θ∣D)dθ=1
证据项为:
p(D)=∫p(D∣θ)p(θ)dθ
它的作用是把 p(D∣θ)p(θ) 归一化为真正的概率分布。
在模型比较中,证据还能衡量模型整体解释数据的能力。
后验分布包含两类信息:
常用后验摘要包括:
E[θ∣D]
Var(θ∣D)
θMAP=argθmaxp(θ∣D)
真正用于预测的不是单一参数,而是后验预测分布:
p(y∗∣x∗,D)=∫p(y∗∣x∗,θ)p(θ∣D)dθ
含义:
典型贝叶斯建模流程:
已有知识→p(θ)
数据生成假设→p(D∣θ)
贝叶斯更新→p(θ∣D)
预测与决策→p(y∗∣x∗,D)
该流程特别适合小样本、高成本实验和有明确物理先验的材料问题。
本节完成了从事件概率到参数概率的过渡:
本节重点不是公式推导,而是概率思维方式:
| 问题 | 频率观点 | 贝叶斯观点 |
|---|---|---|
| 参数 θ | 固定但未知 | 具有概率分布 |
| 概率含义 | 长期重复频率 | 不确定性的量化 |
| 数据作用 | 用于估计固定参数 | 用于更新参数分布 |
| 结果表达 | 点估计和置信区间 | 后验分布和可信区间 |
| 适合问题 | 大样本重复实验 | 小样本、先验知识丰富问题 |
二者不是简单对立,而是解决问题的不同框架。
贝叶斯更新可概括为:
后验认知∝已有认知×新证据支持度
数学形式:
p(θ∣D)∝p(θ)p(D∣θ)
每增加一批新数据 Dnew:
p(θ∣D,Dnew)∝p(Dnew∣θ)p(θ∣D)
旧后验可以成为新先验。
材料实验通常不是一次性完成,而是逐批进行:
贝叶斯顺序更新:
p(θ∣D1,D2)=p(D2∣D1)p(D2∣θ)p(θ∣D1)
设缺陷率为 q,它是一个概率参数:
0≤q≤1
用 Beta 分布作为先验:
q∼Beta(α,β)
若检测 n 个样品,其中 k 个有缺陷,则似然为二项分布:
p(k∣q)=(kn)qk(1−q)n−k
Beta 先验与二项似然共轭,后验仍为 Beta 分布:
q∣k,n∼Beta(α+k,β+n−k)
后验均值为:
E[q∣k,n]=α+β+nα+k
解释:
import numpy as np
from scipy.stats import beta
# 先验:经验认为缺陷率约为 5%,等效样本量约 20
alpha0, beta0 = 1, 19
# 新数据:检测 50 个样品,发现 4 个缺陷
n, k = 50, 4
alpha_post = alpha0 + k
beta_post = beta0 + n - k
mean_prior = alpha0 / (alpha0 + beta0)
mean_post = alpha_post / (alpha_post + beta_post)
ci = beta.ppf([0.025, 0.975], alpha_post, beta_post)
print(mean_prior, mean_post, ci)
运行结果给出三个信息:
若后验可信区间仍较宽,说明当前样本量不足。
贝叶斯方法不会把小样本结果过度解释为确定结论。
Beta 先验中,α+β 可理解为先验强度。
若 α+β 很小:
数据主导后验
若 α+β 很大:
先验强烈约束后验
材料小样本建模中,先验强度必须与文献可靠性、实验一致性和物理约束相匹配。
为了避免先验任意性,应比较多组先验:
p1(θ),p2(θ),p3(θ)
观察后验结论是否稳定:
p(θ∣D,p1),p(θ∣D,p2),p(θ∣D,p3)
若结论高度依赖某一先验,需要谨慎解释。
材料论文中应报告先验来源和敏感性。
合理贝叶斯分析应满足:
不合理做法:
| 经验知识 | 可转化的先验形式 | 示例 |
|---|---|---|
| 参数正性 | 截断分布或对数正态分布 | 扩散系数 D>0 |
| 数量级 | 对数正态先验 | D∼10−12 m2/s |
| 平滑性 | 高斯过程核函数 | 成分-性能曲面连续变化 |
| 相图约束 | 先验可行域 | 温度和成分落在某相区 |
| 工艺窗口 | 区间先验 | 激光功率、扫描速度范围 |
关键是让知识以可计算形式进入模型。
假设某合金强度模型为:
σy=θ0+θ1c+ε
其中 c 为强化元素含量。
根据历史经验:元素增加通常提高强度,因此可设:
θ1∼N+(μ1,τ12)
其中 N+ 表示截断在正区间的正态分布。
该先验表达的是“强化效应大概率为正”。
贝叶斯思想的核心不是复杂公式,而是科学认知过程:
经验知识+新实验数据→更新后的不确定性认识
对材料科学尤其重要:
本节比较两种常用点估计方法:
完整贝叶斯推断输出后验分布:
p(θ∣D)
但工程应用中常常还需要一个代表性参数:
点估计是对分布信息的压缩,不应替代不确定性分析。
最大似然估计选择最能解释数据的参数:
θ^MLE=argθmaxp(D∣θ)
等价于最大化对数似然:
θ^MLE=argθmaxℓ(θ;D)
其中:
ℓ(θ;D)=logp(D∣θ)
MLE 不考虑先验,只问一个问题:
哪个参数使当前观测数据最可能出现?
优点:
局限:
设:
yi∼N(μ,σ2)
其中 σ2 已知,待估计 μ。
似然为:
p(D∣μ)=i=1∏n2πσ2
最大化似然等价于最小化:
i=1∑n(yi−μ)2
对目标函数求导:
dμdi=1∑n(yi−μ)2=−2i=1∑n(yi−μ)
令导数为零:
i=1∑n(yi−μ)=0
得到:
μ^MLE=yˉ=n1i=1∑nyi
最大后验估计选择后验概率最大的参数:
θ^MAP=argθmaxp(θ∣D)
由于:
p(θ∣D)∝p(D∣θ)p(θ)
所以:
θ^MAP=argθmax[logp(D∣θ)+logp(θ)]
MAP 同时考虑两个因素:
因此:
MAP=数据拟合+先验约束
在小样本材料问题中,MAP 常比 MLE 更稳定。
仍设:
yi∼N(μ,σ2)
加入先验:
μ∼N(μ0,τ02)
后验满足:
p(μ∣D)∝p(D∣μ)p(μ)
MAP 是后验分布的峰值位置。
正态-正态共轭下,后验均值为:
μn=σ2n+τ021σ2nyˉ+τ021μ0
后验方差为:
τn2=(σ2n+τ021)−1
此时 MAP 与后验均值相同:
μ^MAP=μn
后验均值可理解为先验均值与样本均值的加权平均:
μn=wyˉ+(1−w)μ0
其中:
w=σ2n+τ021σ2n
解释:
| 比较项 | MLE | MAP |
|---|---|---|
| 优化对象 | p(D∣θ) | p(θ∣D) |
| 是否使用先验 | 否 | 是 |
| 小样本稳定性 | 较弱 | 通常更强 |
| 与正则化关系 | 无直接先验项 | 先验可产生正则化项 |
| 输出 | 参数点估计 | 参数点估计 |
| 局限 | 忽略已有知识 | 依赖先验设定 |
注意:二者都是点估计,不等同于完整贝叶斯推断。
若线性回归误差为正态分布,并设参数先验:
θ∼N(0,τ2I)
则 MAP 等价于最小化:
i=1∑n(yi−xiTθ)2+λ∥θ∥22
这就是岭回归形式。
其中 λ 与噪声方差和先验方差有关。
正则化不是任意惩罚项,而可解释为先验假设:
| 正则化 | 对应先验 | 效果 |
|---|---|---|
| L2 正则化 | 正态先验 | 参数连续收缩 |
| L1 正则化 | Laplace先验 | 促使部分参数为零 |
| 非负约束 | 截断先验 | 满足物理正性 |
| 平滑约束 | 高斯过程先验 | 响应面平滑 |
因此 MAP 提供了“正则化为什么合理”的概率解释。
import numpy as np
# 小样本强度数据,单位 MPa
y = np.array([912, 935, 928, 970, 940])
sigma = 30.0
# MLE: 正态均值估计
mu_mle = y.mean()
# MAP: 正态先验
mu0 = 900.0 # 文献或经验均值
tau0 = 50.0 # 先验不确定性
n = len(y)
mu_map = ((n / sigma**2) * y.mean() + (1 / tau0**2) * mu0) / ((n / sigma**2) + (1 / tau0**2))
print(mu_mle, mu_map)
材料小样本场景中,MAP 可以避免个别样本导致估计剧烈波动。
但前提是先验来源合理且被明确报告。
MAP 只取后验分布的最大点:
θ^MAP=argθmaxp(θ∣D)
但完整贝叶斯还关心:
Var(θ∣D)
以及:
p(y∗∣x∗,D)
若只给 MAP 而不给不确定性,贝叶斯方法的优势会被削弱。
本节核心关系:
MLE:θ^=argθmaxp(D∣θ)
MAP:θ^=argθmaxp(D∣θ)p(θ)
理解要点:
本节从“估计参数”进入“基于不确定性的决策”:
仅给出一个预测值通常不足以支撑工程决策:
y^=1020 MPa
关键问题是:
可靠 AI 模型必须同时输出预测值与不确定性。
| 类型 | 英文 | 来源 | 是否可通过增加数据降低 |
|---|---|---|---|
| 偶然不确定性 | Aleatoric uncertainty | 实验噪声、材料本征波动 | 通常不能完全消除 |
| 认知不确定性 | Epistemic uncertainty | 数据不足、模型未知、参数不确定 | 可通过增加数据降低 |
材料小样本问题中,认知不确定性往往占主导。
贝叶斯方法天然适合描述参数和模型认知不确定性。
参数后验分布描述参数不确定性:
p(θ∣D)
如果后验很窄,表示参数较确定;如果后验很宽,表示参数仍不确定。
后验方差:
Var(θ∣D)=E[(θ−E[θ∣D])2∣D]
材料模型参数的不确定性会传递到性能预测中。
预测分布:
p(y∗∣x∗,D)=∫p(y∗∣x∗,θ)p(θ∣D)dθ
预测方差通常包括:
预测不确定性=参数不确定性+噪声不确定性
若模型在某一区域缺乏训练数据,参数不确定性应显著增大。
| 概念 | 频率统计 | 贝叶斯统计 |
|---|---|---|
| 区间名称 | 置信区间 | 可信区间 |
| 参数看法 | 固定未知 | 随机变量 |
| 解释方式 | 重复抽样中覆盖真值的比例 | 给定数据后参数落入区间的概率 |
| 常见记号 | CI | CrI |
贝叶斯可信区间更接近工程人员对“参数可能范围”的直觉理解。
若区间 [a,b] 满足:
P(a≤θ≤b∣D)=0.95
则称其为 95% 可信区间。
常用分位数定义:
a=Q0.025(θ∣D),b=Q0.975(θ∣D)
其中 Qp 表示后验分布的第 p 分位数。
预测区间描述未来观测值的可能范围:
P(a≤y∗≤b∣x∗,D)=0.95
它通常比参数可信区间更宽,因为它包含:
工程验收更关心预测区间而非仅参数区间。
设设计阈值为 yreq,材料满足要求的概率为:
P(y∗>yreq∣x∗,D)
若要求可靠性至少为 0.95,则选择条件为:
P(y∗>yreq∣x∗,D)>0.95
这比简单判断 y^>yreq 更稳健。
设行动为 a,真实结果为 y,损失函数为 L(a,y)。
贝叶斯决策选择期望损失最小的行动:
a∗=argaminE[L(a,y)∣D]
离散情形:
a∗=argaminy∑L(a,y)p(y∣D)
不同工程任务应使用不同损失函数。
材料工程中误判代价通常不对称:
| 决策错误 | 可能后果 | 损失特点 |
|---|---|---|
| 将不合格材料判为合格 | 安全风险、装备失效 | 高损失 |
| 将合格材料判为不合格 | 成本增加、材料浪费 | 中等损失 |
| 过度保守选择工艺 | 研发周期延长 | 中等损失 |
| 过度激进选择成分 | 实验失败或安全风险 | 高损失 |
因此不能只用平均预测误差评价模型。
若模型声称某类样本成功概率为 80%,则在大量这类样本中应约有 80% 成功。
这称为概率校准。
校准误差可理解为:
Calibration Error=∣预测概率−经验频率∣
高准确率但概率不校准的模型,不适合风险决策。
模型在训练数据覆盖区域内较可靠:
x∗∈Xtrain
但在外推区域风险升高:
x∗∈/Xtrain
材料应用中外推常见于:
可靠模型应能对外推区域给出更高不确定性。
材料实验设计存在两种目标:
典型采集函数形式:
a(x)=μ(x)+κσ(x)
其中:
不同任务对应不同概率目标:
| 任务 | 概率目标 |
|---|---|
| 筛选高强合金 | P(σy>σreq∣D) |
| 控制缺陷率 | P(q<qmax∣D) |
| 选择热处理工艺 | P(目标组织∣x,D) |
| 控制疲劳寿命 | P(Nf>Nreq∣D) |
| 显微组织识别 | P(类别∣图像) |
概率目标比单一预测值更适合工程约束。
import numpy as np
from scipy.stats import norm
# 假设后验预测强度近似正态分布
mu_pred = 1040.0 # MPa
std_pred = 35.0 # MPa
threshold = 1000.0 # MPa
prob_ok = 1.0 - norm.cdf(threshold, loc=mu_pred, scale=std_pred)
print(prob_ok)
if prob_ok > 0.95:
print("推荐进入下一轮验证")
else:
print("风险偏高,需要补充实验或调整工艺")
可靠概率模型至少需要检查:
对于材料小样本模型,可靠性诊断比追求复杂模型更重要。
本节核心是把模型输出转化为风险决策:
预测均值→预测分布→满足要求的概率→期望损失最小决策
关键认识:
本节面向材料科学应用:
材料数据难以像互联网数据那样大规模获取:
因此材料机器学习常面对:
n≪p或n 很小但实验成本很高
| 风险 | 表现 | 后果 |
|---|---|---|
| 过拟合 | 训练误差低,测试误差高 | 模型不可泛化 |
| 偶然相关 | 把噪声当规律 | 得到虚假材料规律 |
| 外推失控 | 新区域预测过度自信 | 实验失败或安全风险 |
| 数据偏差 | 样本集中在成功体系 | 高估模型能力 |
| 单位混乱 | wt.% 与 at.% 混用 | 特征错误 |
贝叶斯方法不能自动消除这些问题,但能显式表达不确定性。
小样本时,数据提供的信息有限:
p(θ∣D)∝p(D∣θ)p(θ)
当 n 很小时,p(θ) 对后验影响较大。
合理先验可来自:
材料物理中有大量硬约束和软约束:
| 约束 | 先验表达 |
|---|---|
| 扩散系数为正 | D>0,对数正态先验 |
| 相分数在 [0,1] | Beta 或 Dirichlet 先验 |
| 总相分数为 1 | ∑ifi=1 |
| 响应面连续 | 高斯过程平滑核 |
| 反应速率非负 | Gamma 或截断正态先验 |
这些约束能显著缩小小样本下的可行解空间。
设性能与特征近似线性:
y=Xθ+ε,ε∼N(0,σ2I)
设参数先验:
θ∼N(θ0,Σ0)
则后验仍为正态分布:
θ∣D∼N(θn,Σn)
后验协方差:
Σn=(Σ0−1+σ21XTX)−1
后验均值:
θn=Σn(Σ0−1θ0+σ21XTy)
预测均值:
μ∗=x∗Tθn
预测方差包含参数不确定性和噪声项。
高斯过程不是给参数先验,而是给函数先验:
f(x)∼GP(m(x),k(x,x′))
其中:
高斯过程适合小样本响应面建模,因为它能自然输出:
μ(x),σ(x)
高斯过程适合以下材料问题:
典型任务:
合金成分→强度、硬度、腐蚀速率、相稳定性
高斯过程也是贝叶斯优化中常用的代理模型。
目标:用尽可能少的实验找到最优材料或工艺:
x∗=argxmaxf(x)
每轮包含:
这是一种“模型—实验—反馈”的闭环策略。
上置信界采集函数:
aUCB(x)=μ(x)+κσ(x)
含义:
材料研发中,探索能避免过早陷入局部工艺窗口。
显微组织类别预测可写为:
P(c∣x,D)
其中 c 是组织类别,例如:
分类决策不应只看最大概率类别,还应关注:
cmaxP(c∣x,D)
若最大概率不高,说明分类不确定。
文献数据常存在来源差异:
可使用层级模型:
yij∼N(μj,σj2)
μj∼N(μ0,τ2)
其中 j 表示不同文献或实验来源。
材料数据常有不同保真度:
| 数据来源 | 特点 | 保真度 |
|---|---|---|
| 第一性原理 | 物理基础强,计算成本高 | 中高 |
| 分子动力学 | 原子尺度,时间尺度短 | 中 |
| 相场/有限元 | 介观或宏观过程 | 中 |
| 高通量实验 | 接近真实工况,成本高 | 高 |
| 文献数据 | 数量多但噪声复杂 | 不均一 |
贝叶斯框架可把不同来源的数据作为带噪声的证据进行融合。
设真实材料性能函数为 f(x),低保真观测为:
yL(x)=fL(x)+εL
高保真观测为:
yH(x)=ρfL(x)+δ(x)+εH
其中:
材料小样本贝叶斯建模建议流程:
| 任务 | 推荐工具 | 说明 |
|---|---|---|
| 基础概率计算 | NumPy、SciPy | 分布、分位数、随机采样 |
| 数据处理 | Pandas | 表格整理和分组统计 |
| 简单贝叶斯更新 | SciPy.stats | Beta、Normal 等分布 |
| 贝叶斯回归 | PyMC、NumPyro | 概率编程 |
| 高斯过程 | scikit-learn、GPyTorch | 响应面与不确定性 |
| 贝叶斯优化 | scikit-optimize、BoTorch | 主动实验设计 |
本章作业以 NumPy/SciPy 为主,降低工具门槛。
import numpy as np
from scipy.stats import norm
# 小样本屈服强度,单位 MPa
y = np.array([930, 955, 948, 970, 940])
n = len(y)
# 假设测量噪声标准差已知
sigma = 25.0
# 文献经验先验:均值 920 MPa,标准差 60 MPa
mu0, tau0 = 920.0, 60.0
var_post = 1.0 / (n / sigma**2 + 1.0 / tau0**2)
mu_post = var_post * (n * y.mean() / sigma**2 + mu0 / tau0**2)
std_post = np.sqrt(var_post)
print(mu_post, std_post)
print(norm.ppf([0.025, 0.975], loc=mu_post, scale=std_post))
不建议只报告:
μ^=某一个数值
更合理的报告方式:
这更符合材料研发中的风险表达需求。
贝叶斯方法不是万能工具:
因此必须结合材料物理、实验设计和模型诊断。
材料小样本贝叶斯方法的价值在于:
小数据+物理知识+不确定性量化+主动实验
它适合处理:
本章主线可以概括为:
条件概率→贝叶斯定理→参数后验→不确定性决策→材料小样本建模
核心公式:
p(θ∣D)=p(D)p(D∣θ)p(θ)
核心思想:科学结论不是一次性给出,而是在证据积累中持续更新。
| 层次 | 重点 | 难点 |
|---|---|---|
| 基础概率 | 条件概率、全概率公式 | 区分 P(A∣B) 与 P(B∣A) |
| 贝叶斯公式 | 先验、似然、后验 | 理解证据项和归一化 |
| 参数估计 | MLE、MAP | MAP 与正则化关系 |
| 不确定性 | 可信区间、预测区间 | 概率校准和外推风险 |
| 材料应用 | 小样本、先验知识 | 先验合理性与模型诊断 |
某无损检测方法满足:
P(阳性∣缺陷)=0.90
P(阳性∣无缺陷)=0.08
若某批样品真实缺陷率为 2%,求:
P(缺陷∣阳性)
思考:若缺陷率升高到 20%,结果如何变化?
设某工艺缺陷率 q 的先验为:
q∼Beta(2,18)
新实验检测 40 个样品,其中 5 个存在缺陷。
问题:
设强度数据为:
D={910,930,945,960} MPa
假设:
yi∼N(μ,302)
先验:
μ∼N(900,502)
问题:
用 Python 完成一个“小样本强度数据的贝叶斯更新”程序。
给定屈服强度数据:
y = [930, 955, 948, 970, 940, 965]
假设测量噪声标准差为:
sigma = 25.0
文献先验为:
mu0 = 920.0
tau0 = 60.0
完成以下任务:
提交内容:代码、运行结果、三句话解释。
后验方差:
τn2=(σ2n+τ021)−1
后验均值:
μn=τn2(σ2nyˉ+τ02μ0)
超过阈值 T 的概率:
P(μ>T∣D)=1−Φ(τnT−μn)
import numpy as np
from scipy.stats import norm
y = np.array([930, 955, 948, 970, 940, 965], dtype=float)
sigma = 25.0
mu0 = 920.0
tau0 = 60.0
n = len(y)
ybar = y.mean()
# 1. MLE
mu_mle = ybar
# 2. 后验均值与方差
var_post = 1.0 / (n / sigma**2 + 1.0 / tau0**2)
std_post = np.sqrt(var_post)
mu_post = var_post * (n * ybar / sigma**2 + mu0 / tau0**2)
# 3. 可信区间与超过阈值概率
credible_interval = norm.ppf([0.025, 0.975], loc=mu_post, scale=std_post)
prob_over_950 = 1.0 - norm.cdf(950.0, loc=mu_post, scale=std_post)
print(mu_mle, mu_post, std_post, credible_interval, prob_over_950)
本章为后续内容奠定概率基础:
下一章将进入机器学习建模流程:
数据→特征→模型→评估→应用
贝叶斯定理、先验、似然、后验、证据、MLE、MAP、不确定性、可信区间、预测区间、小样本材料建模
机器学习与材料性能预测