热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

势函数怎么求,势函数和流函数同时存在的条件是什么

势函数法势函数主要用于确定分类面,其思想来源于物理。1势函数法基本思想假设要划分属于两种类别ω1和ω2的模式样

势函数法

势函数主要用于确定分类面,其思想来源于物理。

 

1 势函数法基本思想

假设要划分属于两种类别 ω1 和 ω2 的模式样本,这些样本可看成是分布在 n 维模式空间中的点 xk 。 把属于 ω1 的点比拟为某种能源点,在点上,电位达到峰值。 随着与该点距离的增大,电位分布迅速减小,即把样本 xk 附近空间 x 点上的电位分布,看成是一个势函数 K(x,xk) 。 对于属于 ω1 的样本集群,其附近空间会形成一个"高地",这些样本点所处的位置就是"山头"。 同理,用电位的几何分布来看待属于 ω2 的模式样本,在其附近空间就形成"凹地"。 只要在两类电位分布之间选择合适的等高线,就可以认为是模式分类的判别函数。

 

2. 判别函数的产生

模式分类的判别函数可由分布在模式空间中的许多样本向量 {xk,k=1,2,⋯且,xk∈ω1∪w2} 的势函数产生。 任意一个样本所产生的势函数以 K(x,xk) 表征,则判别函数 d(x) 可由势函数序列 K(x,x1),K(x,x2),⋯ 来构成,序列中的这些势函数相应于在训练过程中输入机器的训练模式样本 x1,x2,⋯ 。 在训练状态,模式样本逐个输入分类器,分类器就连续计算相应的势函数,在第 k 步迭代时的积累位势决定于在该步前所有的单独势函数的累加。 以 K(x) 表示积累位势函数,若加入的训练样本 xk+1 是错误分类,则积累函数需要修改,若是正确分类,则不变。

 

3.判别函数产生逐步分析

    设初始势函数 K0(x)=0

    第一步:加入第一个训练样本 x1

则有  

K1(x)={K(x,x1)−K(x,x1)ifx1∈ω1ifx1∈ω2

这里第一步积累势函数 K1(x)

描述了加入第一个样本时的边界划分。当样本属于 ω1 时,势函数为正;当样本属于 ω2

时,势函数为负。

      第二步:加入第二个训练样本 x2

则有

若 x2∈ω1 且 K1(x2)>0 ,或 x2∈ω2 且 K1(x2)<0 ,则分类正确,此时 K2(x)=K1(x) ,即积累势函数不变。 若 x2∈ω1 且 K1(x——2)<0 ,则 K2(x)=K1(x)+K(x,x2)=±K(x,x1)+K(x,x2)
若 x2∈ω2 且 K1(x2)>0 ,则

K2(x)=K1(x)−K(x,x2)=±K(x,x1)−K(x,x2)

     以上(ii)、(iii)两种情况属于错分。假如 x2

处于 K1(x) 定义的边界的错误一侧,则当 x∈ω1 时,积累位势 K2(x) 要加 K(x,x2) ,当 x∈ω2 时,积累位势 K2(x) 要减 K(x,x2)

      第 K

步:设 Kk(x) 为加入训练样本 x1,x2,⋯,xk 后的积累位势,则加入第 (k+1) 个样本时, Kk+1(x)

决定如下:

1. 若 xk+1∈ω1

且 Kk(xk+1)>0 ,或 xk+1∈ω2 且 Kk(xk+1)<0 ,则分类正确,此时 Kk+1(x)=Kk(x)

,即积累位势不变。

2. 若 xk+1∈ω1

且 Kk(xk+1)<0 ,则 Kk+1(x)=Kk(x)+K(x,xk+1)

;

3. 若 xk+1∈ω2

且 Kk(xk+1)>0 ,则 Kk+1(x)=Kk(x)−K(x,xk+1)

.

     因此,积累位势的迭代运算可写成: Kk+1(x)=Kk(x)+rk+1K(x,xk+1)

, rk+1

为校正系数:     

rk+1=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪001−1ifxk+1∈ω1andKk(xk+1)>0ifxk+1∈ω2andKk(xk+1)<0ifxk+1∈ω1andKk(xk+1)<0ifxk+1∈ω2andKk(xk+1)>0

      若从给定的训练样本集 x1,x2,⋯,xk,⋯

中去除不使积累位势发生变化的样本,即使 Kj(xj+1)>0 且 xj+1∈ω1 ,或 Kj(xj+1)<0 且 xj+1∈ω2 的那些样本,则可得一简化的样本序列 {x⌢1,x⌢2,…,x⌢j,…}

,它们完全是校正错误的样本。此时,上述迭代公式可归纳为:

Kk+1(x)=∑x⌢jajK(x,x⌢j)

其中         

aj={+1−1forx⌢j∈ω1forx⌢j∈ω2

也就是说,由 k+1

个训练样本产生的积累位势,等于 ω1 类和 ω2

类两者中的校正错误样本的总位势之差。

 

      从势函数可以看出,积累位势起着判别函数的作用:当 xk+1

属于 ω1 时, Kk(xk+1)>0 ;当 xk+1 属于 ω2 时, Kk()xk+1<0

,则积累位势不做任何修改就可用作判别函数。

由于一个模式样本的错误分类可造成积累位势在训练时的变化,因此势函数算法提供了确定 ω1

和 ω2 两类判别函数的迭代过程。判别函数表达式:取 d(x)=K(x) ,则有: dk+1(x)=dk(x)+rk+1K(x,xk+1)

.

 

4 构成势函数的两种方式:

    第一类势函数和第二类势函数 

     第一类势函数

     可用对称的有限多项式展开,即:

K(x,xk)=∑i=1mϕi(x)ϕi(xk)

其中{}在模式定义域内为正交函数集。将这类势函数代入判别函数,有:

dk+1(x)=dk(x)+rk+1∑i=1mϕi(xk+1)ϕi(x)=dk(x)+∑i=1mrk+1ϕi(xk+1)ϕi(x)

得迭代关系:

dk+1(x)=∑i=1mCi(k+1)ϕi(x)

其中

Ci(k+1)=Ci(k)+rk+1ϕi(xk+1)

因此,积累位势可写成:

Kk+1(x)=∑i=1mCi(k+1)ϕi(x)

$Ci$可用迭代式求得。 

     第二类势函数:

     选择双变量 x

和$x_k$的对称函数作为势函数,即$K(x, x_k) = K(x_k, x)$,并且它可展开成无穷级数,例如:

(a)  K(x,xk)=e−α∥x−xk∥2

(b)   K(x,xk)=11+α∥x−xk∥2

, α

是正常数

(c)  K(x,xk)=∣∣∣sinα∥x−xk∥2α∥x−xk∥2∣∣∣

 

5.势函数法

实例1:用第一类势函数的算法进行分类

选择合适的正交函数集{}

选择Hermite多项式,其正交域为(-∞, +∞),其一维形式是

其正交性:

其中,Hk(x)前面的乘式为正交归一化因子,为计算简便可省略。因此,Hermite多项式前面几项的表达式为

H0(x)=1,        H1(x)=2x,        H2(x)=4x2-2,

H3(x)=8x3-12x,        H4(x)=16x4-48x2+12

建立二维的正交函数集

二维的正交函数集可由任意一对一维的正交函数组成,这里取四项最低阶的二维的正交函数

生成势函数

按第一类势函数定义,得到势函数

其中,

通过训练样本逐步计算累积位势K(x)

给定训练样本:ω1类为x①=(1 0)T, x②=(0 -1)T

ω2类为x③=(-1 0)T, x④=(0 1)T

累积位势K(x)的迭代算法如下

第一步:取x①=(1 0)T∈ω1,故

K1(x)=K(x, x①)=1+4x1·1+4x2·0+16x1x2·1·0=1+4x1

第二步:取x②=(0 -1)T∈ω1,故K1(x②)=1+4·0=1

因K1(x②)>0且x②∈ω1,故K2(x)=K1(x)=1+4x1

第三步:取x③=(-1 0)T∈ω2,故K2(x③)=1+4·(-1)=-3

因K2(x③)<0且x③∈ω2,故K3(x)=K2(x)=1+4x1

第四步:取x④=(0 1)T∈ω2,故K3(x④)=1+4·0=1

因K3(x④)>0且x④∈ω2,

故K4(x)=K3(x)-K(x,x④)=1+4x1-(1+4x2)=4x1-4x2

将全部训练样本重复迭代一次,得

第五步:取x⑤=x①=(1 0)T∈ω1,K4(x⑤)=4

故K5(x)=K4(x)=4x1-4x2

第六步:取x⑥=x②=(0 -1)T∈ω1,K5(x⑥)=4

故K6(x)=K5(x)=4x1-4x2

第七步:取x⑦=x③=(-1 0)T∈ω2,K6(x⑦)=-4

故K7(x)=K6(x)=4x1-4x2

第八步:取x⑧=x④=(0 1)T∈ω2,K7(x⑧)=-4

故K8(x)=K7(x)=4x1-4x2

以上对全部训练样本都能正确分类,因此算法收敛于判别函数

d(x)= 4x1-4x2

 

实例2:用第二类势函数的算法进行分类

 

 

选择指数型势函数,取α=1,在二维情况下势函数为

这里:ω1类为x①=(0 0)T, x②=(2 0)T

ω2类为x③=(1 1)T, x④=(1 -1)T

可以看出,这两类模式是线性不可分的。算法步骤如下:

第一步:取x①=(0 0)T∈ω1,则

K1(x)=K(x,x①)=

第二步:取x②=(2 0)T∈ω1

因K1(x②)=e-(4+0)=e-4>0,

故K2(x)=K1(x)=

第三步:取x③=(1 1)T∈ω2

因K2(x③)=e-(1+1)=e-2>0,

故K3(x)=K2(x)-K(x,x③)=

第四步:取x④=(1 -1)T∈ω2

因K3(x④) =e-(1+1)-e-(0+4)=e-2-e-4>0,

故K4(x)=K3(x)-K(x,x④)

=

需对全部训练样本重复迭代一次

第五步:取x⑤=x①=(0 0)T∈ω1,K4(x⑤)=e0-e-2-e-2=1-2e-2>0

故K5(x)=K4(x)

第六步:取x⑥=x②=(2 0)T∈ω1,K5(x⑥)=e-4-e-2-e-2=e-4-2e-2<0

故K6(x)=K5(x)+K(x,x⑥)

=

第七步:取x⑦=x③=(1 1)T∈ω2,K6(x⑦)=e-2-e0-e-4+e-2=2e-2-e-4-1<0

故K7(x)=K6(x)

第八步:取x⑧=x④=(1 -1)T∈ω2,K7(x⑧)=e-2-e-4-e0+e-2=2e-2-e-4-1<0

故K8(x)=K7(x)

第九步:取x⑨=x①=(0 0)T∈ω1,K8(x⑨)=e0-e-2-e-2+e-4=1+e-4-2e-2>0

故K9(x)=K8(x)

第十步:取x⑩=x②=(2 0)T∈ω1,K9(x⑩)=e-4-e-2-e-2+e0=1+e-4-2e-2>0

故K10(x)=K9(x)

经过上述迭代,全部模式都已正确分类,因此算法收敛于判别函数

势函数分类算法评价:

1.用第二类势函数,当训练样本维数和数目都较高时,需要计算和存储的指数项较多。

2. 正因为势函数由许多新项组成,因此有很强的分类能力


推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了[从头学数学]中第101节关于比例的相关问题的研究和修炼过程。主要内容包括[机器小伟]和[工程师阿伟]一起研究比例的相关问题,并给出了一个求比例的函数scale的实现。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • Excel数据处理中的七个查询匹配函数详解
    本文介绍了Excel数据处理中的七个查询匹配函数,以vlookup函数为例进行了详细讲解。通过示例和语法解释,说明了vlookup函数的用法和参数的含义,帮助读者更好地理解和运用查询匹配函数进行数据处理。 ... [详细]
author-avatar
霸气的艳子_612
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有