89
правок
Изменения
→Конформер
Архитектура трансформер, основанная на [[Механизм внимания#Self-Attention|самовнимании]] позволяет фиксировать взаимодействия на большом расстоянии, однако не очень хорошо извлекает точные паттерны локальных признаков. [[Сверточные нейронные сети]], наоборот, эффективно используют локальные признаки, но требуют большого числа слоев для захвата глобального контекста. Архитектура Конформер (англ. ''Conformer'') берет лучшее от двух подходов, комбинируя свертки и механизм самовнимания, достигая $WER$ $1.9\%/3.9\%$ на LibriSpeech.
Кодировщик сначала обрабатывает входные данные с помощью сверточной нейронной сети, состоящей из слоя [[Сверточные нейронные сети#Пулинговый слой|пулинга]], [[Нейронные сети, перцептрон|полносвязного слоя]] и [[Сверточные нейронные сетиПрактики реализации нейронных сетей#Пулинговый слойДропаут|дропаута]]), а затем с помощью последовательности блоков конформераКонформера.
Блок Конформера состоит из двух модулей прямой связи (англ. ''feed forward''), между которыми расположены модуль многоголового самовнимания (англ. ''Multi-Head Self Attention'') и сверточный модуль свертки, с последующим слоем нормализации.
<br>
<br>
<br>
[[Файл:Multi_Head_Self_Attention_module.png|300px|thumb|right|Модуль многоголового самовнимания]]
'''Модуль многоголового самовнимания'''<br>
В модуле используется блок многоголового внимания с относительным позиционным кодированием (англ. ''Multi-Head Attention with Relational Positional Encoding''). Использование относительного позиционного кодирования[https://arxiv.org/pdf/1901.02860.pdf] позволяет модулю самовнимания лучше обобщать при различной длине ввода, а результирующий кодировщик более устойчив к неоднородности длины высказывания.
'''Сверточный модуль'''
[[Файл:Convolution_module.png|600px|thumb|right|Сверточный модуль]]
Последовательность слоев в сверточном модуле начинается с стробирующего механизма[https://arxiv.org/pdf/1612.08083.pdf]: сверточного слоя с ядром $1 \times 1$ и стробированного линейного блока (англ. ''gated linear unit''). Использование стробированного линейного блока уменьшает проблему исчезающего градиента. После сверточного слоя используется [[Batch-normalization|пакетная нормализация]].
===wav2vec===