神经网络中的gradient check是什么意思?

  统计/机器学习 深度学习 人工神经网络    浏览次数:2671        分享
1

神经网络中的gradient check是什么意思?就是检查梯度吗?为什么要查梯度?



 

七号信仰   2017-10-19 22:19



   3个回答 
4

人工神经网络是个非常复杂的结构,一层层叠加而成。

复杂就意味着在实施人工神经网络的时候需要格外小心,其中一个步骤就是手动检查反向传播(backpropagation)是否正确运行。

所以我们就要手动计算和比较真实的梯度和程序中返回的梯度值,以确保其正确。


SofaSofa数据科学社区DS面试题库 DS面经

abuu   2017-10-24 13:59

2

可以参考下stanford这篇文章Gradient checking and advanced optimization


SofaSofa数据科学社区DS面试题库 DS面经

sasa   2017-10-24 04:47

2

主要是解决vanishing gradient problem。大概意思是backpropogation通过链式规则把gradient从输出端的loss function要反向传输到第一层的参数。传输过程中,gradient会逐渐减小或增大,会导致第一层的参数收到的gradient过小或过大。还有个主要原因是所有参数用同样的learning rate。如果用动态的learning rate,会一定程度解决问题。

解决的方法有:

1. Resnet,加一些bypass的路径,让gradient能通过较少层达到前几层的参数。

2. Relu比sigmoid传输gradient更快。记忆中,AlexNet论文中说Relu收敛比sigmoid快3倍。

3. 更好的参数初始值。让链式规则中的gradient乘上系数的绝对值集中在1,也就是Jacobian 矩阵元素的绝对值大概为1。参考He Kaiming的论文

4. 在中间层增加一些辅助的loss function,让辅助的gradient能提前传到前面的层。有些论文叫hierarchical learning。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2019-07-31 02:11



  相关主题

deep learning中的pooling是什么意思?   6回答

关于神经网络的性能   1回答

神经网络中的dense和sparse是什么意思?   2回答

神经网络模型里训练和推理是什么意思?   1回答

训练神经网络中经常提到的epoch是什么意思   2回答

吴恩达深度学习第一课第四周作业L层结果收敛在0.64的问题   0回答

深度学习模型的“蒸馏”是什么意思?   0回答

为什么小数据不适合神经网络模型?   3回答

前馈神经网络如何选择隐藏层的数量   2回答

dropout rate一般设置多大?   3回答

深度学习和人工神经网络是一回事吗?   1回答

epoch和batch之间有什么关系?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!