Вопрос или проблема
У меня может быть наивный вопрос о целесообразности использования бинарных классификаций. Это гипотетический пример, так что извините, если это слишком грубо.
Предположим, я хочу обучить машину векторной поддержки, чтобы классифицировать букву “a” от букв “b” и “c”. Проблема в том, что у меня нет буквы “a” для обучения модели SVM, но у меня есть много букв “A”, которые в принципе означают то же самое. Такая модель действительна?
Моя реальная проблема находится в области обработки изображений. У меня есть несколько пикселей, которые я хочу классифицировать с использованием текстуры, но у меня нет “класса” для этих пикселей. У меня есть эталон для чего-то очень похожего (о котором я знаю класс), и я использовал тот же тип текстуры (но с этих подобных пикселей) для обучения SVM и классификации. Эта SVM работает достаточно хорошо (оценено визуальным осмотром изображений) с некоторыми точностями до 90%. Проблема, как мне кажется, в том, что эта точность проверена на тренировке “A”, а не “a”.
Имеет ли это смысл?
Является ли что-то подобное действительным? или есть что-то еще, что я могу сделать, чтобы сделать эту классификацию действительной? Как проверить точность в подобной ситуации?
Это вопрос оценки, и ответ всегда один и тот же: если целью системы является обнаружение “a”, то она должна быть оценена на репрезентативном наборе данных, содержащем значения “a”. Практически это обычно предполагает, что подмножество реальных целевых данных должно быть вручную аннотировано (предпочтительно несколькими аннотаторами), чтобы его можно было использовать в качестве тестового набора.
Нет проблем обучать модель с любым набором данных, например с значениями “A”, или вручную строить модель на основе правил, или использовать случайный метод… Способ обучения модели не имеет значения, пока она работает так, как задумано. Чтобы проверить это, модель должна быть оценена на реальной целевой задаче. Если модель оценивается на данных с “A”, в лучшем случае вы доказываете, что система обнаруживает “A”, но вы не доказываете ничего относительно “a”. Альтернативой было бы независимо доказать, что обнаружение “A” эквивалентно обнаружению “a”, но это доказательство также потребовало бы аннотированного набора данных с значениями “a”, так что это не легче.
.
Ответ или решение
Обсуждая возможности обучения бинарного классификатора, цель которого заключается в распознавании маленькой буквы "a" на основе большого количества данных по большой букве "A", мы сталкиваемся с интересной и довольно распространённой проблемой в области машинного обучения и анализа данных. Чтобы адекватно ответить на этот вопрос, необходимо рассмотреть несколько ключевых аспектов, касающихся теории, примеров и приложения данных методов к практическим задачам.
Теоретический аспект
Теоретически, возможность обучения модели для классификации одного класса объектами другого зависит от того, насколько данные этих классов близки по своим характеристикам в пространстве признаков. В вашем случае, вы рассматриваете обучение модели для классификации "a" на основе "A". Хотя "A" и "a" визуально похожи, они представлены разными символами и могут иметь некоторые различия в их изображениях, которые особенно очевидны при обработке данных шаблонов с помощью компьютерного зрения.
Для того чтобы бинарный классификатор был эффективным, ему необходимо уметь выделять различия и схожести внутри классов и между ними. При использовании SVM (метода опорных векторов), качество классификации зависит от того, насколько хорошо аппроксимировано разделяющее гиперплоскость между классами "a" и их противоположностями — например, "b" и "c".
Имея только данные об "A", вы рискуете обучить модель, недостаточно способную аппликативно отличить "a" от других букв, так как форма малой буквы "a" и заглавной "A" может различаться, особенно в формах шрифтов.
Пример
Представим задачу: вы пытаетесь создать систему для распознавания мягких игрушек на фотографиях, имея тренированные модели только на изображениях твердых игрушек. Если бы, например, вы имели только фото больших игрушек и тренировали модель для распознавания маленьких, сама по себе модель могла бы не распознавать нужный объект, потому что она не привыкла к масштабу и деталям, связанным с новыми условиями.
Применение
Переходя к практике, если вашей целью является достижение высокой точности в распознавании "a", вам необходимо обеспечить качественный набор данных, отражающий специфические свойства целевого класса. Поскольку ваши тесты на "A" показывают высокую точность, это может указывать на то, что приучение модели к "a" будет успешным при условии, что вы предоставите хотя бы часть данных с примерами этих знаков для тюнинга и оценки модели.
Также вы можете применить техники адаптации домена (Domain Adaptation) — стратегии, нацеленные на перенос знаний между разными, но похожими задачами. Однако, даже адаптация домена потребует наличия хотя бы некоторого объема данных "a" для калибровки точности модели, поскольку совершенно новая среда может предъявлять другие требования к точности модели, которые необходимо учесть.
Вам следует рассмотреть возможность использования генеративных состязательных сетей для синтеза дополнительных данных, которые помогли бы восполнить пробелы в вашем наборе данных:
-
Генерация данных: Используйте GAN для синтеза изображений "a", полагаясь на сходство с уже имеющимися образами "A".
-
Тонкая настройка модели: Применяйте transfer learning и дообучайте модель на синтезированных и истинных образцах "a" для повышения её точности.
-
Оценка и тестирование: Непосредственно выделите часть данных для тестирования модели на настоящем классе "a", чтобы обеспечить метрики качества, которые будут релевантны вашему сценарию.
Итак, обучать классификатор на основе данных для столь близких классов возможно, однако необходимо учитывать разницу между ними и тестировать модель на том классе, к которому вы примените ее на практике, с использование тщательного выбора и генерации данных для тренировки и совершенствования модели.
Таким образом, достигнув высокой точности, попробуйте разрабатывать и расширять конфиденцию данных с новыми переменными для решения задач, используя более аутентичный набор данных, что поможет в адаптации и достижении цели — классификации малой буквы "a".