前言
1959年生物学家对青蛙神经元synapse)机制的研究发现了基本结构,
当多个输入的时候,输出并不是线性的,而是通过激活函数非线性输出.这里
重点研究一些常见的激活函数.
目录
1 sigmod
2: tanh
3: relu
一 sigmod
该激活函数在机器学习classfication 里面应用比较多
定义
导数
( x 为标量
问题
1 当x 特别大,或者特别小的时候,梯度接近为0,导致梯度弥散现象参数无法更新
2 梯度较小m,当网络层次叫声的时候,会导致梯度消失.
当x 为向量时候
梯度
是一个对角矩阵
其中 代表逐元素求导为向量.
在反向传播算法中,乘以一个向量通常表示成内哈马达乘积
二 tanh 函数
该激活函数在RNN 里面应用比较多
定义
导数
三 RLU 函数
在深度学习中应用最广的激活函数之一.
定义
导数
# -*- coding: utf-8 -*-"""Created on Wed Jan 11 17:18:22 2023author: chengxf2"""import torchimport matplotlib.pyplot as pltfrom torch.nn import function as Fdef tanh():a torch.linspace(-1, 1,10)b torch.tanh(a)plt.plot(a,b,go--)plt.show()神经元synapsedef sigmoid():a torch.linspace(-100, 100,100)b torch.sigmoid(a)plt.plot(a,b,go--)plt.show()def relc():a torch.linspace(-1, 1,10)b torch.relu(a)plt.plot(a,b,go--)plt.show()if __name__ "__main__":sigmoid()