Нейронные сети
Кратко
Нейронная сеть (neural network) — модель машинного обучения, построенная из слоёв искусственных нейронов. Каждый нейрон выполняет три операции: вычисляет взвешенную сумму входов, прибавляет смещение (bias) и применяет нелинейную функцию активации. Сила нейросетей в том, что признаки для решения задачи они извлекают из данных сами — их не нужно конструировать вручную.
Для чего используется
Нейросети применяются там, где зависимости слишком сложны для явных формул:
- распознавание изображений и компьютерное зрение — своей архитектурой (свёрточные сети);
- обработка последовательностей: речь, текст — рекуррентными сетями и трансформерами;
- аппроксимация функций в управлении и робототехнике;
- генерация изображений и текста (генеративные модели).
Как работает
Полносвязная сеть — последовательность слоёв, где каждый нейрон соединён со всеми нейронами соседнего слоя. Прямой проход — это чередование матричных умножений и функций активации: вход слой за слоем преобразуется в ответ. Без нелинейностей стопка слоёв схлопнулась бы в одно линейное преобразование — а линейный классификатор способен делить пространство входов только на полупространства, чего не хватает даже для простых задач распознавания.
Обучение — подбор весов:
- функция потерь измеряет ошибку сети на обучающих примерах;
- алгоритм обратного распространения ошибки (backpropagation) эффективно вычисляет градиенты потерь по всем весам, проходя вычислительный граф от выхода к входу;
- стохастический градиентный спуск (SGD) сдвигает веса против градиента, оценивая его по небольшим порциям примеров;
- обобщающую способность проверяют на отложенной тестовой выборке, которую сеть не видела при обучении.
Практические правила из стэнфордского курса CS231n: функция активации по умолчанию — ReLU (она заметно ускоряет сходимость SGD по сравнению с sigmoid и tanh); от переобучения защищаться не уменьшением сети, а регуляризацией большой сети. Теоретически сеть даже с одним скрытым слоем — универсальный аппроксиматор непрерывных функций, но на практике глубокие сети работают лучше.
Биологическая аналогия условна: мозг содержит порядка 86 млрд нейронов и 10^14–10^15 синапсов, искусственный «нейрон» — сильное упрощение настоящего.
Основные компоненты
- нейрон: веса, смещение, функция активации (ReLU, sigmoid, tanh);
- слои: входной, скрытые, выходной;
- функция потерь — мера ошибки;
- backpropagation + SGD — механизм обучения;
- регуляризация: dropout, штрафы нормы, аугментация данных.
Примеры
История нейросетей старше самого термина «искусственный интеллект»:
- 1943 — Маккаллок и Питтс показали, что благодаря принципу «всё или ничего» в нервной активности поведение нейронных сетей можно описывать логикой высказываний, — первая математическая модель нейрона.
- 1955 — «нейронные сети» значились среди семи направлений в заявке на Дартмутский проект по ИИ.
- 1957–1958 — перцептрон Фрэнка Розенблатта: первый обучаемый линейный классификатор, смоделирован на IBM 704; аппаратная машина Mark I Perceptron (400 фотоэлементов сеткой 20×20, веса на потенциометрах) хранится в Смитсоновском музее.
- ~2011–2012 — практический взлёт: стало возможно обучать большие сети, и с 2012 года нейросети добиваются превосходства во всё новых приложениях (см. глубокое обучение).
Связанные темы
Источники
- CS231n (Stanford) — модель нейрона, архитектура, ReLU, регуляризация, универсальная аппроксимация.
- Учебник по машинному обучению (ШАД, Яндекс) — backpropagation, обучение представлений, история практического применения.
- LeCun, Bengio, Hinton. Deep learning — Nature, 2015 — SGD, ограниченность линейных классификаторов.
- McCulloch, Pitts, 1943 — первая математическая модель нейрона.
- Wikipedia: Perceptron — перцептрон Розенблатта и Mark I.
- Deep Learning (Goodfellow, Bengio, Courville) — сети прямого распространения, регуляризация.