gpt4 book ai didi

machine-learning - 如果输出层(标签)由 one-hot 向量和零向量组成,应使用什么损失函数?

转载 作者:行者123 更新时间:2023-11-30 09:40:43 24 4
gpt4 key购买 nike

我正在尝试使用 TensorFlow 和 Keras 设计基于深度学习的分类模型。在我的模型中,标签是一个可变长度的序列,例如:ABC、CADB 或 ABCDB。

为了简单起见,在输出层我使用固定长度(等于最长序列的长度)来存储所有序列。因此,如果序列的长度小于固定长度,则该序列由one-hot向量(对应于序列的实际长度)和零向量(对应于剩余长度)表示。

例如,如果固定长度为5,则序列CADB由4 * 5矩阵表示,如下所示:

CADB

请注意:该矩阵的前 4 列是 one-hot 向量,每一列都有一个且仅有一个 1 条目,所有其他条目均为 0。但最后一列的条目都是 0,这可以看作是补零,因为序列不够长。

如果所有向量都是one-hot向量,那么分类交叉熵是损失函数的一个不错的选择。但在我的情况下,某些向量(例如上图中的第 5 列)只有 0 个条目,并且分类交叉熵在这里不起作用。

所以我的问题是:在这种情况下使用什么损失函数

最佳答案

这就是我的理解:你有固定的序列长度作为输出。例如,序列的最大长度为 10,那么最后一层的输出长度为 10。在某些情况下,生成的长度序列仅为 4,在这种情况下,最后 6 个输出将为 0。
这是一个多标签多类分类问题。由于您在最后一个密集层中使用 Keras,因此您可以使用 sigmoid 激活,对于损失,您可以使用 binary_crossentropy。
虽然不确定您使用的是哪种架构,但是,像 RNN、LSTM 这样的序列模型可能是比简单模型更好的选择序列生成时的密集层。

关于machine-learning - 如果输出层(标签)由 one-hot 向量和零向量组成,应使用什么损失函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58888308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com