最重要的两个激活函数:ReLU、Sigmoid
1.ReLU
该函数式如下:
计算图为:
实现代码:
class Relu: # Relu函数(P139)
def __init__(self):
self.mask = None
def forward(self, x):
self.mask = (x <= 0) # 小于等于0的为True,大于0的为False
out = x.copy()
out[self.mask] = 0 # 把为True的变为0(把x小于等于0的变为0)
return out
def backward(self, dout):
dout[self.mask] = 0 # 这里self.mask用的是forward中的值;把x小于等于0的都变成0
dx = dout
return dx
2.Sigmoid
该函数式如下:
计算图为:
实现代码:
import numpy as np
class Sigmoid: # Sigmoid函数
def __init__(self):
self.out = None
def forward(self, x):
out = 1/(1 + np.exp(-x))
self.out = out
return out
def backward(self, dout):
dx = dout * (1.0 - self.out) * self.out
return dx