【神经网络】激活函数

简介:
激活函数作用:加入了非线性因素,解决了线性模型缺陷,使得神经网络可以逼近非线性函数
神经网络常用的激活函数:sigmoid,Tanh,relu等,relu最常用
1、sigmoid
值域:(0,1)能把输出值压缩到0-1之间
在这里插入图片描述


tf.nn.sigmoid(x, name=None)

2、tanh
作用:放大差异性 相比于sigmoid,值域为(-1,1),值域更广,但是和个sigmoid一样,输入值的绝对值不能过大,过大模型无法训练。
取值范围:-1,1
在这里插入图片描述

tf.nn.tanh(x,name=None)

3、relu
小于0,= 0 很;变为了0,做了稀疏化特征,降低了干扰,分布更好找,网络收敛加快,
大于0 = self
作用:降维,对于所有的正值的输入输出梯度都是1,缓解了梯度消失,网络收敛加快
在这里插入图片描述

tf.nn.relu(features, name=None)
# relu的变形
tf.nn.relu6(features, name=None)  # 防止梯度爆炸
tf.nn.softplus(features, name=None)  # 更平滑一些,对于小于0的值保留的更多一些,计算量大
tf.nn.elu(features, name=None)
tf.maximum(x, leak * x, name=name)  # Leaky relus

4、Softmax和交叉熵配合使用
Softmax是sigmoid类的激活函数的扩展,用于做多分类
softmax_cross_entropy_with_logits:softmax二分类的交叉熵函数,softmax的出的是概率,越接近于1,就越可能属于哪一类。
softmax
log_softmax

#多分类激活函数softmax
tf.nn.softmax(logits,name=None)
tf.nn.log_softmax(logits,name=None)#对softmax取对数

5、Swish
谷歌发明,效果好于relu的激活函数

def Swish(x, beta=1):
    return x * tf.nn.sigmoid(x * beta)

注意:
特征差别大的时候用tank效果会好,不大的时候用sigmoid
relu的优势是对特征做了稀疏化,计算速度大大提升,目前多用relu做激活函数

猜你喜欢

转载自blog.csdn.net/ZHANGHUIHUIA/article/details/86492122