Последняя версия курса Джереми Ховарда fast.ai глубокое обучение для программистов только началась. Он использует новую библиотеку fastai, созданную на основе PyTorch, и позволяет очень легко получать отличные результаты с минимальными усилиями при выполнении ряда различных задач.

Джереми показывает, что fastai чрезвычайно эффективен при классификации изображений, содержащих повседневные вещи, такие как разные породы домашних животных, но как насчет чего-то менее ImageNet-y, например спектрограмм для целей классификации звука.

Введите набор данных UrbanSound8k. Набор данных содержит 8732 помеченных звуковых отрывка (‹= 4s) городских звуков из 10 классов: air_conditioner, car_horn, children_playing, dog_bark, Drilling, enginge_idling, gun_shot, jackhammer, siren и street_music.

Можем ли мы преобразовать аудиофайлы в спектрограммы, а затем обучить CNN их классифицировать? Короткая продолжительность звуков кажется подходящей для CNN, так что давайте попробуем.

Мы можем использовать библиотеку python librosa для генерации спектрограмм и сохранения их для классификации.

Теперь, когда у нас есть изображения, мы можем обучить обычный классификатор изображений как обычно (за исключением того, что мы отключим аугментацию изображений fastai по умолчанию, поскольку это не имеет смысла на спектрограммах).

И результаты впечатляют. Нам быстро удалось достичь средней точности 80,5% для 10 кратных значений.

Согласно последней публикации на веб-сайте набора данных, средняя достигнутая точность составила 79%. Следует отметить, что это с обширным расширением, специфичным для звука, и без увеличения их максимальная точность составила 74%.

Таким образом, даже без какого-либо увеличения конкретных аудио данных, мы можем очень быстро превзойти самые современные задачи классификации аудио. Мы могли бы еще больше повысить точность за счет увеличения объема данных.

Довольно круто, что fastai "из коробки" может давать такие результаты даже на изображениях, далеких от тех, что есть в ImageNet!

А вот ссылка на блокнот.