我在业余时间使用神经网络。
我已经用神经网络开发了一种简单的XOR运算。
但是我不知道何时应该使用正确的激活功能。

是否有技巧或仅仅是数学逻辑?

最佳答案

何时使用特定激活功能来替代另一个激活功能的主题是正在进行的学术研究的主题。您可以通过在学术数据库中搜索与“神经网络激活功能”相关的期刊文章,或通过Google学术搜索来查找与此相关的论文,例如:

https://scholar.google.com/scholar?hl=en&as_sdt=0%2C2&q=neural+network+activation+function&btnG=&oq=neural+network+ac

通常,要使用哪个功能主要取决于您要执行的操作。激活功能就像镜头一样。您将输入放到网络中,然后通过激活功能对其进行更改或集中处理。如何更改您的输入取决于您要实现的目标。您需要考虑自己的问题,然后找出什么功能可以帮助您将信号塑造成您想要近似的结果。

问问自己,您要建模的数据的形状是什么?如果它是线性的或近似线性的,则线性激活函数就足够了。如果它更呈“阶梯形”,则可能要使用Sigmoid或Tanh之类的东西(Tanh函数实际上只是缩放的Sigmoid),因为它们的图形显示相似的形状。对于您的XOR问题,我们知道,通过将输出推近[-1,1]范围而起作用的任何一个都将很好地工作。如果您需要的东西不能像这两个一样平稳地远离零,那么ReLU函数可能是一个不错的选择(事实上,ReLU可能是当今最流行的激活函数,值得比这个答案进行更认真的研究。提供)。

您应该分析其中每个函数的图形,并考虑每个函数对数据的影响。您知道将要放入的数据。当这些数据通过该函数时,结果将是什么?该特定功能是否可以帮助您获得所需的输出?如果是这样,这是一个不错的选择。

此外,如果您拥有一些数据图形,它们的形状非常有趣,并且与您所知道的其他函数相对应,请随时使用该函数并查看其工作原理! ANN的某些设计是关于理解的,但是其他部分(至少目前是这样)是直觉的。

关于neural-network - 激活功能-神经网络,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44921031/

10-12 19:35