Файл: Направление подготовки 09. 03. 04 Программная инженерия.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.10.2023

Просмотров: 234

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
(таким образом мы добиваемся того, что данные находятся в промежутке [0;1], как и в случае изображений).

mel_spec = lsa.feature.melspectrogram(y,

sr=int(AudioHyperParams.SAMPLING_RATE), n_fft=int(AudioHyperParams.FRAME_SIZE), hop_length=int(AudioHyperParams.FRAME_SIZE / 4), n_mels=int(AudioHyperParams.NUMBER_OF_MEL_BANDS))

log_mel_spectrogram = librosa.power_to_db(mel_spectrogram)
log_mel_spectrogram = (log_mel_spectrogram log_mel_spectrogram.min())

/ (log_mel_spectrogram.max() log_mel_spectrogram.min())
В режиме использования обрабатывающий компонент не обрабатывает аудиоинформацию, а передает матрицу (80, 430), заполненную нулями.

      1. Нейросетевой компонент


PyTorch имеет обширный набор функций для создания нейросетевых моделей. Опишем создание основных использованных слоев:

Двумерная свертка:

nn.Conv2d(in_channels=1,

out_channels=1, kernel_size=3

)
Одномерная свертка:

nn.Conv1d(in_channels=int(AudioHyperParams.EMBENDING_DIM), out_channels=125,

kernel_size=3

)
Использование двумерной свертки при работе с черно-белыми изображениями, которые по сути могут быть описаны матрицей, обусловлено спецификой работы одномерной свертки

- ядро движется только в одном направлении, то есть только вдоль входной матрицы - данный подход может быть применим к последовательностям, но не к изображениям, где нам важны пространственные характеристики.

При работе со слоями свертки мы отказались от субдискретизирующих слоев в пользу в пользу увеличения шага свертки (параметр strides).

Синоптические коэффициенты сверточных слоев инициализируются с помощью метода Хавьера, а начальные отклонения равняются одной сотой

Рекуррентный слой LSTM:

nn.LSTM(int(AudioHyperParams.MEL_SAMPLES), int(AudioHyperParams.EMBENDING_DIM), num_layers=2,


batch_first=True

)
Синоптические коэффициенты и начальные отклонения рекуррентных слоев инициали- зируются нулями.

В качестве методики обучения был выбран mini-batch. В классическом сценарии в одной итерации (предсказание модели и градиентный спуск) принимают участие шесть видеозапи- сей, данные из которых, проходя обработку, попадают в нейросетевой компонент.

Значение коэффициента α в функции ошибки генератора (2.3) в нашем случае было выбра- но как 100.

В качестве оптимизатора был выбран Adam. Adam — один из самых эффективных алго- ритмов оптимизации в обучении нейронных сетей [41]. Он сочетает в себе идеи RMSProp и оптимизатора импульса. Вместо того, чтобы адаптировать скорость обучения параметров на основе среднего первого момента (среднего значения), как в RMSProp, Adam также использует среднее значение вторых моментов градиентов. Используемые нами параметры оптимизато- ра: learning rate = 0.0002, β1 = 0.5, β2 = 0.999.

Реализация работы оптимизатора выполнялась с использованием фреймворка PyTorch.

generator = MainGenerator().to(device)

generator_optimizer = optim.Adam(generator.parameters(),

lr=TrainParams.LEARNING_RATE, betas=(TrainParams.BETA1, 0.999)

)

generator_loss = loss_from_D + TrainParams.ADDITIONAL_LOSS_COEFF * loss_from_mel generator_optimizer.zero_grad()

generator_loss.backward() generator_optimizer.step()
    1. 1   ...   7   8   9   10   11   12   13   14   15

Выводы


В данном разделе было описано построение модуля генерации аудиоинформации на осно- ве видеозаписи, а именно:

  1. Описаны требования к модулю.

  2. Выбор инструментальных средств: языка программирования, фреймворков и библиотек.

  3. Описана общая архитектуры модуля.

  4. Описана программная реализация модуля и этапы тестирования.
  1. Экспериментальное исследование метода генерации аудиоинформации на основе видеозаписи




    1. Набор данных для проведение экспериментальных исследований


Как и для обучения модели, для экспериментальных исследований использовался набор данных AudioSet [35], который содержит различные видео, поделенные на классы. Нами был использован класс видеозаписей Hammer, на данных видео совершаются удары различными инструментами.



Рис. 4.1 Пример кадров из использованных видео


Рис. 4.2 Пример мел-спектрограм из использованных видео

    1. Экспериментальная оценка эффективности модуля метода генерации аудиоинформации на основе видеозаписи


Модуль обучался на наборе данных, состоящих из 380 видео, изображения из видео мас- штабировались до размеров 512 на 215. Длительность обучения - 100 эпох, производилось на

GeForce RTX 3060 и заняло приблизительно 10
часов.

На рисунках ниже представлены оригинальные (снизу) и сгенерированные (сверху) спек- трограммы, соответствующие одному видео.

Рис. 4.3 Первая эпоха обучения



Рис. 4.4 Вторая эпоха обучения
Сравнив результаты, изображенные на рисунках 4.3 и 4.4, можно сделать вывод, что гене-

ратор относительно быстро перешел от белого шума к более-менее правдоподобным данным. Подобная быстрая адаптация нейросетевой модели под необходимый формат данных, по на- шему мнению, обусловлено использованием не только BCE (2.1), но и MSE (2.2) в функции ошибки генератора (2.3).

Дальнейшее обучение привело к снижению влияния MSE и увеличению влияния оценки дискриминатора на обучение генератора. Следует упомянуть, что и дискриминатор на позд- них этапах обучения снизил собственную функцию ошибки (2.4) и стал эффективнее опреде- лять оригинальную спектрограмму от сгенерированной.

Рис. 4.5 Девяносто восьмая эпоха обучения
Графики ошибок представлены на рисунках 4.6 и 4.7

После обучения было проведено экспериментальное исследования работы модуля. В каче- стве тестовой выборки было взято 40 видео из того же класса набора данных AudioSet. В режиме использования нейросетевой компонент в качестве входной мел-спектрограммы использует нули.

Исходя из рис. 4.8 и 4.9 можно сделать вывод
, что нейросетевой компонент эффективно обучился определять характеристики звука по видеоинформации. Стоит отметить, что задача генерации аудиоинформации только соответсвующей видео не решена до конца - модель ге- нерирует избыточное количества шума и не всегда создает необходимую периодичность сиг- налов.




Рис. 4.6 Средняя ошибка дискриминатора в зависимости от эпохи


Рис. 4.7 Средняя ошибка генератора в зависимости от эпохи

    1. 1   ...   7   8   9   10   11   12   13   14   15