**4.2. LSTM невронски мрежи** {{{#!box type=todo Референци? }}} Музиката е резултат на креативноста на човекот и неговото познавање за неа. Таа има сложена структура, односно контекст кој изразува чувства. За да може една машина како компјутер да создава дела со сложен контекст, кои ќе имаат некоја структура и смисла, потребна е меморија од минатото, односно да биде способен да памети долгорочни зависности. Ова е овозможено со создавањето на рекурентните невронски мрежи со долго-краткорочна меморија. Разликата помеѓу едноставна рекурентна невронска мрежа и рекурентна невронска мрежа со долго-краткорочна меморија е во бројот на слоеви, односно едноставната р.н.м. има еден слој, додека р.н.м. со д-к. меморија има четири интерактивни слоја. [[Image(diff-rnn-lstm.png,40%)]] **Сл. 18.** Ванила рекурентна н. мрежа наспроти рекурентна н. м. со долго-краткорочна меморија LSTM невронските мрежи функционираат на следниот начин низ нивните четири слоја: **1. Слој - Порта за заборавање** [[Image(forget.png,20%)]] Овој слој ни овозможува да одлучиме кои информации ќе ги ќе ги отфрлиме, односно ќе ги заборавиме за во следниот чекор. Математички тоа е дефинирано со равенката (1): f,,t,,= σ (W,,f,, [h,,(t-1),, ,x,,t,, ]+ b,,f,, ) (1), која значи да погледнеме во претходниот влез (h,,t-1,, и x,,t,,) и со помош на сигмоидна функција како резултат ќе добиеме бр. од 0 до 1 кој ни кажува колку да зачуваме во состојбата C,,t-1,, . **2. Слој – Порта за влез** [[Image(input.png,20%)]] Слојот порта за влез ни кажува кои информации ќе ги додадеме. Овој слој е дефиниран со две равенки, првата равенка го опишува сигмоид слојот од портата за влез, односно одлучува која вредност ќе се надогради, додека втората равенка e тангенс слојот од портата за влез, која креира нова можна вредност C,,t,,. i,,t,,=σ (W,,i,, [h,,(t-1),, ,x,,t,, ]+ b,,i,, ) - равенка за сигмоид слој C,,t,,=tanh(W,,c,, [h,,(t-1),, ,x,,t,, ]+ b,,c,, ) - равенка за тангенс слој **3. Слој на комбинирање** Во овој слој се врши комбинирање на претходно опишаните два слоја, односно се помножува старата состојба C,,t-1,, со f,,t,, и се додава i,,t,, * C,,t,, - за да се додади новата кандидат вредност. [[Image(combine.png,20%)]] Математички изразено равенката на овој слој е: C,,t,,= f,,t,,* C,,t-1,, + i,,t,, * C,,t,, **4. Слој за филтрирање/излез на состојбата на ќелијата** Тука се дефинира каков ќе биде излезот, а тоа го правиме со множење на двете функции сигмоид и тангенс, така што сигмуид функцијата ни кажува кој дел ќе оди на излез, а тангенс функцијата служи за да ја ограничи вредноста да биде помеѓу -1 и 1. [[Image(output.png,20%)]] Равенката на сигмоид функцијата е: σ,,t,,=σ (W,,о,, [h,,(t-1),, ,x,,t,, ]+ b,,о,, ) Равенката за излезната состојба е: h,,t,,= σ,,t,, ×tanh(C,,t,, ) Постојат и повеќе видови на р.н.м. со долго-краткорочна меморија, но не се потребни во рамките на овој труд и затоа нема да бидат дискутирани.