【发布时间】:2017-12-28 19:20:01
【问题描述】:
我正在寻找一种方法来实现输入的多个分类。指定了输出的数量,并且输出的类集可能相同也可能不同。样本属于每个类集的一个类。
我的问题是,目标数据和输出层应该是什么样的?可以使用哪些激活、损失和训练函数,该层应该如何连接到隐藏层?我不一定要寻找最佳解决方案,只是一个可行的解决方案。
我目前对可行的猜测是使目标数据成为多个连接的 one-hot 向量,并且输出层具有与向量数量一样多的 softmax 单元。我不知道这些层将如何与该解决方案连接,以及网络如何计算类集的大小。我认为标签 powerset 无法满足我的需求。
我认为 matlab patternnet 函数可以创建一个可以做到这一点的网络,但我不知道生成的网络是如何工作的。非常欢迎 TensorFlow 或 Keras 的代码。
【问题讨论】:
-
您可以使用 sigmoid 代替 softmax 来进行多标签输出。
标签: tensorflow neural-network keras multilabel-classification multiclass-classification