Press "Enter" to skip to content

激活函数与非线性:神经网络入门

解释神经网络为什么能学习(几乎)任何东西

谷歌 DeepMind 的照片:https://www.pexels.com/photo/an-artist-s-illustration-of-artificial-intelligence-ai-this-image-was-inspired-by-neural-networks-used-in-deep-learning-it-was-created-by-novoto-studio-as-part-of-the-visualising-ai-pr-17483874/

背景

在我之前的文章中,我们介绍了多层感知器(MLP),它只是一组堆叠的相互连接的感知器。如果你对感知器和MLP不熟悉,我强烈推荐你查看我之前的文章,因为我们在本文中将会经常提到它们:

简介、感知器和架构:神经网络101

神经网络及其构建模块的介绍

levelup.gitconnected.com

下面是一个具有两个隐藏层的示例MLP:

基本的两个隐藏层的多层感知器。作者绘制的图表。

然而,MLP的问题在于它只能拟合一个线性分类器。这是因为单个感知器的激活函数是线性的阶跃函数:

感知器,即最简单的神经网络。作者绘制的图表。

因此,尽管堆叠感知器看起来像现代神经网络,但它仍然是一个线性分类器,并且与普通线性回归并没有太大区别!

另一个问题是它在整个定义域范围内并不完全可微。

那我们应该怎么处理呢?

使用非线性激活函数!

为什么我们需要非线性?

什么是线性?

让我们简单地声明线性的含义以建立一些上下文。从数学上讲,如果一个函数满足以下条件,就被认为是线性的:

还有另一个条件:

但是,对于本演示,我们将使用之前的等式。

举一个非常简单的例子:

Leave a Reply

Your email address will not be published. Required fields are marked *