Глубокое обучение: что это, зачем нужно, чем отличается от машинного обучения

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

Что такое машинное обучение

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

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

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

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

Что такое глубокое обучение (deep learning)

Глубокое обучение (Deep Learning, DL) — это часть машинного обучения, которая работает с еще более сложными алгоритмами. В ней вместо стандартных математических способов решения задач применяются нейросети с большим количеством слоев, на каждом из которых находится множество искусственных нейронов.

Нейросети в полной мере стараются повторить принцип, по которому устроен человеческий мозг. Если в нейрон поступает слишком слабый сигнал, то в итоге он затухает, а если сильный и от двух соседних нейронов ― то он усиливается и передается дальше.

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

В глубоком обучении каждый слой нейросети работает с данными по-своему. Он их преобразует в какие-то собственные, не всегда понятные человеку данные, которые передает от слоя к слою. На первом слое выделяются самые простые признаки, а на последующих ― все более и более сложные.

Все это позволяет не обрабатывать данные вручную и также не писать алгоритмы с тысячей исключений. Понадобится только обучить модель тому, какой результат мы хотим получать в итоге. Но для этого необходимы огромные объемы данных, и чем больше их будет ― тем точнее получится результат.

Источник: Shutterstock. Глубокое обучение особенно эффективно для работы с неструктурированными данными

Разница между машинным и глубоким обучением

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

Глубокое обучение, в свою очередь, использует алгоритмы повышенной сложности, которые не до конца могут быть понятны даже тем людям, которые их создали. Дело в том, что при глубоком обучении компьютер учится самостоятельно получать тот или иной результат, который необходим его создателям. А какие нейронные связи выстраиваются для этого внутри механизма, не всегда можно отследить.

Это позволяет использовать глубинное обучение в тех случаях, когда мы работаем не с табличными данными, а с разрозненной информациеей, которая может быть «упакована» самыми разными способами, например, в картинку, текст или видеофрагмент.

  • Машинное обучение основано на обработке заранее подготовленных данных, где понятно, в каком столбце таблицы какая информация лежит. Глубокое обучение предполагает, что модели можно «скормить» совершенно неструктурированные данные ― например, видеопоток из системы наблюдения в метро, чтобы она начала определять там момент, когда пассажир падает на эскалаторе и вовремя останавливала его работу.
  • Для того, чтобы создать алгоритм машинного обучения, нет необходимости загружать в модель терабайты данных. Она вполне может обучиться решать свою задачу на сотне примеров. Для глубокого обучения необходимы огромные объемы данных, и чем их будет больше, тем лучше будет результат работы.
  • Чтобы запустить алгоритм машинного обучения достаточно обычного компьютера со средними параметрами производительности. А для создания моделей глубокого обучения понадобятся сервера с большим количеством специализированных графических процессоров. Обучение такой модели может занять недели и месяцы, и чем больше будет процессоров, тем быстрее оно закончится.
Источник: Shutterstock. Глубокое обучение стоит очень дорого, но в результате применения этого метода можно получить совершенно новые способы обработки информации

Что выбрать: машинное обучение или глубокое обучение

  1. Объем данных
    Для начала нужно понять, какой объем данных у нас есть для обучения модели. Если это небольшое количество данных, которые хорошо структурированы, например, в таблицу, то для работы с ними будет эффективнее использовать машинное обучение. А в случае, если необходимо обрабатывать огромный объем информации, внутри которого сложно найти закономерности, тогда понадобятся алгоритмы глубокого обучения.
  2. Тип данных
    Для машинного обучения применяют данные, которые легко преобразуются в числовые значения. Как идеал ― таблица, в которой размечены все столбцы и строки, а данные указаны цифрами.
    В глубоком обучении можно использовать данные которые сложно преобразовать в числа, например, картинки, текст или видео. Алгоритмы глубокого обучения могут самостоятельно разобрать их на числовые значения по признаками и научиться, например, находить данные о каком-либо человеке по его фотографии.
  3. Сложность задачи
    Если задача не требует серьезных вычислительных мощностей и может быть решена простым математическим уравнением, для таких случаев используется машинное обучение. А если задача нелинейная и сложная, например, нужно находить бракованные детали на конвейерной ленте завода, решить ее могут только модели глубокого обучения.
  4. Вычислительные ресурсы
    Если у вас есть только обычные компьютеры с ограниченной вычислительной мощностью, с ними могут работать только модели машинного обучения. В случае если есть ресурсы и доступ к серверам для обучения сложных моделей, тогда можно выбрать глубокое обучение.
  5. Интерпретируемость
    Если есть необходимость понимать каждый шаг, который совершает модель, то в таком случае лучше применять машинное обучение. В случае же с глубоким обучением не получится найти логику внутри алгоритма, почему компьютер принял то или иное решение.
  6. Время разработки
    Когда необходимо получить результат прямо сейчас, без долгой разработки и обучения, то используется машинное обучения. Для глубокого обучения понадобится серьезный подход к методам разработки, а также большое количество времени и денег на обучение модели.

Если вы только начинаете какой-либо проект, начните с машинного обучения, так как оно проще в освоении и потребует меньше ресурсов. А если ваша задача связана с данными, которые сложно структурировать, а также у вас есть архивы с большим количеством информации, выбирайте глубокое обучение.

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

Андрей Лебедев

Кейс Stworka: как создать ERP в облаке для 5000 строительных компаний

А также запустить маркетплейс для строителей и обрабатывать 1,5 млн артикулов ежедневно. Рассказываем, как компания Stworka развернула IT-инфраструктуру в Облаке...
Read More

Системы контроля версий: зачем они нужны и как их использовать

Мир разработки ПО издалека кажется непонятным и запутанным, но существуют инструменты, которые значительно упрощают жизнь и делают работу более эффективной....
Read More

Соглашение об уровне обслуживания (SLA)

Поговорим о документе, который может серьезно повлиять на успех проекта, будь то интернет-магазин, SaaS-платформа или любой другой онлайн-сервис. Речь пойдет...
Read More

Что такое S3 (Simple Storage Service)

Если вы только начинаете свой путь в разработке, вам обязательно нужно познакомиться с S3. Это краеугольный камень многих современных приложений...
Read More

Полный обзор NoSQL: особенности и использование

Развитие интернета диктует новые правила в разработке. Традиционные базы данных, которые называются реляционными (RDBMS), не справляются с задачами, которые требуют...
Read More

Как использовать DataSphere. Датасеты в DataSphere

Данные нужны в любой сфере: магазины анализируют продажи, в медцентры — истории болезней, ученые — результаты экспериментов. Чем больше информации,...
Read More

Основные задачи машинного обучения: классификация, регрессия, кластеризация и уменьшение размерности

Machine Learning ― это уже часть нашей повседневной жизни. От рекомендаций фильмов на Кинопоиске до спам-фильтров в почте — за...
Read More

Обзор CLI: командная строка и ее возможности

Когда были созданы первые компьютеры, операционной системой на них можно было управлять только при помощи ввода текстовых команд. Со временем...
Read More

Шардирование в базах данных: обзор концепции

В условиях стремительного роста объемов данных и увеличения нагрузок на информационные системы эффективность их масштабирования становится критически важной. Одним из...
Read More

Графический процессор (GPU): что это, для кого, разновидности

Дизайнерам, проектировщикам и разработчикам требуются мощные вычислительные ресурсы для работы. Обычный процессор (CPU) не справится с такими задачами, как обработка...
Read More