Нейронные сети

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

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

Как устроена сеть

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

Сети со многими скрытыми слоями называют глубокими, а их обучение — глубоким обучением (deep learning).

Как сеть учится

  1. Сеть получает пример и выдает ответ — поначалу случайный.
  2. Ответ сравнивается с правильным, и вычисляется ошибка.
  3. Метод обратного распространения ошибки определяет, как каждый вес повлиял на ошибку.
  4. Веса немного сдвигаются в сторону уменьшения ошибки (градиентный спуск).

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

Основные архитектуры

  • Сверточные сети — для изображений и видео; основа компьютерного зрения.
  • Рекуррентные сети — для последовательностей: речи, временных рядов. Во многих задачах их вытеснили трансформеры.
  • Трансформеры — архитектура 2017 года, которая учитывает связи между всеми элементами последовательности сразу. На ней построены большие языковые модели и современные модели для изображений и звука.

Сильные стороны и ограничения

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