First of all, 有一篇总结的很好的博文: https://blog.csdn.net/qq_31347869/article/details/102799720
import numpy as np def sigmoid(x): s = 1 / (1 + np.exp(-x)) return s x = np.array([1, 2, 3]) sigmoid(x) >>> array([ 0.73105858, 0.88079708, 0.95257413])
Note: x_sum = np.sum(x_exp, keepdims = True)也可,因为x_exp是一维向量。 axis=1 以竖轴为基准 ,同行相加 keepdims主要用于保持矩阵的二维特性 实际应用中,e^V较大,所以:
(1)首选ReLU函数(只在隐藏层中使用),性能好、速度快;
(2)在ReLU出现很多死神经元的情况下,考虑使用Leaky ReLU函数;
(3)建议只在全连接层使用sigmoid函数;
(4)tanh函数在某些情况下有比较好的效果,但应用场景比较少;
(5)Maxout效果虽好但参数翻倍,因此一般不用。