system: [SYSTEM]

user: 3. 教改措施 本课程教学所采用的综合项目实践案例之一是“光纤传感信号的数据处理与识别”。如图1所示，该项目的应用背景是：为了防止盗挖石油运输管道、窃取石油的事件发生，将光纤线缆埋在石油管道旁侧用以采集地面震动信号并由远程信号处理中心实施分析和监控。信息处理过程包括：震动信号的数据采集、数据清洗、特征提取、样本生成和分类识别。该项目最终将引起震动的事件划分为两类：挖掘机挖掘事件和其它非破坏性背景事件。 图1. 光纤振动传感器用于防范石油管道破坏和石油盗采的监控示意图 我们将以该项目为例，探讨对本课程的几点教学改进措施，主要包括：1) 数据可视化的物理意义教学：用于形象直观地了解数据的特征形态和分布特点，以帮助学生理解对数据进行前、背景分割的操作实践和处理；2) 样本维数的数学意义教学：用于解释说明数据样本生成和维度大小的确定方法；3) 数据分类的几何意义教学：用于阐述分类模型算法的几何运算机理，帮助理解智能信息处理背后的计算原理。 3.1. 数据可视化的物理意义教学 对于初学者而言，往往不清楚待处理的数据信号究竟有什么特点，以及如何针对这些特点采取相应的数据清洗和特征提取操作。例如，对光纤传感信号，初学者只知道该信号可用来传递不同震动的信号，但对不同的震动信号有什么形态和性质、如何去除噪声、如何提取特征等都感到高深莫测。如果用可视化的工具和手段对数据的时空分布形态进行展示，就可以让初学者对光纤信号的特点产生形象直观的认识和了解，进而容易对数据采取相应的清洗和特征提取操作。 如图2所示，“挖掘机挖掘”事件可由两个二维时空图可视化表示。每张图上的横坐标代表光纤传感器的序列位置，纵坐标代表传感器的采样时刻；左右两幅图分别表示250个光纤传感器在500余个时刻上采集到的频率(过零率)和振幅(能量)数值；这些数值通过伪彩色可以获得直观显示。由图上可以看出，在多数传感器上两种特征沿时间轴快速变化，构成前景信号。同时在图片的两侧有大片夹杂着点状分布图案的蓝色区域，这些属于背景信号，与前景信号区域形成鲜明对比。 根据此图，我们告知学生，采集到的数据有两个特点：1) 数据在纵向方向有明显的频率变化特征可以提取；2) 数据区域混杂有前景信号和背景噪声，需要将将前景信号区域从背景中分割出来。进一步，我们向学生展示可视化图3，教授学生用红色方框分割出前景部分，这一操作可以通过编程用程序实现。 图2. 光纤振动传感器采集的由挖掘机挖掘事件导致的二维时空信号图 图3. 前景信号区域分割 3.2. 样本维数的数学意义教学 在将数据信号从背景中分割出来之后，下一步涉及到的是数据样本的制作问题：对于送入一个智能信息处理模型对其进行学习训练或测试的数据样本，如何从数据信号区域中获得？是选择整个数据信号区域(如图3的红框)内的所有数据作为一个样本，还是选择区域中的部分数据形成一个样本？被选定用来形成一个数据样本的数据及其个数可以用一个数据样本向量 A → = ( a 1 ，   a 2 ，   ⋯ ，   a n ) 和它的维数n表示，这样问题转化为：样本在数据信号前景区域的什么地方取以及n取多大值？ 对于初学者而言，往往不知道数据样本应该如何选取，包括样本在数据区域中的位置、大小和数量的选定。为了向学生讲明样本制作的要点和依据，我们借用《线性代数》课程的相关理论进行说明。 《线性代数》课程中关于线性方程组求解的内容涉及到“解的唯一性”条件问题：对于一个n元一次方程组，如果方程的个数小于未知量的个数n，那么该方程组有无穷多解；如果方程的个数等于未知变量的个数n (且系数向量都线性无关)，那么该方程组有唯一解。 以对数据样本进行智能信息处理的两层神经网络模型为例(模型结构参见图5)，n个输入神经元负责输入任意一个样本向量 A → = ( a 1 ，   a 2 ，   ⋯ ，   a n ) ，同时，n个输入神经元与输出神经元相连，它们之间有n个待求解的连接权系数 X → = ( x 1 ，   x 2 ，   ⋯ ，   x n ) ，那么对应任意一个输入样本 A → ，输出神经元的响应值为神经网络对输入样本的加权和： A → T X → = a 1 x 1 + a 2 x 2 ⋯ a n x n = c 如果要获得上述方程中的n个未知参数 ( x 1 ，   x 2 ，   ⋯ ，   x n ) 的唯一解，根据上文中线性代数的知识，需要有至少n个数据样本 ( A → 1 ，   A → 2 ，   ⋯ ，   A → n ) 输入到该神经网络模型中，产生由n个对应的方程组成的方程组并对之求解： A → 1 T X → = a 11 x 1 + a 12 x 2 ⋯ a 1 n x n = c 1 A → 2 T X → = a 12 x 1 + a 22 x 2 ⋯ a 2 n x n = c 2 ⋯ ⋯ A → n T X → = a n 1 x 1 + a n 2 x 2 ⋯ a n n x n = c n 由上述方程组可知，对应输入样本的数据向量 A → = ( a 1 ，   a 2 ，   ⋯ ，   a n ) 的维数n设定为多少，那么需要的样本数同样为多少，即需要的样本数目为相同大小的n。 以图3中所示的数据为例，红色方框中所含的数值个数约为500 × 150 = 75，000个，如果把这75，000个数值作为一个样本 A → = ( a 1 ，   a 2 ，   ⋯ ，   a n ) ，那么该样本的维数n = 75，000。对应的神经网络的输入神经元的个数同样需要设定为75，000个，同时需要有75，000个连接权系数 ( x 1 ，   x 2 ，   ⋯ ，   x 75000 ) 对输入样本向量作加权求和形成对应的一个方程： A → T X → = a 1 x 1 + a 2 x 2 ⋯ a 75000 x 75000 = c 根据前述方程组求解的要求，需要有75，000个图3所示的红色方框样本，形成对应的75，000个方程构成的方程组，才能求解出神经网络模型中从输入神经元到输出神经元之间的75，000个连接权未知系数 ( x 1 ，   x 2 ，   ⋯ ，   x 75000 ) 的唯一解。 然而，在有些实际的工程项目中，很难采集到如此多的数据样本。例如，图3显示的是挖掘机执行一次挖土动作所产生的光纤震动数据，要获得75，000个这样的样本数据，需要挖掘机执行75，000次挖掘动作，这样的操作很难达到。通常情况下，操作挖掘机以获得相应的数据，次数往往非常有限，例如可能最多只能重复100次这样的操作，换句话说，只能获得100张图3所示的数据。如果将图3中红色方框内的75，000个数值作为一个样本，其对应的神经网络模型需要求解75，000个未知参数，而所能提供的样本数只有100个，由于100远小于75，000，也就是说由100个样本对应的100个方程所组成的方程组去求解方程中的75000个未知权系数，将产生不确定性的无穷多解，无法获得神经网络模型参数较精确的唯一解。 解决的办法就是缩小样本向量的维数，令维数近似等于可获得的样本个数，从而求取较精确的近似唯一解。例如，如图4所示，将红色方框内的数据划分成数据小块，每个小块设为10 × 10大小，这样每个小块内含有100个数值；将每个小块作为一个数据样本，那么该样本对应的数据向量的维数n = 100；对应的神经网络模型的输入神经元的个数或者待求解的从输入层到输出神经元的未知加权系数也变为100个大小；在这种情况下，只需要制作生成100个样本，建立一个由100个方程组成的方程组，就可以实现对神经网络模型中100个未知加权参数的较精确的求解。 采样如上的方式教学，由学生的反应可以看出，他们较容易地掌握了样本大小和样本个数的关系，同时对样本制作和生成有了形象直观的理解和认识。 图4. 前景信号区域分割成小块用于生成样本 3.3. 数据分类的几何意义教学 在对数据样本的生成原理和实践方法有了一个清晰的认识之后，下一步教师需要告诉学生输入数据样本的神经网络模型是如何对数据样本进行分类或决策的。 如图5所示，在以前的教学PPT中，我们会将两层神经网络或感知机的模型结构、结点所代表的数学意义、以及模型对应的分类或决策函数公式列出来供学生们领会学习。但学生们反映看了这些公式“知其然不知其所以然”。 图5. 原PPT教学设计 为此，我们增加了若干页PPT，从不同类别数据样本在空间的分布及神经网络输出结点函数对它们的划分入手，对神经网络的基本原理进行形象直观的几何意义解释。具体如图6所示，在我们的教学实例中，不妨将挖掘机挖掘事件所产生的数据样本设为A类样本，这些样本在简化的数据空间中的分布如图中的红点所示；将其它事件如背景噪声产生的数据样本设为B类样本，这些样本在数据空间中的分布如图中的蓝点表示。当神经网络输出层结点的输出函数 y = w T X − b = 0 时，此时的神经网络描述的等式方程恰好对应于图中的绿色分割线，其物理意义是此时的样本落在绿线上，该样本处于A类和B类样本的中间过渡位置。表达式中的 w T X 表示输入的数据样本 X 与神经网络连接权向量 w 所代表的A类事件或模板向量进行内积或相似度计算，其几何意义是数据样本向量的长度向A类事件模板向量上做垂直投影。当神经网络输出层结点的输出函数 y = w T X − b > 0 或≤0时，此时的神经网络描述的不等式方程对应于图中绿色分割线上方或下方的区域，其物理意义是此时的样本落在绿线上方或下方，该样本处于A类事件样本或B类事件样本所在的区域，即数据样本 X 被分类为A类或B类。 图6. 新增的直观几何意义教学PPT 经过图6形象直观的原理解释，学生们反映，对神经网络机器学习模型的分类功能有了本质的理解和掌握。