Набор данных выглядит следующим образом:
In [5]: df.head()
Out[5]:
_unit_id category category:confidence image_url
0 851505458 ikat 0.3487 http://s3-eu-west-1.amazonaws.com/we-attribute...
1 851505459 plain 1.0000 http://s3-eu-west-1.amazonaws.com/we-attribute...
2 851505460 polka dot 0.6709 http://s3-eu-west-1.amazonaws.com/we-attribute...
3 851505461 plain 1.0000 http://s3-eu-west-1.amazonaws.com/we-attribute...
4 851505462 geometry 0.7035 http://s3-eu-west-1.amazonaws.com/we-attribute...
Здесь _unit_id
содержит список изображений, image_url
содержит ссылку на него, category
определяет его метку (всего 17) и category:confidence
- вероятность того, что данный ярлык верный. Поскольку доверительная оценка не является распределением вероятностей, а скорее вероятностью наиболее вероятного класса, я подумал, что если вероятность первой записи (например) равна 0.3487
, то вероятность остальных классов может быть равномерно распределена как (1-0.3487)/16
. Тогда вероятности из softmax и эти оцененные вероятности могут быть оптимизированы с помощью MSE или перекрестной энтропии. Так как пользовательская функция потерь принимает только yTrue
и yPred
, я не знаю, как с этим справиться. Нужны подсказки. Если любой другой эффективный подход тогда предлагает!