3). 特征提取
特征提取通常应用在这种情况下:原始输入向量维数非常大,且输入向量组成有冗余。
特征提取的思想是减少输入空间的维度,通过从每个输入向量计算出一小组特征,用特征作
为网络的输入。例如,神经网络可以用于分析心电图(EKG),以定位心脏问题。数分钟之
内以高采样频率测得的心电图可能牵涉 12 至 15 个信号,将其直接应用到神经网络,数据则
显得过多。取而代之的是,从心电图信号提取特定的某些特征,例如特定波形间的平均时间
间隔,特定波形的平均幅值。
4). 主成分分析
也有一些通用的特征提取方法,主成分分析(PCA)就是其中的一种。这种方法将原始
输入向量变换为线性不相关的向量。而且,变换后的向量按方差从大到小排列。我们通常仅
仅保留变换后的前几个主要成分,因为他们在原始向量中方差最大。如果原始向量高度相关,
这就会极大减小输入向量的维数。PCA 的缺点是只考虑了输入向量间的线性相关性。如果
用线性变换减小维度,那么可能丢失一些非线性信息。因为使用神经网络的主要目的,就是
要获取它强大的非线性映射能力,所以对于运用主成分分析来减小输入向量维数应该非常谨
慎。有一种非线性版的 PCA,叫做 kernel PCA.
5). 编码目标
当输入和目标无论何时都只接受离散值时,编码也是一个重要的必要的预处理步骤。例
如,在模式识别问题中,每个目标都代表有限类别中的一个,这种情况就需要一个对输入和
目标编码的过程。如果一个模式识别问题具有四个类别,那么对目标编码至少有三种常见的
方法。一是,可以用标量目标接收四个可能的值(如:1、2、3、4)。二是,可以用二维目
标按二进制码表示四个类别(如:[0,0]、[0,1]、[1,0]、[1,1])。三是,可以用四维目标,一
次激活一个元素(如:[1,0,0,0]、[0,1,0,0]、[0,0,1,0]、[0,0,0,1])。在实验中第三种方法比较
容易产生最好的结果。离散输入编码也可以采用同样的方式。
当编码目标值的时候,还需要考虑网络输出层所用的传输函数。对于模式识别问题,通
常使用 sigmoid 函数:log-sigmoid 或者 tangent-sigmoid 函数。如果在最后一层选用 tangent-
sigmoid 函数,那么可以考虑用函数的渐近线-1 和 1 作为目标值。但是这样会为训练算法带
来麻烦,算法会试图使函数饱和来迎合目标值。目标值的最佳点是在二阶导数最大的地方。
对于 tangent-sigmoid 函数,输入-1 和 1 对应输出为-0.76 和 0.76.
应用在多层模式识别网络中的另一个传输函数是 softmax 函数。该函数形如公式 3:
softmax 函数的输出可以解释为与每个类相关的概率。每个输出都落在[0,1]的区间上,
且输出的总和等于 1.
6). 丢失数据
还有一个要考虑的实际问题是丢失数据的处理。这是经常出现的情况,特别是处理有缺