machine-learning - 我是否需要在我的反向传播方程 (SGD) 中包含我的缩放输出?
问题描述
快速的问题,当我将损失函数反向传播到我的参数并使用缩放输出(例如 tanh(x) * 2)时,我是否需要包括原始输出的缩放输出的导数?谢谢!
解决方案
在我们可以反向传播错误之前,我们必须计算损失函数相对于每个参数的梯度。该计算涉及首先计算输出的梯度,然后重复使用链式法则。所以,当你这样做时,缩放常数保持不变。所以,是的,你必须相应地缩放错误。
例如,您可能已经观察到以下L2 正则化损失 - 也称为 Ridge 回归:
损失 = 1/2 * |T - Y|^2 + λ * ||w||^2
在这里,我们正在缩小平方误差。因此,当我们计算梯度时,1/2 和 2 将抵消。如果我们一开始就不将其乘以 0.5,那么我们将不得不将梯度扩大 2。否则梯度向量将指向其他方向,而不是最小化损失的方向。
推荐阅读
- typescript - 打字稿不能破坏联合类型
- javascript - Amazon AWS SDK MediaConvert 不是构造函数
- elasticsearch - 仅限 Percolator 的弹性搜索集群 - 是否值得拥有专用的主节点?
- android - RecyclerView android studio的渲染问题
- javascript - 鼠标悬停的手风琴孩子
- javascript - VueJS v-for inside 组件模板似乎没有循环
- python - 如何使 wget python 模块不下载重复项?
- c# - C# 检查用户输入的特定文件名并打开文件
- java - .CSV 以逗号分隔
- python - 安装 scikit-learn Docker 镜像问题