Проведите сравнительный анализ популярных моделей глубокого обучения (CNN, RNN/LSTM, Transformer) по следующим критериям: архитектурные принципы, типы задач, требования к данным и вычислениям, слабые стороны и варианты оптимизаций для ограниченных ресурсов (мобильные устройства)

3 Ноя в 19:14
2 +1
0
Ответы
1
Архитектурные принципы
- CNN:
- Локальные свёртки + разделяемые веса → извлечение иерархии признаков (edges → textures → объекты).
- Пуллинг/страйды для снижения размерности и увеличения рецептивного поля.
- Свойства: локальная инвариантность, переводная эквивариантность.
- RNN / LSTM:
- Рекуррентное состояние hth_tht обновляется последовательно: ht=f(ht−1,xt)h_t = f(h_{t-1}, x_t)ht =f(ht1 ,xt ).
- LSTM/GRU — механизмы затвора для борьбы с исчезающим градиентом (контроль записи/стирания/чтения состояния).
- Подходит для моделирования порядковых зависимостей и переменной длины последовательностей.
- Transformer:
- Самовнимание (self-attention): каждая позиция агрегирует информацию по всем позициям через веса внимания.
- Блоки: multi-head attention + position-wise feed-forward + позиционное кодирование.
- Параллелизм по длине последовательности (в отличие от RNN).
Типы задач
- CNN:
- Компьютерное зрение: классификация, сегментация, детекция.
- Аудио/спектрограммы, некоторые табличные/сигнальные задачи.
- RNN / LSTM:
- Языковое моделирование, синтез речи, распознавание речи, прогнозирование временных рядов, seq2seq.
- Transformer:
- NLP (перевод, суммаризация, генерация), сейчас лидирует; также ViT для изображений, мультимодальные задачи.
Требования к данным и вычислениям
- CNN:
- Данные: умеренные объёмы, эффективна с аугментацией.
- Вычисления: свёртки локальны, сложность примерно пропорциональна числу фильтров × размеру карты признаков; легко оптимизируется на SIMD/GPU.
- RNN / LSTM:
- Данные: последовательные метки/пары; меньше параллелизма → дольше обучение.
- Вычисления: последовательное обновление → ограниченный параллелизм; сложность по длине O(n)O(n)O(n) по времени, но не по параллелизуемости.
- Transformer:
- Данные: большие наборы данных дают сильную выгоду (pretraining + fine-tune).
- Вычисления/память: self-attention требует O(n2)O(n^2)O(n2) памяти и вычислений по длине последовательности nnn (точность: внимание на каждой паре позиций), с фактором размера модели ddd → условно O(n2d)O(n^2 d)O(n2d).
Слабые стороны
- CNN:
- Ограниченная глобальная зависимость без глубоких сетей/специальных блоков (dilated conv, non-local).
- Индуктивные предположения о локальности могут мешать в задачах с глобальной структурой.
- RNN / LSTM:
- Трудности с очень длинными зависимостями, медленное обучение из‑за последовательности.
- Меньше устойчивости к параллельной обработке (высокая латентность).
- Transformer:
- Высокие требования к памяти и вычислениям для длинных последовательностей (O(n2)O(n^2)O(n2)).
- Менее выражённый индуктивный приусад (нуждается в больше данных для стабильной обобщающей способности в задачах с малым набором данных).
Оптимизации для ограниченных ресурсов (мобильные устройства)
- Общие методы (для всех классов):
- Квантование: int8/4-bit/2-bit — снижает память и ускоряет инференс.
- Прореживание (pruning) и сжатие весов; последующее дообучение.
- Knowledge distillation: учитель → лёгкая модель (student).
- Mixed/half precision (FP16) где поддерживается.
- Аппаратные оптимизации: ONNX, TFLite, NNAPI, TensorRT.
- CNN-специфично:
- Лёгкие архитектуры: MobileNet (depthwise separable conv), ShuffleNet (group conv + channel shuffle), EfficientNet-lite.
- Использовать depthwise separable conv и pointwise conv для уменьшения FLOPs: уменьшение операций примерно в 1k\frac{1}{k}k1 по сравнению с стандартной свёрткой (в зависимости от каналов).
- Сжатие каналов, уменьшение разрешения входа, уменьшение числа слоёв.
- RNN/LSTM-специфично:
- Заменить LSTM на GRU (меньше параметров) или вычищающие/простые RNN с контролируемым аппроксимационным качеством.
- Truncated BPTT, сверточные альтернативы для локальных зависимостей.
- Квантование/прореживание, distillation в лёгкие RNN.
- Transformer-специфично:
- Модели-легковесы: DistilBERT, MobileBERT, TinyBERT, ALBERT (weight sharing).
- Архитектурные трюки: уменьшение числа слоёв/хэдов, факторизация матриц, share-weight, head pruning.
- Sparse/low-rank/linear attention: Linformer, Performer, Longformer, Reformer — снижают сложность до приближённо O(n)O(n)O(n) или O(nlog⁡n)O(n \log n)O(nlogn) в некоторых вариантах.
- Token reduction: pooling, token pruning, динамическая длина последовательности.
- Distillation + квантование до int8 + вырезание слоёв для мобильного развёртывания.
- Применять оптимизированные реализации внимания (FlashAttention) и использовать батчинг/обрезку последовательностей.
Короткие практические рекомендации
- Для задач на мобильных устройствах и изображениях — выбирать MobileNet/ShuffleNet/EfficientNet-lite + квантование + distillation.
- Для коротких последовательностей или когда важен латентный размер — лёгкие RNN/GRU с квантованием.
- Для NLP — использовать distilled/compact Transformer (DistilBERT, TinyBERT, MobileBERT) + prune+quantize или применять линейные/sparse attention при длинных входах.
Если нужно, могу предложить конкретные варианты архитектур и конфигураций (параметры, квантование, прогнозируемые скорости) для целевой платформы (Android/iOS/Edge TPU).
3 Ноя в 19:35
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир