1. 过程相似性定义

Lu等在《Process Similarity and Developing New Process Models Through Migration》根据有限的过程属性集,或者根据这些属性之间的关系来描述特定过程,分为基于属性的表示方法和基于模型的表示方法。基于属性的表示方法是利用有限属性及其属性值来表示,主要关注工艺设备和过程条件;基于模型的表示方法是利用过程属性之间的关系来表示,主要反映过程条件和输出特性之间的关系。这两种类型的过程表示将过程相似性分类为如下图所示。

(1)过程相似性

定义1:具有相同结构的两个过程被认为属于一种类型,并且表示为结构相似;否则,这些过程在结构上是不同的。显然,属于一种类型的过程在集合中具有相同数量的属性,并且两个集合中的属性是对属性。

下式给出了两个磨矿分级过程的实例,两者都具有相同的生产组件,例如旋流器,矿池,给矿泵等,因此这两个过程在结构上相似。其中上标1和2分别代表过程1和2。显然,这两个过程在结构上相似是模型迁移的前提条件。

定义2:如果它们彼此对应并且它们与属性集中的其他属性处于相同的关系,则将不同过程的两个属性表示为对属性。如定义1,公式中的属性旋流器1和旋流器2是对属性。

(2)基于属性的表示

定义:过程P由基于属性的表示中的一组过程属性和属性值表示,定义为:

其中,A是一组有限的过程属性,反映了过程的性质,包括进料,操作设备,环境条件等;V是对应的属性值。

(3)基于模型的表示

定义:一个过程由一组过程条件,质量属性及其在基于模型的表示中的关系表示:

其中,X是一组操作条件或输入变量;Y是一组质量变量,响应变量或输出变量; R是由过程原理控制的X和Y之间的关系。通常,R可以通过任何建模方法开发。

(4)基于属性相似性分类

定义1:如果两个过程对属性的全部或部分具有相似的值,则称两个过程具有属性相似性。否则,当没有值匹配时,过程就不同了。属性相似性可以分为比例相似性,包含相似性和家庭相似性。

定义2:如果过程1的全部或部分属性值直接从过程2的对应对属性值缩放,则该过程具有比例相似性。

定义3:如果描述过程1的所有或一些属性值是过程2的对应对属性值的子集,则该过程具有包含性相似性。

定义4:如果两个过程的所有或一些对属性具有属于某些类的值,则该过程具有家庭相似性。

(5)基于模型相似性分类

定义1:如果两个过程的一些或所有过程变量的操作范围具有相同的范围,则过程具有相同输入相似性。

定义2:如果过程1的一些或所有过程变量的操作范围包括在过程2的相应操作范围或包括过程2的相应操作范围,则过程具有包含输入相似性,

定义3:如果过程1中的一些或所有过程变量的操作范围从过程2中的相应操作范围偏移,则过程具有偏移输入相似性。

定义4:如果过程1中的一些或所有过程变量的操作范围从过程2中的相应操作范围缩放,则过程具有缩放输入相似性。

定义5:如果在输入变量的相同操作范围内,两个过程模型的响应曲线具有相同的行为但幅度不同,则过程模型具有趋势相似性或模式相似性。

定义6:如果在两个过程模型中输入变量的操作范围发生偏移时,响应曲线具有相同的行为但幅度不同,则过程模型具有偏移趋势相似性。

定义7:如果当输入变量的范围在两个过程模型之间缩放时,响应曲线也会缩放,则过程模型具有缩放趋势相似性。

定义8:给定过程1和过程2的模型,如果过程2的输入是过程1的输入偏移和缩放,则过程2是过程1的物理输入偏移和比例。

定义9:如果过程2比例和偏移参数与定义8中的不同,而由新数据获得,则过程2是过程1的函数输入偏移和比例。

定义10:如果通过下式处理描述偏移和比例,则过程2是过程1的输入-输出偏移和比例。

2. 过程相似性度量

模型迁移学习迁移至目标领域知识的多少,取决于源领域与目标领域之间的相似性,即领域间越相似,则目标领域可获取的知识越多,所以模型迁移学习的关键问题是领域间具有相关性。因此,本文在此对领域间相似性度量的常用方法进行简单描述。

目前,对于领域间分布差异的度量虽未有一个统一的方法,但却有一些常用的方法可帮助我们发展此理论,比如KL散度、布雷格曼散度、最大均值差异等方法。

(1)KL散度

KL散度(KuLLback-Leibler Divergence,KL)是一种量化两种概率分布和之间差异的度量方法,又叫相对熵或者KL熵。在概率学和统计学上,经常使用一种更简单的、近似的分布来替代观察数据或者太复杂的分布。KL散度本来是用于度量一个分布来近似另一个分布所损失的信息,在迁移学习领域可用来度量各领域分布之间的距离。若源领域的分布为,目标领域的分布为,则和之间基于KL散度度量的分布差异为:

此公式是由信息熵公式通过信息损失的度量推导而来,从KL散度的计算公式可以看出它不符合对称性,因为其不是距离的度量。所以,在迁移学习中,通常采用以下公式来度量领域间的分布差异:

(2)布雷格曼散度

布雷格曼散度(Bregman Discrepancy)是一种类似距离度量的方式,用于衡量分布之间差异的大小[67],是以损失函数或者失真函数作为目标函数。假设源领域和目标领域在两种分布下的两个样本点分别为和,可认为点是点的失真点或者近似点,也可以认为点是点添加一些噪声叠加形成的。所以,目标函数是由点近似点的损失最小化。若给定一个严格的凸函数,则和之间的布雷格曼散度通过下面的公式给出:

其中,是在上的梯度,是和之间的內积。公式中的后半部分表示函数在附近的线性部分,布雷格曼散度则是一个函数与的线性近似之间的差,使用不同的可以得到不同的布雷格曼散度。

(3)最大均值差异

最大均值差异(Maximum Mean Discrepancy,MMD)是通过计算源领域和目标领域数据集均值点间的距离来度量它们之间的分布差异程度[68]。基本假设是:若生成样本空间的函数为,且两个分布生成的样本在上对应的均值相等,则认为这两个分布属于同一个分布。最大均值差异通过下面的公式给出:

以上为对领域间分布差异的度量,也可通过直接计算领域间数据样本之间的相似程度来确定领域之间的相似性,这两种思路是截然不同的。计算样本相似性的方法有:

(1)欧式(Euclid)距离法:任意两个数据点和之间的相似性定义为两个数据点之间的欧式距离:

(2)明氏(Minkowski)距离法:任意两个数据点xi和xj之间的相似性定义为两个数据点之间的明式距离:

当q取1、2、无穷时,分别得到绝对距离、欧氏距离和切比雪夫(Chebyshev)距离。

(3)马氏(Mahalanosi)距离法:任意两个数据点和之间的相似性定义为两个数据点之间的马式距离:

其中,是协方差矩阵。马氏距离虽然克服了欧氏距离同等对待每一个属性的缺点,但是由于要计算协方差矩阵,计算量较大,对于大规模数据处理复杂度高。

(4)正切值法:任意两个数据点xi和xj之间的相似性可通过下式表示:

其中,a1,a2为常量。

(5)负指数法或RBF核函数法:通过下式定义任意两个数据点和之间的相似性:

其中,delta为常量。

3. 代码实现

1.  将源领域和目标领域数据集各自使用PCA降维为二维、三维特征,然后在二维空间、三维空间可视化,即将每一个样本以散点的形式在空间中表现出来,通过观察对比两个领域的散点分布来分析两个领域的分布是否具有差异性:

from mpl_toolkits.mplot3d import Axes3D   from numpy import *
import pandas as pd
import matplotlib.pyplot as plt
#PCA降维
def pca(dataMat,topNfeat=9999999):meanVals=mean(dataMat,axis=0)#print("均值矩阵: ",meanVals)meanRemoved=dataMat-meanVals#print("中心化后的矩阵: ",shape(meanRemoved))covMat=cov(meanRemoved,rowvar=0)eigVals,eigVects=linalg.eig(mat(covMat))#print("特征值: ",eigVals)eigValInd=argsort(eigVals)#print("排序后的特征值: ",eigValInd)eigValInd=eigValInd[:-(topNfeat+1):-1]#print("选择最大的前n个特征值的索引:",eigValInd)redEigVects=eigVects[:,eigValInd]#print("选择最大的前n个特征向量",redEigVects)lowDataMat=meanRemoved*redEigVectsreturn lowDataMat
#读取CSV文件
srcFrame = pd.read_csv('OGSrc.csv')
tarFrame = pd.read_csv('OGTar.csv')
#将DataFrame类型转化为数组类型
srcData = srcFrame.values
tarData = tarFrame.values
#OG源领域和目标领域数据分别降维
lowSrcData = pca(srcData,3)
lowTarData = pca(tarData,3)
#获取OG各个领域数组的各列数据
src_f1 = transpose(lowSrcData)[0].tolist()[0]
src_f2 = transpose(lowSrcData)[1].tolist()[0]
src_f3 = transpose(lowSrcData)[2].tolist()[0] tar_f1 = transpose(lowTarData)[0].tolist()[0]
tar_f2 = transpose(lowTarData)[1].tolist()[0]
tar_f3 = transpose(lowTarData)[2].tolist()[0]
ax = plt.subplot(111, projection='3d')
#源领域和目标领域对应的三维散点图
ax.scatter(src_f1, src_f2, src_f3, c='r')
ax.scatter(tar_f1, tar_f2, tar_f3, c='k')
ax.set_xlabel('feature1')
ax.set_ylabel('feature2')
ax.set_zlabel('feature3')
plt.show()

2. KL散度(Kullback-Leibler Divergence)

from numpy import *
import pandas as pd
import scipy.stats
#KL散度
def kl(srcArr, tarArr):m,n = srcArr.shaperesult = 0;for i in range(m):result += sum( srcArr[i]*(log(srcArr[i])-log(tarArr[i])) )# result += scipy.stats.entropy( srcArr[i], tarArr[i] )return result
#读取CSV文件
srcFrame = pd.read_csv('OGSrc.csv')
tarFrame = pd.read_csv('OGTar.csv')
#将DataFrame类型转化为数组类型
srcData = srcFrame.values
tarData = tarFrame.values
print( srcData.shape, tarData.shape )
result = kl(srcData, tarData)

3. 最大均值差异

from numpy import *
import pandas as pd
#高斯核
def gaussianKernel(xArr,yArr,s):temp = sqrt(sum((xArr-yArr)**2))return exp(-(temp/s))
def mmd(srcArr, tarArr, sigma):s = 2*(sigma**2)m = srcArr.shape[0]n = tarArr.shape[0]result1 = 0result2 = 0result3 = 0for i in range(m):for j in range(m):result1 += gaussianKernel(srcArr[i], srcArr[j], s)for i in range(m):for j in range(n):result2 += gaussianKernel(srcArr[i], tarArr[j], s)for i in range(m):for j in range(n):result3 += gaussianKernel(tarArr[i], tarArr[j], s)print( result1, result2, result3 )return 1/(m**2)*result1 - 2/(m*n)*result2 + 1/(n**2)*result3
#读取CSV文件
srcFrame = pd.read_csv('OGSrc.csv')
tarFrame = pd.read_csv('OGTar.csv')
#将DataFrame类型转化为数组类型
srcData = srcFrame.values
tarData = tarFrame.values
print( srcData.shape, tarData.shape )
sigma = 0.1
print( mmd(srcData, tarData, sigma) )

源领域和目标领域过程相似性分析相关推荐

  1. 数据包从源主机到达目标主机过程详解

    为了便于理解,先从同一广播域内两台主机通信开始叙述吧.只要能理解这些,那也就差不多可以理解跨路由传输过程了(两者不同之处在于源和目标MAC地址的转换). 情景一:同一广播域内,两台主机通信过程. 我们 ...

  2. CVPR 2019 开源论文 | 针对未知目标领域的通用领域适配方法

    作者丨游凯超 学校丨清华大学软件学院本科生 研究方向丨迁移学习和领域适配 这篇论文发表于 CVPR 2019,是我们团队(清华大学龙明盛副教授的团队)在领域适配问题设定方向的最新探索:我们将领域适配问 ...

  3. 一文读懂领域迁移与领域适应的常见方法

    ©PaperWeekly 原创 · 作者|Chen 单位|追一科技AI Lab研究员 研究方向|领域迁移.领域适应 领域迁移问题的背景及描述 在使用机器学习.人工智能中的技术手段解决实际问题的时候,常 ...

  4. 论文学习——多度量水文时间序列相似性分析

    文章目录 摘要 1 研究背景 1.1 主要研究内容 1.2 研究背景 1.3 启发 2 基于改进BORDA投票法的多度量水文时间序列相似性分析 2.1 研究方法 2.2 BORDA投票法的改进 2.2 ...

  5. 项目管理10大知识领域及5大过程

    文章目录 项目管理10大知识领域及5大过程总览 一.项目整体管理 1.项目整体管理设计4个方面 2.作为整合者,项目经理必须 二.项目范围管理 三.项目进度管理 四.项目成本管理 1.发生失控的原因: ...

  6. FT报源检测到目标无法恢复解决过程

    一次在 vCenter Server 5.5 中对虚拟机启用 Fault Tolerance,显示以下错误: 出现一般系统错误: 源检测到目标无法恢复(Source detected that des ...

  7. 项目管理十大知识领域与49个过程,输入输出、工具与技术思维导图(PMBOK®指南第六版)

    项目管理十大知识领域与49个过程,输入.输出.工具与技术思维导图,ITTO思维导图(PMBOK®指南第六版) 打开今日头条手机APP,搜索"有范管理美学",点击关注---进入主页- ...

  8. 目标检测YOLO实战应用案例100讲-无监督领域自适应目标检测方法研究与应用

    目录 无监督领域自适应目标检测方法研究 领域自适应目标检测 目标检测相关技术介绍

  9. 数据包从源主机到达目标主机的过程

    情景一:同一广播域内,两台主机通信过程 ------------------------------------------------------------------- 两主机要通信时,要把应用 ...

  10. EEG频谱模式相似性分析:实用教程及其应用(附代码)

    人脑通过神经激活模式编码信息.虽然分析神经数据的常规方法侧重对大脑(去)激活状态的分析,但是多元神经模式相似性有助于分析神经活动所代表的信息内容.在成年人中,已经确定了许多与表征认知相关的特征,尤其是 ...

最新文章

  1. build怎么调试 react_webpack打包调试react并使用babel编译jsx配置方法
  2. python读取ini文件utf-16 le_Python文件编码不可以使用UTF16
  3. Spring之装配Bean(一)
  4. 05.doc_delete操作
  5. Snipaste截图
  6. mysql 分页算法_MySQL高效的分页算法
  7. 【软技能】代码先放一放,学习一下工程的概念
  8. 用typescript完成倒计时_TypeScript(一):类型
  9. 数组任意取三个数中乘积最大值
  10. 浙江财经大学是一所怎样的学校?
  11. PHP连接不上MySQL解决方案总结
  12. PHP Windows系统下调用OpenOffice
  13. 遇到Python中文目录名问题,未解决
  14. [短线是银]条件选股公式集源码!
  15. win10 清理回收站右键
  16. ARCH模型以及编程实现
  17. 2022年第6周(1月31日-2月6日)中国各地区电影票房排行榜:江苏票房夺冠,河南票房环比增幅最大(附热榜TOP31详单)
  18. 多亏了这些Word技巧,我才能15分钟完成所有工作!真是6到飞起
  19. 2022年美团科研合作课题公开征集启动
  20. 马科维茨投资组合理论(均方模型)学习笔记——基于Matlab(四)

热门文章

  1. kali linux 2020.4 自带浏览器英文改中文
  2. 【jzoj 5336】Timi / 提米树(DP)
  3. 破解电视盒 运营商送的,各种型号。通用 TTL 破解电视盒,更新华为悦盒
  4. DZ导航栏目参数说明
  5. ckeditor java 取值_Jquery 对Ckeditor 取值
  6. html打印宽度怎么设置,A4纸网页打印 html网页页面的宽度设置成多少
  7. iPad连蓝牙鼠标鼠标滚动与屏幕相反的解决方法
  8. 打印纸张尺寸的简单说明
  9. win7右键菜单管理_电脑鼠标右键管理工具下载 Windows鼠标右键增强管理软件 v1.0 绿色单文件免费版 下载...
  10. JQuery图片跟随鼠标移动