Хотите знать, как работает Deep Learning? Вот быстрый гайд

Глубокое обучение (оно же Deep Learning) – самый популярный тип машинного обучения. Читайте в статье о тонкостях работы с ним.

Deep Learning

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

Бэкграунд

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

Искусственный интеллект против машинного обучения

Искусственный интеллект – это репликация человеческого интеллекта в компьютерах.

Когда впервые началось изучение ИИ, исследователи пытались воспроизвести человеческий интеллект для конкретных задач: например, играть в игру.

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

Machine Learning относится к способности машины учиться с использованием больших наборов данных вместо жестко закодированных правил.

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

Управляемое обучение против неуправляемого

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

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

Примером управляемого обучения является предсказание погоды. ИИ учится прогнозировать погоду с использованием исторических данных. Данные обучения имеют входы (давление, влажность, скорость ветра) и выходы – результат (температура).

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

Когда вы тренируете ИИ с использованием неуправляемого обучения, вы позволяете ему делать логические классификации данных.

Примером неконтролируемого обучения является ИИ, предсказывающий пользовательское поведение для веб-сайта электронной коммерции. Он не будет изучать, используя помеченный набор данных входов и выходов. Вместо этого он создаст свою собственную классификацию данных и определит, какие пользователи чаще всего покупают те или иные продукты.

Как же работает Deep Learning?

Теперь вы готовы понять, что такое Deep Learning, и как оно работает.

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

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

  • Начальный аэропорт.
  • Аэропорт назначения.
  • Дата отбытия.
  • Авиакомпания.

Нейронные сети

Теперь давайте заглянем в мозг нашего ИИ.

Как и у животных, в мозге задействованы нейроны. Они представлены кругами. Такие нейроны являются взаимосвязанными:

Deep Learning

Нейроны сгруппированы в три разных типа слоев:

  1. Входной слой.
  2. Скрытый(е) слой(и).
  3. Выходной слой.

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

Скрытые слои выполняют математические вычисления на наших входах. Одной из проблем при создании нейронных сетей является определение количества скрытых слоев, а также количества нейронов для каждого такого слоя. «Глубина» в Deep Learning относится к наличию более чем одного скрытого слоя.

Выходной слой возвращает результат (выходные данные). В нашем случае это прогноз стоимости билета.

Глубокое обучение

Итак, как он прогнозирует цены?

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

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

Глубокое обучение

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

Ничего сложного, не так ли?

Обучение нейронной сети

Обучение ИИ – это самая сложная часть Deep Learning. Почему?

  1. Вам нужен большой набор данных.
  2. Вам нужно большое количество вычислительной мощности.

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

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

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

Как уменьшить функцию стоимости?

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

Вместо этого мы будем использовать метод градиентный спуск.

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

градиентный спуск

Чтобы свести к минимуму функцию стоимости, вам придется многократно перебирать данные. Вот почему нужна большая вычислительная мощность. Обновление веса с помощью градиентного спуска выполняется автоматически. Именно это является волшебством Deep Learning!

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

Больше информации

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

Если вы хотите изучить технический аспект Deep Learning, можно пройти онлайн-курс. В настоящее время одним из лучших курсов для глубокого обучения является набор уроков от Andrew Ng. Если вы не заинтересованы в получении сертификата, вам не нужно платить за этот курс. Подробнее о нем читайте в нашей статье.

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

Подытожим

  • Глубокое обучение использует нейронную сеть в качестве имитации животного интеллекта.
  • Существует три типа слоев нейронов в нейронной сети: входной слой, скрытый слой (слои) и выходной слой.
  • Соединения между нейронами связаны с весом, который диктует важность входного значения.
  • Нейроны применяют функцию активации данных для «стандартизации» выхода.
  • Для обучения нейронной сети необходим большой набор данных и приличная вычислительная мощность.
  • Итерируя через набор данных и сравнивая выходы, вы получите функцию затрат, указывающую, насколько ИИ далек от реального положения вещей.
  • После каждой итерации через набор данных вес между нейронами изменяется с помощью градиентного спуска, что позволяет найти минимум функции стоимости.

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ