从线性到非线性——神经网络的激活函数

鸽了许久,下面浅谈一下神经网络的激活函数。

众所周知,激活函数可以使得神经网络从线性进化为到非线性,意思就是说。原本只能线性可分,现在可以分类非线性分布的数据了。为什么?

首先看一下没有激活函数的神经网络模型:
从线性到非线性——神经网络的激活函数_第1张图片

那这能说明什么呢?
我们来看,假设有n个点呈非线性分布,将n个(x1, x2)输入到这个神经网络中,得到算出来的y1和y2,其结果可见下图:
从线性到非线性——神经网络的激活函数_第2张图片
可以看见没有激活函数的神经网络模型 b+w1*x1+w2 *x2
算出的预测值形成了一条直线,而这条直线不能把非线性分布的数据进行分类。

那怎么办呢?
考虑一下,之所以不能分类,是因为根据模型算出来的预测值形成的是直线,那我们不让它形成直线不就好了,问题又来了,不让它形成直线,那分类岂不是乱了套?
答案是我们有损失函数,根据损失函数,我们可以让预测值形成的曲线恰好能够将数据进行分类!
如下图:
从线性到非线性——神经网络的激活函数_第3张图片
这一步就是由激活函数做到的,那常见的激活函数我们都清楚,比如:sigmoid、Relu、tanh等等。其实跃迁函数,也就是sign()也是非线性的激活函数,只不过它只有0和1的取值。

好,到此为止,我们把激活函数为什么可以非线性分类讲完了。但是,激活函数一般是用在哪?是在深度学习领域中卷积层、池化层等等。我们上面讲的都是一下简单的二维数据点,看上去好像和深度学习隔了些什么。

那我们以卷积为例,看一下。
如图所示:
从线性到非线性——神经网络的激活函数_第4张图片
这个图太熟悉不过了,我们把它展开。

从线性到非线性——神经网络的激活函数_第5张图片
是不是就回到了上上上面那个神经网络了呀。只不过那个是二维的,这里是9维的。现在,我们得到9维空间上非线性分布的预测值了。再往下叠加层数,最终会形成一个超平面可以分类我们的数据点了。

想一下,二维数据点的预测值形成的是曲直线,三维数据点的预测值是不是就是曲直面了呀。更高维的呢?想不到,但是真实存在。

此外,卷积神经网络引入非线性激活函数的目的,是使得深层网络有存在的意义,否则线性的深层网络使用一层网络就可以代替了,叠加层数毫无用处。

上述观点有问题的,请读者在下方评论区给出,看到会及时回复。

你可能感兴趣的:(图像处理,深度学习)