Классификатор изображений
Есть битовая матрица, содержащая изображение круга, квадрата или треугольника (фигуры закрашены). Изображение может быть немного искажено или содержать помехи. Задача — написать алгоритм, который по матрице выяснит, какая фигура нарисована на изображении. Эта простая с первого взгляда задача встретилась мне на вступительном экзамене в DMLabs. На первом занятии мы обсудили решение, а преподаватель (Александр Шлемов; он также руководил дальнейшей реализацией) показал, почему для решения лучше использовать машинное обучение. В процессе дискуссии мы обнаружили, что наши решения делятся на два этапа: фильтрацию помех и вычисление какой-то метрики, по которой будет проходить классификация. Тут возникает проблема нахождения границ: необходимо знать, какие значения метрики могут получаться для каждой из фигур. Можно проложить эти границы вручную «на глазок», но лучше поручить это дело математически обоснованному алгоритму. Таким образом мы подходим к использованию методов машинного обучения (Machine Learning). Таким образом эта учебная задачка стала для меня введением в Machine Learning, и я хотел бы поделиться с вами этим опытом.Читать дальше →