Нейронные сети
Модели машинного обучения из множества связанных «нейронов», которые учатся на примерах распознавать изображения, речь и текст.
Нейронная сеть — модель машинного обучения, устроенная как множество простых вычислительных элементов — искусственных нейронов, — соединенных слоями. Каждый нейрон получает числа на вход, умножает их на свои веса, складывает и передает результат дальше. По отдельности нейрон почти ничего не умеет, но сеть из миллионов нейронов учится распознавать лица, переводить тексты и отвечать на вопросы.
Как устроена сеть
- Входной слой принимает данные: пиксели изображения, слова текста в виде чисел, показатели операции.
- Скрытые слои последовательно выделяют все более сложные признаки. В сети для изображений первые слои находят края и линии, следующие — формы, последние — целые объекты.
- Выходной слой дает ответ: «на фото кошка с вероятностью 97%» или следующее слово текста.
Сети со многими скрытыми слоями называют глубокими, а их обучение — глубоким обучением (deep learning).
Как сеть учится
- Сеть получает пример и выдает ответ — поначалу случайный.
- Ответ сравнивается с правильным, и вычисляется ошибка.
- Метод обратного распространения ошибки определяет, как каждый вес повлиял на ошибку.
- Веса немного сдвигаются в сторону уменьшения ошибки (градиентный спуск).
Так повторяется миллионы раз на большом наборе примеров. Это огромный объем однотипных вычислений, поэтому обучение идет на графических процессорах.
Основные архитектуры
- Сверточные сети — для изображений и видео; основа компьютерного зрения.
- Рекуррентные сети — для последовательностей: речи, временных рядов. Во многих задачах их вытеснили трансформеры.
- Трансформеры — архитектура 2017 года, которая учитывает связи между всеми элементами последовательности сразу. На ней построены большие языковые модели и современные модели для изображений и звука.
Сильные стороны и ограничения
Нейронные сети лучше других методов работают с «неструктурированными» данными: изображениями, звуком, текстом. Но им нужно много данных и вычислительных ресурсов, а объяснить, почему сеть приняла конкретное решение, трудно — для банковских и медицинских задач это серьезное ограничение. На небольших табличных данных — например, в скоринге — классические методы вроде градиентного бустинга часто работают не хуже и прозрачнее. Еще один риск — переобучение: сеть с огромным числом параметров легко запоминает примеры вместо закономерностей.