Professional Documents
Culture Documents
Hlybovets, Zhyrkova Vykorystannia Mashynnoho Navchannia U Zadachakh Klasyfikatsii Zvukiv
Hlybovets, Zhyrkova Vykorystannia Mashynnoho Navchannia U Zadachakh Klasyfikatsii Zvukiv
Hlybovets, Zhyrkova Vykorystannia Mashynnoho Navchannia U Zadachakh Klasyfikatsii Zvukiv
8
DOI: 10.18523/2617-3808.2019.2.22-31
Ключові слова: класифікація, машинне навчання, метод k-найближчих сусідів, метод опорних
векторів, випадковий ліс, нейронні мережі, контроль за k-блоками, метод відкладених даних, сітко-
вий пошук.
звуку або інших сигналів, оскільки вони зміню- Важливим аспектом тут є те, що цей метод
ються з часом. А отже, перша вісь являє собою шукає найкращу комбінацію параметрів серед
частоту, а друга – час. усіх доступних.
Для розв’язання поставленої задачі ми брали Наприклад, необхідно знайти оптимальну мо-
набір аудіофайлів із сайту 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
Отже, табл. 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-пошуку. трів для навчання моделей на доступних даних.
прогнозів зіставленням реальних класів із пе- і тестової вибірок. Це робиться за допомогою
редбаченими. Потім застосовують метод оцін- спеціальної функції, яка називається 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 %.
Для аналізу помилок, які були зроблені під ліотек є 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 obuche 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
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