您现在的位置是:首页 >技术杂谈 >理解神经网络的数学原理(三)激活函数的作用网站首页技术杂谈

理解神经网络的数学原理(三)激活函数的作用

_pinnacle_ 2024-06-17 10:19:24
简介理解神经网络的数学原理(三)激活函数的作用

概述

理解激活函数的作用能更好的解释神经网络的运行逻辑,在以前的章节中只简单概述了激活函数的作用,但是其实结论是比较草率的,这篇文章希望能谨慎的证明这些结论。

sign 激活函数

一般我们都直接在分类的全连接层,而不是隐藏层去加 s i g n sign sign函数作为分类的的激活,带线性层与 s i g n sign sign激活函数的节点为
y = s i g n ( w T x + b ) = { 1 , w T x + b > 0 − 1 , w T x + b ⩽ 0 y = sign(w^Tx+b) =left{egin{matrix} 1&,w^Tx+b>0 \ -1&,w^Tx+bleqslant 0 end{matrix} ight. y=sign(wTx+b)={11,wTx+b>0,wTx+b0通过其公式,我们会很容易的看到超平面 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0},但是它是否是 s i g n sign sign函数所构造出来的超平面呢?

我们先假设 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0}是其构造的超平面,根据超平面的特性,当 w T x + b > 0 w^Tx+b>0 wTx+b>0时, x x x 一定在超平面所划分的正半空间 x + x^+ x+中,同理 w T x + b < 0 w^Tx+b< 0 wTx+b<0 x x x 一定在超平面所划分的负半空间 x − x^- x中。我们将 x + x^+ x+设置为标签1,而将 x − x^- x及超平面上的点共同设置为标签-1。这个时候我们可以使用任意函数 f ( x ) f(x) f(x)来表示该划分
y = f ( w T x + b ) = { 1 , w T x + b > 0 − 1 , w T x + b ⩽ 0 y = f(w^Tx+b) =left{egin{matrix} 1&,w^Tx+b>0 \ -1&,w^Tx+bleqslant 0 end{matrix} ight. y=f(wTx+b)={11,wTx+b>0,wTx+b0所以我们可以看到,两者形式是等价的,意味着只要拥有这种形式的函数其所构造的超平面都是 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0},而且标签是什么是不重要的可以用其他数值任意替换。

所以, s i g n sign sign构造出了超平面 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0},或者可以这样说由 s i g n sign sign的定义构造出了超平面 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0},我们可以设置
y = s i g n ( w T x + b ) = { 1 , w T x + b > c − 1 , w T x + b ⩽ c y = sign(w^Tx+b) =left{egin{matrix} 1&,w^Tx+b>c \ -1&,w^Tx+bleqslant c end{matrix} ight. y=sign(wTx+b)={11,wTx+b>c,wTx+bc这时超平面发生了位移,即超平面变为了 H = { x ∣ w T x + b − c = 0 } H={x mid w^Tx+b -c = 0} H={xwTx+bc=0},所以超平面是依定义构造出来的。

ReLU激活函数

带线性层与 R e L U ReLU ReLU激活函数的节点可以用数学公式表示为如下形式
y = R e L U ( w T x + b ) = { w T x + b , w T x + b > 0 0 , w T x + b ⩽ 0 y = ReLU(w^Tx+b) =left{egin{matrix} w^Tx+b&,w^Tx+b>0 \ 0&,w^Tx+bleqslant 0 end{matrix} ight. y=ReLU(wTx+b)={wTx+b0,wTx+b>0,wTx+b0这个和上面的 s i g n sign sign激活函数有一些区别,但是其实也是和上面等价的形式。既然我们有疑问,那么可以通过其他方式来证明 R e L U ReLU ReLU 所构造的超平面也是 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0}

我们可以假设,其构造的超平面为 H = { x ∣ w T x + b − c = 0 } H={x mid w^Tx+b - c= 0} H={xwTx+bc=0},其中 c c c为任意的实数,这里 c c c前面的负号只是为了形式的整洁。

显然,当 R e L U ReLU ReLU 节点有大于0的输出时 y = w T x + b y=w^Tx+b y=wTx+b 此时 w T x + b > 0 w^Tx+b>0 wTx+b>0,而其在超平面的一侧,所以 w T x + b − c > 0 w^Tx+b - c> 0 wTx+bc>0,可以推导出 w T x + b > c w^Tx+b>c wTx+b>c,所以 c ⩾ 0 cgeqslant0 c0

同理 R e L U ReLU ReLU 节点输出为0时 y = 0 y=0 y=0此时 w T x + b < 0 w^Tx+b< 0 wTx+b<0 w T x + b = 0 w^Tx+b = 0 wTx+b=0

w T x + b < 0 w^Tx+b< 0 wTx+b<0时,其在超平面的另一侧,所以 w T x + b − c < 0 w^Tx+b - c< 0 wTx+bc<0,可以推导出 w T x + b < c w^Tx+b<c wTx+b<c,所以 c ⩽ 0 cleqslant 0 c0

w T x + b = 0 w^Tx+b= 0 wTx+b=0时,其在超平面的一侧或在超平面上,所以 w T x + b − c ⩽ 0 w^Tx+b - cleqslant 0 wTx+bc0 w T x + b − c ⩾ 0 w^Tx+b - cgeqslant 0 wTx+bc0 ,可以推导出 w T x + b ⩽ c w^Tx+bleqslant c wTx+bc w T x + b ⩾ c w^Tx+bgeqslant c wTx+bc,所以推出 c ⩽ 0 c leqslant 0 c0 c ⩾ 0 c geqslant 0 c0

综上,当且仅当 c = 0 c= 0 c=0时,以上条件全部满足;所以 R e L U ReLU ReLU 构造的超平面是 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0}。而 R e L U ReLU ReLU的这一特性在神经网络的分析中有重要作用,即其构造的超平面是确定的。 这个特性也说明了 R e L U ReLU ReLU输出为非0时,其数据全部来自超平面的一侧,且输出数据经过了 w , b w,b w,b的线性变换。

证明的一些细节的解释

为什么 w T x + b < 0 w^Tx+b< 0 wTx+b<0 w T x + b > 0 w^Tx+b> 0 wTx+b>0时,一定在超平面的一侧?因为根据超平面的的定义,在超平面的一侧必然要求其值只能为正或者为负,不能两者都存在,所以这两者只能各自在超平面的一侧。

细心的读者也发现了,可以将 w T x + b > 0 w^Tx+b> 0 wTx+b>0的数据放到 w T x + b − c < 0 w^Tx+b - c< 0 wTx+bc<0的一侧,这样会推出 w T x + b < c w^Tx+b < c wTx+b<c,此时 c > 0 c>0 c>0 c ≠ 0 c e 0 c=0;同理将 w T x + b < 0 w^Tx+b< 0 wTx+b<0的数据放到 w T x + b − c > 0 w^Tx+b - c> 0 wTx+bc>0的一侧,推出 c < 0 c<0 c<0 c ≠ 0 c e 0 c=0;所以 c c c 值是发散的,即不存在这样的 c c c 值同时满足 c > 0 c>0 c>0 c < 0 c<0 c<0;所以该逻辑不成立。

线性变换的另一个视角

我们知道点到分离超平面 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0}的距离公式为:
d = ∣ w T x + b ∣ ∥ w ∥ d = frac{mid w^Tx+bmid }{parallel wparallel } d=wwTx+b可以推出
∣ w T x + b ∣ = d ∥ w ∥ mid w^Tx+bmid=dparallel wparallel wTx+b∣=dw而经过 R e L U ReLU ReLU输出的数据必然大于0,所以
w T x + b = d ∥ w ∥ w^Tx+b=dparallel wparallel wTx+b=dw所以我们可以说,经过线性变换与 R e L U ReLU ReLU后的输出,只与点到超平面的距离及范数相关;对同一节点,其差异只与点到超平面的距离相关。

多节点的作用

由多个带线性层与 R e L U ReLU ReLU激活函数的节点,不再是单个节点这种简单的得到一个超平面的逻辑了,而是组合逻辑,即使构造的超平面编排(Hyperplane Arrangement)或超平面组合,将输入空间划分为多个线性区域(Linear Regions)及区域切片与映射了,可以查看本系列的其他文章,或者查看参考文献中的文章。

sigmoid激活函数

带线性层与 s i g m o i d sigmoid sigmoid激活函数的节点可以用数学公式表示为如下形式
y = σ ( w T x + b ) = 1 1 + e x p ( − ( w T x + b ) ) y = sigma(w^Tx+b) =frac{1}{1+exp(-(w^Tx+b))} y=σ(wTx+b)=1+exp((wTx+b))1事实上在神经网络的隐藏节点,我们无法像 R e L U ReLU ReLU那样,确切的说其构造的超平面是什么。虽然我们可以这样构造,如
y = σ ( w T x + b ) = { σ ( w T x + b ) , w T x + b > 0 σ ( w T x + b ) , w T x + b ⩽ 0 y = sigma(w^Tx+b) = left{egin{matrix} sigma(w^Tx+b) &,w^Tx+b>0 \ sigma(w^Tx+b) &,w^Tx+bleqslant 0 end{matrix} ight. y=σ(wTx+b)={σ(wTx+b)σ(wTx+b),wTx+b>0,wTx+b0但是实际上是没有意义的,因为其为同胚映射,或者简单的说在其定义域与值域都是连续的,所以也可以这样构造
y = σ ( w T x + b ) = { σ ( w T x + b ) , w T x + b − c > 0 σ ( w T x + b ) , w T x + b − c ⩽ 0 y = sigma(w^Tx+b) = left{egin{matrix} sigma(w^Tx+b) &,w^Tx+b-c>0 \ sigma(w^Tx+b) &,w^Tx+b-cleqslant 0 end{matrix} ight. y=σ(wTx+b)={σ(wTx+b)σ(wTx+b),wTx+bc>0,wTx+bc0这个 c c c值是多少是无法直接确定的,虽然我们知道 w T x + b = 0 w^Tx+b=0 wTx+b=0是sigmoid值域的一个对称超平面。

但是说一个现象,用BCELoss训练的带sigmoid激活函数的分类网络,其标签定义为{0,1},在分类层这里其构造的超平面是 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0}或者是非常接近 H = { x ∣ w T x + b = 0 } H={x mid w^Tx+b = 0} H={xwTx+b=0}的。

但是在隐藏层中目前没有检查过是否也是如此, t a n h tanh tanh激活函数和sigmoid差不多,也基本是这种情况。

输出数据的范围限制与非线性变换这种sigmoid自带的作用就不必说了,都是比较平凡的解释。

先写后改,后续看是否有其他结论,如果你证明了可以分享到评论区。

参考

  1. 开源代码 DNNexp
  2. On the Number of Linear Regions of Deep Neural Networks
  3. On the number of response regions of deep feed forward networks with piece- wise linear activations
  4. On the Expressive Power of Deep Neural Networks
  5. On the Number of Linear Regions of Convolutional Neural Networks
  6. Bounding and Counting Linear Regions of Deep Neural Networks
  7. Facing up to arrangements: face-count formulas for partitions of space by hyperplanes
  8. An Introduction to Hyperplane Arrangements
  9. Combinatorial Theory: Hyperplane Arrangements
  10. Partern Recognition and Machine Learning
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。