Всем привет! Коллеги, решаю задачу классификации (коротких) текстовых сообщений. Количество классов ~ 1000. Задача сама по себе не сложная, но столкнулся с проблемой - изменения в методике классификации, которые проводились ранее.
Например, из класса А могли «выделить» класс В, или, наоборот, два класса А, В «схлопнуть» в один класс А и т. д. Данные ситуации приводят к существенному снижению точности классификатора.
Поделитесь, пожалуйста, своим опытом решения подобных проблем.
делать сеть в которой есть 2 слоя в конце:
предпоследний слой с 100 000 классов, явно больше чем когда-либо будет нужно
последний слой с 1000 классов. при обьединении или разделении класса достаточно перетренировать только последний слой, или даже отдельные нейроны, если границы остальных классов не задеты
предпоследний слой можно тренировать с функцией ошибки на основе ортогональности (независимости, отсутствии корреляции классов) и на основе равнозначимости (простой случай - дропаут, средний - штраф за веса близкие к 1, сложный - считать корреляцию активности каждого из классов с активностью классов последнего слоя)