Python实现基于RBF神经网络的半导体刻蚀机数据分析

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: Python实现基于RBF神经网络的半导体刻蚀机数据分析

说明:这是一个机器学习实战项目(附带数据+代码+文档),如需数据+代码+文档可以直接到文章最后获取。

image.png

image.png

1. 项目背景

对半导体刻蚀机进行故障诊断,首先需要采集获取半导体刻蚀机刻蚀过程的数据,并对数据进行分析和处理工作。本篇文章的半导体刻蚀机原始数据来自于LAM9600等离子刻蚀机加工晶元时的运行状态数据。本主要介绍半导体刻蚀机刻蚀过程数据前期的预处理工作,主要包括如下内容:半导体刻蚀机数据的分析、半导体刻蚀机故障数据的表现特征以及异常数据的提取,然后对半导体刻蚀机故障数据的提取和数据整合。通过数据预处理,得到了维数统一的故障数据集,为后面的分类设计和测试数据集的实验验证奠定基础。

半导体制造过程的晶圆深度特征表示是晶圆数据异常检测的前提和基础。研究怎样利用深度学习理论设计深度神经网络架构,从非标记的原始晶圆数据中,非监督自主学习能表征健康状态特征,然后通过健康特征建立基线模型,对故障状态的数据集进行故障识别。

2. 数据收集

数据集如下:

训练数据集:etch_train.csv

测试数据集:etch_test.csv

数据字段包括:Run IDTime

在实际应用中,根据自己的数据进行替换即可。

特征数据:除此数据项TCP Rfl Pwr之外的数据

标签数据:TCP Rfl Pwr

3. 数据预处理

1)半导体刻蚀机故障分析

半导体刻蚀机作为半导体制造中重要基础设备之一其工作性能和制造的加工质量和生产效率有直接的影响。当半导体刻蚀机中有故障时,相关技术人员应对故障数据发生的设备点进行及时发现并正确的处理,以此来保证刻蚀设备运行的安全性,同时降低由于故障原因对刻蚀设备运行造成的影响。

本文为了研究刻蚀过程数据驱动的异常检测方法,在实验性地刻蚀晶圆的过程中,引入了多种不同的故障,包括气体流量、卡盘压力等的人为改变等,一共 20 类。也就是说这20种不同的物理量都有可能引发刻蚀设备异常,而本次故障类型认定20种数据变化都会引起最终整条数据的故障。本次收集的数据中包含 19 个采自传感器的变量,1 个时间变量,2 个流程性变量,共 22 个变量。每个变量为一列,构成了训练与测试数据。每个变量的具体名称及其对应的含义如下表所示。

数据表头描述

序号

列名

数据含义

1

Run ID

晶元流水号

2

Time

时间

3

Step Number

制造工艺步骤

4

BCl3 Flow

过程物理量

5

Cl2 Flow

6

RF Btm Pwr

7

RF Btm Rfl Pwr

8

Endpt A

9

He Press

10

Pressure

11

RF Tuner

12

RF Load

13

RF Phase Err

14

RF Pwr

15

RF Impedance

16

TCP Tuner

17

TCP Phase Err

18

TCP Impedance

19

TCP Top Pwr

20

TCP Rfl Pwr

21

TCP Load

22

Vat Valve

 

2)半导体刻蚀机数据分析

本文中的半导体刻蚀机原始数据来源于LAM 9600等离子刻蚀机运行状态的部分数据改编。 

提供的采集数据以CSV文件的形式进行存放,并且以每个晶元为单位将刻蚀设备生产过程中产生的数据采集并存放在表格中。如图所示。

image.png

                  原始训练数据

以第一行数据为例,代表编号为2901的晶元在时间点10.379分时第四工艺步骤的各个过程物理量。每个晶元每个步骤采集了近50条数据,训练数据集共采集了85个晶元的数据。总共计7608条数据。同样的测试数据集采集了31个晶元在刻蚀工艺步骤4、5的物理量数据,总共计5162条数据。

 

3)半导体刻蚀机故障数据提取

本节的目的是为了从训练数据集和测试数据集中提取异常数据即故障数据,为后续数据分析和神经网络的读取做准备。在半导体刻蚀机数据中,故障数据相较于正常数据而言可以看作是异常波动数据,也就是误差较大的数据。目前筛选误差数据最常用的统计方法有:狄克逊准则(Dixon)、莱茵达准则(PanTa)、格拉布斯准则(Grubbs)、肖维勒准则(Chauvenet)等,这些方法中每种方法都有其自身的优点和缺点。数据的样本容量大于或等于50个时(本文所用的样本量已经大于50)我们选用莱茵达准则来剔除样本数据中的大误差数据是最好的选择,会得到一个较好效果。所以此次论文采用了莱茵达准则。

此次论文采用莱茵达准则,对同一维数的数据求平均值和均方根偏差根据一定的准则范围来提取半导体刻蚀数据中的故障数据。我们求出平均值和均方根偏差后,可以运用莱茵达准则根据平均值和均方根偏差两个重要参数来确认半导体刻蚀数据中的异常数据。莱茵达准则又被称为3σ 准则,是比较普遍易学的异常值判断与剔除方法它是根据样本数据与所求均值和均方根偏差的差异来进行判断的。其具体的计算方法如下:

 

image.png

 

如图以测试数据集晶元2915 的数据为例,计算其每一个变量数据的算术平均值、剩余误差和均方根误差,根据平均值和均方根偏差这两个参数提取出半导体刻蚀数据中的故障数据通过提取其数据集中的故障数据 

如图3.2所示Pressure列中,均值为1232.537,均方根偏差为18.645,取值是0.7924的值约为0.5,0.7924>0.5,所以确定晶元2915在步骤5物理量BCl3 Flow数据1309、1303、1303、1295、1296属于异常数据。

image.png

Pressure列的异常数据

在示Pressure列中,取值为0.44,的值约为0.5,然而0.44<0.5,所以确定晶元2915在属于正常数据。

就本次实验数据的分析而言,将含有故障数据的测试数据集按7:3的比例分为2份,分别命名为done数据集和done_test数据集,将故障标签设为0和1,0代表无故障,1代表有故障,通过莱茵达准则我们可以做出带有异常值数据的判别,并在其数据末端标出故障标签。如图为从done数据集提取的不良数据值截图,如图3.4所示:

image.png

刻蚀机不良数据值

4)数据整合

经故障提取后,数据的维数存在着较大的差异。不管是利用神经网络、深度学习,还是其他AI人工智能算法,大多数算法模型都无法很好地处理数据维度。为此,我们需要一种方法去实现一个自适应降维的过程,将对数据分析结果影响不大的维数除去,但是不会影响数据分析结果。

通过数据差异较大的过程物理量的分析,我们将数据故障标签设定为0和1,0代表无故障,1代表有故障。因此我们可以将物理过程量RF Btm Rfl Pwr和TCP Rf1 Pwr作为数据差异项剔除,因为它的数据差异介于0,1之间,而故障标签也是0,1,所以将会对网络读取判断产生影响,故而将其剔除,训练数据读取时Run ID,Time和Step Number将不作为数据维数输入训练网络,因为它们的变化是固定的,所以最终输入网络的物理量有17种,故网络的输入维数为17。

通过故障提取和数据整合后,整理出了网络训练的故障数据集。在故障数据和正常数据集的基础上,对其进行了维数整合处理,在在原有的训练数据集中加入一定数量的带有故障数据的数据集。将整合后的数据作为神经网络训练的样本数据集,并对样本数据做标记,此时数据标为2种类型,即为0和1如图所示:

image.png

带故障标签的半导体刻蚀机样本集

 

4. RBF神经网络半导体刻蚀机故障诊断模型的构建   

1)模型概述

通过对相关学习算法 RBF 神经网络基本结构的研究得知,要初步构建一个 RBF神经网络模型,需要考虑以下几个问题:

(1)确定RBF神经网络的输入层节点个数,也就相当于样本的输入维数;

(2)确定隐含层的各个参数,包括数据中心、宽度以及隐含层节点个数。

(3)确定RBF神经网络的输出层神经元个数以及隐含层节点和输出层节点的相互连接的权值。

针对第 1 个问题,在第章中已经得到了数据集,数据都是17维,因RBF 神经网络的输入层节点设为17,并归一化处理。如下图所示,展示了构建基于 RBF 神经网络的半导体刻蚀机故障诊断模型的流程图。

image.png

RBF神经网络半导体刻蚀机故障诊断模型构建流程图

2输入层数据归一化

数据归一化就是将数据经过某种算法或某种函数进行处理后,可以将所有数据限制在一定范围内使数据值缩小。归一化处理的好处是:一方面可以减低数据间存在的较大差距;另一方面还可以保证程序运行时收敛速度加快,对于RBF神经网络的训练而言,也会间接地影响训练网络的精度。 此次论文中采用快速简单的线性归一化转换原则直接设定限制范围,将样本数据值限制在范围(-1,1)之间,具体公式如下:

image.png

其中, x*为样本数据转换后的标准数据,xmax为样本数据中的最大值,xmin为样本数据中的最小值,x 为样本数据的原始值,各类数据均基于数据处理后的样本集。经归一化处理后,部分半导体刻蚀机数据的截图如图所示。

 

image.png

              归一化处理后的部分数据

这样,去除对实验结果影响不大的编号,时间,工艺步骤,我们可以将RBF 神经网络的输入层的输入维数即为17,然后训练网络就可以对归一化处理后的样本进行直接读取,在这里我们将测试数据集按7:3分开,其中的70%用作网络的实验验证对比,30%用作网络的异常数据检测。 

3RBF神经元激活功能

每个RBF神经元都会计算输入与其原型向量之间的相似度(从训练集中获取)。与原型更相似的输入向量返回的结果更接近于1。相似函数的选择可能不同,但最流行的是基于高斯模型。以下是具有一维输入的高斯方程。

image.png

其中x是输入,mu是平均值,而sigma是标准偏差。这将产生下面所示的熟悉的钟形曲线,其中心位于平均值mu上(在下面的图中,平均值为5,sigma为1)。

image.png

RBF神经元激活功能略有不同,通常写为:

image.png

在高斯分布中,mu表示分布的均值。在这里,它是原型矢量,它位于钟形曲线的中心。对于激活函数phi,我们对标准偏差sigma的值不直接感兴趣,因此我们进行了一些简化的修改。

第一个变化是我们删除了外部系数1 /(sigma * sqrt(2 * pi))。该术语通常控制高斯的高度。但是,在这里,输出节点所施加的权重是多余的。在训练期间,输出节点将学习正确的系数或“权重”以应用于神经元的反应。第二个变化是我们用单个参数“ beta”替换了内部系数1 /(2 * sigma ^ 2)。该β系数控制钟形曲线的宽度。同样,在这种情况下,我们不在乎sigma的值,我们只是在乎是否存在控制钟形曲线宽度的系数。因此,我们通过用单个变量替换项来简化方程式。

4RBF神经元激活可产生不同的beta值

当我们将方程式应用到n维向量时,符号的表达也略有变化。激活方程式中的双杠符号表示我们正在x和mu之间的欧几里德距离,并将结果平方。对于一维高斯,这简化为(x-mu)^ 2。

重要的是要注意,此处用于评估输入向量和原型之间的相似性的基本度量标准是两个向量之间的欧几里得距离。

同样,当输入等于原型向量时,每个RBF神经元都会产生最大的响应。这允许将其作为相似性的度量,并对所有RBF神经元的结果求和。

当我们从原型向量中移出时,响应呈指数下降。从RBFN架构说明中可以回忆起,每个类别的输出节点都采用网络中每个RBF神经元的加权总和,换句话说,网络中的每个神经元都会对分类决策产生一定的影响。然而,激活函数的指数下降意味着,其原型远离输入向量的神经元实际上对结果的贡献很小

 

5隐含层节点参数设计

网络隐含层参数主要包括三个重要参数:径向基函数的中心隐含层节点个数宽度。在 K-means 算法中聚类个数 K 值的设置与隐含层节点个数的设置有相互依赖的关系,聚类类别 K 即为网络模型中隐含层的节点个数。

K-means 算法的基本思想:对于数据样本集而言,通过判定样本间的距离,将样本集中的数据划分成 K 类。在这 K 类中,我们可以选择将17变量中每一类变量中占比比较大的作为正常值,尽量让每类中的样本间距离最小,让正常的数据聚在一起作为一类,自然异常的数据相应位于群落之外,同时让 K 个类别间的距离尽量大,距离尽量大为了让网络更加容易识别正常数据与异常数据

K-means 算法的基本步骤如下:

(1)从输入的样本数据中,随机选取 K 个对象作为开始的聚类中心,初始阶段我们选取的K自然为17

(2)计算每个数据对象到各聚类中心的距离,这里直接使用的是坐标上2点间的距离公式计算,并根据计算的结果将其化归到最近的聚类中,距离什么类别最近就将这个数据值归类到哪一种类别

(3)重新计算各聚类的中心;

(4)重复②③步骤,直到聚类的中心不再变化或是小于设定的某一阈值,表明该算法结束。

经过训练后,得到网络的最终中心之间最大距离为238.328,介于维数Bcl3 Flow与Rf  Phase Err的聚类中心之间,通过 k-means 算法求出中心距离后,进一步确定网络的宽度Speard,求解公式为:

image.png

m 表示训练样本的个数,cmax为所选取中心之间的最大距离。最终确定网络宽度为2,通过网络训练不断的迭代和数据的收敛可以得到网络的神经元数目为600,而网络的中心值基于python程序编写的,它不作为返回值,相当于各类参数的值不是唯一确定的它是基于网络训练的最佳效果而确定。 

6输出层设计

输出层的参数设置主要包括隐含层与输出层的连接权重值(基于python的RBF神经网络实现没有返回权重值)以及输出层的节点个数。在本文半导体刻蚀机故障共有17类,对应数据集中的17类数据。

最后一组参数是输出权重。可以使用梯度下降(也称为最小均方)进行训练。首先,对于训练集中的每个数据点,计算RBF神经元的激活值。这些激活值成为梯度下降的训练输入。线性方程需要一个偏置项,因此我们总是将固定值“ 1”添加到激活值矢量的开头。必须为每个输出节点(即,数据集中的每个类)分别运行渐变下降。对于输出标签,对于与输出节点属于同一类别的样本,请使用值“ 1”,对于所有其他样本,请使用值“ 0”。例如,如果我们的数据集具有三个类别,并且我们正在学习输出节点3的权重,则所有类别3示例应标记为“ 1”,所有类别1和2示例应标记为0。

当 RBF 神经网络的中心、宽度与权重确定后,训练得到该网络模型的输出结果如图 4.3所示。图中每一行代表选取数据经归一化后的输出结果。

image.png

             网络center值

image.png

              网络delta

image.png

网络weight值

 

5.模型评估

1)准确率

 

编号

数据集

准确率

1

训练集

76.84%

2

测试集

76.34%

 

6.实际应用 

基于模拟和真实数据的结果表明,神经网络在预测精度方面取得良好的效果。在实际半导体刻蚀机故障诊断中,可以参考此模型的诊断数据。测试集预测结果如下:

image.png

# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 获取方式一:
 
# 项目实战合集导航:
 
https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
 
# 获取方式二:
 
链接:https://pan.baidu.com/s/1oazw3dJWJcQgi-g7UnuDyg 
提取码:ar78
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
5天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
20 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
27天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
249 55
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
174 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
1天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
12天前
|
算法 网络协议 Python
探秘Win11共享文件夹之Python网络通信算法实现
本文探讨了Win11共享文件夹背后的网络通信算法,重点介绍基于TCP的文件传输机制,并提供Python代码示例。Win11共享文件夹利用SMB协议实现局域网内的文件共享,通过TCP协议确保文件传输的完整性和可靠性。服务器端监听客户端连接请求,接收文件请求并分块发送文件内容;客户端则连接服务器、接收数据并保存为本地文件。文中通过Python代码详细展示了这一过程,帮助读者理解并优化文件共享系统。
|
25天前
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
49 11
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
108 4
数据分析的 10 个最佳 Python 库
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
82 3
|
2月前
|
网络安全 Python
Python网络编程小示例:生成CIDR表示的IP地址范围
本文介绍了如何使用Python生成CIDR表示的IP地址范围,通过解析CIDR字符串,将其转换为二进制形式,应用子网掩码,最终生成该CIDR块内所有可用的IP地址列表。示例代码利用了Python的`ipaddress`模块,展示了从指定CIDR表达式中提取所有IP地址的过程。
61 6