人工神经网络之几何原理
(Geometric principle of Artificial Neural Networks)
本文探讨的人工神经网络仅仅为最简单的ReLU神经元所构成的普通神经网络(非CNN和RNN),且只探讨了单(隐藏)层的分类这一个经典的场景。
基本约定
为了方便讨论和图像化, 全文使用的激活函数均为ReLU, 原始输入的X为二维向量。
实例1
下图为一个最简单的人工神经网络,其包含两个节点的输入层,两个节点的输出层,以及三个节点的隐藏层。该网络可以用于解决输入为二维向量的二元分类问题,其输出为两种分类的概率。
- 输入层 - 2维向量X
- 隐藏层(第一层) - ReLU层 (3个神经元)
- 输出层(第二层) - Softmax层 (2个神经元, 二元分类)
下图为假定的样本分布,每个样本有两个特征(其横坐标值X0, 其纵坐标值X1)以及从属于红绿两种分类之一(其颜色)。样本的真实分界线为一个圆。
下图为在上述网络的情况下,学习后(省略了学习的过程)的最优结果,该神经网络认为在灰色区域内的样本为红色,在灰色区域外的样本为绿色,其分类识别的准确率为95%。(可以点击TensorPlayground体验学习的过程)
- 3个ReLU神经元下在这个分布下最优的分界图形就是六边形
为何能够在如此简单的神经网络下,达到这种效果呢(六边形的分界图形)?下面本文将从几何角度去阐述其内部原理,让人工神经网络不再黑盒。
单个ReLU神经元
- W, X 均为向量
- X为该神经元的输入,W为该神经元的权重Weight参数,b为该神经元的偏置Bias参数
这里让W,X均为2维向量, 且令 W = [1.5, 3.5], b = -2.5, 其图像如下:
- (注意上图的Z轴的比例尺和X0、X1轴不一致)
单个ReLU神经元, 其输入为n维空间下的X, 在n+1的高维空间(令新增加的维度为Z)中生成了一个超平面, 然后沿着Z=0的超平面折叠, 名为超折面
超折面的角度
由 W参数决定
(高维空间)
- 始终为钝角
超折面的超折线在Z=0超平面上的位置
由 W参数和b参数 决定
(高维空间)
常数 * 超折面
C * Z
在Z轴方向上拉伸、收缩、翻转, 会改变折面的角度, 不会改变折线的位置
- 1 < C ➡️ 拉伸, 折面角度变小(变陡峭)
- 0 < C < 1 ➡️ 收缩, 折面角度变大(变平缓)
- C < 0 ➡️ 翻转, 折面向下翻转
C=2
C=0.6
C=-1
C=-2
C=-0.6
超折面 + 超折面
Z0 + Z1
将第一个折面按照第二个折面的折线再次折叠, 并使得原来两个折面的角度变小(变陡峭)
不会改变超折面的超折线在Z=0超平面上的位置, 但折线的部分随着折叠, 脱离了原来的Z=0的超平面
=
第一层ReLU神经元
多个超折面线性相加 (后一层视角)
- Hn为第一层的第n个ReLU神经元运算后的结果
n个神经元 ➡️ 在Z=0的超平面上生成n条超折线, 在高维空间中折叠
- 超折线的位置仅由第一层的单个神经元决定, 和后一层的参数无关
- 后一层的W参数决定了每个超折面的相对折叠角度
- 后一层的b参数决定了整个复合超折面在Z轴上的位置(上下移动)
直线分割平面
n条直线最多将平面分割为
个部分
n个超平面分割d维空间
n个超平面最多将d维空间分割为f(d, n)个部分
二元分类下的Softmax
softmax(X) 将向量X的值转换为各个索引位置独立事件的概率(0~1)
对于Softmax的二元分类而言, 实际上是将前一层的网络结果进行两组线性相加, 结果值更大的一组则作为预测结果
这里做一下变换, 用 R1 - R0 和 0 比较大小, 替代掉 两者直接比较大小, 最后Softmax层则化简为一组线性相加后和0判断大小
- Z < 0, 预测为0分类
- Z > 0, 预测为1分类
多元分类下的Softmax
对于Softmax的多元分类而言, 实际上是将前一层的网络结果进行多组线性相加, 结果值最大的一组则作为预测结果
这里做一下变换, 用 Ra - Rb 和 0 比较大小, 替代掉 两者直接比较大小, 最后Softmax层则等价为用一组线性相加后和0判断大小判断更符合a、b分类中的哪一类, 多次判断则可以找到最大可能性分类
- 依旧可以采用二元分类下, 某个线性组合在Z=0的超平面的投影的几何视角
1 ReLU层 + 1 Softmax层 二元分类网络
- 输入为n维空间下的X
- 在n+1维的空间中的Z=0的超平面上生成m条超折线, 进行m次折叠 (m为第一层ReLU神经元的数目)
- 折叠后的图形进行线性相加组合(改变了各个折叠的角度和整体在Z轴上的位置)后和Z=0的超平面比较大小
- 在n+1维空间中, 其图形在Z=0的超平面的投影就是原始n维空间中的二元分类分界线
可见, 对于任意一个符合某种规律的有限分布, 只要提供足够多个数的ReLU神经元, 就能依靠高维空间的折叠, 而生成匹配这种分布的高维空间图形
实例1的解析
高维空间视角
- 高维空间下3条超折线产生的图形
- 3条直线分割平面最多产生7个部分, 这里产生了6个部分(中间最小的部分忽略不计)
- 在Z=0的超平面下的投影的分界图形正好是六边形
第一层ReLU在Z=0超平面上的超折线
高维空间下的Z