Комментарии 8
Если как следует постараться, её можно поднять до 90%, а дальше каждый дополнительный процент придётся вырывать всё большими усилиями. При этом даже 99% точность означает, что каждую сотую картинку сетка ошибочно забанит, а каждую сотую недопустимую — пропустит. Когда у сервиса миллионы пользователей, такой недо-классификатор будет дико бесить пользователей, потому что с его ошибками будет постоянно сталкиваться каждый пользователь системы.
Совсем «замечательно», когда для экономии ресурсов сервисы ещё и не позволяют оспорить бан.
Человек тоже ошибается, и поскольку поставленная для разметки задача сложна, а контента на одну пар глаз приходится очень много, то шанс ошибиться очень высок. При этом, когда мы видим, что сеть недостаточна уверена в своем решении, то отправляем контент на ручную разметку. В итоге процент ошибок у нейросетей и живого модератора не так уж и отличается.
Да, 100% точности здесь достигнуть невозможно, но и нельзя полагаться только на ручную разметку. У автоматических алгоритмов есть свои плюсы — иногда модель делает предсказания точнее, чем человек (она не устает и не отвлекается во время работы). Другой важный момент — алгоритмы снижают нагрузку на психику наших модераторов, которым приходится отсматривать порой ужасные вещи.
Оставшийся 1% ошибок скорее всего будет нетривиальным кейсом не только для машины, но и для модераторов, и для пользователей. А из-за субъективности восприятия этот 1% может быть недопустим только для 1% пользователей, поэтому такая ошибка не будет настолько критична :)
а как оценивается / оцифровывается "недостаточная уверенность" ?
с теми же 6-ками и 1-ми
несмотря на то, что это вопрос к тем кто написал, на каком сновании первая шестерка в третьем ряду должна попасть к модератору на ручную разметку.?
хотя это наверно тема отдельной статьи...
и интересно, почему ни наоборот, ни одна из 1 не определилась как 6ка
В этой статье мы рассказали, что делать, когда разметки нет, поэтому стратегия к шестеркам и единицам из статьи не применима. В качестве альтернативы можно смотреть на расстояние объекта до центра кластера (как на аналогичную меру уверенности нашего алгоритма). Можно задать для каждого кластера N-мерную сферу (в нашем случае N=2 и сфера=круг), совпадающую своим центром с центром кластера, и считать, что объекты расположенные снаружи этой сферы с недостаточной точностью определены к выделенному кластеру, и отправлять их на дополнительную проверку.
Еще можно поиграться и ввести элементы нечеткой логики (fuzzy logic), при которой граница сферы будет в некотором роде размазанной, как туман рассеивающийся по мере удаления от кластера. Можно также попробовать брать не сферу, а более сложную фигуру, если это обосновано (кластер вытянут вдоль одной оси). В общем, простор для маневра большой, каждый случай уникальный и требует своего подхода.
и интересно, почему ни наоборот, ни одна из 1 не определилась как 6каПолагаю, здесь опечатка, т.к. в статье показано, что некоторые единицы определены как шестерки, но как раз нет ни одной шестерки, определенной как единица. Чтобы это понять, нужно посмотреть на матрицу ошибок, где на пересечении 1 (верный класс) и 6 (предсказанный моделью) стоит число 27 (оранжевый), а на пересечении 6 (верный класс) и 1 (предсказанный) — 0 (красный).
Почему не было шестёрок, предсказанных как единицы — сложно сказать, но предположу, что это может быть связано с отсутствием наклона влево у остальных единиц (это видно на рисунке ниже, где большинство единиц написаны без наклона), который мы видим у неверно классифицированных примеров.
благодарю за разъяснения.
с 6 / 1 напутал с формулировкой, Вы верно поняли.
наклон, да видимо он, что, вероятно, подтверждает двадцать 9ок (имеющих в своей основе левый наклон), определенных, как 1
а за счет чего, по вашему, получился такой большой процент ошибок в данном случае- 5% (явных ошибок 88 из 1797) ? можно ли его снизить?
Так мы увеличим количество чисел с наклоном и покажем модели, что это допустимое и достаточно частое изменение. Но для алгоритма из статьи такой подход может не сработать (из-за его простоты), поэтому для улучшения качества потребуется что-то сложнее, скажем, перцептрон или небольшая нейросеть на свёртках, которые смогут выделять более сложные паттерны. Если все получится, выйдет порядка 97-98% точности. Оставшиеся 2% скорее всего решить не выйдет, и даже если получится достигнуть 100% на этом наборе данных, то, отвлекаясь на столь небольшое число выбросов, мы рискуем потерять общность и получить больше проблем на новых данных (это называется переобучением).
Эти паттерны выделяет нейросеть, предобученная на большом наборе данных.
А можно пару слов (или еще одну статью) про это? Обычный ImageNet или ваши датасеты? Предобучена на классификации или что-то без учителя?
Как классифицировать данные без разметки