Neural Network

neural network — слои искусственных нейронов, обучаемые на данных

Раздел
Основы AI
Сокращ.
NN, ANN
Обновлено
05.09.26

Нейросеть (neural network, искусственная нейронная сеть) — математическая модель, в которой простые элементы-«нейроны» собраны в слои и обмениваются числами. На вход подаются данные (пиксели, токены, звук), через слои они превращаются в ответ. Веса связей между нейронами подбираются во время обучения на примерах. Нейросети используют для распознавания изображений, работы с речью, генерации текста и многих других задач.

Коротко

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

От примеров к правилу

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

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

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

Что считает искусственный нейрон

В простой полносвязной сети вычисление одного нейрона выглядит так:

выход = activation(w₁ × x₁ + w₂ × x₂ + … + wₙ × xₙ + b)

Здесь:

  • x — входные числа;
  • w — веса: каждый вход сначала умножается на свой коэффициент;
  • b — смещение, которое прибавляется к сумме;
  • activation — функция активации.

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

Это удобная начальная схема, но не описание любого блока. В нейросетях также есть свёртки, внимание, нормализация, пропуски между слоями и другие операции.

Зачем нужны слои

На вход сеть получает числовое представление данных. Например, небольшое чёрно-белое изображение размером 28 × 28 содержит 784 значения яркости. Текст обычно сначала разбивают на токены и превращают в векторы.

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

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

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

Как меняются веса

Рассмотрим обучение с известными ответами:

  1. Модель получает пример или небольшую группу примеров.
  2. Выдаёт предсказания.
  3. Функция потерь оценивает расхождение с нужным результатом.
  4. Обратное распространение вычисляет градиенты — как малые изменения параметров повлияли бы на потери.
  5. Оптимизатор использует градиенты, чтобы обновить параметры.
  6. Процесс повторяется на следующих примерах.

Веса не сдвигаются на одну и ту же фиксированную величину. Изменение зависит от градиента, алгоритма оптимизации и настроек, в том числе скорости обучения.

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

Кто даёт правильные ответы

Ручная разметка нужна не всегда.

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

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

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

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

Пример с позой персонажа

Представим, что художник хочет взять позу со скетча и использовать её для новой иллюстрации.

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

Затем совместимый ControlNet помогает генератору изображения учитывать эту карту. В таком процессе работают разные обученные компоненты: один оценивает позу, другой использует её как условие генерации.

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

Что нейросеть не гарантирует

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

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

Хороший результат на обучении не равен качеству в работе. Фотографии, язык или условия съёмки у пользователей могут отличаться от обучающей выборки.

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

С чем часто путают

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

Нейросеть и AI. Искусственный интеллект — более широкая область. В ней есть и другие методы: поиск, символьные правила, деревья решений.

Нейросеть и алгоритм. Сеть не находится вне программирования. Её вычисления выполняются алгоритмами; отличие в том, что значительная часть поведения определяется параметрами, найденными на данных.

Нейросеть и модель. Нейросеть — один из видов моделей. В практической работе словом «модель» часто называют уже обученный комплект архитектуры, весов и конфигурации.

Частые вопросы

Сколько параметров должно быть?

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

Сеть учится во время каждого ответа?

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

Нужна ли видеокарта?

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

Что значит «глубокая» сеть?

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

Главное

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

Источники