Руководство для руководителей о том, как работают нейронные сети, без жаргона и сложной математики

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

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

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

Пример регрессии — прогнозирование цены на рейс

Шаг 1. Соберите исходные данные

Во-первых, мы хотим подумать о том, какие данные мы можем использовать для прогнозирования цен на авиабилеты. В нашем примере мы будем использовать 2 входа; расстояние полета в милях и типичная доля мест, забронированных на этом маршруте (т. е. использование).

Мы начнем с рейса между Лондоном и Токио, и реальная цена этого рейса составляет 900 фунтов стерлингов. Расстояние в милях между Лондоном и Токио составляет 5 936 миль, и обычно 90% мест на этом маршруте забронированы.

Шаг 2. Назначьте веса

Нам нужно что-то сделать с этими входными данными, чтобы получить цену в 900 фунтов стерлингов. Для этого введем веса. Сеть начнет со случайного присвоения весов каждому входу. На данный момент мы начнем с 0,2 для расстояния и 6 для использования полета. Затем мы умножаем входные данные на веса и суммируем их.

На первый взгляд, это не страшно, но мы можем сделать лучше.

Шаг 3. Введите минимальный порог

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

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

Шаг 4: рассчитайте ошибку

Мы знаем, что рейс из Лондона в Токио стоит 900 фунтов стерлингов, но наша сеть в настоящее время прогнозирует, что он будет стоить 1393 фунта стерлингов. Это означает, что 493 фунта стерлингов слишком высоки. Чем ближе мы к 900, тем лучше работает модель.

Шаг 5. Отрегулируйте вес.

Теперь модель будет корректировать веса. Давайте посмотрим, что произойдет, если мы используем 0,1 для расстояния и оставляем 6 для использования.

Лучше, но все еще не идеально. Модель будет продолжать корректировать веса, пока не приблизится к 900 фунтам стерлингов.

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

Пример классификации — предсказание того, что кто-то не совершит платеж по кредитной карте

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

Мы хотим предсказать, не совершит ли клиент дефолт при следующем платеже по кредитной карте.

Шаг 1. Соберите исходные данные

Мы начинаем с определения данных, которые могут помочь нам предсказать, не выполнит ли клиент обязательства. В этом примере мы будем использовать 3 входа; кредитный рейтинг клиента, история пропущенных платежей и их доходов.

Есть 2 клиента; тот, который интуитивно выглядит рискованным, и тот, который таковым не является.

Мы начнем с клиента А; они интуитивно выглядят рискованными, их кредитный рейтинг довольно низкий, доход ниже среднего, и у них есть 5 пропущенных платежей до этого.

Шаг 2. Назначьте вес и смещение

Затем мы случайным образом присваиваем веса каждому входу так же, как и раньше. Мы умножаем входные данные на веса и складываем их вместе.

Клиент А

В результате получается 340 баллов.

Теперь давайте посмотрим, как это выглядит для клиента Б. Этот клиент интуитивно выглядит менее рискованным; у них кредитный рейтинг 600, нет пропущенных платежей и доход 50 000.

Клиент Б

Результат - 370 баллов.

Шаг 3; активация

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

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

Когда мы вычисляем это для клиента A; мы видим, что результат равен 1. Модель предсказывает, что клиент, скорее всего, не выполнит свой следующий платеж.

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

Шаг 4; рассчитать убыток и скорректировать веса

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

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

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

Ссылки

Пуркейт, Н. (2019 г.) Практические нейронные сети с помощью Keras проектируют и создают нейронные сети с использованием принципов глубокого обучения и искусственного интеллекта. Доступно по адресу: https://portal.igpublish.com/iglibrary/obj/PACKT0005217.html (дата обращения: 19 августа 2022 г.).

_________

Мне нравится писать о науке о данных для бизнес-пользователей, и я увлечен использованием данных для получения ощутимых преимуществ для бизнеса.

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