pytorch学习笔记(七)——激活函数

pytorch学习笔记(七)——激活函数

  • 目录
    • 激活函数的由来
    • sigmoid激活函数
    • tanh激活函数
    • ReLU激活函数

目录

激活函数的由来

pytorch学习笔记(七)——激活函数_第1张图片
1959年,生物科学家研究青蛙神经元的时候发现,青蛙的神经元有多个输入,神经元中间有一个多输入加权后的相应,当该响应小于阈值时没有输出,当该响应大于阈值是会有一个固定的输出。当时的计算机科学家借鉴于此发明了一个计算机模型,如下图:pytorch学习笔记(七)——激活函数_第2张图片
假设z为输入经过加权后的值,z小于阈值输出0,z大于阈值输出1。(阶梯函数)
为了解决阶梯函数在阶梯处不可导的缺点,计算机学家们引入了sigmoid函数

sigmoid激活函数

(1)sigmoid定义
pytorch学习笔记(七)——激活函数_第3张图片
从图中可以看出sigmoid函数处处可导,在x趋于负无穷时,y趋于0,导数趋于0:在x趋于正无穷时,y趋于1,导数趋于0。
(2)sigmoid求导
pytorch学习笔记(七)——激活函数_第4张图片
由于sigmoid函数输出范围在0-1,这非常符合概率和像素点取值的范围,所以用途较广,但sigmoid函数有一个致命的缺陷,当x较大时,sigmoid导数趋于0,使得梯度下降时参数更新的非常缓慢,这就是所谓的梯度离散。
(3)sigmoid在pytorch中的实现pytorch学习笔记(七)——激活函数_第5张图片

tanh激活函数

(1)tanh定义
pytorch学习笔记(七)——激活函数_第6张图片
tanh函数相当于sigmoid函数横坐标压缩到之前一半,纵坐标扩展到两倍,再向下平移一个单元,因此范围是[-1,1],在RNN模型中用的非常多。
(2)tanh求导
pytorch学习笔记(七)——激活函数_第7张图片
(3)tanh在pytorch中的实现pytorch学习笔记(七)——激活函数_第8张图片

ReLU激活函数

(1)ReLU定义
pytorch学习笔记(七)——激活函数_第9张图片
(2)ReLU求导
pytorch学习笔记(七)——激活函数_第10张图片
一方面ReLU激活函数求导非常方便,导数恒为1,另一方面很少产生梯度离散或者梯度爆炸,因此现如今ReLU激活函数是深度学习中运用最为广泛的激活函数。
(3)ReLU在pytorch中的实现
pytorch学习笔记(七)——激活函数_第11张图片

你可能感兴趣的:(pytorch)