Когда мы говорим о машинном обучении, то автоматически подразумеваем Python. Это справедливо: на Python есть множество удобных ML-инструментов, например, популярная библиотека PyTorch. Тем не менее, некоторые задачи можно решать с помощью С++. И не только ради эксперимента, а для увеличения производительности сервисов и упрощения работы с кодом.
Кирилл Колодяжный, разработчик СХД в YADRO, несколько лет изучает машинное обучение на С++. Он уже написал программы для поиска лица на фото и для распознавания объектов в реальном времени. Под катом — пять материалов Кирилла, после которых инженерам захочется «пересесть» с Python на C++. Хотя бы на время.
Кирилл Колодяжный — член программного комитета System Level Meetup для разработчиков на Linux и С++. Познакомиться с автором статей, а также с другими специалистами YADRO, Syntacore, Сбера можно 24 мая в Санкт-Петербурге. Митап пройдет в два потока — С/Linux Kernel и C++. Выбирайте интересное направление и приходите слушать доклады. А если живете в другом городе, подключайтесь к онлайн-трансляции.
Ищем объекты в пространстве с помощью computer vision
О чем серия: Как написать на С++ все возможные блоки приложения для распознавания объектов под Android? Кирилл не нашел готового ответа и решил реализовать приложение самостоятельно, а заодно опробовать модели компьютерного зрения YOLOv5 и YOLOv4. Чем закончился эксперимент, узнаете из статей.

Зачем читать: Автор подробно описал, как выстроить процесс, если хотите разработать computer vision-приложение под Android с элементами на С++. Можно использовать как пошаговое руководство, а можно вдохновиться и реализовать что-то свое.
Учим модель распознавать лицо Арнольда Шварценеггера среди других
О чем статья: Эта работа — полноценный гайд для тех, кто хочет обучить модель распознавать лица на фото с помощью С++. Автор рассказал, как описать структуру нейронной сети, какие готовые алгоритмы машинного обучения можно использовать и как применять предобученные глубокие сети.

Зачем читать: Погрузиться в тему распознавания лиц и отследить, как обучается модель — от загрузки обучающего датасета до готовой инфографики с найденным лицом Арнольда Шварценеггера.
Реализуем свертки для работы с PyTorch разными способами и обучаем модель
О чем серия: В первой части автор рассказал, что такое свертки в машинном обучении, и рассмотрел четыре подхода к их реализации. На простых примерах вы разберетесь, чем отличается быстрое преобразование Фурье от алгоритма Winograd. А во второй части Кирилл показал, как один из подходов применяется в решении задачи, и объяснил, какие ограничения накладывает обучение модели.

Зачем читать: Разобраться, как работает машинное обучение с точки зрения математики и найти алгоритм, который подойдет для решения вашей задачи.
Что еще о машинном обучении на С++ вы бы хотели узнать от Кирилла? Пишите в комментариях.