首页 > 编程知识 正文

sigmoid和tanh,sigmoid区间

时间:2023-05-05 12:18:55 阅读:175081 作者:4459

激活函数目前自己使用较多的激活函数RELU,RELU6; LeakyReLU; 小区; 缺少

; 看激活函数:计算量; 准确度;

大多数激活函数pytorch都已经包装好了:

非线性活动(weighted sum,nonlinearity ) )。

非直线活动(other ) [ https://pytorch.org/docs/stable/nn.html ] ) 3359 py torch.org/docs/stable/nn

经典激活函数1. Sigmoid此函数用于将取,的数值映射到(0,1 )之间。

蓝线是sigmoid函数; 红线是sigmoid的向导

优点:顺畅,方便寻求导游。

坏处:

坡度消失; 饱和区域变化缓慢,接近0

输出的平均值不为0,输出大于0时,梯度方向大于0。 也就是说,在下一次逆运算中将继续向前更新

幂函数还很难计算,计算量大

Sigmoid函数并不以(0,0 )为中心点

importnumpyasnpimportmatplotlib.pyplotaspltdefsigmoid (x ) :return1.0/(1NP.exp(-x ) ) sigmoid_inputs=NP . 0.1 ) sigmoid _ outputs=sigmoid (sigmoid _ inputs )打印(sigmoidfunctioninput :3360 { }.format ) sigmoid _ sid . format ) sigmoid_outputs ) ) PLT.plot ) sigmoid_inputs,sigmoid_outputs(PLT.xlabel ) sigmoidinputs ) PLT.plot

公式如下。

蓝线是sigmoid函数; 红线寻求tahn的指引;

优点:

函数输出以(0,0 )为中心

相对于Sigmoid收敛速度快

坏处:

坡度消失; 饱和区变化缓慢,接近0的tanh没有解决sigmoid梯度消失的问题

幂函数还很难计算,计算量大

1. RELU RELU6线性整流函数(Rectified Linear Unit,ReLU )或修正线性单元,目前常用; 这几年常用的激活函数。 公式:

蓝线是RELU函数; 红线请求RELU的指引; 上图为小偷是否简单,在AlexNet的论文中对ReLu和普通的Sigmoid类函数进行了比较测试,发现ReLu的使用大大缩短了学习周期。 综合速率和效率,DL的大多数激活函数都应选择ReLu。

大幅度缩短。

优点:

在RELU中收敛速度比Sigmoid和tanh快很多; 计算量很少呢。 不快吗? 更高效的梯度下降和反向传播:梯度爆炸和梯度消失可以避免问题对神经网络使用稀疏表示; 生物学原理:相关大脑研究表明,生物神经元的信息编码通常比较分散和稀疏(如果你感兴趣的话,我们可以看看((o ) )。 坏处:

训练中容易发生神经元死亡,之后梯度永远为0的情况。 在mobilenetv2系列中对此进行了分析; 整体上大家都说了可以用! 长期支配活化领域的top;

以relu为首,PReLU、Leaky ReLU、CReLU等各种变种层出不穷;

relu6很容易理解:

下图是relu6和relu的关系。 主要是为了即使在移动端的float16精度较低的情况下也能获得良好的数值分辨率,如果不对ReLu的输出值施加限制,输出范围将从0变为正的无限大,但精度较低的float16无法正确记述该数值,会带来精度的损失。 如果你在做移动终端,应该很熟悉;

2.mishmi sh : aselfregularizednon-monotonicneuralactivationfunction

是自归一化的非单调神经激活函数,平滑的激活函数可以更好地将信息渗透到神经网络中,获得更好的准确性和泛化。 论文表明,与Swish相比提高了0.494%,与ReLU相比提高了1.671%,该方法也在yolov4上进行了验证

这条曲线似乎完美地模拟了生物的什么曲线; ……

importtorchimporttorch.nnasnnimporttorch.nn.functionalasfclassmish (nn.module ) :def__init_ ) self ) 3360 pppporattimale x ) :x=x* ) torch.tanh ) f.softplus ) x ) ) return x最初很少拥抱,上升明显; 博客还比较了MISH的稳定性和精度方面的各种任务。总体而言,大多数任务都得到了相应的提高

激活函数RELU6MISHcoco得分0.49760.5214的优点:

没有上述边界,即正值可以达到任何高度。 这样可以避免密封引起的饱和。 理论上允许少量负值可以提供更好的梯度流,而不是像ReLU那样硬的零边界。 平滑的激活函数可以使更好的信息渗透到神经网络中,获得更好的准确性和泛化。 这条曲线似乎完美地模拟了生物的什么曲线; (如果你感兴趣,我们来看看(o ) )。 缺点:

计算量一定比relu大,消耗的内存也多了很多; 3.Swish (等待验证、todo、无法写入) ) ) ) ) ) )。

Ohter 1. Leaky ReLU公式:

#兄弟们,自己用吧。 torch.nn.leaky relu (negative _ slope : float=0. 01,inplace: bool=False ) SELU )等待验证,todo,无法写入)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。