TensorFlow Keras多重分类,需要准备哪些数据集?
例如,如果我想训练一个模型来分类“狗”、“猫”和“既不是狗也不是猫”。 我是否需要为“既不是狗也不是猫”准备数据集? 有没有办法只使用“狗”和“猫”数据集来实现这一点?是的,您应该拥有所有3个数据集。 从理论上讲,你可以只使用2来训练,如果两个逻辑都很低,你就可以声称这两个逻辑都不是。但是,您至少需要“两者都不”的DS来验证您的模型是否有效。TensorFlow Keras多重分类,需要准备哪些数据集?,tensorflow,keras,logistic-regression,multiclass-classification,Tensorflow,Keras,Logistic Regression,Multiclass Classification,例如,如果我想训练一个模型来分类“狗”、“猫”和“既不是狗也不是猫”。 我是否需要为“既不是狗也不是猫”准备数据集? 有没有办法只使用“狗”和“猫”数据集来实现这一点?是的,您应该拥有所有3个数据集。 从理论上讲,你可以只使用2来训练,如果两个逻辑都很低,你就可以声称这两个逻辑都不是。但是,您至少需要“两者都不”的DS来验证您的模型是否有效。 此外,如果使用3组训练,训练将更加稳健,速度更快。你可以尝试使用2个输出神经元,如狗和猫,当使用狗图片训练时,你将预期输出设置为10,猫设置为01,但如果
此外,如果使用3组训练,训练将更加稳健,速度更快。你可以尝试使用2个输出神经元,如狗和猫,当使用狗图片训练时,你将预期输出设置为10,猫设置为01,但如果给一张既没有猫也没有狗或将输出00的图片,这似乎不太可能
这是一个很好的工作机会,我目前正在使用MNIST Fashion数据集做作业,输出是10个类,我一直使用ReLu(意味着输出是0到无穷大,而不是0到1),当选择了类7时,通常输出层是[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0],这意味着,如果我输入一些任意的输入,输出很可能接近于0。您的问题是,输出很可能是非零的,并且您必须在不太可能是狗或猫的情况下确定某个截止点。是的,建议标记的数据具有“其他”类型,并添加一个额外的输出神经元以推断
其他
类型
让我们从“狗”或“猫”的二进制分类器开始
softmax
激活用于输出层狗
和猫
都低于其阈值,则发出两种
将来,如果有人添加,比如说
horse
(以及dog
和cat
),则需要修改代码。从长远来看,这似乎是一个不必要的复杂性。感谢您的及时建议。我如何知道在多类分类中“logits较低”,因为softmax激活函数将带来1个和输出?刚刚学习的sigmoid可用于多个神经元。谢谢你的回答@Asagao,谢谢你。我们可以将输出层中的乙状结肠视为自变量(不关心输出层中其他神经元的状态)。通常不建议进行分类,因为它增加了开发人员在单标签
(多类)情况下管理阈值的责任。通常,从长远来看,softmax可能有助于实现单标签。如果您使用的是多标签
,那么sigmoid可能是比softmax
更好的选择。免责声明:我是这个领域的初学者。@Asagao,为了更清楚地了解您的陈述并澄清任何误解<代码>刚学会的乙状结肠可以用于多个神经元:乙状结肠只能用于单个神经元。只是我们的输出中有多个神经元,每个神经元都有一个乙状激活。每个乙状结肠激活的输出神经元独立于其他神经元。他们甚至不知道其他人的存在。其中,'softmax'必须了解所有神经元,以规范化概率分布(0..1)下的所有可能输出。非常感谢您的进一步澄清,理解“只是我们有多个神经元在输出,每个神经元都有乙状结肠激活”。太好了。祝你有美好的一天