卷积神经网络基础题——为什么要添加非线性的激活函数,线性的会如何?

卷积神经网络基础

为什么要添加非线性的激活函数,线性的会如何?

:如果使用线性激活函数,那么无论神经网络中有多少层,都只是在做线性运算,最后一层得到的结果是输入层的线性组合,而输入层的线性组合,用一层隐藏层就可以表示,也就是说,多层的隐藏层运算后的结果等同于一层的结果,那么这么多隐藏层就没有意义了,还不如去掉。因此,隐藏层的激活函数必须是要非线性的。

证明
假设所有隐藏层的激活函数都是线性的,为方便计算,直接令 g ( z ) = z g(z) = z g(z)=z,即 a = z a = z a=z.
z [ 1 ] = W [ 1 ] x + b [ 1 ] a [ 1 ] = z [ 1 ] z [ 2 ] = W [ 2 ] a [ 1 ] + b 2 ] a [ 2 ] = z [ 2 ] z^{[1]} = W^{[1]}x+b^{[1]} \\ a^{[1]} = z^{[1]} \\ z^{[2]} = W^{[2]}a^{[1]}+b^{2]} \\ a^{[2]} = z^{[2]} z[1]=W[1]x+b[1]a[1]=z[1]z[2]=W[2]a[1]+b2]a[2]=z[2]
化简得:
a [ 2 ] = z [ 2 ] = W [ 2 ] a [ 1 ] + b [ 2 ] = W [ 2 ] z [ 1 ] + b [ 2 ] = W [ 2 ] ( W [ 1 ] x + b [ 1 ] ) + b [ 2 ] = ( W [ 2 ] W [ 1 ] ) x + ( W [ 2 ] b [ 1 ] + b [ 2 ] ) a^{[2]}=z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}=W^{[2]}z^{[1]}+b^{[2]}=W^{[2]}(W^{[1]}x+b^{[1]})+b^{[2]}=(W^{[2]}W^{[1]})x+(W^{[2]}b^{[1]}+b^{[2]}) a[2]=z[2]=W[2]a[1]+b[2]=W[2]z[1]+b[2]=W[2](W[1]x+b[1])+b[2]=(W[2]W[1])x+(W[2]b[1]+b[2])
W ′ = W [ 2 ] W [ 1 ] , b ′ = W [ 2 ] b [ 1 ] + b [ 2 ] W'=W^{[2]}W^{[1]},b'=W^{[2]}b^{[1]}+b^{[2]} W=W[2]W[1],b=W[2]b[1]+b[2]
则: a [ 2 ] = W ′ x + b ′ a^{[2]}=W'x+b' a[2]=Wx+b
a [ 2 ] a^{[2]} a[2]仍然是输入的线性组合

你可能感兴趣的:(面试题)