第5章 深度学习、多模态AI与显微组织识别

Deep Learning, Multimodal AI and Microstructure Recognition
学习路径:神经网络基本结构 → 卷积神经网络与图像识别 → 序列模型与 Transformer → 多模态数据融合 → 显微组织分类、分割与缺陷识别 → 不确定性与可解释性
@Shiyan Pan
CONTENTS

目录

  • 5.1 深度学习概述与神经网络基本结构
  • 5.2 卷积神经网络与图像识别 △
  • 5.3 循环神经网络、Transformer 与序列数据
  • 5.4 多模态 AI:文本、图像、谱图、结构数据融合 △★
  • 5.5 显微组织图像分类、分割与缺陷识别 ★
  • 5.6 深度模型的不确定性与可解释性

主线:从“数组中的像素”出发,逐步建立“材料图像—深度模型—可靠预测”的完整认识。

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

本章知识梯度

层级 本章问题 对应能力
基础 神经网络如何表示函数? 理解层、权重、激活函数、损失函数
图像 CNN 如何识别显微组织? 理解卷积、池化、特征图、迁移学习
序列 Transformer 为何适合谱图和文本? 理解注意力机制和序列编码
融合 多源材料数据如何联合建模? 理解早期、后期和中间融合
应用 如何完成组织识别与缺陷检测? 设计任务、标签、指标和验证流程
可信 模型结果是否可靠? 不确定性、校准、可解释性与人类审核
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

材料显微组织识别的基本链条

显微图像/谱图/文本/结构数据
        ↓
数据清洗、标注、切分、增强
        ↓
深度模型:CNN / RNN / Transformer / 多模态网络
        ↓
输出:类别、分割掩膜、缺陷框、性能预测、不确定性
        ↓
材料解释:组织类型、相分数、缺陷分布、工艺关联
本章不追求让学生一次掌握所有网络细节,而是建立“任务—数据—模型—评价—解释”的完整框架。
《人工智能与大数据》 | 第5章

5.1 深度学习概述与神经网络基本结构

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

从输入到输出:函数近似观点

监督学习可以写成:

y^=fθ(x)\hat{y}=f_{\theta}(\mathbf{x})

其中:

  • x\mathbf{x}:输入,如显微图像、谱图、成分向量;
  • y^\hat{y}:预测输出,如组织类别、相分数、强度;
  • θ\theta:模型参数,包括权重和偏置;
  • fθf_{\theta}:由多层神经网络表示的非线性函数。

训练的目标:寻找一组参数 θ\theta,使预测结果尽可能接近真实标签。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

单个神经元:线性组合加非线性

单个神经元可表示为:

z=wTx+bz=\mathbf{w}^{\mathrm{T}}\mathbf{x}+b

a=ϕ(z)a=\phi(z)

其中:

  • x\mathbf{x} 为输入特征;
  • w\mathbf{w} 为权重;
  • bb 为偏置;
  • ϕ()\phi(\cdot) 为激活函数。

如果没有激活函数,多层线性变换仍等价于一个线性变换。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

激活函数的作用

常用激活函数:

名称 表达式 特点
Sigmoid σ(x)=11+exp(x)\sigma(x)=\frac{1}{1+\exp(-x)} 输出在 (0,1)(0,1),早期常用于二分类
Tanh tanh(x)\tanh(x) 输出在 (1,1)(-1,1)
ReLU max(0,x)\max(0,x) 计算简单,深度网络常用
GELU xΦ(x)x\Phi(x) Transformer 中常见

ReLU 的直观含义:当输入信号不足时关闭,当输入信号充分时近似线性传递。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

前向传播

前向传播是从输入计算输出的过程。

以两层网络为例:

h=ϕ(W1x+b1)\mathbf{h}=\phi(\mathbf{W}_1\mathbf{x}+\mathbf{b}_1)

y^=softmax(W2h+b2)\hat{\mathbf{y}}=\mathrm{softmax}(\mathbf{W}_2\mathbf{h}+\mathbf{b}_2)

其中 h\mathbf{h} 是隐藏层表示。

对显微组织分类而言,y^\hat{\mathbf{y}} 可以表示不同组织类别的概率向量。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Softmax 与类别概率

多分类输出通常使用 Softmax:

p^k=exp(zk)j=1Kexp(zj)\hat{p}_k=\frac{\exp(z_k)}{\sum_{j=1}^{K}\exp(z_j)}

其中 KK 为类别数。

示例:奥氏体、铁素体、马氏体三分类中:

p^=(0.10,0.75,0.15)\hat{\mathbf{p}}=(0.10,0.75,0.15)

表示模型更倾向于判断为铁素体组织。

注意:Softmax 概率不等于真实置信度。模型可能“自信地犯错”。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

损失函数:衡量预测错误

分类常用交叉熵损失:

L=k=1Kyklogp^k\mathcal{L}=-\sum_{k=1}^{K} y_k\log\hat{p}_k

回归常用均方误差:

L=1ni=1n(yiy^i)2\mathcal{L}=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2

材料任务示例:

  • 分类:组织类型识别;
  • 回归:由组织图像预测硬度、强度或相分数。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

梯度下降:模型如何学习

训练目标:

θ=argminθL(θ)\theta^{\ast}=\arg\min_{\theta}\mathcal{L}(\theta)

梯度下降更新:

θt+1=θtηθL(θt)\theta_{t+1}=\theta_t-\eta\nabla_{\theta}\mathcal{L}(\theta_t)

其中 η\eta 是学习率。

  • 学习率过大:训练震荡,甚至发散;
  • 学习率过小:收敛缓慢,易停留在次优区域;
  • 实际训练常用 Adam、SGD with momentum 等优化器。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

反向传播:自动计算梯度

反向传播的本质是链式法则在多层网络中的系统应用。

若:

L=L(a),a=ϕ(z),z=wx+b\mathcal{L}=\mathcal{L}(a),\quad a=\phi(z),\quad z=wx+b

则:

Lw=Laazzw\frac{\partial \mathcal{L}}{\partial w} =\frac{\partial \mathcal{L}}{\partial a} \frac{\partial a}{\partial z} \frac{\partial z}{\partial w}

深度学习框架通常通过自动微分完成该过程。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

常用正则化方法

方法 核心思想 材料图像中的作用
数据增强 扩展训练样本变化 缓解样本不足
权重衰减 惩罚过大参数 减少模型复杂度
Dropout 随机屏蔽神经元 降低特征共适应
早停 验证集不再提升即停止 避免训练过度
迁移学习 使用预训练模型初始化 降低数据需求
正则化不是“万能修补”,实验设计和数据划分仍是关键。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

深度学习框架的基本分工

工具 主要用途 课堂建议
NumPy 数组运算、原型验证 理解张量和矩阵运算
PyTorch 动态计算图、研究友好 适合科研原型和自定义模型
TensorFlow/Keras 高层 API、部署生态 适合快速搭建标准网络
OpenCV/scikit-image 图像读取与预处理 适合材料图像清洗
Matplotlib 可视化 检查图像、损失和指标

本课程以理解流程为主,代码案例尽量保持短小、可运行、可修改。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Python示例:张量形状的意义

import numpy as np

# 32 张灰度显微组织图像,每张 128×128 像素
x = np.random.rand(32, 128, 128, 1)

# 三分类标签:铁素体、奥氏体、马氏体
y = np.random.randint(0, 3, size=(32,))

print(x.shape)  # (批量, 高度, 宽度, 通道)
print(y.shape)  # (批量,)

深度学习中必须持续关注张量形状,否则网络层之间无法连接。

《人工智能与大数据》 | 第5章

5.2 卷积神经网络与图像识别 △

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

图像数据的张量表示

一张显微图像可表示为三维张量:

XRH×W×C\mathbf{X}\in\mathbb{R}^{H\times W\times C}

其中:

  • HH:图像高度;
  • WW:图像宽度;
  • CC:通道数,灰度图为 11,彩色图为 33
  • 一个批量图像可写为 N×H×W×CN\times H\times W\times CN×C×H×WN\times C\times H\times W

不同框架对通道位置的默认约定可能不同。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

二维卷积公式

单通道二维卷积可写为:

Yi,j=u=0Kh1v=0Kw1Wu,vXi+u,j+v+bY_{i,j}=\sum_{u=0}^{K_h-1}\sum_{v=0}^{K_w-1}W_{u,v}X_{i+u,j+v}+b

其中:

  • XX 为输入图像;
  • WW 为卷积核;
  • Kh,KwK_h,K_w 为卷积核高度与宽度;
  • YY 为输出特征图。

多通道卷积会在输入通道维度上进一步求和。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

卷积层的三个重要超参数

参数 含义 影响
Kernel size 卷积核尺寸 决定局部感受区域大小
Stride 滑动步长 决定输出图像尺寸
Padding 边界补零 控制边界信息是否保留

材料图像中:

  • 小卷积核适合提取局部边界和细纹理;
  • 多层小卷积核叠加可以形成更大感受野;
  • 过强下采样可能丢失细小缺陷。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

池化层:降低分辨率与增强鲁棒性

最大池化:

Yi,j=max(u,v)Ωi,jXu,vY_{i,j}=\max_{(u,v)\in\Omega_{i,j}}X_{u,v}

平均池化:

Yi,j=1Ωi,j(u,v)Ωi,jXu,vY_{i,j}=\frac{1}{|\Omega_{i,j}|}\sum_{(u,v)\in\Omega_{i,j}}X_{u,v}

池化的作用:

  • 降低计算量;
  • 扩大感受野;
  • 对微小平移更鲁棒;
  • 但可能损失小孔洞、细裂纹等细节。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

数据增强:让模型看到合理变化

常用图像增强:

增强方式 是否常用于材料图像 注意事项
旋转 常用 等轴组织较合理;有方向性的组织需谨慎
翻转 常用 注意轧制方向、热流方向等方向性
裁剪 常用 避免裁掉关键组织区域
亮度对比调整 常用 应模拟真实成像波动
强变形 谨慎 可能改变组织形貌真实性
数据增强必须保持标签不变,否则会向模型引入错误知识。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

常见 CNN 架构简表

架构 关键思想 适合课堂理解点
LeNet 卷积 + 池化 + 全连接 CNN 基础结构
AlexNet 更深网络 + ReLU 深度学习兴起
VGG 堆叠小卷积核 结构规则,易理解
ResNet 残差连接 解决深层网络退化
EfficientNet 复合缩放 精度和效率平衡
U-Net 编码器—解码器 图像分割常用

本章重点不是背架构,而是理解结构设计背后的问题。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

残差连接的思想

残差块不是直接学习 H(x)H(\mathbf{x}),而是学习残差:

H(x)=F(x)+xH(\mathbf{x})=F(\mathbf{x})+\mathbf{x}

其中:

  • x\mathbf{x} 是输入;
  • F(x)F(\mathbf{x}) 是卷积层学习的变化量;
  • 跳连结构有助于梯度传播。

直观理解:如果某层没有必要改变特征,网络可以近似学习恒等映射。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

图像分类评价指标

准确率:

Accuracy=TP+TNTP+TN+FP+FN\mathrm{Accuracy}=\frac{TP+TN}{TP+TN+FP+FN}

精确率与召回率:

Precision=TPTP+FP\mathrm{Precision}=\frac{TP}{TP+FP}

Recall=TPTP+FN\mathrm{Recall}=\frac{TP}{TP+FN}

当缺陷样本远少于正常样本时,仅看准确率会产生误导。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

混淆矩阵:看清模型错在哪里

真实/预测 铁素体 贝氏体 马氏体
铁素体 42 3 1
贝氏体 5 35 6
马氏体 1 4 38

观察重点:

  • 哪些组织最容易混淆?
  • 混淆是否符合材料形貌相似性?
  • 是否某一类别样本不足?
  • 是否存在标注标准不一致?
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Python示例:图像标准化

import numpy as np

# 假设 img 为灰度图像,像素范围为 0~255
img = np.random.randint(0, 256, size=(128, 128)).astype("float32")

# 归一化到 0~1
img01 = img / 255.0

# 标准化到均值为 0、标准差为 1
img_std = (img01 - img01.mean()) / (img01.std() + 1e-8)

print(img01.min(), img01.max())
print(img_std.mean(), img_std.std())

标准化可减少成像亮度差异对模型训练的干扰。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

PyTorch伪代码:一个极简 CNN

import torch
import torch.nn as nn

class MicroCNN(nn.Module):
    def __init__(self, num_classes=3):
        super().__init__()
        self.features = nn.Sequential(
            nn.Conv2d(1, 16, kernel_size=3, padding=1),
            nn.ReLU(),
            nn.MaxPool2d(2),
            nn.Conv2d(16, 32, kernel_size=3, padding=1),
            nn.ReLU(),
            nn.AdaptiveAvgPool2d((1, 1))
        )
        self.classifier = nn.Linear(32, num_classes)

    def forward(self, x):
        x = self.features(x)
        x = x.flatten(1)
        return self.classifier(x)
《人工智能与大数据》 | 第5章

5.3 循环神经网络、Transformer 与序列数据

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

5.3 的学习任务

并非所有材料数据都是图像。

本节关注序列数据:

  • 热循环曲线:T(t)T(t)
  • 力学加载曲线:σ(ε)\sigma(\varepsilon)
  • XRD、拉曼、红外等谱图:强度随角度、波数或能量变化;
  • 工艺日志:时间、功率、速度、温度、传感器信号;
  • 文献文本:词序列、句子序列。

核心问题:如何让模型理解“顺序”和“上下文”?

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

序列数据的统一表示

序列可写为:

X=(x1,x2,,xT)\mathbf{X}=(\mathbf{x}_1,\mathbf{x}_2,\ldots,\mathbf{x}_T)

其中:

  • TT 是序列长度;
  • xt\mathbf{x}_t 是第 tt 个时刻或位置的特征向量;
  • 输出可以是整体标签,也可以是每个时刻的标签。

材料示例:

  • 整体标签:热循环曲线对应接头是否合格;
  • 逐点标签:谱图每个位置对应峰、背景或噪声。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

RNN 的基本思想

循环神经网络使用隐藏状态记忆历史信息:

ht=ϕ(Wxxt+Whht1+b)\mathbf{h}_t=\phi(\mathbf{W}_x\mathbf{x}_t+\mathbf{W}_h\mathbf{h}_{t-1}+\mathbf{b})

y^t=g(ht)\hat{\mathbf{y}}_t=g(\mathbf{h}_t)

其中 ht\mathbf{h}_t 表示到第 tt 步为止的历史摘要。

RNN 的优点是结构直观;缺点是长序列训练容易出现梯度消失或梯度爆炸。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

序列模型的输入输出类型

类型 输入 输出 材料案例
多对一 整条序列 一个标签 热循环预测组织类别
多对多 整条序列 每点标签 谱图峰识别
序列到数值 工艺曲线 性能数值 拉伸强度预测
文本到标签 文献摘要 主题类别 文献自动分类

任务类型决定网络输出层、损失函数和评价指标。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Self-Attention 公式

Transformer 的核心是自注意力:

Attention(Q,K,V)=softmax(QKTdk)V\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^{\mathrm{T}}}{\sqrt{d_k}}\right)V

其中:

  • QQ:查询向量;
  • KK:键向量;
  • VV:值向量;
  • dkd_k:键向量维度。

该公式表示:当前位置根据与其他位置的相关性加权汇总信息。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Transformer 与 RNN 的区别

方面 RNN/LSTM Transformer
信息传递 按时间步递归传递 所有位置并行交互
长程依赖 较难 更擅长
并行计算 较弱 较强
序列位置信息 天然按顺序处理 需位置编码
典型应用 时间序列、小规模序列 文本、谱图、大规模序列

Transformer 的优势来自并行注意力,但计算量随序列长度快速增加。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

位置编码:序列顺序从哪里来?

Transformer 本身不天然知道顺序,因此需要位置编码。

一种常见形式:

PE(pos,2i)=sin(pos100002i/d)PE_{(pos,2i)}=\sin\left(\frac{pos}{10000^{2i/d}}\right)

PE(pos,2i+1)=cos(pos100002i/d)PE_{(pos,2i+1)}=\cos\left(\frac{pos}{10000^{2i/d}}\right)

位置编码使模型区分谱图中的不同角度位置或文本中的不同词位置。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

谱图也可以看作序列

以 XRD 谱图为例:

2θ:     20  21  22  ...  80
强度:   I1  I2  I3  ...  In

建模方式:

  • 输入:强度序列或 (2θ,I)(2\theta,I) 二维序列;
  • 输出:相组成、晶体结构、峰标签或材料类别;
  • 模型:1D CNN、LSTM、Transformer 或混合模型。

谱图建模必须注意背景扣除、归一化、峰位偏移和仪器差异。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Python示例:将谱图整理为序列输入

import numpy as np

# 模拟一条谱图:1000 个角度点
angle = np.linspace(20, 80, 1000)
intensity = np.exp(-0.5 * ((angle - 45) / 1.5)**2)
intensity += 0.08 * np.random.randn(1000)

# 模型输入可以是形状为 (长度, 特征数) 的序列
x_seq = np.stack([angle, intensity], axis=1)
print(x_seq.shape)  # (1000, 2)

后续可将其送入 1D CNN、LSTM 或 Transformer。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

序列模型常见评价指标

任务 输出 指标
序列分类 类别 Accuracy、F1、AUC
序列回归 数值 MAE、RMSE、R2R^2
序列标注 每点标签 Token F1、IoU
异常检测 异常概率 Precision、Recall、PR-AUC

材料任务中应重点关注错误的工程代价,而不是只看平均指标。

《人工智能与大数据》 | 第5章

5.4 多模态 AI:文本、图像、谱图、结构数据融合 △★

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

什么是多模态学习?

多模态学习是指同时利用两种或多种数据模态进行表示学习、预测或生成。

统一表达:

y^=fθ(x(1),x(2),,x(M))\hat{y}=f_{\theta}(\mathbf{x}^{(1)},\mathbf{x}^{(2)},\ldots,\mathbf{x}^{(M)})

其中 MM 为模态数量。

材料示例:

y^=fθ(成分,热处理工艺,显微图像,XRD谱图)\hat{y}=f_{\theta}(\text{成分},\text{热处理工艺},\text{显微图像},\text{XRD谱图})

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

多模态融合的三种基本方式

方式 做法 优点 风险
早期融合 原始特征直接拼接 简单直接 维度不一致、尺度差异大
中间融合 各模态编码后融合 表征能力强 结构设计复杂
后期融合 各模型结果再融合 模块独立 难学习深层交互

材料小样本任务中,后期融合和中间融合通常更容易控制风险。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

早期融合:特征拼接

若图像特征为 zimg\mathbf{z}_{img},成分特征为 zcomp\mathbf{z}_{comp},谱图特征为 zspec\mathbf{z}_{spec},则:

z=[zimg;zcomp;zspec]\mathbf{z}=\left[\mathbf{z}_{img};\mathbf{z}_{comp};\mathbf{z}_{spec}\right]

然后使用:

y^=gθ(z)\hat{y}=g_{\theta}(\mathbf{z})

优点:实现简单。
缺点:不同模态尺度、噪声和缺失情况差异较大。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

后期融合:多个模型共同投票

假设三个模型输出概率:

p^(1),p^(2),p^(3)\hat{\mathbf{p}}^{(1)},\quad \hat{\mathbf{p}}^{(2)},\quad \hat{\mathbf{p}}^{(3)}

加权融合:

p^=m=1Mαmp^(m),m=1Mαm=1\hat{\mathbf{p}}=\sum_{m=1}^{M}\alpha_m\hat{\mathbf{p}}^{(m)},\quad \sum_{m=1}^{M}\alpha_m=1

适合场景:

  • 各模态数据不是所有样本都具备;
  • 希望保持每个模型单独可评估;
  • 需要工程上可解释的融合策略。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

嵌入表示:把不同模态放入统一空间

深度模型常将不同模态编码为向量:

zimg=Eimg(ximg)\mathbf{z}_{img}=E_{img}(\mathbf{x}_{img})

ztxt=Etxt(xtxt)\mathbf{z}_{txt}=E_{txt}(\mathbf{x}_{txt})

若两者描述同一材料对象,希望它们在表示空间中接近。

这就是跨模态检索和对比学习的基础。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

对比学习的基本思想

给定正样本对 (i,j)(i,j),使其相似度更高;给定负样本对,使其相似度更低。

一种常见目标形式:

Li=logexp(sim(zi,zj)/τ)kexp(sim(zi,zk)/τ)\mathcal{L}_i=-\log\frac{\exp(\mathrm{sim}(\mathbf{z}_i,\mathbf{z}_j)/\tau)}{\sum_{k}\exp(\mathrm{sim}(\mathbf{z}_i,\mathbf{z}_k)/\tau)}

其中:

  • sim(,)\mathrm{sim}(\cdot,\cdot) 为相似度;
  • τ\tau 为温度参数。

材料应用:图像—文本、结构—性能、谱图—相组成的表示对齐。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Python示例:早期融合特征拼接

import numpy as np

# 假设已经得到图像、谱图和成分的特征向量
z_img = np.random.rand(128)   # CNN 输出
z_spec = np.random.rand(64)   # 谱图编码器输出
z_comp = np.random.rand(20)   # 成分和工艺特征

z_fused = np.concatenate([z_img, z_spec, z_comp])
print(z_fused.shape)  # (212,)

实际应用中应对每类特征做尺度归一化,并在验证集上评估融合是否真正带来增益。

《人工智能与大数据》 | 第5章

5.5 显微组织图像分类、分割与缺陷识别 ★

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

分类、分割、检测的区别

任务 输入 输出 材料案例
分类 整张图像 一个类别 珠光体/贝氏体/马氏体
语义分割 整张图像 每个像素类别 α相/β相/孔洞/基体
实例分割 整张图像 每个对象掩膜 每个晶粒或颗粒
目标检测 整张图像 缺陷框和类别 裂纹、孔洞、夹杂物
回归计量 图像或掩膜 数值指标 孔隙率、相分数、晶粒尺寸

选择任务前必须明确材料问题是什么。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

显微组织分割:像素级识别

语义分割输出与输入图像同尺寸:

Y^{1,2,,K}H×W\hat{\mathbf{Y}}\in\{1,2,\ldots,K\}^{H\times W}

其中每个像素都有类别标签。

材料应用:

  • 相分数计算;
  • 孔隙率统计;
  • 析出相尺寸分布;
  • 枝晶/基体区域分离;
  • 热影响区组织分区。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

分割评价指标:IoU

交并比 IoU:

IoU=ABAB\mathrm{IoU}=\frac{|A\cap B|}{|A\cup B|}

其中:

  • AA 为真实区域;
  • BB 为预测区域。

IoU 越高,预测区域与真实区域重合越好。

在多类别分割中,通常计算每一类 IoU,再取平均得到 mIoU。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

分割评价指标:Dice 系数

Dice 系数:

Dice=2ABA+B\mathrm{Dice}=\frac{2|A\cap B|}{|A|+|B|}

Dice 对小目标分割较常用。

材料应用:

  • 孔洞分割;
  • 裂纹分割;
  • 第二相颗粒分割;
  • 枝晶区域分割。

小缺陷任务中,Dice 往往比像素准确率更有意义。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

像素标注与弱监督

精确像素标注成本很高,材料专家时间有限。

可能策略:

标注方式 成本 信息量 适用任务
图像级标签 分类、弱监督定位
框标注 缺陷检测
点标注 颗粒计数、弱监督分割
像素掩膜 精细相分割

标签质量往往比模型结构更决定最终性能。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

尺度信息:显微图像不可忽略

同一像素大小对应的真实尺寸可能不同。

若像素尺寸为 rr,某区域面积为 NpN_p 个像素,则真实面积为:

A=Npr2A=N_p r^2

若忽略尺度,模型可能无法区分:

  • 细小析出相;
  • 粗大第二相;
  • 微孔与宏观孔洞;
  • 不同放大倍数下的相同组织。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

分割案例:双相组织相分数计算

任务设定:

  • 输入:双相钢显微图像;
  • 输出:铁素体/马氏体像素掩膜;
  • 模型:U-Net;
  • 后处理:连通区域分析、面积统计;
  • 输出材料量:相分数、平均岛状区域尺寸。

相分数计算:

fα=NαNtotalf_{\alpha}=\frac{N_{\alpha}}{N_{\mathrm{total}}}

其中 NαN_{\alpha} 为目标相像素数。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

图像分割后的材料统计

分割只是中间结果,最终应回到材料量。

可统计:

  • 面积分数;
  • 等效直径;
  • 长宽比;
  • 圆度;
  • 最近邻距离;
  • 取向分布;
  • 连通区域数量。

示例:圆度可定义为:

C=4πAP2C=\frac{4\pi A}{P^2}

其中 AA 为面积,PP 为周长。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Python示例:由掩膜计算面积分数

import numpy as np

# mask: 0 表示基体,1 表示第二相
mask = np.random.choice([0, 1], size=(256, 256), p=[0.72, 0.28])

phase_fraction = mask.sum() / mask.size
print("第二相面积分数:", phase_fraction)

# 若每个像素对应 0.2 微米
pixel_size = 0.2
area_um2 = mask.sum() * pixel_size**2
print("第二相面积(um^2):", area_um2)
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Python示例:简单连通区域统计

import numpy as np
from scipy import ndimage

mask = np.random.choice([0, 1], size=(128, 128), p=[0.95, 0.05])
labels, n = ndimage.label(mask)

areas = ndimage.sum(mask, labels, index=np.arange(1, n + 1))
print("对象数量:", n)
print("平均面积:", areas.mean() if n > 0 else 0)

该方法可用于孔洞、颗粒或析出相的初步统计。

《人工智能与大数据》 | 第5章

5.6 深度模型的不确定性与可解释性

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

两类不确定性

类型 来源 是否可通过增加数据降低 材料案例
Aleatoric 数据本身噪声 通常难以完全消除 成像噪声、标注边界模糊
Epistemic 模型知识不足 可以通过增加数据降低 新合金体系、新成像条件

小样本材料问题中,epistemic uncertainty 通常尤其重要。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Softmax 概率的局限

深度分类模型常输出 Softmax 概率:

p^k=exp(zk)j=1Kexp(zj)\hat{p}_k=\frac{\exp(z_k)}{\sum_{j=1}^{K}\exp(z_j)}

但高 Softmax 值不一定表示模型真实可靠。

原因:

  • 训练目标鼓励正确类别概率尽可能高;
  • 分布外样本也可能得到高置信度;
  • 数据偏差会使模型对伪特征过度自信。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

校准:概率是否可信?

理想校准模型满足:

在模型给出 80% 置信度的样本中,约有 80% 预测正确。

期望校准误差 ECE:

ECE=m=1MBmnacc(Bm)conf(Bm)\mathrm{ECE}=\sum_{m=1}^{M}\frac{|B_m|}{n}\left|\mathrm{acc}(B_m)-\mathrm{conf}(B_m)\right|

其中 BmB_m 表示第 mm 个置信度分箱。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

MC Dropout:近似估计模型不确定性

训练后仍开启 Dropout,多次前向预测:

y^(1),y^(2),,y^(T)\hat{y}^{(1)},\hat{y}^{(2)},\ldots,\hat{y}^{(T)}

预测均值:

yˉ=1Tt=1Ty^(t)\bar{y}=\frac{1}{T}\sum_{t=1}^{T}\hat{y}^{(t)}

预测方差可作为不确定性估计。

适用:快速近似,不需要训练多个模型。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

深度集成:多个模型共同判断

深度集成训练多个独立模型:

p^(yx)=1Mm=1Mp^m(yx)\hat{p}(y|\mathbf{x})=\frac{1}{M}\sum_{m=1}^{M}\hat{p}_m(y|\mathbf{x})

若多个模型意见一致,不确定性较低;
若多个模型分歧较大,不确定性较高。

优点:通常效果稳健。
缺点:训练和推理成本更高。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

Grad-CAM 的基本思想

Grad-CAM 利用类别输出对特征图的梯度,估计特征图重要性。

权重:

αkc=1ZijycAijk\alpha_k^c=\frac{1}{Z}\sum_i\sum_j\frac{\partial y^c}{\partial A_{ij}^k}

热力图:

LGradCAMc=ReLU(kαkcAk)L_{\mathrm{Grad-CAM}}^c=\mathrm{ReLU}\left(\sum_k\alpha_k^c A^k\right)

其中 AkA^k 为第 kk 个特征图。

《人工智能与大数据》 | 第5章

本章总结与编程作业

第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

本章知识图谱

神经网络基础
  ├─ 层、激活函数、损失、反向传播
  ├─ CNN:图像局部特征与显微组织识别
  ├─ RNN/Transformer:谱图、文本和工艺序列
  ├─ 多模态融合:成分、工艺、图像、谱图、文本
  ├─ 应用任务:分类、分割、检测、组织计量
  └─ 可信机制:不确定性、校准、可解释性、人工审核

核心观点:深度学习不是单独的模型技巧,而是材料数据链条中的一个环节。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

本章重点公式回顾

概念 公式
神经元 a=ϕ(wTx+b)a=\phi(\mathbf{w}^{\mathrm{T}}\mathbf{x}+b)
交叉熵 L=k=1Kyklogp^k\mathcal{L}=-\sum_{k=1}^{K}y_k\log\hat{p}_k
梯度下降 θt+1=θtηθL\theta_{t+1}=\theta_t-\eta\nabla_{\theta}\mathcal{L}
自注意力 softmax(QKTdk)V\mathrm{softmax}\left(\frac{QK^{\mathrm{T}}}{\sqrt{d_k}}\right)V
IoU $\mathrm{IoU}=\frac{
Dice $\mathrm{Dice}=\frac{2

这些公式构成深度图像识别与多模态建模的基础语言。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

编程作业:合成显微图像的分类

作业目标

使用 Python 构造一个小型“合成显微组织图像”数据集,并完成二分类模型训练。

数据构造

  • 类别 0:以圆形颗粒为主;
  • 类别 1:以条带状组织为主;
  • 每类不少于 100 张 64×6464\times64 灰度图像;
  • 加入随机噪声模拟成像扰动。

建模要求

  • 使用 NumPy/Matplotlib 生成和展示图像;
  • 使用 scikit-learn 或 PyTorch 建立分类模型;
  • 输出训练集和测试集准确率;
  • 给出混淆矩阵;
  • 分析至少 3 个错误样本。
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

作业参考代码框架:生成图像

import numpy as np
import matplotlib.pyplot as plt

def make_particle_image(size=64, n=10):
    img = np.zeros((size, size), dtype="float32")
    yy, xx = np.mgrid[:size, :size]
    for _ in range(n):
        cx, cy = np.random.randint(0, size, 2)
        r = np.random.randint(3, 8)
        img[(xx - cx)**2 + (yy - cy)**2 < r**2] = 1.0
    img += 0.15 * np.random.randn(size, size)
    return np.clip(img, 0, 1)

def make_stripe_image(size=64):
    x = np.linspace(0, 4 * np.pi, size)
    img = (np.sin(x)[None, :] > 0).astype("float32")
    img = np.repeat(img, size, axis=0)
    img += 0.15 * np.random.randn(size, size)
    return np.clip(img, 0, 1)
《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

作业参考代码框架:构造数据集

X, y = [], []
for _ in range(120):
    X.append(make_particle_image())
    y.append(0)
for _ in range(120):
    X.append(make_stripe_image())
    y.append(1)

X = np.array(X)
y = np.array(y)

print(X.shape, y.shape)
plt.imshow(X[0], cmap="gray")
plt.axis("off")
plt.show()

建议先用传统特征或简单模型完成分类,再尝试 CNN。

《人工智能与大数据》 | 第5章
第5章 深度学习 CNN图像 序列模型 多模态 组织识别 可信解释

结束页

第5章结束

下一章:生成式 AI、大语言模型与提示工程
深度学习的价值不只在于“预测准确”,更在于帮助我们更系统地组织材料图像、谱图、文本和实验知识。
《人工智能与大数据》 | 第5章