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

Статью подготовили специалисты образовательного сервиса Zaochnik.

Почему машине проще научиться, чем объяснить ей правила

Содержание:

Почему машине проще научиться

Представьте, что вам нужно научить компьютер отличать кошку от собаки. Сколько правил придётся прописать? Форма ушей, длина морды, посадка хвоста, характер шерсти — и всё равно найдётся собака с треугольными ушами и кошка, которая всё портит. Именно на этом споткнулись первые исследователи искусственного интеллекта. Они пытались загнать человеческое мышление в свод жёстких инструкций: вот перечень допустимых ходов, вот правила, по которым машина выбирает решение. Для настольной игры такой подход ещё работал. Для реального мира — рассыпался.

Выход нашёлся неожиданный: перестать диктовать правила и позволить машине выводить их самой.

Определение 1

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

От свода инструкций к самостоятельному выводу

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

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

Две школы обучения

Учить сеть можно по-разному, и способов, по сути, два.

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

Без учителя. А теперь уберём ответы. Данных много, но никто не подсказывает, где правильно, а где нет. Сеть вынуждена разбираться сама — искать группы, сходства, скрытую структуру. Так работают системы, которые предсказывают поведение покупателей в интернет-магазине. Готовых меток «этот купит, а тот нет» не существует. Сеть сама сортирует посетителей и вычисляет, кто чаще берёт определённые товары.

Что скрывается за словом «глубокое»

Глубокое обучение — частный, но самый мощный случай машинного обучения. И оба подхода, с учителем и без, ему подходят. Разберём, как оно устроено, на понятном примере: пусть сеть оценивает стоимость авиабилета.

На вход мы подаём четыре параметра:

  • аэропорт вылета;
  • аэропорт назначения;
  • дату отправления;
  • предпочитаемую авиакомпанию.

Дальше данные идут по слоям, и слоёв этих три типа.

  1. Входной слой принимает исходные параметры. В нашем случае на нём четыре нейрона — по одному на каждый параметр. Он не считает, а лишь передаёт данные дальше.
  2. Скрытые слои — сердце системы. Именно здесь идут математические вычисления. Их может быть несколько, и определить, сколько слоёв нужно и сколько нейронов посадить в каждый, — одна из главных головоломок при проектировании сети.
  3. Выходной слой выдаёт финальный ответ — в нашем примере предсказанную цену билета.

И вот тут кроется разгадка названия. «Глубокое» — это буквально про глубину: про то, что скрытый слой не один, а несколько. Чем их больше, тем сложнее закономерности, которые сеть способна уловить.

Веса и функция активации: где живёт «понимание»

Осталось разобраться, почему сеть вообще что-то соображает. Секрет — в связях между нейронами. У каждой связи есть вес, и он показывает, насколько важен тот или иной признак. Скажем, при расчёте цены билета дата вылета обычно значит куда больше остальных параметров — значит, и связи нейрона, отвечающего за дату, получат больший вес. Забавно, что стартовые веса нередко раздают случайным образом, а уже в процессе обучения сеть сама доводит их до ума.

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

Замечание 1

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

Почему это дорого даётся

У медали есть оборотная сторона. Обучение глубокой сети — самая тяжёлая часть всей затеи, и по двум причинам сразу.

Первая — данные. Их нужно очень много. Вернёмся к билетам: чтобы сеть научилась предсказывать цены, ей потребуется гигантский архив исторических цен. А поскольку комбинаций аэропортов и дат вылета невообразимое множество, список этот разрастается до пугающих размеров. Механика проста: сеть прогоняет подготовленные данные, сверяет свои прогнозы с реальными значениями из тестового набора и корректируется.

Вторая причина — вычислительная мощность. Все эти прогоны, сравнения и пересчёты весов требуют серьёзного железа. Без него обучение либо растянется на вечность, либо не состоится вовсе.

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

Навигация по статьям