人工神经网络作为智能算法的一种,一直以来在实践方面取得了一定的成就,比如数字识别、信号处理、数据预测、内容分类等等,但是在理论方面还是缺乏相关的严格数学分析与证明。
至于神经网络的相关算法分析将在以后的文章中介绍,这里先介绍下神经网络的分类原理,不足之处请大家指教,相互进步。
神经网络为什么能分类?又是如何分类的?以下是本人在相关研究中阅读到一些理解
图 1.1 3层前馈人工神经网络拓扑图
其中x1,x2,...xn为网络输入,y1,y2,...ym为网络输出。网络的输入输出变换关系如下:
(1)
(2)
其中W为网络权值,为第q层网络的第i个节点的阀值,yj为第q层网络的第j个节点的输出,
为节点处的激励函数(通常情况下为S型的连续可导的函数:logsig,tan等)。那么高维空间的超平面可表示为:
(3)
首先,先介绍下二维空间下超平面的表示,如下图所示:
图 1.2 二维空间超平面划分圆点类和三角形类
图 1.3 判定原理
通过判定函数,我们就可以把三角形类与圆形类成功分开。那么高维的分类情况也是类似。
在这里,想问下是否考虑过为什么需要用到高维空间下的超平面?
首先我们先看一个例子:
属于一维空间的点:x1,x2,x3,其中x1=0, x2=1, x3=2, 如下图所示:
图 1.4 一维空间下,x1, x2, x3 的分布情况
考虑一个问题,如何用一条直线把圆点与方形分割出来(线性分类)? 在现在这种情况下是无法分割的。
为此,做些变动就可以用直线分割此2类物体。
1. 把一维空间的点映射到二维空间的点,这里我们采用如下函数把点映射到二维空间
那么一维的点x1,x2,x3可映射到点(x1,y1),(x2,y2),(x3,y3)
x1: 0 -----> (x1,y1):(0,0)
x2:1 -----> (x2,y2):(1,2^0.5)---(2^0.5 === 根号2)
x3:2 -----> (x3,y3):(4,2×2^0.5)---(2×2^0.5 === 2根号2)
2. 在二维空间找条直线分割新的映射点,如下图所示:
图 1.5 映射到二维空间,然后线性分割
至此,我们把一维非线性分类问题转移到二维线性分类问题。最终通过在二维找到分割面把二类分割。
总结:高维超平面是把低维非线性分类问题转换到高维空间,通过在高维空间找到超平面进行线性分类。
最后一点介绍神经网络权值范围对超平面的影响[1],此处是针对整型权值神经网络,即权值都为整数型。
图1.6 权值范围分别为[-3,3], [-4,4]和[-5,5]的超平面在区域[0,0.5]的分布情况
从图可以看到权值范围越大,超平面越密集,那么同样的两个不同类型的类别就越容易被分割在不同的区域内(即越容易进行分类)。
参考文献
[1]. Sorin Drafhici. On the capabilities of neural networks using limited precision weights [J]. Neural Networks, Contributed article. 2002, 15: 395-414.
注:其他相关参考文献未写在参考文献并不代表未参考,只是找不到相关论文,凭自己印象写出来。