Рекуррентные нейронные сети (RNN) — это тип искусственных нейронных сетей, способных обрабатывать последовательности данных. Они "помнят" предыдущие шаги в последовательности и используют эту информацию для текущего выхода. Хороши для задач, где контекст имеет значение, например, в анализе текста или временных рядов.
Бывают следующие виды рекуррентных сетей:
- Vanilla RNN: Простая рекуррентная сеть, страдает от проблемы исчезающего градиента. Хороша для коротких последовательностей.
- LSTM (Long Short-Term Memory): Улучшает работу с долгосрочными зависимостями, имеет три ворота (забывания, входа, выхода).
- GRU (Gated Recurrent Unit): Упрощённый LSTM с меньшим количеством параметров и двумя воротами (обновления, сброса).
- Bidirectional RNN: Проходит по данным в обоих направлениях, улучшая распознавание контекста.
- Attention Mechanisms: Не тип RNN, но часто используется с ними. Позволяет модели фокусироваться на определённых частях последовательности.
- Echo State Networks (ESN): Используют резервуар с фиксированными весами для быстрого обучения.
- Seq2Seq: Состоит из двух RNN, одна для чтения входной последовательности, другая для вывода. Часто используется в машинном переводе.
Сравним два популярных вида нейронных сетей LSTM и GRU
LSTM (Long Short-Term Memory) — это тип рекуррентной нейронной сети, который лучше "помнит" информацию на длинных последовательностях данных. В LSTM есть "ворота", которые решают, какую информацию сохранить или забыть. Это делает их хорошим выбором для задач, где долгосрочный контекст важен, например, в машинном переводе или распознавании речи.
GRU (Gated Recurrent Unit) — это упрощённая версия LSTM. Она тоже проектирована для работы с последовательностями данных и "помнит" предыдущую информацию. У GRU меньше "ворот" и параметров, поэтому она быстрее, но может быть менее точной в некоторых задачах. Она хорошо подходит для задач, где нужна скорость и не требуется сложный долгосрочный контекст.
LSTM (Long Short-Term Memory) и GRU (Gated Recurrent Unit) — это варианты RNN, об designed to mitigate the vanishing gradient problem. Основные различия:
- Компоненты: LSTM имеет 3 "ворота" (забывания, входа, выхода), GRU — 2 (обновления, сброса).
- Память: LSTM использует отдельные ячейки памяти, GRU — нет.
- Параметры: LSTM имеет больше параметров, что может улучшить точность, но увеличить время обучения и риск переобучения.
- Вычислительная сложность: GRU быстрее, но может быть менее точным в некоторых задачах.
Оба подхода хороши для обработки последовательностей, выбор зависит от конкретной задачи.
Свёрточные нейронные сети (CNN) оптимизированы для анализа визуальных данных, таких как изображения. Они используют "свёртки" для автоматического выделения признаков.
В контексте CNN, "свёртка" — это математическая операция, при которой фильтр (небольшая матрица) двигается по исходному изображению. То есть грубо говоря берутся соседние пиксели. Результаты этого прохода суммируются, формируя новое изображение (карту признаков), которое выделяет определённые характеристики, например, края или текстуры. Это позволяет автоматически извлекать важные признаки для дальнейшей классификации или анализа.
Отличия от RNN:
- Задачи: CNN хороши для анализа изображений, RNN — для последовательностей.
- Память: RNN "помнят" предыдущие шаги, CNN — нет.
- Структура: CNN имеют слои для свёртки и пулинга, RNN — рекуррентные слои.
- Вычислительная сложность: CNN часто требуют больше ресурсов для обработки одного шага, но могут быть эффективно параллелизованы.
Бывают следующие виды свёрточных сетей:
- LeNet: Один из первых CNN, используется для распознавания рукописных символов.
- AlexNet: Глубокая сеть, которая значительно улучшила распознавание изображений, выиграла соревнование ImageNet в 2012 году.
- VGG: Использует множество 3x3 свёрток для углубления архитектуры, хороша для анализа изображений.
- GoogLeNet/Inception: Имеет модули "Inception", комбинирующие свёртки разных размеров для лучшего выделения признаков.
- ResNet: Использует "остаточные соединения" для обучения очень глубоких сетей, решает проблему исчезающего градиента.
- DenseNet: Каждый слой получает на вход все предыдущие выходы, улучшает эффективность градиентного обучения.
- MobileNet: Оптимизирована для мобильных устройств, использует "depthwise separable convolutions" для уменьшения количества параметров.
- U-Net: Применяется в медицинской обработке изображений, имеет симметричную структуру для кодирования и декодирования.
- SqueezeNet: Минимизирует количество параметров, сохраняя при этом точность.
- EfficientNet: Скейлинг всех измерений (ширины, глубины, разрешения) для эффективного обучения.