激活函数σ:
1.Sigmoid/logistic 区间[0, 1]
求导:
a=torch.linspace(-100,100,10)
torch.sigmoid(a)
原始a:
sigmoid后:
缺陷:当x->+∞时,σ'=0,导致参数θ=θ-lr*θ'得不到更新,也就是梯度离散问题。
2.Tanh 区间[-1, 1]
求导:
a=torch.linspace(-1,1,10)
torch.tanh(a)
tanh后:
3.Relu(常用***)
from torch.nn import functional as F
a=torch.linspace(-1,1,10)
F.relu(a) #等同于torch.relu(a)
relu后:
4.softmax
用于处理分类问题,总概率和相加为1。
softmax函数:,。
求导分为i=j和i≠j:
F.softmax(a, dim=0)
//p.backword(),torch把梯度信息保存在W.grad后会把该图的梯度信息清除掉,需要设置retain_graph = True才能二次调用backward。
//grad or backward传入的feature只能为一个量,例如p是一个[3]的量,所以不能传[p],需要传p[1]。