softmax 函数,被称为 归一化指数函数,是sigmoid函数的推广。
它将向量等比压缩到[0, 1]之间,所有元素和为1.
图解:
Example:
softmax([1, 2, 3, 4, 1, 2, 3]) = [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]
Code:
import numpy as np def softmax(x): c = np.max(x, axis = x.ndim - 1, keepdims = True) y = np.sum(np.exp(x - c), axis = x.ndim - 1, keepdims = True) x = np.exp(x - c) / y return x
softmax and sigmoid 异同:
Cross-entropy Error(CE):交叉熵误差
假设误差是二值分布:
其中yi表示真实概率分布,只有yk=1,而yj=0,j≠k。y^i表示预测概率分布,设它的输入为θi,则
CE求导:
Assigment:
Softmax:
softmax求导:
softmax数值不稳定性、解决方法、证明:
Loss function 梯度: