Ada-Delta 方法在具有 MSE 损失和 ReLU 激活的去噪自动编码器中使用时不会收敛?

2024-02-27

我刚刚实施了 AdaDelta (http://arxiv.org/abs/1212.5701 http://arxiv.org/abs/1212.5701)用于我自己的深度神经网络库。 这篇论文说的是 AdaDelta 的 SGD 对超参数不敏感,并且它总是收敛到好的地方。 (至少AdaDelta-SGD的输出重建损失与经过良好调整的Momentum方法相当)

当我在去噪自动编码器中使用 AdaDelta-SGD 作为学习方法时,它确实在某些特定设置中收敛,但并非总是如此。 当我使用 MSE 作为损失函数,Sigmoid 作为激活函数时,它收敛得非常快,经过 100 个 epoch 迭代后,最终的重建损失优于所有普通 SGD、带有 Momentum 的 SGD 和 AdaGrad。

但是当我使用 ReLU 作为激活函数时,它没有收敛,而是继续以高(坏)重建损失堆叠(振荡)(就像您使用具有非常高学习率的普通 SGD 时的情况一样)。 它叠加的重建损失的大小比Momentum方法生成的最终重建损失大约高10到20倍。

我真的不明白为什么会发生这种情况,因为报纸上说 AdaDelta 很好。 请让我知道这些现象背后的原因,并教我如何避免它。


ReLU 的激活是无界的,这使得它在自动编码器中的使用变得困难,因为您的训练向量可能没有任意大且无界的响应! ReLU 根本不适合这种类型的网络。

您可以通过对输出层应用一些转换来强制 ReLU 进入自动编码器,如下所示在这里完成 http://eprints.pascal-network.org/archive/00008596/01/glorot11a.pdf。然而,嘿,不要讨论自动编码器的结果质量,而只是作为分类的预训练方法。因此,尚不清楚构建自动编码器是否值得付出努力。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ada-Delta 方法在具有 MSE 损失和 ReLU 激活的去噪自动编码器中使用时不会收敛? 的相关文章

随机推荐

  • Java计算MD5哈希值

    In http www anyexample com programming java java simple class to compute md5 hash xml http www anyexample com programmin
  • FireFox 中内容可编辑的光标位置/样式

    我在 FireFox 3 中使用 contentEditable 时遇到问题 我遇到的问题是 在单击 div 后 光标将出现在 div 上方或仅部分出现在 div 中 直到我开始输入 此时它的行为正确 关于如何阻止这种情况发生有什么想法吗
  • 为什么在 exec() 之前调用 quit() 不会退出应用程序?

    为什么这个程序可以正常运行并显示主窗口 我希望它会退出quit 在构造函数中调用 主要 cpp include
  • Qt 5.0程序在QtCreator中运行但不在外部运行

    这是上下文 我在Windows 7 x64下用Qt开发了一个程序 我已经升级到Qt 5 0 1 QtCreator 2 6 1 编译器VS2010 现在状态 我的程序在 QtCreator 中运行良好 但是当我在外面尝试时 我收到了几个错误
  • 在 Swift 中向 NSLayoutAnchor 约束添加乘数

    锚约束简化了添加约束的过程 但故事板中可用的乘数属性似乎并不适用于所有类型的约束 例如 作为根据这里的答案 https stackoverflow com questions 63042059 center uilabel created
  • 使用 awk 删除包含唯一第一个字段的行?

    希望仅打印具有重复第一个字段的行 例如从看起来像这样的数据 1 abcd 1 efgh 2 ijkl 3 mnop 4 qrst 4 uvwx 应该打印出 1 abcd 1 efgh 4 qrst 4 uvwx 仅供参考 我的数据中第一个字
  • hadoop/bin/hadoop 没有示例 jar

    我安装了 hadoop 2 2 0 并尝试运行示例 wordcount 程序 为此 我首先使用以下命令将数据导入到 hdfs bin hadoop fs copyFromLocal home prassanna Desktop input
  • FileBeat 收获问题

    我们使用 ELK 来控制我们的程序日志 在我们的 FileBeat 配置中 我们从中获取30种不同包含每秒更新的文件的路径 它仅在产品机器中每秒更新 在其他开发机器中 我们的日志要少得多 我们的日志文件不会被删除 直到它们变旧并且我们停止使
  • Indy 和 smtps:无法连接

    我正在尝试使用 Indy 和说明的技术从 smtps 安全 smtp 发送电子邮件在 Marco Cant 的这篇文章中 http www marcocantu com tips oct06 gmail html 这就是我正在使用的 obj
  • 在 SciKit 线性回归上出现“ValueError:形状未对齐”

    一般来说 SciKit 和 Python 的线性代数 机器学习相当新 所以我似乎无法解决以下问题 我有一个训练集和一个测试数据集 其中包含连续值和离散 分类值 CSV 文件被加载到 Pandas DataFrame 中并匹配形状 分别为 1
  • 初始化列表与向量

    在 C 11 中 可以使用初始化列表来初始化函数中的参数 其目的是什么 不能用 const 向量做同样的事情吗 下面两个程序有什么区别 使用初始化列表 include
  • Apache Beam 计数器/指标在 Flink WebUI 中不可用

    我正在使用 Flink 1 4 1 和 Beam 2 3 0 并且想知道是否可以在 Flink WebUI 或任何地方 中提供可用的指标 如 Dataflow WebUI 中那样 我用过类似的计数器 import org apache be
  • 数据库操作的任务与服务

    JavaFX 8 任务和服务之间有什么区别 在哪种情况下使用其中一个更好 数据库操作用什么比较好 任务和服务之间的主要区别 一次性执行与重复执行 A Task http docs oracle com javafx 2 api javafx
  • C 中的布谷鸟哈希

    有没有人有实施布谷鸟哈希 http en wikipedia org wiki Cuckoo hashing在C语言中 如果有一个开源的非 GPL 版本那就完美了 既然 Adam 在评论中提到了它 有人知道为什么它没有被太多使用吗 这只是一
  • Python 3.10 匹配/大小写与常量[重复]

    这个问题在这里已经有答案了 我尝试用更短的代码块替换 if elif elif else 代码块match case从 Python 3 10 开始 我定义了三个常量 并希望对每个常量执行不同的操作 因此我的代码大致如下所示 gt gt g
  • BadTokenException:无法添加窗口——令牌 null 无效;您的活动正在运行吗?在activity.isFinishing语句中

    如果用户仍在当前活动中 我有一个需要在几秒钟后显示的弹出窗口 我实现了一个语句 检查活动是否未完成 销毁 然后显示弹出窗口 对于周末用户来说 它工作得很好 从一个活动缓慢单击到另一个活动 但在高压测试中 活动正在重新创建 完成 快速移动形式
  • Android studio 导航抽屉在设计视图上显示黑屏

    我安装了 Android studio 3 1 3 但它只显示黑屏 构建 gradle apply plugin com android application android compileSdkVersion 28 defaultCon
  • 使用 Google App Script 从 google 驱动器中进行 OCR 图像

    我已经实现了以下脚本 使用图像 URL 对单个和多个图像进行 OCR function doOCRALL var selected SpreadsheetApp getActiveSheet getActiveRange getValues
  • iOS 7 后退按钮符号?

    我真的很喜欢 iOS 7 中后退按钮箭头的形状 并且想在我的一个 UIButton 上使用它 但像 gt 而不是 You have to use an image These assets are in the original size
  • Ada-Delta 方法在具有 MSE 损失和 ReLU 激活的去噪自动编码器中使用时不会收敛?

    我刚刚实施了 AdaDelta http arxiv org abs 1212 5701 http arxiv org abs 1212 5701 用于我自己的深度神经网络库 这篇论文说的是 AdaDelta 的 SGD 对超参数不敏感 并