tensorflow - Tensorflow 中的 SGD 是否对每个数据点进行移动?
问题描述
我假设随机梯度下降中的“随机”来自每批中样本的随机选择。但我读过的关于该主题的文章似乎表明 SGD 对每个数据点都有一个小的移动(权重变化)。Tensorflow 是如何实现的?
解决方案
是的,SGD 确实是随机抽样的,但是这里的点有点不同。
SGD 本身不进行抽样。您通过批处理进行采样,并希望在每个时期之间进行改组。
GD 意味着您在前向支撑整个数据集后为每个权重生成梯度(batchsize = 基数,并且每个 epoch 的步数 = 1)。如果您的批量大小小于数据集的基数,那么您就是在进行采样的人,并且您运行的是 SGD 而不是 GD。
实现非常简单,类似于
- 转发支持批次/步骤。
- 找到渐变。
- 使用这些梯度更新权重
- 返回步骤 1
推荐阅读
- javascript - gchjs-dom安装问题:安装jsaddle-dom内存不足
- ajax - 单击登录按钮时无法输入正确的页面
- c++ - 使用类的成员构造函数后出现分段错误
- firebase - 颤振位置距离有效值但返回 null
- flutter - 在 Flutter 应用程序中将文本编码到捕获的图像上
- r - 有人可以帮助我了解如何在 R 中使用 Lag 或 Lead 函数吗?
- react-native - 找不到 NativeReanimated'
- reactjs - 如何在 Next.js 中重定向登录页面
- dynamic - 我正在运行一个家庭服务器,并且有各种使用 myvestacp 的网站,但是由于我有一个动态 IP 地址,我该如何自动化呢?
- keycloak - 如何在keycloak中为资源创建权限