1. SoftMax原理
一个神经网络输入数据后,一般最后一层会输出一个连续的值,为了实现分类,假设总共有n类,我们可以定义网络的输出包含n个节点,每个节点代表一个输出,谁的输出值最高,那么就认为输入的数据属于哪一类。
然而这显然引入了一个问题:一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量。
例如,假设有3类,A,B和C类,其中最后一层输出了0.1,10,0.5,那么此时可以分为B类,但是也可能输出100,10,80,此时又认为应该属于A,但是他们之间的绝对值的差可能很大,这不利于构建loss,换而言之,如果某一类代表的输出先天性的大于其他,那么在收敛时,这一类可能会影响其他结果的分类效果。
1.1.归一化思想
容易想到,解决上述问题的方法可以是归一化,即再构建一层运算,或设置一种loss,使得最终输出的结果为“预测为属于该类的概率”,自然的,所有类的概率的和应该等于1。
认为Yi的概率为:
1.2. 利用信息熵