文档章节

人工神经网络之几何原理Ⅰ:单(隐藏)层神经网络

chishaxie
 chishaxie
发布于 2017/02/10 16:18
字数 1693
阅读 3757
收藏 94

人工神经网络之几何原理

(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投影

© 著作权归作者所有

chishaxie

chishaxie

粉丝 24
博文 5
码字总数 14522
作品 1
成都
程序员
私信 提问
加载中

评论(16)

爻爻爻
爻爻爻
这么深奥的东西,我得从C语言开始
黑狗
黑狗
作者录制一个小视频吧
把每一个ReLU的叠加过程 通过动态的方式展现出来 懂的人会多很多
还有 你没有结合最开始的隐藏层
每个隐藏层计算以后,会有一个ReLU的图形 (也就是一个平面,根据某个轴,折叠,也就是根据垂直方向抬起来),产生了一个超折线,3个ReLU的图形,产生3条超折叠线
在Z轴进行叠加了以后,形成了一个具有一个顶点,6个两两相交的面。bias是一个Z=X的一个“切面” 这个切面把原来的图形切出来,在bias上表现出来就是一个六边形

录一个动图吧。。。。像TensorFlowPlayground那样
一剑笑傲
一剑笑傲
哎!完全看不懂
bobJiao
bobJiao
知其用,不知其何用?
chishaxie
chishaxie 博主

引用来自“afpro”的评论

真的想学神经网络的同学 不要总想着几何解释 从纯粹的数学去想问题 会轻松很多 尤其是问题越来越复杂的时候
几何方法难道不是数学方法之一么?
afpro
afpro
真的想学神经网络的同学 不要总想着几何解释 从纯粹的数学去想问题 会轻松很多 尤其是问题越来越复杂的时候
xiaosanss
xiaosanss
ongoing
一棹春风一叶舟
一棹春风一叶舟
瞬间感觉自己的智商回到了小学
chishaxie
chishaxie 博主

引用来自“狒小七”的评论

没有看懂这个讲啥
从几何的角度去解释为什么这么简单的一个神经网络能够完成红绿分类的工作。
狒小七
狒小七
没有看懂这个讲啥
人工神经网络的原理与训练

之前写过几篇大白话介绍系列,比如金融危机起因这种。但还是有朋友跟我说,这不是大白话。其实,我已经尽力把问题解释到入门者的程度了。有一些困难的东西,一是因为有些问题是无法避免,比如...

Yupeng
2016/09/22
0
0
稀疏自动编码器 (Sparse Autoencoder)

前言 斯坦福深度学习在线课程是 Andrew Ng 编制的,该教程以深度学习中的重要概念为线索,基本勾勒出了深度学习的框架。为了简明扼要,该教程几乎省略了数学推导和证明过程。我写这个系列不追...

Lee的白板报
2015/12/08
8.9K
0
TensorFlow从1到2 - 1 - 深度神经网络

TensorFlow从0到N专题入口 上一主题《TensorFlow从0到1》介绍人工神经网络的基本概念与其TensorFlow实现,主要基于浅层网络架构,即只包含一个隐藏层的全连接(FC,Full Connected)网络。 ...

黑猿大叔
2017/09/28
0
0
反向传播(Backpropagation)算法的数学原理

准备 本文不是一篇引导读者入门的科普文。读者至少需要对人工神经网络有概念性的理解,并且熟悉偏导数。 这是一个简单的人工神经网络,分为输入层,隐藏层和输出层。输入层以原始数据 x 作为...

Lee的白板报
2015/11/11
16.2K
5
人工神经网络中究竟使用多少隐藏层和神经元

人工神经网络(ANNs)的初学者很可能都会面临一些问题。其中一些问题包括使用隐藏层的数量是多少?每个隐藏层中包含了多少个神经元?使用隐藏的层和神经元的目的是什么?增加隐藏的层数和神经...

【方向】
2018/08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么Netty的FastThreadLocal速度快

前言 最近在看netty源码的时候发现了一个叫FastThreadLocal的类,jdk本身自带了ThreadLocal类,所以可以大致想到此类比jdk自带的类速度更快,主要快在什么地方,以及为什么速度更快,下面做一...

ksfzhaohui
17分钟前
4
0
资治通鉴解析:无论什么条件,要挟权力做出承诺,都会被清算

电影《满城尽带黄金甲》里有句经典的名言“朕赐给你的,才是你的。朕不给你的,你不能抢。”之所以这段话有名,核心的就是,它揭示了这样一个权力心思:无论什么情况,权力的行使,都不愿意受...

太空堡垒185
22分钟前
3
0
CSS技巧之向下箭头

本文转载于:专业的前端网站➫CSS技巧之向下箭头 思路: 使用◇符号(可在输入法的软键盘找到该符号),使用定位选择位置,并隐藏溢出的上半部分 细点: 1.使用i标签的楷体属性把◇变大 2.给i...

前端老手
38分钟前
2
0
SpringCloud alibaba微服务之NACOS多环境配置整合

前言 伴随着spring cloud alibaba 登上主板以后,我就去了解下感觉还是蛮不错的。说实话第一次看见Nacos好长一段时间连读法都不知道...(/nɑ:kəʊs/)。按照官方的话说Nacos是:一个更易于...

攻城狮-飞牛
41分钟前
4
0
tcpdump

tcpdump -A -s0 port 21011 -i any (1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型 (2)-i eth1 : 只抓经过接口eth1的包 (3)-t : 不显...

mskk
46分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部