Началось всё с рассмотрения конкретной проблемы. Лучшие нейросети делают в лучшем случае около 20 ошибок на тестовых данных при распознавании цифр MNIST:
post1710682.html#p1710682Человек же делает максимум 10 ошибок (на себе потренировался, правда я взял не все 10000 примеров, а только те, которые не поддались нейросети). Если же добавить рассуждения (thinking), то количество ошибок можно уменьшить.
Здесь я развивал идею, которая объясняет причину превосходства человека над нейросетью на примере задачи классификации цифр MNIST:
1)
post1710355.html#p17103552)
post1710996.html#p17109963)
post1711355.html#p1711355Итак, вкратце перескажу мысль: человек понимает принцип, как эти цифры появляются на бумаге и в конечном итоге в датасете. Используя эти знания, человек распознаёт каракули лучше, благодаря вниманию к деталям.
То есть, грубо, в терминах ML, датасет изображений цифр нужно дополнить датасетом генерации этих цифр и тем самым расширить модальность нейросети. Это тупиковый подход, ибо создать такой дополнительный датасет - это гораздо более сложная задача, чем задача классификации. Я же хочу применить ленивый подход, пускай нейросеть сама решит эту задачу.
Я могу лишь помочь нейросети в следующем: я объясню, что цифра появляется в результате желания её написать и результат (изображение) зависит только от этого желания и правил написания цифры, которые одинаково справедливы для всех изображений этой цифры во всем датасете.
Модель строится следующим образом:
Правила написания цифр - это набор из 10 эмбеддингов, допустим, из 1024 признаков каждый. Мы берём конкретную цифру, по лейблу подгружаем нужный эмбеддинг, прогоняем через дополнительную нейросеть - генератор изображения цифры, получаем некоторое псевдоизображение, которое каким-то образом отличается от реального изображения, которое требуется распознать.
Думаю нужно рассматривать изображение как неупорядоченный набор пикселей

. Тогда можно сделать сравнение изображений с помощью функции потерь Range Uncovery (непокрытие диапазона). Здесь определение:
post1679466.html#p1679466Генератор изображений обучается независимо от классификатора, обучаются не только веса генератора, но и его эмбеддинги.
Помощь генератора при классификации применяется после его обучения и получения эмбеддингов-правил.
Допустим классификатор имеет сомнения - софтмакс выдаёт высокие вероятности для двух-трёх цифр. Генерируем эти цифры и сравниваем.
Обучение генератора будет сравнительно затратным по вычислительной сложности, но цель - уменьшение числа ошибок распознавания этого заслуживает. Пока никаких алгоритмов нет, просто наивная идея.