Мечта многих — заменить олдскул в аудиокодеках на нормальный трансформер. У авторов это, наконец, получилось, хоть и не сразу. Они обнаружили, что «трансформер в лоб» не работает — и пошли разбираться почему. На постере причину не написали, но мы спросили — ведь ML-аудитории важны не только архитектура и таблички с метриками.
Так вот. Если обучить трансформерный кодек и проверить его через adversarial-атаку на дискриминатор, можно увидеть: искажения группируются по границам STFT-патчей, которые мы снимаем с wave-формы. Это значит, что трансформеры умеют подстраиваться под дискриминатор, ломая wave-форму в правильных узких областях. А эти узкие места всегда повторяются из-за регулярности периодичности.
Можно заметить, что сейчас мода на дискриминаторы с периодикой по простым числам. Авторы действуют нестандартно: используют дискриминаторы не по числам, а по золотому сечению. Говорят, что просто перебирали разные периодичности и пришли к этому решению. (Ссылку на работу Луки Пачоли дать забыли).
Ещё одна находка: моменты тишины убивают LayerNorm-статистики, поэтому сеть учится их игнорировать. Выход простой: значительно увеличивать эпсилон в формуле.
В остальном — авторы честно признались, что использовали FSQ, потому что это модно, а размер кодбука был спущен сверху продуктово.
В целом это всё напоминает статью Zoom с Interspeech, где использовали достаточно большой дискриминатор — и без просадок в инференсе получили буст качества.
Степан Комков
#YaICLR