Как стать автором
Обновить

Комментарии 15

Не совсем по теме поста, но в тему НС.
Недавно была статья про то, что гугл использует НС для апскейла изображений — тренирует сеточку для восстановления утерянной при масштабировании информации.
Вот у меня закралась мысль, а можно ли сделать такое же, для сжатия музыки? Например, сжимаем в mp3 128 кб/с и тренируем сеть для передискретизации или типа того… Сам я почти ни одной работающей нейронной сети не запрограммировал, поэтому столь сложную задачу для проверки гипотезы реализовать не смогу.
Лично я восстанавливал ВЧ для заранее известного голоса, сначала снижая частоту дискретизации до 8kHz, а затем восстанавливая при 44.1kHz. В силу того, что учил на проце, получилось не очень качественно, но вполне неплохо восстанавливало. С mp3 не пробовал.
Как я понимаю, результат будет зависеть от количества входов/выходов (т.е.количества отсчётов в передискретизируемом сэмпле) и количества слоёв в сети. Т.е. я уверен, что можно получить полное или почти полное совпадение с оригиналом, но размер сети будет сопоставим с размером wav файла. А вот если зазипованная сеть занимает килобайт 200-500, то вот интересно, насколько качественный результат будет. Разумеется, сеть обучается только на одном сжимаемом файле и сохраняется с ним.
Это как раз наименее интересный сценарий. Для качественной обработки крошечная сеть бесполезна, большая же может скачиваться один раз под весь сжимаемый материал. Объём сети зависит в основном не от числа входов-выходов, а от конфигурации скрытых слоёв. Я в своей работе оперирую сетями начиная с нескольких миллионов параметров.
Если миллион double на всю сеть, то это уже 8 мегабайт. Учитывая «случайность» она вряд ли пожмётся существенно. Значит, сразу дополнительно 8 мегабайт на файл. flac или mp3-320 дадут такой же или меньший размер файлов. Если миллион параметров на слое, то вообще огромный размер будет…
А если тренировать сеть на целый альбом, то даже нельзя отдельно песню перенести. В общем, может технически и не интересно, но с практической точки зрения важен именно минимальный размер сети, прилагаемой к каждому отдельному файлу.
Например, тот же mp3 низкого битрейта и там же в контейнер записана сеть. Можно любым плеером воспроизвести файл, а если плеер поддерживает НС, то он может её использовать для улучшения качества. Как бы и переносимость и профит… Если такое реализуемо, конечно. Если навскидку прикинуть, то сохранённые в файл параметры сети должны быть не более 1-2 мегабайт, иначе смысла в таком сжатии не будет. Т.е sizeof(flac) > sizeof( mp3-128 + NN), тогда есть практический смысл.
Ваш наивный метод не сработает. Тренировать надо не на альбом/песню/группу, а целиком на весь спектр материала, который будет сжиматься кодеком, только в таком случае это может быть оправдано.
Гугл же тренирует на каждую конкретную картинку (если я правильно ту статью понял). Потому и предположил, что подобное возможно и для аудио. Жаль, что нет.
Тренировать на единственной картинке не очень продуктивно, хотя и работает, скажем, для переноса стиля, как в КДПВ этой статьи. Конечно, можно использовать Deep Autoencoder, чтобы сжимать данные таким образом, но, так уж выходит, сам Autoencoder будет намного больше сжимаемых данных, потому передавать его вместе с данными нет никакого смысла. Что же касаемо гугла, я сейчас просмотрел статью про их superresolution, не увидел в ней ничего про тренировку на единственном изображении.
8 битную музыку можно «восстановить» до оркестровой симфонии, в теории? Вот например так https://youtu.be/kcKurvm_0oE
Это уже больше про Style Transfer, ибо восьмибитная музыка предполагает не просто запись с определённым уровнем искажений, а вполне себе отдельный набор инструментов с характерным звучанием. По переносу стиля в музыке тоже есть работы, но я ими не особо интересуюсь, так что касательно их способностей ничего определённого сказать не могу.
Или лучше пусть НС новую песню пишет, в стиле той же группы, при каждом запуске плеера. Кошмар правоторговцев )
А такое уже есть. Почти такое. Начинаешь на пианине играть, а НС допианинивает дальше.
А можно тоже самое про числа? Хоть списочком…
Спасибо, но, видимо, своё я тут уже отписал :)
Справедливо, значит, литература — не моё призвание.
Может, кто-то ещё напишет. Я бы почитал.
можно ли посмотреть на простую нейронную сеть которая будет выдавать сумму двух чисел?
я много читал. смотрел исходный код. кое что уже выстраивается в голове. но четкого представления принципов нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации