看完这篇保证你明白人工神经网络之几何原理Ⅰ:单(隐藏)层神经网络

个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 

人工神经网络之几何原理

(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神经元

ReLU神经元

  • W, X 均为向量
  • X为该神经元的输入,W为该神经元的权重Weight参数,b为该神经元的偏置Bias参数

这里让W,X均为2维向量, 且令 W = [1.5, 3.5], b = -2.5, 其图像如下:

ReLU神经元函数图像

  • (注意上图的Z轴的比例尺和X0、X1轴不一致)

单个ReLU神经元, 其输入为n维空间下的X, 在n+1的高维空间(令新增加的维度为Z)中生成了一个超平面, 然后沿着Z=0的超平面折叠, 名为超折面

超折面的角度

由 W参数决定

超折面的角度

(高维空间)

超折面的角度-高维空间

  • 始终为钝角

超折面的超折线在Z=0超平面上的位置

由 W参数和b参数 决定

超折面的超折线在Z=0超平面上的位置

(高维空间)

超折面的超折线在Z=0超平面上的位置-高维空间

常数 * 超折面

C * Z

在Z轴方向上拉伸、收缩、翻转, 会改变折面的角度, 不会改变折线的位置

  • 1 < C ➡️ 拉伸, 折面角度变小(变陡峭)
  • 0 < C < 1 ➡️ 收缩, 折面角度变大(变平缓)
  • C < 0 ➡️ 翻转, 折面向下翻转

C=2

常数 * 超折面 C=2

C=0.6

常数 * 超折面 C=0.6

C=-1

常数 * 超折面 C=-1

C=-2

常数 * 超折面 C=-2

C=-0.6

常数 * 超折面 C=-0.6

超折面 + 超折面

Z0 + Z1

将第一个折面按照第二个折面的折线再次折叠, 并使得原来两个折面的角度变小(变陡峭)

不会改变超折面的超折线在Z=0超平面上的位置, 但折线的部分随着折叠, 脱离了原来的Z=0的超平面

超折面Z0

  •  

超折面Z1

=

超折面Z0+Z1

第一层ReLU神经元

多个超折面线性相加 (后一层视角)

多个超折面线性相加

  • Hn为第一层的第n个ReLU神经元运算后的结果

n个神经元 ➡️ 在Z=0的超平面上生成n条超折线, 在高维空间中折叠

  • 超折线的位置仅由第一层的单个神经元决定, 和后一层的参数无关
  • 后一层的W参数决定了每个超折面的相对折叠角度
  • 后一层的b参数决定了整个复合超折面在Z轴上的位置(上下移动)

直线分割平面

n条直线最多将平面分割为 直线分割平面 个部分

n个超平面分割d维空间

n个超平面最多将d维空间分割为f(d, n)个部分

n个超平面分割d维空间

二元分类下的Softmax

softmax(X) 将向量X的值转换为各个索引位置独立事件的概率(0~1)

softmax(X)

对于Softmax的二元分类而言, 实际上是将前一层的网络结果进行两组线性相加, 结果值更大的一组则作为预测结果

Softmax的二元分类

这里做一下变换, 用 R1 - R0 和 0 比较大小, 替代掉 两者直接比较大小, 最后Softmax层则化简为一组线性相加后和0判断大小

R1 - R0

  • Z < 0, 预测为0分类
  • Z > 0, 预测为1分类

多元分类下的Softmax

对于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超平面上的超折线

第一层ReLU在Z=0超平面上的超折线

高维空间下的Z

高维空间下的Z

高维空间下的Z=0投影

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读/书籍书单大全:

(点击右侧 即可打开个人博客内有干货):技术干货小栈
=====>>①【Java大牛带你入门到进阶之路】<<====
=====>>②【算法数据结构+acm大牛带你入门到进阶之路】<<===
=====>>③【数据库大牛带你入门到进阶之路】<<=====
=====>>④【Web前端大牛带你入门到进阶之路】<<====
=====>>⑤【机器学习和python大牛带你入门到进阶之路】<<====
=====>>⑥【架构师大牛带你入门到进阶之路】<<=====
=====>>⑦【C++大牛带你入门到进阶之路】<<====
=====>>⑧【ios大牛带你入门到进阶之路】<<====
=====>>⑨【Web安全大牛带你入门到进阶之路】<<=====
=====>>⑩【Linux和操作系统大牛带你入门到进阶之路】<<=====

天下没有不劳而获的果实,望各位年轻的朋友,想学技术的朋友,在决心扎入技术道路的路上披荆斩棘,把书弄懂了,再去敲代码,把原理弄懂了,再去实践,将会带给你的人生,你的工作,你的未来一个美梦。

发布了47 篇原创文章 · 获赞 0 · 访问量 279

猜你喜欢

转载自blog.csdn.net/weixin_41663412/article/details/104860475