使用卷积神经网络对晶圆图上的八种制造缺陷进行分类

简介: 使用简单的卷积神经网络 (CNN) 对晶圆图上的八种制造缺陷进行分类。

​一、前言
使用简单的卷积神经网络 (CNN) 对晶圆图上的八种制造缺陷进行分类。
晶圆是半导体材料(通常是硅)的薄盘,用作集成电路的基础。每个晶圆产生几个单独的电路(IC),分成芯片。自动检测机测试晶圆上IC的性能。这些机器生成称为晶圆图的图像,指示哪些芯片性能正确(通过),哪些芯片不符合性能标准(失败)。
晶圆图上合格和失效芯片的空间模式可以指示制造过程中的特定问题。深度学习方法可以有效地对大量晶圆上的缺陷图案进行分类。因此,通过使用深度学习,您可以快速识别制造问题,从而及时修复制造过程并减少浪费。训练检测和分类八种制造缺陷模式的分类网络。该示例还演示如何评估网络的性能。
二、下载WM-811K晶圆缺陷图数据
此示例使用 WM-811K 晶圆缺陷图数据集。该数据集由811,457张晶圆图图像组成,其中包括172,950张标记图像。每个图像只有三个像素值。该值表示背景,该值表示行为正确的模具,该值表示有缺陷的模具。标记的图像具有基于缺陷模具空间模式的九个标签之一。数据集的大小为 3.5 GB。
设置为数据集的所需位置。使用帮助程序函数下载数据集。
二、预处理和扩充数据
数据作为结构数组存储在MAT文件中。将数据集加载到工作区中。
通过显示结构的第一个元素来浏览数据。该字段包含图像数据。该字段包含缺陷的标签。
2.1 重新格式化数据
此示例仅使用带标签的图像。从结构中删除未标记的图像。
该示例使用与字段指定的约定不同的约定将数据分区为训练集、验证集和测试集。
指定图像类。
要对数据应用其他预处理操作,例如调整图像大小以匹配网络输入大小或应用随机训练网络进行分类,可以使用增强图像数据存储。您无法从结构中的数据创建增强映像数据存储,但可以从表中的数据创建数据存储。将数据转换为具有两个变量的表:

1.png

2.2 通过过采样平衡数据
显示每个类的图像数量。数据集严重不平衡,每个缺陷类别的图像明显少于没有缺陷的图像数量。

要改进类平衡,请使用帮助程序函数对缺陷类进行过采样。此函数作为支持文件附加到示例。帮助程序函数在数据集后附加每个缺陷图像的五个修改副本。每个副本都有以下修改之一:水平反射、垂直反射或旋转 90 度的倍数。

显示类平衡后每个类的图像数量。
2.png

2.3 将数据划分为训练集、验证集和测试集
将过采样数据集拆分为训练集、验证集和测试集。大约 90% 的数据用于训练,5% 用于验证,5% 用于测试。

2.4 扩充训练数据
对象指定一组要应用于训练数据的随机增强。向训练图像添加随机增强可以避免网络过度拟合训练数据。

指定网络的输入大小。创建一个增强图像数据存储(深度学习工具箱),用于读取训练数据,将数据大小调整为网络输入大小,并应用随机增强。
创建用于读取验证和测试数据的数据存储,并将数据大小调整为网络输入大小。您无需对验证或测试数据应用随机增强。
三、创建网络
定义卷积神经网络架构。图像输入层的范围反映了晶圆图只有三个级别的事实。
四、指定练选项
指定 Adam 优化的训练选项。训练网络 30 个纪元。
五、训练网络或下载预训练网络
默认情况下,该示例加载预训练的晶圆缺陷分类网络。预训练网络使您能够运行整个示例,而无需等待训练完成。

六、根据测试数据量化网络性能
使用分类(深度学习工具箱)函数对每个测试图像进行分类。使用混淆垫(深度学习工具箱)函数以混淆矩阵的形式计算网络与地面实况分类相比的性能。使用混淆图(深度学习工具箱)函数可视化混淆矩阵。此矩阵对角线上的值表示正确的分类。完美分类器的混淆矩阵仅在对角线上具有值。
3.png

6.1 精度、召回率和 F1 分数
此示例使用多个指标评估网络性能:精度、召回率和 F1 分数。这些指标是为二元分类定义的。为了克服此多类问题的限制,您可以将预测视为一组二元分类,每个分类对应一个分类。

精度是正确预测属于某个类的图像的比例。

对于每个类,使用混淆矩阵中可用的 TP、FP 和 FN 结果计数计算精度、召回率和 F1 分数。

显示每个类的指标。分数接近 1 表示网络性能越好。
4.png

6.2 精确召回曲线和曲线下面积 (AUC)
除了返回每个测试图像的分类外,网络还可以预测测试图像是每个缺陷类别的概率。在这种情况下,精度-召回率曲线提供了一种评估网络性能的替代方法。

要计算精度-召回率曲线,首先通过将概率与任意阈值进行比较,对每个缺陷类执行二元分类。当概率超过阈值时,可以将图像分配给目标类。阈值的选择会影响 TP、FP 和 FN 结果的数量以及准确度和召回率分数。若要评估网络性能,必须考虑阈值范围内的性能。精度-召回率曲线在调整二元分类的阈值时绘制精度和召回率值之间的权衡。AUC 指标将类的精度-召回率曲线汇总为 [0, 1] 范围内的单个数字,其中 1 表示无论阈值如何,都是完美分类。

使用该函数计算每个类在阈值范围内的精度、召回率和 AUC。绘制精度-召回率曲线。
5.png

理想分类器的精度-召回率曲线通过点 (1, 1)。具有趋向于 (1, 1) 的精度召回率曲线的类(如 和 )是网络性能最佳的类。该网络的性能在该类中最差。计算并显示每个类的精度/召回率曲线的 AUC 值。

七、使用 GradCAM 可视化网络决策
梯度加权类激活映射(Grad-CAM)对网络做出的决策产生可视化解释。您可以使用 gradCAM(深度学习工具箱)函数来识别对网络预测影响最大的图像部分。

7.1 Donut缺陷类别
缺陷的特征是图像具有围绕芯片中心聚集在同心圆中的缺陷像素。缺陷类别的大多数图像在芯片边缘周围没有缺陷像素。

这两个图像都显示了带有缺陷的数据。网络将左侧的图像正确分类为缺陷。网络将右侧的图像错误分类为缺陷。图像具有与函数输出相对应的颜色叠加。对网络分类影响最大的影像区域在叠加层上以鲜艳的颜色显示。对于分类为缺陷的图像,模具边界处的缺陷被视为重要。造成这种情况的一个可能原因可能是,与图像相比,训练集中的图像要多得多。

6.png

7.2 Loc缺陷类别
缺陷的特征是图像具有缺陷像素聚集在远离芯片边缘的斑点中。这两个图像都显示了具有 Loc 缺陷的数据。网络将左侧的图像正确分类为缺陷。网络错误地分类了右侧的图像,并将缺陷分类为缺陷。对于分类为缺陷的图像,芯片边界处的缺陷对网络预测的影响最大。缺陷与缺陷的区别主要在于缺陷簇的位置。
7.png

目录
相关文章
|
10天前
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot编码的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
16 2
|
1月前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
27天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
29天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
54 3
|
28天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
42 0
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。