【问题标题】:Neural Networks back propogation神经网络反向传播
【发布时间】:2016-05-22 07:39:37
【问题描述】:

我已经研究过神经网络,并且几乎完美地理解了反向传播的推导(终于!)。但是,我有一个小小的疑问。 我们正在同时更新所有权重,那么如何保证它们会导致更小的成本。如果权重一一更新,肯定会降低成本,类似于线性回归。但是如果你同时更新所有的权重,我们会不会越过最小值?

另外,我们是否像在每个测试用例的每次前向传播和反向传播后更新权重一样更新偏差?

最后,我开始阅读 RNN。有哪些好的资源可以理解 RNN 中的 BPTT?

【问题讨论】:

标签: neural-network recurrent-neural-network


【解决方案1】:

是的,一次只更新一个权重可能会导致每次都减小误差值,但在使用 NN 的实际解决方案中进行此类更新通常是不可行的。当今的大多数架构通常都有大约 10^6 个参数,因此每个参数的一个 epoch 可能会持续很长时间。此外-由于反向传播的性质-您通常必须计算不同导数的负载才能计算给定参数的导数-因此在使用这种方法时会浪费大量计算。

但是你提到的这种现象很早以前就已经注意到了,并且有一些方法可以处理它。有两个最常见的问题与之相关:

  1. 协方差偏移:当给定层的误差和权重更新强烈依赖于前一层的输出时,因此当您更新它时 - 下一层的结果可能会有所不同.目前处理这个问题最常用的方法是Batch normalization
  2. 非线性函数 vs 线性微分:当您考虑 BP 时,这并不常见,但导数是一种线性算子,可能会在梯度下降中产生很多问题。最直观的例子是,如果你将输入乘以一个常数,那么每个导数也将乘以相同的数字。这可能会导致很多问题,但大多数最近的学习方法在处理它方面做得很好。

关于 BPTT 我强烈推荐 Geoffrey Hinton 的关于 ANN 的课程,尤其是 video

【讨论】:

    猜你喜欢
    • 2015-03-03
    • 2012-02-21
    • 2011-01-05
    • 1970-01-01
    • 2013-04-26
    • 2016-09-19
    • 2014-03-15
    • 2018-05-17
    相关资源
    最近更新 更多