激活函数(Activation Function)是人工神经网络中每个神经元的输出函数。它决定了神经元输出值的范围和形状。常见的激活函数有:
- Sigmoid:S形函数,输出范围在(0,1)。常用于二分类任务。
sigmoid(x) = 1 / (1 + exp(-x))
- Tanh:双曲正切函数,输出范围在(-1,1)。同属于Logistic激活函数。
tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))
- ReLU:线性整流函数,输出范围在(0,+∞)。常用于隐藏层,可以解决梯度消失问题。
relu(x) = max(0, x)
- LeakyReLU:修正线性整流函数,输出范围在(-∞,+∞)。可以缓解Relu在某些情况下梯度消失的问题。
leaky_relu(x) = max(0.01x, x)
- Softmax:多分类激活函数,输出值在(0,1)且归一化为1。常用于多分类任务的输出层。
softmax(x) = exp(x) / sum(exp(x))
举例:
- Sigmoid用于二分类任务:
layer1 = sigmoid(inputs * weights1 + bias1)
- ReLU用于隐藏层:
layer2 = relu(layer1 * weights2 + bias2)
- Softmax用于多分类输出:
outputs = softmax(layer2 * weights3 + bias3)