Как работает глубокое обучение — просто о сложном

«Сегодня в сфере IT очень популярны такие технологии, как искусственный интеллект (ИИ) и машинное обучение. Словосочетание «искусственный интеллект» используется направо и налево. Среди людей, обучающихся на разработчиков, очень много тех, кто хотел бы изучать науку об ИИ. Директора многих компаний хотят внедрять ИИ в свои сервисы. Но зачастую многие из них даже не понимают, что такое искусственный интеллект», — пишут FreeCodeCamp.
В данной статье рассматриваются различия между ИИ и машинным обучением. Также здесь объясняются принципы действия самой популярной разновидности машинного обучения – глубинного обучения.
Для понимания материала не требуются глубокие математические знания.
Немного о терминологии
Прежде всего, нужно разобраться в основных терминах.
Искусственный интеллект и машинное обучение
Искусственный интеллект – воссоздание человеческого интеллекта в компьютере.
На заре ИИ-разработок ученые пытались воссоздать человеческий интеллект для решения конкретных задач, например для игр.
Они программировали компьютер на исполнение большого списка инструкций. У машины был четкий перечень допустимых действий, исходя из которого она действовала.
Машинное обучение подразумевает способность машины обучаться, используя обширные массивы данных вместо жестко запрограммированных инструкций.
Эта технология наделяет компьютер способностью обучаться самостоятельно. Данный способ обучения обеспечивается за счет мощных ресурсов ныне производимых процессоров, которые способны без труда анализировать огромные массивы данных.
Обучение с учителем и обучение без учителя
Обучение с учителем основано на работе с входами и эталонными выходами данных.
При использовании обучения с учителем задаются определенные входные и выходные данные.
Если выходные данные не соответствуют ожиданиям, то компьютер сделает корректировку расчетов. Этот процесс повторяется из раза в раз, пока компьютер не сделает все без ошибок.
Прогноз погоды с использованием искусственного интеллекта является наглядным примером этого типа обучения. Компьютер обучается прогнозированию на основе данных за прошлые периоды. Входные данные в этом случае – это давление, влажность, скорость ветра, а на выходе – температура.
Обучение без учителя подразумевает обучение ИИ на основе наборов данных без определенной структуры.
Во время обучения без учителя ИИ осуществляет логическую классификацию данных.
В качестве примера можно привести прогнозирование поведения пользователей для интернет-магазина. Тренировка ИИ происходит без входов и выходов.
ИИ создает собственную классификацию входных данных. По итогу, машина выдаст, какие пользователи купят тот или иной товар с наибольшей вероятностью.
Глубокое обучение — принцип работы
Глубокое обучение — один из методов машинного обучения. С его помощью можно обучать ИИ прогнозированию выходов на основе набора входных данных. Здесь применяется обучение как с учителем, так и без учителя.
Для наглядности в качестве примера будет взят сайт по оценке стоимости билетов на авиарейсы. Обучение сервиса будет производиться с учителем.
Сервис должен спрогнозировать стоимость на основе следующих входных данных (обратные рейсы не учитываются):
- Начальный пункт полета;
- Конечный пункт полета;
- Дата вылета;
- Авиакомпания.
Нейросети
Что происходит в «мозгу» ИИ?
Так же, как в мозгу живого существа, у ИИ есть нейроны. Они обозначены в виде кружков. Нейроны связаны между собой.
Есть три вида слоев нейронов:
- Входной слой
- Скрытые слои
- Выходной слой
Входной слой получает входные данные. В нем 4 нейрона: начальный пункт полета, конечный пункт полета, дата вылета, авиакомпания. От этого слоя входные данные транслируются на первый скрытый слой.
В скрытых слоях выполняют математические операции с данными. Одна из трудностей при создании нейросетей – определить количество скрытых слоев и сколько нейронов в каждом слое.
Глубокое обучение потому и называется глубоким, что количество скрытых слоев больше одного.
Выходной слой выдает, что получилось в итоге, то есть примерную оценку стоимости рейса.
Как именно вычисляется прогноз стоимости?
Каждая связь между нейронами имеет вес, который определяет важность входного значения. Изначально веса произвольные.
Для оценки стоимости авиарейса одним из важнейших параметров является дата вылета. Следовательно, связи с нейроном даты вылета будут обладать большим весом.
У каждого нейрона есть функция активации. Если простыми словами, одна из ее задач – «стандартизация» выходных данных.
После того, как входные данные прошли через все слои нейросети, выходной слой выдает выходные данные.
Как видно, все довольно просто.
Обучение нейросети
Обучение ИИ – сложнейший этап глубокого обучения.
Во-первых, набор данных должен быть огромным.
Во-вторых, ресурсы для вычислений должны быть очень большими.
В случае с сервисом по оценке стоимости авиарейсов, необходимы данные о стоимости билетов за прошлые периоды. Комбинаций аэропортов и дат вылета очень много. Поэтому придется работать с очень большим количеством вариантов цен на билеты.
Для обучения машины потребуется задать входы из набора данных и сравнить полученные выходы с выходами из набора данных. Поначалу выходы будут неверными.
После обработки, можно создать функцию стоимости, которая показывает, насколько неверными были выходы ИИ в сравнении с реальными выходами.
В идеале, она должна иметь нулевое значение. Это произойдет, когда выходы ИИ совпадут с выходами из набора данных.
Как сократить функцию стоимости?
Нужно изменить значения весов. Можно менять их случайным образом, пока функция не сократится, но это не очень удобно.
Лучше применить метод под названием «градиентный спуск».
С его помощью можно найти минимум функции стоимости.
Веса изменяются с небольшим нарастанием после итерации обработки каждого набора данных. С помощью вычисления производной функции стоимости, можно узнать направление минимума функции.
Чтобы узнать минимум функции, нужно обработать набор данных по многу раз. Без мощных вычислительных ресурсов здесь не обойтись.
Изменение весов с использованием градиентного спуска происходит автоматически. В этом заключается магия глубокого обучения!
Обученный ИИ сайта по оценке стоимости авиарейсов способен прогнозировать цены на будущее.
Где узнать дополнительную информацию?
Есть и другие типы нейросетей: сверточные нейронные сети для компьютерного зрения и рекуррентные нейронные сети для обработки естественного языка.
Для изучения технических аспектов глубокого обучения стоит пройти соответствующие онлайн-курсы.
Deep Learning Specialization, созданный Andrew Ng – на сегодня один из лучших курсов по глубокому обучению. Без получения сертификата его можно прослушать бесплатно.
Выводы
- В глубоком обучении применяются нейросети для имитации интеллекта живого существа.
- Нейросеть содержит три вида слоев нейронов: входной слой, скрытые слои, выходной слой.
- Связи между нейронами соответствуют некому весу, который определяет важность входного значения.
- Нейроны «стандартизируют» выходные данные с помощью функции активации.
- Для обучения нейросети нужен большой объем данных.
- Многократная обработка набора данных и сравнение выходов требуют применения функции стоимости. Она показывает степень отклонения выходов ИИ от реальных выходов.
- После каждой итерации прохода через набор данных, веса между нейронами задаются методом градиентного спуска, который сокращает функцию стоимости.