Machine Learning и Deep Learning: разбираемся, в чём разница

Логотип компании
Machine Learning и Deep Learning: разбираемся, в чём разница
Какие задачи решают и в каких областях эффективны Machine Learning и Deep Learning?

О Machine Learning и Deep Learning в двух словах

Если коротко, Machine Learning (машинное обучение) –  это класс алгоритмов, которые позволяют автоматически находить закономерности в данных и делать предсказания на их основе.

Deep Learning является подмножеством алгоритмов Machine Learning, основанным на использовании нейросетей с большим количеством слоев. Если быть точным, иерархия выглядит следующим образом: AI (Artificial Intelligence) – ML (Machine Learning) – NN (Neural Networks) – DL (Deep Learning).

Для каких задач подходит Machine Learning

Классическими видами задач, которые решает Machine Learning, являются:

●      Классификация: определение, принадлежит ли объект к заданным классам (например, нужно отличить кошку от собаки по фотографии).

●      Регрессия: предсказание числового значения (например, прогнозирование суммы, которую человек потратит в интернет-магазине).

●      Ранжирование: упорядочивание набора объектов, определение «лучших» и «худших» (как делают поисковые и рекомендательные системы).

Например, по данным пассажиров Титаника нам нужно определить выжил ли этот пассажир в кораблекрушении ли нет. В рамках этой задачи, обучающая выборка представляет собой определенное количество людей, о каждом из которых известно, пережил он катастрофу или нет.  Эта информация называется целевым значением (target) или разметкой.

Алгоритмы машинного обучения автоматически «обучаются» находить закономерности в данных и различать эти два множества пассажирова, и впоследствии могут предсказать, к какой группе относится любой человек, даже если он не был включен в обучающую выборку. Эти алгоритмы, как и любые другие, в конечном итоге работают с числовыми данными. Поэтому, важно иметь качественное числовое описание каждого объекта (это описание называется признаками). Например, при решении нашей задачи, признаками могут служить пол, возраст, класс каюты (закодированный числом), цена билета и так далее.

Предположим, у нас есть все эти данные. Теперь нам нужно  «обучить» компьютер определять выжил ли пассажир в катастрофе. Известно, что на спасательные шлюпки в первую очередь сажали женщин и детей. Таким образом, для этой конкретной задачи мы можем использовать очень простой алгоритм, основанный на одном признаке – поле. Мы можем значительно улучшить этот алгоритм, если для мужчин начнем учитывать возраст (чтобы отличить детей от взрослых). Мы можем вычислить средний возраст для выживших и не выживших на основе обучающей выборки. Затем, когда мы хотим сделать прогноз для определенного мужчины, мы просто сравниваем его возраст со средними значениями и относим его к тому классу, средний возраст в котором ближе к его возрасту.

Таким образом, мы получаем простой, но достаточно эффективный алгоритм для решения задачи. Конечно, этот алгоритм может совершить ошибку, так как, конечно же, есть выжившие взрослые мужчины и не выжившие дети в этой катастрофе, однако в дальнейшем алгоритм можно улучшить, используя дополнительные признаки, такие как, например, класс каюты.

Для каких задач нужен Deep Learning

Deep Learning успешно применяется в каждом из типов задач Machine Learning (классификация, регрессия, ранжирование), однако он также открывает дополнительные возможности в следующих направлениях.

Генерация признаков

Чем более качественное и полное признаковое описание объектов, тем лучше качество предсказаний. Каждый из слоев нейросети по факту является признаками для следующего слоя. Имея даже небольшое количество входных признаков нейросеть на их основе может генерировать новые признаки, которые все лучше и лучше с каждым слоем описывают объект.

Более того, можно в некотором смысле отказаться от определения изначальных признаков вообще: например, на вход нейросети для определения выживших можно дать фотографию человека (пиксели) и позволить нейросети сгенерировать необходимые признаки (определить возраст, пол, уровень дохода и др).

Это свойство генерации признаков имеет широкое применение само по себе. Так мы можем взять выходные значения нейронов из предпоследнего слоя нейросети и использовать эти значения как признаковое описание объекта для другого алгоритма Machine Learning и для решения совсем другой задачи.

Обработка естественного языка (NLP) и обучение без учителя (unsupervised learning)

Разметка данных играет критическую роль в машинном обучении. Однако вручную разметить большой объем данных может быть сложно или невозможно, поскольку иногда речь идет о миллиардах объектов для обучения. Несмотря на то, что нейросети – не единственный тип алгоритма для обучения без учителя, они демонстрируют выдающиеся результаты в некоторых областях.

Предположим, что перед нами стоит задача понять, является ли электронное письмо спамом на основе его текста. В ситуации, когда у нас недостаточно размеченной обучающей выборки, можно прибегнуть к подходу, основанному на нейронных сетях. Мы можем обучить нашу нейронную сеть предсказывать следующее слово в тексте на основе предыдущих слов. Такой подход позволяет обучать сеть на разнообразных неструктурированных текстах (например, на книгах и текстах из интернета), и для этого не требуется ручная разметка данных. Таким образом можно, в некотором смысле, обучить нейросеть понимать смысл текста.

После того, как нейросеть обучена на общих данных, её можно дообучить (или провести так называемый fine tuning) для решения конкретной задачи распознавания спама. Важно отметить, что для этого этапа потребуется сравнительно небольшой объем ручной разметки данных.

Генерация контента

Генеративные модели, такие как ChatGPT и Midjourney, являются, возможно, самыми известными применениями Deep Learning в настоящее время. Такие модели могут не просто предсказывать целевое значение, но и генерировать контент: формирование ответов на вопросы, поддержание диалога, создание изображений на основе текстового описания и даже видео. Достижения в этой области за последние несколько лет просто поражают воображение.

Где какой инструмент применять

Deep Learning эффективен в решении многих задач. Особенно хорош в задачах, которые эффективно решает человеческий мозг: обработка и генерация текста или распознавание образов на изображениях. Однако он требует больших вычислительных ресурсов и объемов обучающей выборки. «Большие» модели обучаются на миллиардах объектов, имеют миллиарды параметров и могут обучаться месяцами, используя сотни и тысячи GPU. Этот процесс дорог как с точки зрения обучения модели, так и с точки зрения применения модели для получения прогнозов.

Существует ряд более «простых» алгоритмов Machine Learning, которые хорошо подходят для решения относительно несложных задач: вроде предсказания выживших на Титанике. Эти алгоритмы, как правило, требуют гораздо меньших объемов обучающей выборки и вычислительных ресурсов. При этом, разные подходы часто комбинируют между собой. Например, чтобы применить «большую» нейросеть с хорошим качеством предсказания, но слишком объемной вычислительной сложностью, для предсказания, берут более простую модель и обучают ее подражать предсказаниям «большой» модели (это называется дистилляция).

В любом случае, итоговый выбор инструмента зависит от конкретной задачи, требуемого качества прогноза и доступных ресурсов.

Опубликовано 07.08.2023

Похожие статьи