Проведите сравнительный анализ популярных моделей глубокого обучения (CNN, RNN/LSTM, Transformer) по следующим критериям: архитектурные принципы, типы задач, требования к данным и вычислениям, слабые стороны и варианты оптимизаций для ограниченных ресурсов (мобильные устройства)
Архитектурные принципы - CNN: - Локальные свёртки + разделяемые веса → извлечение иерархии признаков (edges → textures → объекты). - Пуллинг/страйды для снижения размерности и увеличения рецептивного поля. - Свойства: локальная инвариантность, переводная эквивариантность. - RNN / LSTM: - Рекуррентное состояние hth_tht обновляется последовательно: ht=f(ht−1,xt)h_t = f(h_{t-1}, x_t)ht=f(ht−1,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(nlogn)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).
- CNN:
- Локальные свёртки + разделяемые веса → извлечение иерархии признаков (edges → textures → объекты).
- Пуллинг/страйды для снижения размерности и увеличения рецептивного поля.
- Свойства: локальная инвариантность, переводная эквивариантность.
- RNN / LSTM:
- Рекуррентное состояние hth_tht обновляется последовательно: ht=f(ht−1,xt)h_t = f(h_{t-1}, x_t)ht =f(ht−1 ,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(nlogn)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).