Tensorflow 内置了Connectionist Temporal Classification (CTC) 损失和特殊的seq2seq 损失(加权交叉熵)的实现。
由于 CTC 损失也是为了处理 seq2seq 映射,我想知道这两个损失函数如何比较。我对 CTC 损失进行了很好的解释,发现目标序列被限制为不长于输入序列,而 seq2seq 损失不存在此限制。
我有一些问题(按相关性排序):
- 双向 LSTM 是否适合 seq2seq 损失?我只发现了带有 CTC 甚至更简单的损失函数的 b-LSTM 实现。2016 年有一篇帖子说当时这是不可能的。任何更新?
- 除了 seq2seq 没有的 CTC 损失的多对一限制之外,还有概念上的差异吗?例如,seq2seq 损失是否做出与 CTC 损失类似的条件独立性假设?
- 损失函数是否对优化器有偏好(RMSProp、ADAM、Momentum 等)?
- 损失函数对特定任务集是否更有效?
理论论证和实践经验都值得赞赏。