做线性回归的时候,我们可以假设训练数据存在误差,误差符合正态分布,根据最大似然估计法(maximum lieklihood),可以计算出采用LMS(Least Mean Squared)作为cost函数是natural and intuitive。
做逻辑回归的时候,sigmoid函数(也叫逻辑函数)将weighted input映射到(0,1)空间;在使用crossentropy作为cost函数的时候,一般output layer只有一个神经元。这也是通过最大似然估计法,通过让log likelihood函数最大(log是单调函数,两边去log,一样求最大,只是简化了运算),其导数等于0,而求得的。
如果output layer需要有多个神经元,一般采用softmax的方式更好。
这就是为什么softmax的cost函数,跟crossentropy函数一点不一样的原因。使用crossentropy,只对一个神经元的输出计算cost,自然的就会要求在接近0和接近1时,都要计算cost。而softmax输出的是概率分布,只需要计算应该是最高概率的那个位置的神经元的输出而产生的cost即可。
这样就清楚了,因此mlp的最后一层,一般都采用softmax层,还额外解决了最后一层learning slowdown的问题。(hidden layer learning slowdown的问题,是通过初始化w和b来解决的)