理解激活函数的作用能更好的解释神经网络的运行逻辑,在以前的章节中只简单概述了激活函数的作用,但是其实结论是比较草率的,这篇文章希望能谨慎的证明这些结论。
一般我们都直接在分类的全连接层,而不是隐藏层去加 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\{\begin{matrix} 1&,w^Tx+b>0 \\ -1&,w^Tx+b\leqslant 0 \end{matrix}\right. y=sign(wTx+b)={1−1,wTx+b>0,wTx+b⩽0通过其公式,我们会很容易的看到超平面 H = { x ∣ w T x + b = 0 } H=\{x \mid w^Tx+b = 0\} H={x∣wTx+b=0},但是它是否是 s i g n sign sign函数所构造出来的超平面呢?
我们先假设 H = { x ∣ w T x + b = 0 } H=\{x \mid w^Tx+b = 0\} H={x∣wTx+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\{\begin{matrix} 1&,w^Tx+b>0 \\ -1&,w^Tx+b\leqslant 0 \end{matrix}\right. y=f(wTx+b)={1−1,wTx+b>0,wTx+b⩽0所以我们可以看到,两者形式是等价的,意味着只要拥有这种形式的函数其所构造的超平面都是 H = { x ∣ w T x + b = 0 } H=\{x \mid w^Tx+b = 0\} H={x∣wTx+b=0},而且标签是什么是不重要的可以用其他数值任意替换。
所以, s i g n sign sign构造出了超平面 H = { x ∣ w T x + b = 0 } H=\{x \mid w^Tx+b = 0\} H={x∣wTx+b=0},或者可以这样说由 s i g n sign sign的定义构造出了超平面 H = { x ∣ w T x + b = 0 } H=\{x \mid w^Tx+b = 0\} H={x∣wTx+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\{\begin{matrix} 1&,w^Tx+b>c \\ -1&,w^Tx+b\leqslant c \end{matrix}\right. y=sign(wTx+b)={1−1,wTx+b>c,wTx+b⩽c这时超平面发生了位移,即超平面变为了 H = { x ∣ w T x + b − c = 0 } H=\{x \mid w^Tx+b -c = 0\} H={x∣wTx+b−c=0},所以超平面是依定义构造出来的。
带线性层与 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\{\begin{matrix} w^Tx+b&,w^Tx+b>0 \\ 0&,w^Tx+b\leqslant 0 \end{matrix}\right. y=ReLU(wTx+b)={wTx+b0,wTx+b>0,wTx+b⩽0这个和上面的 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={x∣wTx+b=0}
我们可以假设,其构造的超平面为 H = { x ∣ w T x + b − c = 0 } H=\{x \mid w^Tx+b - c= 0\} H={x∣wTx+b−c=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+b−c>0,可以推导出 w T x + b > c w^Tx+b>c wTx+b>c,所以 c ⩾ 0 c\geqslant0 c⩾0;
同理 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+b−c<0,可以推导出 w T x + b < c w^Tx+b
当 w T x + b = 0 w^Tx+b= 0 wTx+b=0时,其在超平面的一侧或在超平面上,所以 w T x + b − c ⩽ 0 w^Tx+b - c\leqslant 0 wTx+b−c⩽0 或 w T x + b − c ⩾ 0 w^Tx+b - c\geqslant 0 wTx+b−c⩾0 ,可以推导出 w T x + b ⩽ c w^Tx+b\leqslant c wTx+b⩽c 或 w T x + b ⩾ c w^Tx+b\geqslant c wTx+b⩾c,所以推出 c ⩽ 0 c \leqslant 0 c⩽0或 c ⩾ 0 c \geqslant 0 c⩾0;
综上,当且仅当 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={x∣wTx+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+b−c<0的一侧,这样会推出 w T x + b < c w^Tx+b < c wTx+b<c,此时 c > 0 c>0 c>0且 c ≠ 0 c\ne 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+b−c>0的一侧,推出 c < 0 c<0 c<0且 c ≠ 0 c\ne 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={x∣wTx+b=0}的距离公式为:
d = ∣ w T x + b ∣ ∥ w ∥ d = \frac{\mid w^Tx+b\mid }{\parallel w\parallel } d=∥w∥∣wTx+b∣可以推出
∣ w T x + b ∣ = d ∥ w ∥ \mid w^Tx+b\mid=d\parallel w\parallel ∣wTx+b∣=d∥w∥而经过 R e L U ReLU ReLU输出的数据必然大于0,所以
w T x + b = d ∥ w ∥ w^Tx+b=d\parallel w\parallel wTx+b=d∥w∥所以我们可以说,经过线性变换与 R e L U ReLU ReLU后的输出,只与点到超平面的距离及范数相关;对同一节点,其差异只与点到超平面的距离相关。
由多个带线性层与 R e L U ReLU ReLU激活函数的节点,不再是单个节点这种简单的得到一个超平面的逻辑了,而是组合逻辑,即使构造的超平面编排(Hyperplane Arrangement)或超平面组合,将输入空间划分为多个线性区域(Linear Regions)及区域切片与映射了,可以查看本系列的其他文章,或者查看参考文献中的文章。
带线性层与 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\{\begin{matrix} \sigma(w^Tx+b) &,w^Tx+b>0 \\ \sigma(w^Tx+b) &,w^Tx+b\leqslant 0 \end{matrix}\right. y=σ(wTx+b)={σ(wTx+b)σ(wTx+b),wTx+b>0,wTx+b⩽0但是实际上是没有意义的,因为其为同胚映射,或者简单的说在其定义域与值域都是连续的,所以也可以这样构造
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\{\begin{matrix} \sigma(w^Tx+b) &,w^Tx+b-c>0 \\ \sigma(w^Tx+b) &,w^Tx+b-c\leqslant 0 \end{matrix}\right. y=σ(wTx+b)={σ(wTx+b)σ(wTx+b),wTx+b−c>0,wTx+b−c⩽0这个 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={x∣wTx+b=0}或者是非常接近 H = { x ∣ w T x + b = 0 } H=\{x \mid w^Tx+b = 0\} H={x∣wTx+b=0}的。
但是在隐藏层中目前没有检查过是否也是如此, t a n h tanh tanh激活函数和sigmoid差不多,也基本是这种情况。
输出数据的范围限制与非线性变换这种sigmoid自带的作用就不必说了,都是比较平凡的解释。
先写后改,后续看是否有其他结论,如果你证明了可以分享到评论区。