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

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

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

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

Добавлен: 29.10.2023

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

Скачиваний: 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эпох,производилосьнаGeForceRTX3060 изаняло приблизительно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