Почему deep learning — не панацея
Для каких задач не нужно глубинное обучение.
Тарас Кучеренко, PhD в Королевском университете Стокгольма, разрабатывает модели жестикуляции в healthtech-проекте EACare (Швеция) — роботизированной системе обнаружения ранних признаков деменции.
12 октября на r_d стартует его практикум по machine learning. В своей колонке Тарас рассказывает, в чем разница между deep learning и классическими методами machine learning.
DL vs ML
Глубинное обучение — один из методов machine learning. Ключевая разница между deep learning и классическими методами ML — в объеме необходимых для обучения данных. Классическим методам достаточно сотни примеров, чтобы начать работать с задачей. А чтобы начать обучать модель с помощью deep learning, обычно нужно хотя бы 10 000 примеров.
Кроме того, большинство эффективных DL-моделей довольно тяжелые. Они требуют много вычислений и памяти на девайсе, с которого будет запускаться продукт. Если вы хотите создать компактное решение, например, приложение для смартфонов, DL вам не подойдет. Классические методы машинного обучения, наоборот, могут быть очень легкими.
В последние 6-8 лет глубинное обучение решило ряд задач, у которых есть реальное практическое применение (распознавание речи, автоматический перевод, компьютерное зрение, самоуправляющиеся машины). Именно DL вывело machine learning из лабораторий в бизнес-сферу.
Задачи, которыми занимается DL, в основном связаны с естественными данными — речью, текстом, изображениями. При этом некоторые используют deep learning, не имея глубоких знаний того, как оно устроено. Есть библиотеки, которые позволяют это. Люди скармливают данные модели и тренируют ее до тех пор, пока она не будет работать. Если данных много и они качественные, можно получить хорошие результаты без особых усилий.
У тех, кто использует классическое машинное обучение, обычно задача сложнее. Им нужно выбирать, какой метод работает, как его применять, как правильно сформулировать таск.
На практике DL и классические методы часто применяются вместе. Например, социальные сети могут использовать классические методы, чтобы найти лицо на фотографии, а глубинное обучение — чтобы определить, кому это лицо принадлежит.
Ключевые методы классического machine learning
Самый популярный классический метод — это регрессия: линейная и полиномиальная. Она уже давно использовалась во многих компаниях, когда все только заговорили о deep learning.
Регрессию используют, когда нужно на основе X спрогнозировать Y в случаях, если данные непрерывные. На практикуме мы будем рассматривать методы только с такими данными. Также классические методы (в частности, k-средних) используют для кластеризации. То есть, для того, чтобы сгруппировать данные по определенным признакам.
Линейная регрессия — довольно простой метод. То есть, можно представить задачу в виде точек на плоскости, где по оси Х — то, что мы приняли на вход по оси У — то, что должны выдать на выход. Группа точек — это датасет. Линейная регрессия находит прямую, которая будет описывать связь между x и y наилучшим способом. По сути, мы пытаемся провести прямую, которая будет ближе всего к правильным у для каждого х. То есть, такая прямая позволит нам прогнозировать, каким будет показатель y для каждого нового х.
Полиномиальная регрессия похожа на линейную, но здесь мы пытаемся найти не прямую, а полином. То есть, решаем уравнение со многими неизвестными. Таким образом можно решить задачи, где связи между входом и выходом более сложные. Например, основываясь на температуре воздуха, спрогнозировать, сколько электричества будут использовать люди.
Аналогичные задачи можно решать по методу ближайших соседей. Он заключается в том, что для каждого нового входа мы находим ближайший самый похожий случай в датасете. Например, в случае диагностики для каждого пациента мы пытаемся найти человека с самым похожим диагнозом. На основе данных нескольких таких людей можно сделать прогноз для нового пациента.