**4.2. LSTM невронски мрежи** {{{#!box type=todo Постои соодветна синтакса во вики системот за форматирање на индексите и степените, па треба да се користи истата за да бидат почитливи формулите. Формулите треба да се нумерирани и референцирани во текстот. }}} {{{#!box type=todo Референци? }}} {{{#!box type=todo Нема потреба да се повторува англиската терминологија насекаде ако еднаш е преведена. Значи секаде - само на првото спомнување на некој термин - истиот треба да се наведе преведен и во загради оригиналот, а потоа секаде да се користи само преводот или да се користи само кратенка ако постои препознатлива кратенка. }}} Музиката е резултат на креативноста на човекот и неговото познавање за неа. Таа има сложена структура, односно контекст кој изразува чувства. За да може една машина како компјутер да создава дела со сложен контекст, кои ќе имаат некоја структура и смисла, потребна е меморија од минатото, односно да биде способен да памети долгорочни зависности. Ова е овозможено со создавањето на рекурентните невронски мрежи со долго-краткорочна меморија, (на анг. Long-short term memory networks – LSTM networks). Разликата помеѓу едноставна рекурентна невронска мрежа и рекурентна невронска мрежа со долго-краткорочна меморија е во бројот на слоеви, односно едноставната р.н.м. има еден слој, додека р.н.м. со д-к. меморија има четири интерактивни слоја. [[Image(diff-rnn-lstm.png,40%)]] **Сл. 22.** Ванила рекурентна н. мрежа наспроти рекурентна н. м. со долго-краткорочна меморија LSTM невронските мрежи функционираат на следниот начин низ нивните четири слоја: **1. Слој - Порта за заборавање** [[Image(forget.png,20%)]] Овој слој ни овозможува да одлучиме кои информации ќе ги ќе ги отфрлиме, односно ќе ги заборавиме за во следниот чекор. Математички тоа е дефинирано со равенката: f,,t,,= σ (W,,f,, [h,,(t-1),, ,x,,t,, ]+ b,,f,, ), која значи да погледнеме во претходниот влез (h,,t-1,, и x,,t,,) и со помош на сигмоидна функција како резултат ќе добиеме бр. од 0 до 1 кој ни кажува колку да зачуваме во состојбата Ct-1. **2. Слој – Порта за влез** [[Image(input.png,20%)]] Слојот порта за влез ни кажува кои информации ќе ги додадеме. Овој слој е дефиниран со две равенки, првата равенка го опишува сигмоид слојот од портата за влез, односно одлучува која вредност ќе се надогради, додека втората равенка e тангенс слојот од портата за влез, која креира нова можна вредност Ct. i_t=σ (W_i [h_(t-1),x_t ]+ b_i ) - равенка за сигмоид слој C_t=tanh(W_c [h_(t-1),x_t ]+ b_c ) - равенка за тангенс слој **3. Слој на комбинирање** Во овој слој се врши комбинирање на претходно опишаните два слоја, односно се помножува старата состојба Ct-1 со ft и се додава it * Ct - за да се додади новата кандидат вредност. [[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 ) {{{#!box type=todo Треба барем да се споменат и да се каже зошто не се применуваат. }}} Постојат и повеќе видови на р.н.м. со долго-краткорочна меморија, но не се потребни во рамките на овој труд и затоа нема да бидат дискутирани.