深度学习基础 |
您所在的位置:网站首页 › AVERAGELF函数怎么用 › 深度学习基础 |
作者:Dishashree Gupta 翻译:王紫岳 校对:王琦 本文约5200字,建议阅读20分钟 本文简要介绍了作者在初次进行机器学习的操作时所遇到的情况与得到的教训。 摘要 激活函数是神经网络的组成部分之一。学习深度学习中不同的激活函数。在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 办公设备维修网 版权所有 豫ICP备15022753号-3 |