August 16, 2023

Как работают нейросети

И почему они входят в основу практически любых ИИ-продуктов

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

Кнопки-лампочки

Допустим, у оператора есть пульт с 10 кнопками, на которых обозначены цифры от 0 до 9, а также табло размером 10 на 10, состоящее из лампочек. Эти лампочки загораются таким образом, что становится видно начертание какой-либо цифры. Задача – только по изображению на табло определить, какую кнопку на пульте нажимает оператор.

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

Чтобы распознать цифру с высокой долей вероятности, не требуется перебирать все варианты ее начертания. Надо выделить только отличительные элементы, которые помогут дать верный ответ. Именно такую оптимизацию проводит нейронная сеть.

Давайте ее создадим! Для этого подключаем наше таб­ло к набору из 20–30 других лампочек по принципу «все соединены со всеми». Наша десятка лампочек по-научному называется входным слоем нейросети, второй набор – внутренним слоем. Эти слои связаны не напрямую, а через реостаты, которые регулируют электрическое сопротивление в сети. Таким образом, мощность свечения каждой лампочки внутреннего слоя будет зависеть от мощности всех приходящих к ней сигналов от всех лампочек, а также от выставленных на реостатах значений сопротивлений.

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

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

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

Сеть готова, переходим к ее обучению.

К доске!

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

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

Все цифры, нарисованные друг на друге послойно; рисунок цифры 7; отличительные части семерки выделены черным

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

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

Всемирная паутина

Мозг взрослого человека состоит из 80-90 млрд нейронов и сотни триллионов связей между ними. Известная искусственная нейросеть GPT-3 от компании OpenAI занимается языковыми задачами: распознаванием речи, переводами текстов, поиском ответов на вопросы, анализом и обобщением информации и т.д. Она имеет 175 млрд параметров. Недавно в свет вышла четвертая, более мощная версия, ее характеристики не раскрывались.

Среди других направлений работы ИИ на основе нейросетей отметим еще два.

  • Распознавание образов. Сюда входят поиск по картинкам, анализ медицинских данных, система контроля доступа, правоохранительная деятельность, криминалистика, обработка документов, картография. Есть успешные проекты применения ИИ в промышленности – металлургии, нефтегазовой сфере (нейросеть найдет брак в продукции или перспективное месторождение). Отдельным направлением можно считать управление транспортом.
  • Анализ больших данных. Активно используется в маркетинге, финансах, ИT, интернет-сервисах (анализ трафика). Простор для автоматизации и совершенствования бизнес-процессов тут огромен.
    Большим достижением также можно считать способность современных нейросетей не только распознавать текст, изображения и голос, но и генерировать их самостоятельно, что многократно увеличивает возможности применения ИИ в бизнесе и повседневной жизни.
Фото: открытые источники