深度学习基础 您所在的位置:网站首页 s形激活函数 深度学习基础

深度学习基础

2024-07-12 06:58| 来源: 网络整理| 查看: 265

摘要

激活函数是神经网络的组成部分之一。

学习深度学习中不同的激活函数。

在python中编写激活函数并在实时编码窗口中将结果可视化。

本文最初发表于2017年10月,并于2020年1月进行了更新,增加了三个新的激活函数和python代码。引言今天,因特网提供了获取大量信息的途径。无论我们需要什么,只需要谷歌搜索一下即可。然而,当我们获取了这么多的信息时,我们又面临着如何区分相关和无关的信息的挑战。当我们的大脑被同时灌输大量信息时,它会努力去理解这些信息并将其分为“有用的”和“不那么有用的”。对于神经网络而言,我们需要类似的机制来将输入的信息分为“有用的”或“不太有用的”。

这是网络学习的重要方式,因为并不是所有的信息都同样有用。它们中的一些仅仅是噪音,而这就是激活函数的用武之地了。激活函数帮助神经网络使用重要信息,并抑制不相关的数据点。接下来让我们来看看这些激活函数,了解它们是如何工作的,并找出哪些激活函数适合于什么样的问题情景。目录1. 神经网络概述2. 我们可以不使用激活函数么?3. 常用的激活函数以及什么时候使用他们Binary Step(二元阶跃)Linear(线性)Sigmoid(S型)Tanh(双曲正切)ReLU(线性整流单元)Leaky ReLU(泄露型线性整流函数)Parameterised ReLU(参数化线性整流函数)Exponential Linear Unit(指数化线性单元)SwishSoftmax4. 选择正确的激活函数

1. 神经网络概述

在我深入研究激活函数的细节之前,让我们先快速了解一下神经网络的概念以及它们是如何工作的。神经网络是一种非常强大的模仿人脑学习方式的机器学习机制。

大脑接收外界的刺激,对输入进行处理,然后产生输出。当任务变得复杂时,多个神经元形成一个复杂的网络,相互传递信息。

人工神经网络试图模仿类似的行为。你下面看到的网络是由相互连接的神经元构成的神经网络。每个神经元的特征是其权重、偏置和激活函数。

输入信息被输入到输入层,神经元使用权重和偏差对输入进行线性变换。x = (weight * input) + bias之后,对上述结果应用一个激活函数。

最后,激活函数的输出移动到下一个隐藏层,重复相同的过程。这种信息的前向移动称为前向传播。如果生成的输出与实际值相距甚远怎么办?利用前向传播的输出来计算误差。根据这个误差值,更新神经元的权值和偏差。这个过程称为反向传播。注:要详细理解正向传播和反向传播,您可以阅读下面的文章:Understanding and coding neural network from scratch附链接:https://www.analyticsvidhya.com/blog/2017/05/neural-network-from-scratch-in-python-and-r/2. 我们可以不使用激活函数么?我们知道,在正向传播期间,使用激活函数会在每一层引入一个额外的步骤。现在我们的问题是,假如激活函数给神经网络增加了复杂性,我们可以不使用激活函数吗?想象一个没有激活函数的神经网络。在这种情况下,每个神经元只会利用权重和偏差对输入信息进行线性变换。虽然线性变换使神经网络更简单,但这个网络的功能会变得更弱,并无法从数据中学习复杂的模式。没有激活函数的神经网络本质上只是一个线性回归模型。因此,我们对神经元的输入进行非线性变换,而神经网络中的这种非线性是由激活函数引入的。在下一节中,我们将研究不同类型的激活函数、它们的数学公式、图形表示和python代码。3. 常用的激活函数以及什么时候使用他们

二元阶跃函数

当我们有一个激活函数时,首先想到的是一个基于阈值的分类器,即神经元是否应该根据线性变换的值被激活。换句话说,如果激活函数的输入大于阈值,则神经元被激活,否则它就会失效,即它的输出不考虑下一个隐含层。让我们从数学的角度来看。f(x) = 1, x>=0 = 0, x=0 = 0, x=0 = a, x=0 = a(e^x-1), x


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有