tensorflow激活函数小结

本人机器学习小白,此篇博客记录的是查询到的激活函数的相关讲解,仅用于自己的备忘博客

激活函数是人工神经网络的一个极其重要的特征。它决定一个神经元是否应该被激活,激活代表神经元接收的信息与给定的信息有关。

1、Binary Step函数

f(x) = 1, x>=0
Binary Step函数非常简单,可以在创建二进制分类器时使用它。当我们只需要对单个类说“是”或“不是”时,Step函数是最好的选择,因为它要么激活神经元要么把它设为零。

2、线性函数

f(x)=ax
线性函数的导数是常数,也就是说它不依赖于输入值。
这意味着每次我们做反向传播时,梯度都是一样的。

3、Sigmoid函数

f(x)=1/(1+e^-x)
这是一个平滑函数,并且具有连续性和可微性

4、tanh函数

tanh函数与Sigmoid函数非常相似。它实际上只是Sigmoid函数的一个放大版本。
tanh(x)=2sigmoid(2x)-1
它基本上解决了所有值符号相同的问题,而其他属性都与sigmoid函数相同。函数具有连续性和可微性。你可以看到函数是非线性的,所以我们可以很容易地将误差进行反向传播。

5、ReLU函数

f(x)=max(0,x)
ReLU是如今设计神经网络时使用最广泛的激活函数,ReLU函数是非线性的,可以很容易地反向传播误差,并激活多个神经元。
ReLU函数优于其他激活函数的一大优点是它不会同时激活所有的神经元。这是什么意思?如果输入值是负的,ReLU函数会转换为0,而神经元不被激活。这意味着,在一段时间内,只有少量的神经元被激活,神经网络的这种稀疏性使其变得高效且易于计算。

6、Softmax函数

softmax函数也是一种sigmoid函数,但它在处理分类问题时很方便。sigmoid函数只能处理两个类。当我们想要处理多个类时,该怎么办呢?只对单类进行“是”或“不是”的分类方式将不会有任何帮助。softmax函数将压缩每个类在0到1之间,并除以输出总和。它实际上可以表示某个类的输入概率。
softmax函数最好在分类器的输出层使用。(也就是最后的那个Dense)

注意:

1、用于分类器时,Sigmoid函数及其组合通常效果更好。
2、由于梯度消失问题,有时要避免使用sigmoid和tanh函数。
3、ReLU函数是一个通用的激活函数,目前在大多数情况下使用。
4、如果神经网络中出现死神经元,那么PReLU函数就是最好的选择。
5、请记住,ReLU函数只能在隐藏层中使用。
总结:你可以从ReLU函数开始,如果ReLU函数没有提供最优结果,再尝试其他激活函数。
发布了40 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Black_Friend/article/details/104517692
今日推荐