【发布时间】:2019-02-15 01:08:12
【问题描述】:
假设我有一个网络应该学习两个不同的任务,例如识别图像是否包含猫、狗或两者。假设我们只有一些标签。所以对于一些图像我们知道有一只猫,对于一些我们知道没有猫,对于一些我们知道有一只狗,对于一些我们知道没有狗。然后标签看起来像这样(首先是狗,其次是猫):
[[None, 1]. [None, 0], [None, 0], [1, None], ...]
意义
- 对于第一个条目,我们知道存在一只猫,但我们不知道是否有一只狗
- 对于第二个条目,我们知道没有猫,但我们不知道是否有狗。
- 对于第三个条目,我们知道没有猫,但我们不知道是否有狗。
- 对于第四个条目,我们知道它是一只狗,但不知道是否有猫。
当然,这些标签可以很容易地分成两部分:
- 标签:
[[-1, 1]. [-1, 0], [-1, 0], [1, -1], ...] - 掩码:
[[1, 0]. [1, 0], [1, 0], [0, 1], ...]- 梯度计算应忽略的部分。
我怎样才能掩盖这些标签的渐变,这样它就不会尝试学习何时有None?
【问题讨论】:
-
如果把“没有猫”改成“这不是猫”,会不会对学习有很大的影响 --> 所以把
None改成0比如? -
是的,我很确定。假设有一只猫。甚至可能在 60% 的情况下。然后你告诉网络 60% 的案例是错误的信息。
标签: python tensorflow keras