什么是人工神经网络?
现在,我相信大家都很熟悉A-NN是什么,但是接下来请允许我根据自己的理解来定义A-NN——它是一种强大而复杂的机器学习技术,可以模仿人脑,进而模仿大脑的运作。
就像我们的人脑一样,在一个层面和神经元网络中有数百万个神经元,它们通过一种叫做突触的结构相互紧密连接。它可以通过轴突将电信号从一层传递到另一层。这就是我们人类学习东西的方式。每当我们看到、听到、感觉到和思考时,一个突触(电脉冲)就会从层次结构中的一个神经元发射到另一个神经元,使我们能够从出生的那天起学习、记忆和回忆日常生活中的事情。
好了,接下来,我保证你看到的不再是生物学领域的知识。
什么是激活函数,在神经网络模型中是如何使用的?
激活函数在人工神经网络模型学习和理解非常复杂和非线性的函数中起着重要的作用。它们将非线性特征引入我们的网络。其主要目的是将A-NN模型中某个节点的输入信号转换成输出信号。该输出信号现在用作堆栈中下一层的输入。
A-NN中的具体操作如下:我们做输入(x)的乘积和它们对应的权值(w)的和,应用激活函数f(x)得到这一层的输出,作为输入馈入下一层。
问题是,为什么不激活输入信号就做不到呢?
如果不使用激活函数,输出信号只会是简单的线性函数。线性函数的一阶多项式。现在的线性方程组很容易求解,但是复杂度有限,从数据中学习复变函数映射的能力更小。没有激活函数的神经网络只是一个线性回归模型,它的能力有限,在大多数情况下表现不佳。我们希望我们的神经网络不仅能学习和计算线性函数,还能比这复杂得多。同样,因为没有激活功能,我们的神经网络将无法学习和模拟其他复杂类型的数据,如图像、视频、音频、语音等。这就是为什么我们应该使用人工神经网络技术,比如Deep学习,来理解一些复杂的事情,一些隐藏层很多的非线性问题,这也可以帮助我们理解复杂的数据。
那么为什么我们需要非线性函数呢?
非线性函数是一阶以上的函数,画非线性函数时有曲率。现在我们需要一个可以学习和表示几乎任何东西的神经网络模型,以及任何可以将输入映射到输出的复杂函数。神经网络被认为是通用函数逼近器。这意味着他们可以计算和学习任何函数。几乎任何我们能想到的过程都可以用神经网络中的函数计算来表示。
这一切都归结到这一点。我们需要应用激活函数f(x),以便使网络更强大并增加其能力,从而使其能够学习复杂的事物、复杂形式的数据以及表示输入和输出之间非线性的复杂的任意函数映射。因此,利用非线性激活函数,我们可以生成输入和输出之间的非线性映射。
激活函数的另一个重要特征是它应该是可区分的。我们需要这样做,以便在网络向后前进时实施反向优化策略,以计算相对于权重的误差(损失)梯度,然后使用梯度下降或任何其他优化技术来优化权重,从而减少误差。
只要永远记得做:
输入时间权重,添加偏差并激活功能
最流行的激活功能类型
1.西格玛函数或逻辑函数
2.tanh-双曲正切(双曲正切函数)
3.重新校正的线性单位(线性校正单位)
Sigmoid激活函数:是f(x)= 1/1+exp(-x)形式的激活函数。其取值范围在0-1之间,为S型曲线。它很容易理解和应用,但使它不受欢迎的主要原因是:
-梯度消失问题
第二,它的输出不以0为中心。它的梯度更新方向不同,走得太远。0<。输出<。1,使得优化更加困难。& lt="" p="">。
-Sigma函数饱和并消除梯度。
-Sigma函数收敛缓慢。
现在如何解决以上问题?
双曲正切函数——Tanh的数学公式为f(x)= 1-exp(-2x)/ 1+exp(-2x)。现在它的输出以0为中心,因为它的值范围在-1和1之间,即,-1
那么我们如何处理和纠正梯度消失呢?
再校正线性单位:其实这几年已经很流行了。最近,已经证明它的收敛性比Tanh函数提高了6倍。只要R(x)= max(0,x),也就是如果x : = 0,那么r (x) = x,所以,单看这个函数的数学形式,就可以看出它是非常简单有效的。其实我们经常会注意到,在机器学习和计算机科学领域,最简单、最兼容的技术和方法是首选,也是性能最好的。因此可以避免和纠正梯度消失的问题。现在几乎所有的深度学习模型都使用ReLu函数。
但它的局限性在于只能用在神经网络模型的隐层。
所以对于输出层,要用Softmax函数处理分类问题,计算类的概率。至于回归问题,只需要用线性函数即可。
ReLu功能的另一个问题是,有些梯度在训练中可能会很脆弱甚至死亡。它可以导致权重更新,这将使它永远不会在任何数据点激活。简单来说,ReLu可能导致神经元死亡。
为了解决这个问题,我们引入了另一个改进的函数,称为漏ReLu,来解决神经元死亡的问题。它引入了一个小斜率来保持更新的值有效。
然后,我们还有另一个变种,它是由ReLu函数和漏ReLu函数组合而成的,我们称之为Maxout函数。
结论
问题是哪个好?
这个问题的答案是,现在我们应该使用只适用于隐藏层的ReLu函数。当然,如果我们的模型在训练过程中遇到死神经元,应该使用漏ReLu函数或者Maxout函数。
考虑到实际情况,Sigmoid函数和Tanh函数都不适用,因为消失梯度问题是一个严重的问题,这将导致在训练神经网络模型时出现更多的问题。
转自:机器人圈
关于想象微信号
权威发布畅想公司CPU、GPU、连接IP、无线IP的最新信息,提供物联网、可穿戴、通信、汽车电子、医疗电子等应用信息。,并且每天更新大量的信息,这样就可以跟上技术的发展。欢迎关注!伸出小手,按下二维码。我们是好朋友!
1.《激活函数 什么是激活函数?它有什么作用?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《激活函数 什么是激活函数?它有什么作用?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1649335.html