Tips for Deep Learning

针对training set和testing set上的performance分别提出针对性的解决方法

  1. 在training set上准确率不高: new activation function:ReLU、Maxout adaptive learning rate:Adagrad、RMSProp、Momentum、Adam
  2. 在testing set上准确率不高:Early Stopping、Regularization or Dropout

机器学习入门-第八天

1,training set上准确率不高的解决方案-New activation function

1,梯度消失和梯度爆炸

第一种解释:

参考:

https://blog.csdn.net/baidu_29782299/article/details/52742773

https://www.cnblogs.com/xxlad/p/11283104.html

机器学习入门-第八天

当network很深的时候,在靠近input的地方,这些参数的gradient(即对最后loss function的微分)是比较小的;而在比较靠近output的地方,它对loss的微分值会是比较大的.为什么会这样呢? 因为在靠近输入层时,根据反向传播,梯度的计算是一直相乘的,靠近output的梯度相乘的数比较少.

机器学习入门-第八天

机器学习入门-第八天

机器学习入门-第八天

因此当你设定同样learning rate的时候,靠近input的地方,它参数的update是很慢的;而靠近output的地方,它参数的update是比较快的

所以在靠近input的地方,参数几乎还是random的时候(没来得及更新),output就已经根据这些random的结果找到了一个local minima,然后就converge(收敛)了

这个时候你会发现,参数的loss下降的速度变得很慢,你就会觉得gradient已经接近于0了,于是把程序停掉了,由于这个converge,是几乎base on random的参数,所以model的参数并没有被训练充分,那在training data上得到的结果肯定是很差的.

第二种解释:

机器学习入门-第八天

机器学习入门-第八天

 

相关文章: