激活函数是深度学习,也是人工神经网络中一个十分重要的学习内容,对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有非常重要的作用。
常用三个激活函数:
(1)Sigmoid函数
sigmoid函数可以将输入的整个实数范围内的任意值映射到[0,1]范围内,当输入值较大时,会返回一个接近于1的值,当输入值较小时,则返回一个接近于0的值。在tensorflow中,用tf.sigmoid(x)直接调用这个函数使用。
Sigmoid函数的数学公式和函数图像如下
优点:输出在映射区间(0,1)内单调连续,非常适合用作输出层,并且比较容易求导。
缺点:其解析式中含有幂运算,计算机求解时相对比较耗时,对于规模比较大的深度网络,会较大地增加训练时间。
2)Tanh函数
tanh函数相似于sigmoid函数,但它能将值映射到[-1,1]的范围。于sigmoid函数相比,它的输出均值是0,使得其收敛速度要比sigmoid快,减少迭代次数,但幂运算的问题依然存在。
Tanh函数数学公式和函数图像如下:
3)Relu函数
relu函数,是目前被使用最为频繁得激活函数,relu函数在x < 0时,输出始终为0。由于x > 0时,relu函数的导数为1,即保持输出为x,所以relu函数能够在x > 0时保持梯度不断衰减,从而缓解梯度消失的问题,还能加快收敛速度。
relu函数数学公式和函数图像如下:
其中最常用、用途最广泛的是Relu函数。
总结:
如果要进行0和1的二分类选择,Sigmoid函数是不错的。
如果你的任务是在0到1,-1到1之间进行回归问题预测,首选Tanh函数。
如果要进行视觉分析CNN,Relu函数是比较好的应用函数。
神经网络设定的层数,三层神经网络,基本满足应用,业务的需求,具体每层的神经元需根据具体
的业务进行分析。
请记住没有最好的模型,只有最适合的模型。