神经网络学习笔记(二)

来源:互联网 发布:做网站找 汇搜网络 编辑:程序博客网 时间:2024/05/29 15:12

上一篇文章讨论了神经元的结构和几种常见的激励函数,本章将进一步讨论神经元的容量问题和多层神经网络的表示问题。

一、神经元容量问题

单个神经元可以解决二分类问题和线性可分问题,下面就这两个问题展开讨论。

1.二分类问题

如果输出激励函数采用Sigmoid或Hyperbolic Tangent函数,此时神经元的作用等价于计算条件概率p(y=1|x),当上述条件概率大于0.5时,将样本归为1类,否则归为0类。当然,如果是Hyperbolic Tangent函数的话,则分别归为1类和1类。此时,亦称作Logistic 回归。

2.线性可分问题

线性可分是指可以用一超平面将所有数据点分成两类的问题。常见的线性可分问题有与函数和或函数,以下是二者的图像:
这里写图片描述
这里写图片描述
从图中不难看出,我们可以轻松地找到一个分类超平面将两类数据点分开。根据上一篇文章所讨论的,w是分类超平面的法向量,b是控制超平面的位置,因此我们总能找到一组合适的参数wb,使得其确定的超平面可以将两类数据点分开,亦即单个神经元可以解决线性可分问题。

3.线性不可分问题

异或问题是典型的线性不可分问题,其图像如下:
这里写图片描述
我们找不到任何一条直线,可以将两类数据点分开,因此,不存在对应的分类超平面,自然也就找不到相应的参数wb,亦即单个神经元无法解决线性不可分问题。
为了解决这个线性不可分问题,可以将输入x映射到另外一个线性可分的空间里,再在这个线性可分的空间里寻找分类超平面。
这里写图片描述
如上图所示,我们把输入(x1,x2)映射到(AND(x1,x¯2),AND(x¯1,x2))空间,此时我们发现原空间中的两个圆圈类别被映射到一个位置,而两个三角形类别的数据点则是被互换了位置,这样就把一个线性不可分问题转化为一个线性可分问题,最终加以解决。
于是我们得出结论:单个神经元只能解决线性可分问题,对于线性不可分问题,则必须通过其他神经元的映射才可能解决。

二、多层神经网络的表示问题

上面谈到单个神经网络无法解决线性不可分问题,这就意味着必须解决多神经元连接时的表示和计算问题。

1.单隐层神经网络

单隐层神经网络是最简单的神经网络,其典型结构如下:
这里写图片描述

其中最底层的x1,...,xj,...xd为输入向量,中间为隐藏层,最上面为输出层。
隐藏层的预激励为:

a(x)j=b(1)j+iw(1)ijxi
若写成向量形式,即为:
a(x)=b(1)+w(1)Tx
于是,隐藏层的激励为:
h(x)=g(a(x))
此神经网络的最终输出为:
f(x)=o(b(2)+w(2)Th(x))
下面讨论在上述公式中,各变量的维度问题。假设输入向量的维度为d,隐藏层有m个神经元,则各变量的维度如下表:

变量名称 维度 用途 x d×1 输入向量 w(1) d×m 权重矩阵,控制输入向量向隐层映射 b(1) m×1 输入向量向隐层映射的偏置向量 a(x) m×1 隐层的预激励 w(2) m×1 控制隐层向输出层映射的权重向量 b(2) 1×1 隐层向输出层映射的偏置向量 f(x) 1×1 最终输出激励

2.Softmax激励函数

求解一多分类问题,我们需要:

  • 多输出(每种类型一个输出)
  • 计算条件概率P(y=c|x)

现有一个C分类问题,即c{1,2,...,C},为了解决这个多分类问题,我们定义softmax激励函数为

o(a)=softmax(a)=[ea1ceac,ea2ceac,...,eaCceac]T
softmax激励函数可以很好地满足以上两个要求。其主要特征有:

  • 非负
  • 所有输出分量之和为1
  • 对于未知样本,将其归为输出激励最大的一类
0 0