Changes between Version 4 and Version 5 of AGMFM - 5.1. Пристап и методологија


Ignore:
Timestamp:
11/16/18 10:10:56 (6 years ago)
Author:
Monika Rizova
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • AGMFM - 5.1. Пристап и методологија

    v4 v5  
    11**5.1.  Пристап и методологија**
    2 
    3 {{{#!box type=todo
    4 Мислам дека тука треба прво да се напише и опише накратко методологијата која сега е на крај. Каква е и зошто е таква. Да се излистаат чекорите, а потоа за секој од чекорите да се напише кои техники и алатки се користени.
    5 }}}
    6 
    7 
    8 {{{#!box type=todo
    9 Следниот параграф се однесува на дел од чекорите во методологијата, па соодветно треба да биде после тоа. Исто параграфот е малку мешан, бидејќи меша методи, техники и алатки. Прво треба да се разграничи кој метод, па која техника, па која алатка.  метод и конкретен софтвер. Треба да се продискутира методот (врз основа на што се базира софтверот) и што е специфично или различно тука во врска со тој метод. Тука ако стои опис на методологијата, не се битни сите детали, туку само попис, а потоа во соодветни поглавја да се образложи како тој метод е применет (во соодветно поглавје) или како тој софтвер е применет (во соодветно поглавје).
    10 }}}
    11 
    12 Имплементацијата прикажана во рамките на овој труд е креирана врз основа на тутотијал за креирање на музика со користење на LSTM и Keras, и претставува адаптација на кодот достапен на https://github.com/Skuldur/Classical-Piano-Composer, за генерирање на класични дела, во код за генерирање македонска народна мелодија, преку тестирање на разни параметри за моделот на невронската мрежа, менување на бројот на епохи за тренирање на моделот, менување на должината на низите кои ќе бидат  користени за предвидување на следна нота во резултантната мелодија и користење на CuDNNLSTM слој во архитектурата на мрежата наместо LSTM слој.
    13 
    14 {{{#!box type=todo
    15 Следното не припаѓа тука, за во имплементација.
    16 }}}
    17 
    18 
    19 Туторијалот е достапен овде: https://towardsdatascience.com/how-to-generate-music-using-a-lstm-neural-network-in-keras-68786834d4c5.
    20 
    21 {{{#!box type=todo
    22 Како што реков, следното треба најгоре некаде.
    23 }}}
    242
    253Методологијата за креирање на систем за автоматско генерирање на македонска народна мелодија, која јас ја користев е опишана во следниве чекори:
     
    3195.      Предвидување врз основа на тренираниот модел, односно генерирање мелодија
    32106.      Извезување на генерираната мелодија во формат кој може да се слушне
     11
     12Оваа методологија е најчесто користена во процесот на автоматско генерирање на музика со машинско учење.
     13
     14Увезувањето на податоците е остварено со помош на циклус за повторување, кој ги парсира сите музички документи во папката со податочното множество како музички поток - Stream, и е имплементирано со помош на music21. Откако се исчитани музичките документи и претставени во формат кој може да се обработува се анализира секој дел од секој музички документ дали е нота или акорд и се зачувува во листа на македонски ноти, соодветно како објект нота или објект акорд, односно се креира вокабулар од ноти.
     15
     16За да можеме да преминеме на следниот чекор, односно креирање на моделот, беше потребно да се дефинираат низи, влезна и излезна, за невронската мрежа. Најпрво беа конвертирани нотите во форма погодна за работење, односно речник од енумерирани висини на нотите, зачувани во цели броеви, а потоа со помош на модулот numpy, низата за влез во невронската м. беше преобликувана во соодветниот формат. Излезната низа е претставена во формат на категорични податоци.
     17
     18Откако беа дефинирани низите за невронската мрежа беше дефиниран секвенционен модел на невронската мрежа, составен од 3 CuDNNLSTM слоја, 3 Dropout слоја, 2 Dense слоја и еден слој со активирачка функција. Моделот беше дефиниран со помош на програмскиот интерфејс Keras, кој функционира врз платформата Tensorflow.
     19
     20Тренирањето на моделот е имплементирано со функцијата fit од Keras, и се повикува врз дефинираниот модел. Тренирав повеќе модели со разни вредности на хиперпараметрите на невронската мрежа.
     21
     22При текот на тренирањето, со помош на множеството функции callbacks, достапни од Keras, поточно со помош на функцијата ModelCheckpoint, беа зачувувани потадоците за функцијата на загуба на податоци за секоја епоха, врз основа на која можеме да ја процениме ефикасноста на моделот.
     23
     24Откако беа тренирани моделите, следниот чекор во генерирањето на мелодијата беше вчитување на минималните тежини од тренираните модели во компајлирањето на моделот, по што таквиот модел се користи во функција за генерирање македонски ноти. Функцијата генерира 500 ноти со случаен почеток од влезот на н.м. и на излез добиваме низа предвидени ноти.
     25
     26Последниот чекор во генерирањето на мелодијата е преведување на нотите во формат кој што може да се слушне, односно во МИДИ формат, со што би требало да добиеме резултантна мелодија која ќе потсетува на Македонска народна мелодија. 
     27
     28Имплементацијата прикажана во рамките на овој труд е креирана врз основа на техниките опишани во тутотијалот за генерирање на класични музички дела достапен на https://github.com/Skuldur/Classical-Piano-Composer, додека мојот пристап за адаптирање на кодот од туторијалот во код за генерирање македонска народна мелодија е преку тестирање на разни параметри за моделот на невронската мрежа, менување на бројот на епохи за тренирање на моделот, менување на должината на низите кои ќе бидат  користени за предвидување на следна нота во резултантната мелодија и користење на CuDNNLSTM слој во архитектурата на мрежата наместо LSTM слој.