华为胡厚崑:中国算力网络标准需统一,硬件、应用接口、数据共享应相互兼容
480 2022-09-26
梯度消失/梯度爆炸的问题不仅仅是RNN有,而是深度神经网络所面临的问题。 这里简单地介绍一下RNN和RNN梯度消失的原因。
RNN是循环神经网络的英文缩写(也是递归神经网络的英文缩写)。
RNN模型如下图所示
展开后就是
贯穿一个序列中每一个元素,Wa,ba,Wy,by都是被共享的,所以交叉熵损失是
当RNN处理长序列的时候,通常会出现梯度消失的问题。
让我们来借助一个例子处理这个问题。假设我们正在处理语言建模问题,尝试学习两个系列:
"The cat, which already ate ........................, was full"
"The cats, which already ate ........................, were full"
这里我们需要学习的是,"was"搭配"cat","were"搭配"cats"。
普通的RNN会很难获得它们的关系。要计算单词"was",我们需要计算之后所有单词的梯度。
乘以分数往往会使梯度消失,而乘以大的数目会导致梯度爆炸。这时候有一些的权重可能没有被更新。 正如深度网络一样,很容易发生梯度消失问题。
在深层网络(反向传播)中,想要计算前面(某一层)的权重,需要计算在它之后所有层的权重,这会导致梯度消失。处理长序列的RNN也会发生类似的问题。
梯度爆炸的解决方案
梯度消失问题的解决方案
个人网站博客:https://www.soaringroad.com/result/category/DeepLearning.ai
根据所学的DeepLearning.ai发表一下见解,抛砖引玉,欢迎大家讨论。