Hlybovets, Zhyrkova Vykorystannia Mashynnoho Navchannia U Zadachakh Klasyfikatsii Zvukiv

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

УДК 004.93,004.

8
DOI: 10.18523/2617-3808.2019.2.22-31

Глибовець М. М., Жиркова А. П.

Використання машинного навчання


у задачах класифікації звуків
У роботі розглянуто особливості використання методів машинного навчання (МН) для класифі-
кації звукової інформації на прикладі розв’язку задачі класифікації міських звуків (МЗ). Дослідження
з аналізу міських акустичних середовищ є досить обмеженими. Більше того, у цих дослідженнях
основна увага фокусується на класифікації місць, які характеризують певні звуки, наприклад, парку,
вулиці, на відміну від ідентифікації джерел звуку в них, таких як автомобільний сигнал, постріл
тощо. Тому класифікація МЗ – досить актуальна проблема, що потребує вирішення. Метою робо-
ти є висвітлення побудови оптимальних моделей МН для задачі коректної класифікації МЗ.

Ключові слова: класифікація, машинне навчання, метод k-найближчих сусідів, метод опорних
векторів, випадковий ліс, нейронні мережі, контроль за k-блоками, метод відкладених даних, сітко-
вий пошук.

Вступ у тому числі з текстом, зображеннями та звука-


ми. Автоматична класифікація звуків навколиш-
Основною ідеєю машинного навчання (МН) нього середовища – зростаюча сфера досліджень.
є  знаходження певних закономірностей у  відо- Зокрема, звуковий аналіз міських середовищ є
мих наборах даних і навчанні машини передба- об’єктом підвищеного інтересу, частково завдя-
чати результат для нових даних. Існує декілька ки мультимедійним сенсорним мережам, частко-
видів задач МН, серед яких традиційно виділя- во завдяки великій кількості мультимедійного
ють регресію, класифікацію, кластеризацію [9, контенту, що зображує міські сцени.
р. 47, 307]. Регресія від класифікації відрізняєть- Однак, незважаючи на велику кількість до-
ся необхідністю знаходження певного числа, що сліджень у  відповідних галузях, наприклад,
відповідає об’єкту дослідження, в той час як за- у  мові та музиці, дослідження з  аналізу місь-
дача класифікації ставить у відповідність об’єкту ких акустичних середовищ є досить обмежени-
клас, до якого він належить. У випадку кластери- ми. Більше того, у  цих дослідженнях основна
­зації задача полягає у групуванні різних об’єктів, увага фокусується на класифікації місць, які ха-
надаючи кожному певний клас. рактеризують певні звуки, наприклад, парку,
Існує три базові підходи до МН. Першим є  вулиці, на відміну від ідентифікації джерел звуку
навчання з учителем, що означає наявність ці- в  них, таких як автомобільний сигнал, постріл
льової змінної у тренувальних даних (викорис­ тощо. Тому класифікація міських звуків – досить
товують для навчання конкретної моделі). У ре- актуальна проблема, що потребує вирішення.
зультаті алгоритм може зіставляти ознаки об’єк­­та Розробка оптимальних моделей МН для за-
з цільовою змінною і на основі цього передба­ дачі коректної класифікації міських звуків по-
чати її значення для інших об’єктів. Другий під- требує вирішення таких завдань: представлення
хід  – навчання без учителя – відрізняється від звуку як сукупності числових даних, тобто його
першого відсутністю цільової змінної і необхід- ознак, для можливості роботи алгоритмів МН
ністю її знаходження, тобто, потрібно передба- із ним; обробка даних для оптимізації ефектив-
чити. Третій – навчання з підкріпленням, коли ності роботи моделей МН; застосування мето-
результат будується у  відповідь на «подразнен- дів оптимізації моделей МН задля знаходження
ня» зовнішнього середовища. оптимальних параметрів кожної з моделей; про-
У цій роботі розглянуто задачу класифікації ведення навчання моделей на тренувальних
міських звуків за допомогою різних алгоритмів МН. даних; застосування моделей для передбачення
МН допомагає формалізувати знання експер- результату та перевірки точності їх роботи на
тів для вирішення різних задач із багатьох при- тестових даних; розробка моделі нейронної ме-
кладних галузей застосувань, надаючи можли- режі для вирішення задачі класифікації міських
вість працювати з різноманітними типами даних, звуків.

© Глибовець М. М., Жиркова А. П., 2019


Глибовець М. М., Жиркова А. П. Використання машинного навчання у задачах класифікації звуків  23

1. ОСОБЛИВОСТІ ЗАСТОСУВАННЯ МН для прогнозування результату використовують


ДЛЯ РОБОТИ ЗІ ЗВУКОМ логістичну функцію [9, р. 126].
1.1. Аналіз існуючих алгоритмів МН Дерево рішень – ще один підхід до розв’язан-
ня задач МН. Як зрозуміло з назви, в основі цьо-
Під час розв’язання будь-якої задачі за допо- го алгоритму лежить побудова дерева, здатного
могою МН передусім треба обрати алгоритм, виводити необхідний результат. Для задач класи-
який буде її вирішувати. До того ж, варто заува- фікації це певний клас, якому належить об’єкт,
жити, що кожен із них орієнтований на роз­в’я­ а для задач регресії – число [9, р. 250].
зання певного типу задач. Випадковий ліс – модифікація попереднього
Найбільш простий і  популярний – лінійна алгоритму, тільки замість побудови одного дере-
регресія [9, р. 123]. Суть цього алгоритму поля- ва тут будується декілька, а потім голосуванням
гає в зображенні кожної точки у вигляді лінійно- визначається цільове значення. Тобто, кожне
го рівняння, де ознаки (features) цієї точки – не- з побудованих дерев виводить певний результат,
залежні змінні, ваги (weights) – коефіцієнти, а  для визначення найімовірнішого обирається
а  шукане значення (target) – залежна змінна. той, що зустрічається найчастіше [9, р. 255].
На  етапі навчання підбирають параметри мо- Також для виконання класифікації певних
делі (в цьому алгоритмі – ваги) таким чином, об’єктів можна застосовувати нейронні мережі.
щоб лінія, отримана в результаті їхнього підбо- Є декілька видів нейронних мереж, які мають
ру, проходила якомога ближче до всіх точок. При різну архітектуру. Для задач класифікації вико-
безпосередньому прогнозуванні ознаки та обра- ристовують (у випадку навчання з  учителем)
ні параметри підставляють у  рівняння і  в  ре- згорткові нейронні мережі [6, р. 169] та перцеп-
зультаті простих підрахунків отримують шукане трон [6, р. 2].
значення. Згорткові нейронні мережі, які також викорис-
Популярним і  водночас простим є  алгоритм товують для розв’язання задач класифікації, в ос­
k-найближчих сусідів [9, р. 258]. При розв’язанні новному спрямовані на роботу з зображеннями.
задач за допомогою цього алгоритму шукаються
k найближчих точок до тієї, для якої робиться 1.2. Робота з даними
прогноз, і обраховується загальна кількість серед У цій роботі вирішується задача класифікації
них, що відповідає певному класу. Результатом міських звуків. А отже, дані представлені аудіо-
прогнозу буде значення, отримане для найбіль- файлами. Для кращого розуміння, як працювати
шої кількісті точок-сусідів. з ними, необхідно розібратися, що таке звук і які
Наївний Баєс – це ймовірнісний класифіка- є особливості роботи з ним.
тор, який було створено на основі Баєсових тео- Звук подається у  вигляді звукового сигналу,
рем. Головною особливістю цього алгоритму що має такі параметри, як частота, децибел тощо.
є  припущення про незалежність кожної ознаки Типовий аудіосигнал може бути виражений як
об’єкту від інших [9, р. 347]. функція амплітуди та часу (рис. 1.1).
Метод опорних векторів – ще один алгоритм
МН. Його широко використовують для вирішен-
ня задач класифікації, і  не тільки. Головною
ідеєю цього методу є  побудова граничної лінії
між класами таким чином, щоб бути якомога
далі від кожної точки цих класів. Тоді прогно-
зування належності нового об’єкта якомусь класу
проходить дуже швидко, зображенням його в то­- Рис. 1. Аудіосигнал як функція амплітуди та часу [4]
му ж просторі і залежно від того, з якої сторони
лінії він буде розташований, визначатиметься Програмно можна розпізнати такі формати
і його клас [9, р. 202]. аудіо, як, наприклад, MP3, WAV та WMA. Це озна-
Логістична регресія – алгоритм МН для ви- чає, що комп’ютер може зчитувати та аналізува-
рішення задач класифікації з бінарною цільовою ти файли такого формату як аудіозаписи.
змінною (вона може набувати тільки двох зна- Зображення форми звукового сигналу допо-
чень). Цей алгоритм використовує те саме рів- магає побачити зміну амплітуди звуку у часі.
няння, що і лінійна регресія, тільки, на відміну Ще однією важливою характеристикою аудіо­
від неї, цільова змінна набуває не довільного сигналу є  спектр його частот. Спектрограмою
числового значення, а одне з значень {0, 1}. Тому звуку є візуальне представлення спектра частот
24 ISSN 2617-3808. Наукові записки НаУКМА. Комп’ютерні науки. 2019. Том 2

звуку або інших сигналів, оскільки вони зміню- Важливим аспектом тут є  те, що цей метод
ються з часом. А отже, перша вісь являє собою шукає найкращу комбінацію параметрів серед
частоту, а друга – час. усіх доступних.
Для розв’язання поставленої задачі ми брали Наприклад, необхідно знайти оптимальну мо-
набір аудіофайлів із сайту Kaggle [11]. Там до- дель для розв’язання певної задачі. Викорис­
ступно два набори даних, один з яких має мітки товують алгоритм «випадковий ліс». Щоб отри-
(labels) класів, а інший – ні. Усі аудіофайли мають мати необхідний результат, перевіряють деякі
довжину запису чотири секунди або менше та параметри, наприклад, кількість дерев і  макси-
представлені у форматі WAV. мальну довжину дерева. Перший параметр за-
Використовувати дані у  такому вигляді не- дається як масив значень [3; 5; 7], а другий – [10;
можливо. Кожний аудіозапис необхідно привес- 20]. Тоді перевірка ефективності моделей буде
ти у вигляд, що буде доступний алгоритму МН. здійснюватися для кожної пари з [(3, 10), (3, 20),
У Python є  засоби для роботи зі звуком, (5, 10), (5, 20), (7, 10), (7, 20)].
а  саме: IPython.display.Audio – створює аудіо­ Важливим зауваженням буде те, що ця пере-
об’єкт, використовується для відображення еле- вірка не гарантує, що обрана в результаті модель
ментів керування аудіо у  веб-інтерфейсі [3]; буде найефективнішою. Вона буде найкращою
Friture – графічна програма, розроблена для про- серед перевірених, але не серед усіх можливих.
ведення частотно-часового аналізу аудіо в реаль- Існує вірогідність, що можлива краща комбіна-
ному часі; LibROSA – модуль, призначений для ція параметрів моделі, аніж обрана. Просто її не
аналізу аудіозаписів та музики, який надає мож- було розглянуто.
ливість працювати з  багатьма найбільш попу-
лярними ознаками в музичному аналізі [5]. 1.3.2. Крос-перевірка
У мові R також є подібні засоби, наприклад,
При застосуванні алгоритмів МН для розв’я­
SEEWAVE – пакет, який дає змогу аналізувати
зання певних задач виникає необхідність виміру
та синтезувати аудіо.
точності прогнозу, оскільки це дає уявлення про
ефективність обраної моделі.
1.3. Вибір та оптимізація моделей
Зрозуміло, що перевірка точності прогнозу
Вибір моделі в кожному випадку залежить від на даних, які використовували для навчання мо-
особливостей задачі, яку треба вирішити. Також делі, є неможливою, оскільки в цьому випадку
важливе значення має кількість класів, у випадку прогноз буде максимально точним, а поведінка
розв’язання задач класифікації. Їх може бути два моделі на нових даних буде непередбачуваною.
і більше. Якщо їх лише два, то доцільним буде за- Тому для оцінки ефективності моделей викорис-
стосування алгоритму логістичної регресії. Але товують такий підхід, як крос-перевірка (англ.
це не означає, що тільки він буде добре передба- Cross-Validation).
чати цільову змінну. Запорукою успіху вирішення Існує два варіанти крос-перевірки: метод
певної задачі буде порівняння декількох моделей відкладених даних і контроль за k-блоками [1,
і їх точності у вирішенні конкретної задачі. с. 129].
Неможливо заздалегідь передбачити, який У першому випадку тренувальні дані розбива-
саме алгоритм працюватиме ефективно на об- ють на два набори. Один використовується для
раних даних, тому важливим є застосування де­ навчання моделі, а  інший – для перевірки її
кількох алгоритмів і їх порівняння між собою. ефективності. Тобто, при використанні цього ме-
До того ж, перевірка параметрів також має важ- тоду певна частина даних відкладається, а отже,
ливе значення і може підвищити точність про- стає контрольною (використовується для оцінки
гнозу. моделі). Варто зауважити, що розбиття набору
на тренувальну і  тестову вибірки відбувається
1.3.1. Grid-пошук випадковим чином, щоб запобігти можливості
нерепрезентативної оцінки.
Grid-пошук (англ. Grid Search) – метод оцін- У другому випадку початковий набір розби-
ки параметрів моделі, який використовують для вається на k блоків однакової довжини. Перевір-
безпосередньої її оптимізації. Для виявлення ка відбувається таким чином, що певна частина
параметрів, які краще за інших працюють із цією цих блоків використовується для навчання моде-
моделлю, необхідно для кожного параметра вка- лі, а інша – для оцінки передбачень. Зазвичай, їх
зати масив значень. Серед цих значень і шукати- розбиття проходить у  такий спосіб, що для на-
муть оптимальне. вчання береться (k-1) блок, а для передбачення –
Глибовець М. М., Жиркова А. П. Використання машинного навчання у задачах класифікації звуків  25

той, що залишився. Сама перевірка відбувається 2.2. Робота зі звуком


таким чином, щоб кожний із блоків був викорис-
таний для передбачень. Тобто, якщо є k блоків, Для наочності застосування МН у  задачах
то перевірка відбувається k разів, а для передба- класифікації взято набір даних, які представле-
чень береться i-й (і  =  1, 2, ..., k) блок. Для на- ні аудіофайлами різних міських звуків із довжи-
вчання використовуються усі інші. ною запису не більше ніж чотири секунди. Цей
У результаті крос-перевірки за k-блоками до- набір поділяється випадковим чином на два.
ступна інформація про точність передбачення Перший із них містить 5435 аудіо, які призна-
для кожної ітерації і середня оцінка ефективнос- чені для тренування моделей МН. Кожний із цих
ті моделі. аудіозаписів містить мітку (label).
Другий набір призначений для тестування
2. ВИКОРИСТАННЯ МН моделей і містить 3297 записів. У цьому наборі
у ЗАДАЧІ КЛАСИФІКАЦІЇ немає міток, що моделює справжню роботу ін-
МІСЬКИХ ЗВУКІВ женерів МН, бо на практиці модель навчається
на відомих даних, а застосовується для нових,
2.1. Алгоритмічне та програмне досі не бачених (а отже, даних без міток). Вся
забезпечення суть МН зводиться до ефективного підбору мо-
делі і подальшого її застосування для прогнозу
Для розв’язання задачі класифікації міських міток нових об’єктів.
звуків ми обрали мову програмування Python Кожне аудіо з  набору належить до одного
(3.7.2) і  використовували бібліотеки scikit-learn,
з десяти класів: звук кондиціонера; сигнал авто-
keras, numpy, pandas та librosa.
мобіля; звуки дітей, що граються; гавкіт собаки;
Scikit-learn – потужна бібліотека [8], яку за-
буріння; звук двигуна на холостому ходу; звук
лучають з  метою вирішення задач МН із  вико-
пострілу; звук відбійного молотка; сирена; звуки
ристанням мови програмування Python. Вона
вуличної музики.
містить велику кількість різноманітних алгорит-
мів МН, засобів обробки даних (наприклад, мас­
штабування даних), засобів оцінки моделей МН 2.2.1. Витягування ознак з аудіофайлів
та багато іншого.
Більшість алгоритмів МН вміють працювати
Keras – відкрита бібліотека [2], яка забез-
лише з числовими даними, а отже, постає задача
печує можливістю використання нейромереж.
обробки аудіозаписів і витягування їхніх харак-
Вона є надбудовою над такими фреймворками,
теристик.
як TensorFlow та Theano [10].
Pandas [7] – Python-бібліотека для роботи Першою і однією з найважливіших характе-
з даними (їх аналізу та обробки). Забезпечує спе- ристик звуку є швидкість перетину нуля (zero
ціальними структурами даних, такими як Series crossing rate). Ознака характеризує швидкість
та DataFrame, і  операціями для маніпулювання зміни знаків вздовж сигналу – швидкість, з якою
цими структурами. сигнал змінюється від позитивного до негатив-
Librosa – як уже зазначено вище, бібліотека ного і  навпаки. Цю функцію використовують
для роботи зі звуком [3]. У цьому проекті вико- здебільшого для розпізнавання мовлення та по-
ристовують для витягування ознак (представле- вернення інформації про музику. Зазвичай зна-
них числовими даними) з аудіо. чення параметра є  більш високим для звуків,
Алгоритмами МН, які використовують для у  яких ударна партія має велике значення, на-
класифікації, було обрано метод k-найближчих приклад у рок-музиці.
сусідів, «випадковий ліс», метод опорних векто- Для отримання значення цієї характеристики
рів та нейронні мережі, які є методом вирішен- використовується функція feature.zero_crossing_
ня задач глибокого навчання, що своєю чергою rate(y) з  бібліотеки librosa, де y – аудіочасовий
є підрозділом МН. ряд, а  результат її застосування – відповідний
Експерименти проводили на комп’ютері Asus масив значень швидкості перетину нуля для
із  процесором Intel Pentium N3710, 4 ядрами цього ряду.
з частотою 1.60 гГц, графічною картою Intel HD Звуковий спектр відображає різні частоти, які
Graphics for Intel Celeron Processor N3000 Series наявні у  звуці. Для детальності аналізу звуків
та оперативною пам’яттю 4 Гб. Операційна сис- використовується низка характеристик, які пев-
тема – Linux Mint 19.1 Cinnamon. ним чином пов’язані з ним.
26 ISSN 2617-3808. Наукові записки НаУКМА. Комп’ютерні науки. 2019. Том 2

Спектральний центроїд – наступна ознака (RMS), що є  можливим завдяки feature.rms(y),


звукового сигналу, яка вказує, де розташований яка обраховує середньоквадратичне значення
«центр мас» для звуку. Обраховують як серед- для кожного кадру.
ньозважене значення частот, наявних у звуці. При аналізі звуку також можливим є  ви-
Для отримання значення спектрального цен- користання тональних характеристик центро­
троїда використовується функція feature.spect­ їда, які обраховуються функцією feature.ton­
ral_centroid(y, sr), де у  – аудіочасовий ряд, sr – netz(y, sr).
частота дискретизації звуку у. Вона обчислює Мел-частотні кеспральні коефіцієнти (Mel
значення спектрального центроїда для кожного frequency cepstral coefficients) – остання характе-
кадру у сигналі. ристика, яка потрібна для виконання класифіка-
Наступною характеристикою, необхідною для ції міських звуків. І складається вона з невели­
вирішення задачі класифікації МЗ, є спектраль- кого набору ознак, які описують загальну форму
ний поворот, який представляє частоту, ниж­че спектральної огинаючої. Для отримання цих
якої заданий відсоток від загальної спектральної ознак необхідно скористатися функцією feature.
енергії. Функція feature.spectral_rolloff(y, sr) об- mfcc(y, sr).
числює частоту обертання для кожного кадру в
сигналі. Функція feature.spectral_bandwidth(y, sr) 2.2.2. Аналіз та обробка даних
повертає смуги частот для кожного кадру.
Наступна характеристика є  дуже цікавою Коли кожний звук представлений рядом ознак,
і  корисною для розв’язання задач, пов’язаних необхідно зробити ряд перетворень для викорис-
зі звуком або музикою. Вона являє собою увесь тання їх моделями МН.
спектр, який проектується на 12 полу тонів окта- У першу чергу, для зручності є  доцільним
ви і  обраховується функцією feature.chroma_ представлення даних як DataFrame, який є фор-
stft(y, sr). матом даних серед представлених у  бібліотеці
Під час роботи зі звуком також важливим pandas. Тепер усі дані відображаються у вигля-
є обчислення середньоквадратичного значення ді табл. 1.

Таблиця 1. Вигляд DataFrame

Отже, табл. 1 має набір рядків, кожний з яких даних, тобто даних, які були попередньо оброб­
відповідає певному аудіозапису. Кожний рядок лені з метою їх підлаштування під єдину число-
має id – порядковий номер аудіозапису (і за су- ву шкалу. Залежно від діапазону значень ознак
місництвом, назва аудіофайлу), якому відповіда- враховується їхня важливість щодо інших. Якщо
ють певні характеристики, а саме ознаки звуку, одна ознака має діапазон значень від 0 до 10,
які було описано в  попередньому підпункті, та а інша – від 0 до 1, то перша ознака враховува-
клас, до якого належить звук (для тренувальної тиметься алгоритмом МН, як більш важлива
вибірки). (в 10 разів), ніж друга [1, с. 78].
Під час підготовки даних до використання їх Для масштабування даних у бібліотеці scikit-
алгоритмами МН слід пересвідчитись, що немає learn є  така функція, як preproccessing.Standard­
«відсутніх даних», тобто всі комірки таблиці Scaler(). Тому все, що необхідно зробити – це за-
мають значення. При перевірці тренувального стосувати її до характеристик звуку.
і тестового наборів таких даних не було виявле- Також більшість алгоритмів МН не можуть
но, а  отже, витягування ознак аудіо пройшло працювати з мітками, представленими у форматі
правильно. String, – тільки з числовими значеннями. Отже,
Для підвищення ефективності навчання необ- наступним кроком обробки даних для подаль-
хідним кроком є масштабування даних. Алго­ шого навчання на них є перетворення міток кла-
ритми МН краще працюють на нормалізованих сів на числові позначення. У випадку бінарної
Глибовець М. М., Жиркова А. П. Використання машинного навчання у задачах класифікації звуків  27

класифікації зазвичай класам надаються значен- Отже, після застосування цієї функції до кож-
ня 0 та 1. ного алгоритму визначено найкращі параметри
Для класифікації міських звуків було визна- для передбачень на доступних даних.
чено 10 різних класів. Оскільки мітки цих класів У випадку алгоритму «випадковий ліс» най-
не є  числовими значеннями, постає задача їх кращі параметри шукали серед таких: для n_es­
перетворення у  правильний формат. Для цього timators – кількості дерев прийняття рішень – за-
використовується preprocessing.LabelEncoder() давали значення 2, 5, 10, 15; критерій пошуку
з бібліотеки scikit-learn. criterion шукали серед gini та entropy, вага кла-
Тепер усі класи представлені числовими сів – серед None , balanced та balanced_subsample,
значеннями відповідно: 0 – air_conditioner, 1 – а  для максимальної глибини дерева задавали
car_horn, 2 – children_playing, 3 – dog_bark, 4 – значення 15, 20, 21, 23, 25. У результаті було ви-
drilling, 5 – engine_idling, 6 – gun_shot, 7 – значено, що найефективніша модель має такі
jackhammer, 8 – siren, 9 – street_music. параметри: вага класів – balanced, критерій по-
Також варто зауважити, що кількість екземп- шуку – gini, максимальна глибина дерев – 20,
лярів кожного класу є  різною. Більшість класів кількість дерев – 15.
містить приблизно 600 об’єктів, тільки два з них – Для методу опорних векторів найкращими
значно менше (в класі «постріл пістолета» близь- параметрами виявилися: С – 15, ядро – rbf, вага
ко 200, а в «сигнал машини» – 300). класів – None.
У випадку з  методом k-найближчих сусідів
2.3. Класифікація це: кількість сусідів – 5, ваги – залежать від від-
стані (distance), метрика – minkovski.
2.3.1. Вибір та оптимізація моделей МН Для багатошарового перцептрона (Multi-Layer
Perceptron) найкращими параметрами є: актива-
Було обрано такі алгоритми: метод k-найближ­ ційна функція – tanh, значення альфа – 0.1, мак-
чих сусідів, метод опорних векторів, «випадко- симальна кількість ітерацій – 500.
вий ліс» і багатошаровий перцептрон. Отже, в результаті виконання функції clas­
Тепер необхідно визначити, які параметри sify_with_grid_search(model, parameters, dataset)
для кожної моделі дають найкращий результат. було отримано найкращі серед заданих параме-
Для цього використовуємо метод grid-пошуку. трів для навчання моделей на доступних даних.

2.3.2. Етап навчання


Зараз, коли відомі найоптимальніші параме-
три для кожної моделі, слід їх перевизначити на
знайдені.
Наступним етапом є  навчання моделей на
тренувальному наборі даних. Але перед цим
Рис. 2. Функція пошуку найкращої моделі слід оцінити ефективність передбачень кожної
з  них, щоб обрати найкращу для класифікації
Функція classify_with_grid_search(model, para­ міських звуків. Для цього скористаємося функ-
me­ters, dataset) приймає на вхід такі параметри, цією evaluate(model, dataset), в  якій для оцінки
як model – алгоритм МН, для якого знаходять кожної з  моделей застосовується метод крос-
найкращі параметри (оціночна функція), para­ перевірки.
meters – словник з  іменами параметрів (ключі)
і  списком налаштувань (значення) та dataset –
набір даних, на яких навчаються моделі. Спо­
чатку набір даних розбивається на масив ознак
звуків та масив міток (тобто класів) звуків.
Потім визначається екземпляр класу сіткового
пошуку, який використовує задану оціночну Рис. 3. Функція оцінки моделі
функцію, параметри та крос-перевірку з розбит- за допомогою крос-перевірки
тям на 5 блоків. Наступним етапом є  його на-
вчання на визначених даних. Результат виконан- У тілі функції спочатку набір даних поді-
ня функції – оцінщик, який дав найкращий ре- ляють на два: перший використовують для на-
зультат. вчання моделі, а другий – для оцінки зроблених
28 ISSN 2617-3808. Наукові записки НаУКМА. Комп’ютерні науки. 2019. Том 2

Таблиця 2. Оцінка точності передбачень методів

Модель 1 – ітерація 2 – ітерація 3 – ітерація 4 – ітерація 5 – ітерація середнє

«Випадковий ліс» 0.87511478 0.87040441 0.87120515 0.8839779 0.86359447 0.872859342


Опорних векторів 0.93847567 0.93474265 0.92916283 0.9373849 0.93640553 0.935234316
k-найближчих
0.92470156 0.90441176 0.90524379 0.9106814 0.90506912 0.91
сусідів
Багатошаровий
0.92653811 0.90349265 0.90239411 0.89769585 0.89769585 0.906336932
перцептрон

прогнозів зіставленням реальних класів із  пе- і  тестової вибірок. Це робиться за допомогою
редбаченими. Потім застосовують метод оцін- спеціальної функції, яка називається train_test_
ки за допомогою крос-перевірки, зберігаючи split, вбудованої в бібліотеку Scikit-learn. Як па-
результати передбачення для кожної ітерації. раметри функції задаються набір даних, на яких
До того ж, у цьому випадку застосовують роз- навчається модель, набір міток, що йому відпо-
биття набору даних на 5 блоків. Результатом відає, розмір тестової вибірки (значення задаєть-
виконання функції буде масив оцінок точності ся десятковим числом від 0 до 1, що відповідає
передбачень. проценту даних, що беруться з оригінальної ви-
Отже, кожна з моделей (із визначеними пара- бірки для утворення тестової, решта залишаєть-
метрами) проходить перевірку методом розбиття ся в  тренувальному наборі даних; найчастіше
тренувальної вибірки на k блоків. беруться значення 0.33 та 0.2) і значення, яке ви-
У результаті виконання перевірки отримано користовується генератором випадкових чисел
оцінки точності (табл. 2). як початкове число.
Бачимо, що найгірший результат серед отри- У результаті розбиття отримано тренувальну
маних у «випадковому лісі». В середньому, точ- вибірку довжиною в 4348 рядків і тестову з до-
ність його передбачень становить 87 %. Непогані вжиною 1087. Розбиття проходило за допомогою
оцінки дають метод k-найближчих сусідів і бага- генератора випадкових чисел, що відкидає варі-
тошаровий перцептрон. А  найкращим алгорит- ант нерепрезентативного розподілу даних.
мом для класифікації даних, що використовуєть- Наступним кроком є навчання обраних мо-
ся для розв’язання поставленої задачі, є  метод делей на новоутвореному тренувальному наборі
опорних векторів, оскільки точність його прогно- даних та застосування їх для класифікації об’єк­
зів в середньому дає приблизно 93 %. тів тестової вибірки.
Отже, доцільним є використання останнього Після виконання попереднього кроку засто-
алгоритму для виконання прогнозів на невідо- совуємо функцію accuracy_score(y_test, y_pred),
мих раніше даних. яка оцінює точність класифікації, зробленої мо-
деллю, з реальними даними. У результаті пере-
2.3.3. Передбачення вірки ефективності моделей отримаємо такі ре-
зультати: використання методу опорних векторів
Задля розуміння, як передбачення працюва- для передбачення класів міських звуків з тесто-
тимуть на нових даних, необхідним кроком є пе- вого набору даних дало приблизно 92 % правиль-
ревірка їх точності на даних, у яких відомі мітки них відповідей, а  використання багатошарового
класів. перцептрона – 89 %. Якщо порівнювати ці ре-
Отже, тренувальна вибірка розбивається на зультати з середніми оцінками крос-перевірки,
два набори даних задля створення тренувальної то вони є трохи гіршими, приблизно на 1 %.

Рис. 4. Функція для знаходження помилок,


що зустрічаються найчастіше
Глибовець М. М., Жиркова А. П. Використання машинного навчання у задачах класифікації звуків  29

Для аналізу помилок, які були зроблені під ліотек є Keras, яка за замовченням використовує
час класифікації, необхідно порівняти, як часто TensorFlow – потужний фреймворк для створен-
кожне справжнє значення плутається з передба- ня і застосування нейронних мереж.
ченим. Це необхідно для того, щоб розуміти, Тому важливим етапом для знаходження опти-
де найвірогідніше буде зроблено помилку в май- мального варіанту розв’язання задачі класифіка-
бутньому. Отже, скористаємось функцією, яка ції МЗ є створення нейромережі і її застосування
рахує кількість помилок для кожної пари значень для вирішення цієї проблеми.
реальне число/передбачене і виводить інформа- Для побудови нейронної мережі використо-
цію про них. вують модель Sequential – послідовну модель.
У результаті застосування функції помічено, Для побудови прихованих шарів та вихідного
що моделям «випадковий ліс» та «метод опо- (суматору) – Dense також з бібліотеки Keras. Для
рних векторів» характерно класифікувати об’єк­ регуляризації моделі – Dropout. А для оптиміза-
ти з міткою «вулична музика» (9) як «гру дітей» ції – SGD. Бібліотека pandas забезпечує роботу
(2). А модель багатошарового перцептрона по- з даними. Кодування міток – OneHotEncoder з бі-
миляється в класифікації «гавкоту собаки» (3) бліотеки scikit-learn.
і також розпізнає його як «гру дітей» (2). Спочатку необхідно завантажити дані для
Вищевикладена інформація може бути ко- роботи з ними. В цьому випадку створено два
рисною за подальшої класифікації, тільки вже набори даних: тренувальний і тестовий.
даних, які не мають завчасно визначених міток Щоб модель могла використовувати дані для
класів. навчання, необхідно розбити їх на набір ознак та
мітки класів.
2.4. Аналіз результатів Оскільки на тестовій вибірці, яка не має міток
класів, неможливо оцінити точність роботи мо-
Для чотирьох обраних алгоритмів, а саме
делі, необхідним кроком є  створення набору
k-найближчих сусідів, опорних векторів, випад-
даних для цього. Щоб мати можливість оцінки
кового лісу і багатошарового перцептрона, за-
ефективності прогнозів нейромережі, поділимо
стосовано метод grid-пошуку, який знайшов най­
тренувальну вибірку на дві так само, як і у попе-
кращі серед визначених параметри для кожного
редньому пункті, де розглядалися інші моделі
з них. Після чого усі моделі пройшли перевірку
МН для розв’язання поставленої задачі. Розмір
ефективності, тобто точності її передбачень, за
новоутвореної вибірки становить 20 % від усієї,
допомогою контролю за k-блоками. У результаті
а решта даних зберігається для навчання моделі.
знайдено модель, яка дає найбільшу точність
Необхідно зазначити, що під час роботи, коли
передбачень. Це метод опорних векторів. Точ­
в нас є  багато класів, виникають деякі проблеми,
ність прогнозу в середньому становить 93 %.
зокрема неспроможність нейронної мережі вико-
Наступним етапом є класифікація та її оцін-
ристовувати класи в початковому вигляді. Отже,
ка. Навчання проводили на одному наборі даних,
необхідно виконати їх кодування для коректної
а  на іншому відбувалося прогнозування класів.
роботи моделі нейронної мережі. Для кодування
У результаті виявилося, що точність роботи мо-
класів використовується функція OneHotEncoder,
делей є  гіршою від попередньої оцінки, при-
що представлена в  пакеті sklearn.preproccessing.
близно на 1 %.
Нарешті, можна будувати нейронну мере-
жу. Як  уже зазначено, для цього використову-
2.5. Використання нейронних мереж
ють послідовну модель.
для класифікації
Кількість прихованих шарів визначається
У Scikit-learn є можливість використання ней­ трьома. Як функцію активації береться функція
ронних мереж для вирішення поставлених задач. relu – вона для кожного елементу повертає max(x, 0).
Прикладом може слугувати MLPClassificator(), Перший шар має розмірність вихідного простору
який застосовано під час знаходження ефектив- 112. Також тут визначається розмірність вхідно-
них моделей МН для класифікації МЗ. Точність го набору даних, тобто кількість ознак, за якими
передбачень не є найкращою, а отже треба шука- проводиться навчання. У нашому випадку це 32
ти інші шляхи покращення ефективності розпіз- ознаки звуку. Розмірність другого прихованого
навання міських звуків. шару дорівнює 84, а третього – 48.
Для роботи з нейромережами краще викорис- Після роботи кожного з прихованих шарів за-
товувати спеціальні бібліотеки, які призна- стосовується регуляризація. Вона проводиться за
чені виключно для цього. Однією з  таких біб­ допомогою методу відсікання частини даних, що
30 ISSN 2617-3808. Наукові записки НаУКМА. Комп’ютерні науки. 2019. Том 2

означає ігнорування певної кількості випадково Також виконано класифікацію даних, які не
обраних нейронів під час навчання. Регуляризація містять міток класів.
призводить до зменшення чутливості нейрон­
Висновки
ної мережі до конкретних ваг нейронів. В  ре-
зультаті модель стає здатною до кращого уза- У цій роботі розглянуто особливості викори-
гальнення і зменшується ймовірність її пере- стання МН у  задачах класифікації на прикладі
навчання. Значен­ня 0.1 визначає долю нейронів, класифікації міських звуків, розроблено чотири
які будуть ігноруватися під час навчання. моделі МН для розв’язання поставленої задачі.
Останній шар визначає вихідні дані, у випад- Створені моделі дають змогу ідентифікувати
ку класифікації це клас об’єкта. Його актива- міські звуки з різною природою походження.
ційною функцією є  softmax, а  розмірність про- Отримано такі результати:
стору визначається кількістю можливих класів. 1. Проведено перетворення звуків на сукуп-
Після створення моделі нейронної мережі по- ність числових ознак із подальшою їх обробкою
трібне її налаштування для навчання, а саме визна- для оптимізації ефективності роботи моделей МН.
чення показника для оцінки моделі під час навчан- 2. Розроблено чотири моделі МН із викорис-
ня та тестування, оптимізатора та функції втрат. танням алгоритмів k-найближчих сусідів, мето-
Спочатку обираємо оптимізатор та визначає- ду опорних векторів, багатошарового перцеп-
мо його параметри (в іншому випадку використо- трона та випадкового лісу для розв’язання по-
вуються значення за замовчуванням). Отже, для ставленої задачі.
оптимізації моделі обрано стохастичний граді- 3. Розроблено послідовну модель нейронної
єнтний спуск (SGD) із застосуванням імпульсу мережі для вирішення задачі класифікації місь-
Нестерова  – прискоренням градієнта. Такі нала- ких звуків.
штування зазвичай використовуються для негли- 4. Застосовано моделі для передбачення кла-
боких нейронних мереж. сів об’єктів із тестової вибірки.
Після визначення усіх параметрів оптимізато- 5. Проаналізовано роботу кожної моделі та
ра відбувається налаштування моделі. Функцією точність її передбачень.
втрат визначено categorical_crossentropy, оскіль- При перевірці роботи моделей на тестових
ки дані, представлені у цільовому наборі, є ка­ даних отримано такі результати: для k-найближчих
тегоріальними. Також вказується оптимізатор, сусідів оцінка точності становить 90 %, для методу
визначений перед цим. Останнім уточнюється опорних векторів – 92 %, для «випадкового лісу» –
показник, що оцінюється моделлю. Зазвичай, 88 %, а для багатошарового перцептрона – 90 %.
і цей проект не є винятком, це точність. При розробці послідовної моделі нейронної мере-
Наступним етапом є навчання моделі на тре- жі з трьома прихованими шарами отримано 93 %
нувальних даних. При цьому визначається кіль- правильно передбачених цільових значень – класів.
кість ітерацій (epochs) для навчання нейронної Проаналізувавши ефективності роботи ви-
мережі та кількість зразків на оновлення граді- щезгаданих моделей МН, можна зробити висно-
єнту (batch_size). Параметри визначено числами вок, що застосування методу опорних векторів
300 і 128 відповідно. та послідовної моделі нейронної мережі є  най-
Після запуску нейронної мережі отримано та­ кращими серед розглянутих для розв’язання по-
кий результат: 92,82 % – точність роботи моделі. ставленої задачі – класифікації міських звуків.

Список літератури

1. Бринк Х. Машинное обучение / Х. Бринк, Д. Ричардс, М. Фе­ 7. Python Data Analysis Library [Electronic resource]. – Mode of
веролф. – Санкт-Петербург : Питер, 2018. – 336 с. – (Биб­ access: https://pandas.pydata.org. – Title from the screen.
лиотека программиста). 8. scikit-learn [Electronic resource]. – Mode of access: https://
2. Keras: The Python Deep Learning library [Electronic resource]. – scikit-learn.org/stable/. – Title from the screen.
Mode of access: https://keras.io. – Title from the screen. 9. Shalev-Shwartz S. Understanding Machine Learning: From
3. Module: display [Electronic resource]. – Mode of access: https:// Theory to Algorithms / S. Shalev-Shwartz, S. Ben-David. – Cam­
ipython.readthedocs.io/en/stable/api/generated/IPython.display. brige University Press, 2014. – 449 p.
html. – Title from the screen. 10. This Is What Makes Keras Different, According To Its Author
4. Music Genre Classification With Python [Electronic resource]. – [Electronic resource] // Forbes. – 2016. – Mode of access: https://
Mode of access: https://towardsdatascience.com/music-genre- www.forbes.com/sites/quora/2016/08/25/this-is-what-makes-
classification-with-python-c714d032f0d8. – Title from the screen. keras-different-according-to-its-author/#2c7851fa66cf.  – Title
5. Music software written in Python [Electronic resource]. – Mode from the screen.
of access: https://wiki.python.org/moin/PythonInMusic. – Title 11. Urban Sound Classification [Electronic resource]. – Mode of
from the screen. access: https://www.kaggle.com/pavansanagapati/urban-sound-
6. Nielsen M. Neural Networks and Deep Learning / Michael classification. – Title from the screen.
Nielsen. – Determination Press, 2015. – 216 р.
Глибовець М. М., Жиркова А. П. Використання машинного навчання у задачах класифікації звуків  31

References

Brink, H., Richards, D., & Feverolf, M. (2018). Mashinnoe obu­che­ Python Data Analysis Library. Retrieved from https://pandas.
nie. Sankt-Peterburg: Piter [in Russian]. pydata.org/.
Keras: The Python Deep Learning library. Retrieved from https:// scikit-learn. Retrieved from https://scikit-learn.org/stable/.
keras.io/. Shalev-Shwartz, S., & Ben-David, S. (2017). Understanding machi­
Module: Display. Retrieved from https://ipython.readthedocs.io/en/ ne learning: From theory to algorithms. Cambridge: Cambridge
stable/api/generated/IPython.display.html. University Press.
Music Genre Classification With Python. Retrieved from https:// This Is What Makes Keras Different, According To Its Author.
towardsdatascience.com/music-genre-classification-with- Forbes, 2016. Retrieved from https://www.forbes.com/sites/quora/
python-c714d032f0d8. 2016/08/25/this-is-what-makes-keras-different-according-to-
Music software written in Python. Retrieved from https://wiki.python. its-author/#2c7851fa66cf.
org/moin/PythonInMusic. Urban Sound Classification. Retrieved from https://www.kaggle.
Nielsen, M. A. (2015). Neural Networks and Deep Learning. Deter­ com/pavansanagapati/urban-sound-classification.
mination Press.

M. Glуbovets, A. Zhyrkova

USING MACHINE LEARNING


IN SOUND CLASSIFICATION TASKS
The article describes usaging circumstances of Machine Learning (ML) methods for classifying auditory
information . The problem was studied by using an example of urban sounds classification.
Machine Learning is a great possibility to process data presented differently, including text, images,
and sounds. Natural language processing requires text analysis. Pattern recognition involves interaction
with images. And, naturally, many ML tasks require working with numbers, e.g. prediction of the price
for houses, or benign or malignant tumor recognition based on numerical characteristics of the tumor.
As for sounds, most of researche is about music recognition and, in general, the related stuff. So, sound
processing is a relevant topic for ML problems.
Environmental sounds classification is a field which attracts specialists from various spheres. Multi-
media sensor networks and big variety of multimedia content, which describes urban scenes, is a huge
part of it.
Urban sounds classification is an important problem which needs to be solved. Many researchers focus
on locations (parks, streets, etc.) instead of sources (car horn, shoot, etc.). So, urban sounds classification
is a reasonable, urgent problem.
Development of best-fit Machine Learning models for correct classification of urban sounds re-
quires dealing with the following problems: sound representation as a set of numerical data consider-
ing its features for a possibility of ML algorithms to work with sound; data processing for optimization
of ML models efficiency; using methods of ML models optimization for presenting the best parameters
of each model; train models on training data; prediction of urban sound classes and checking the ac-
curacy of these predictions on test data; neural networks development for solving the urban sounds
classification problem.

Keywords: classification, machine learning, k-nearest neighbor, support vector machine, random forest,
neural networks, k-fold cross-validation, holdout method, grid search.
Матеріал надійшов 31.05.2019

You might also like