1.7对于某些问题: 复杂算法<=简单的算法+好的训练数据【一顿操作猛如虎,原来不如二百五】
第三章 改进神经网络的学习方法
3.1换代价函数——交叉熵代价函数(replace MSE)
要设计代价函数C一般需要满足两点:一、非负,C>0; 二、对于所有的训练输入x,神经元实际的输出都接近目标值,那么C接近零。
当ANN最后一层有很多sigmoid神经元时,随机初始化神经网络的权重和偏置,有概率会导致神经元输出饱和,此时使用MSE(二次代价函数)时,即使犯了明显错误,但因为设置到其导数平坦区(饱和区),导致学习率缓慢。Neural networks and deep learning
此时运用交叉熵代价函数取代二次代价函数,会加速学习速度。
【一些不被证明的经验】:1.在对不同代价函数选择学习率时,一般MSE被设置成交叉熵学习率的6倍,作为起点。作者例子中,MSE设置学习率n=3,改成交叉熵后n=0.5.
2.交叉熵可定性理解为对学到真实值的“平均不确定性”的衡量。假如猜对答案概率为a,猜错概率为1-a。当明显猜对、还是犯明显错误时【不确定性小】,则(a*(1-a))的值都是小的。
3.1.4归一化——添加softmax层,使所有输出之和为1(天然形成概率分布).
当ANN最后一层是在sigmoid后添加softmax层作为输出时,此时运用对数似然代价函数,搭配比较好。(简单理解常见配对:sigmoid+交叉熵,或softmax+对数似然。后者常用于需要将输出激活值解释为概率的场景。)