Въвеждане на повтарящи се невронни мрежи (RNN)

Повтарящата се невронна мрежа е един вид изкуствена невронна мрежа (ANN) и се използва в области на приложение на естествената обработка на езика (NLP) и разпознаването на реч. Моделът RNN е проектиран да разпознава последователните характеристики на данните и след това да използва моделите за прогнозиране на идващия сценарий.

Работа на повтарящи се невронни мрежи

Когато говорим за традиционните невронни мрежи, всички изходи и входове са независими един от друг, както е показано на диаграмата по-долу:

Но в случай на повтарящи се невронни мрежи, изходът от предишните стъпки се подава във входа на текущото състояние. Например, за да се предскаже следващата буква на която и да е дума или да се предвиди следващата дума на изречението, е необходимо да запомните предишните букви или думите и да ги съхраните в някаква форма на памет.

Скритият слой е този, който запомня някаква информация за последователността. Един прост пример от реалния живот, към който можем да свържем RNN е, когато гледаме филм и в много случаи сме в състояние да предвидим какво ще се случи след това, но какво ще стане, ако някой току-що се присъедини към филма и той е помолен да предскаже какво ще стане ли по-нататък? Какъв ще бъде отговорът му? Той или тя няма да имат никаква представа, защото не са наясно с предишните събития на филма и нямат спомен за него.

Илюстрация на типичен RNN модел е дадена по-долу:

RNN моделите имат памет, която винаги помни какво е направено в предишни стъпки и какво е изчислено. Една и съща задача се изпълнява на всички входове и RNN използва един и същ параметър за всеки от входовете. Тъй като традиционната невронна мрежа има независими набори от вход и изход, те са по-сложни от RNN.

Сега нека се опитаме да разберем Повтарящата се невронна мрежа с помощта на пример.

Да речем, имаме невронна мрежа с 1 входен слой, 3 скрити слоя и 1 изходен слой.

Когато говорим за други или традиционните невронни мрежи, те ще имат свои собствени набори отклонения и тежести в своите скрити слоеве като (w1, b1) за скрит слой 1, (w2, b2) за скрит слой 2 и (w3, b3 ) за третия скрит слой, където: w1, w2 и w3 са теглата и b1, b2 и b3 са отклоненията.

Като се има предвид това, можем да кажем, че всеки слой не зависи от всеки друг и че те не могат да си спомнят нищо за предишния вход:

Това, което ще направи RNN е следното:

  • Независимите слоеве ще бъдат преобразувани в зависимия слой. Това става, като се осигурят еднакви отклонения и тежести за всички слоеве. Това също намалява броя на параметрите и слоевете в повтарящата се невронна мрежа и помага на RNN да запомни предишния изход, като извежда предишния изход като вход към предстоящия скрит слой.
  • В обобщение, всички скрити слоеве могат да бъдат обединени в един повтарящ се слой, така че теглата и отклоненията да са еднакви за всички скрити слоеве.
    Така че повтарящата се невронна мрежа ще изглежда по-долу:

Сега е време да се справим с някои от уравненията за RNN модел.

  • За изчисляване на текущото състояние,

h t= f (h t-1, x t ),

Където:

x t е входното състояние
h t-1 е предишното състояние,
h t е текущото състояние.

  • За изчисляване на функцията за активиране

h t= tanh (W hh h t-1 +W xh x t ),

Където:
W xh е теглото на входящия неврон,

W hh е теглото при повтарящ се неврон.

  • За изчисляване на продукцията:

Y t =W hy h t.

Където,
Y t е изходът и,
W hy е теглото на изходния слой.

Стъпки за обучение на повтаряща се невронна мрежа

  1. Във входните слоеве първоначалният вход се изпраща с всички, които имат еднаква функция на тегло и активиране.
  2. Използвайки текущия вход и изход от предишното състояние, се изчислява текущото състояние.
  3. Сега текущото състояние h t ще стане h t-1 за втора стъпка.
  4. Това продължава да се повтаря за всички стъпки и за да реши всеки конкретен проблем, може да продължи толкова пъти, за да се присъедини към информацията от всички предишни стъпки.
  5. Последната стъпка се изчислява от текущото състояние на крайното състояние и всички останали предишни стъпки.
  6. Сега се генерира грешка чрез изчисляване на разликата между действителния изход и изхода, генериран от нашия RNN модел.
  7. Последната стъпка е, когато се случи процесът на обратното размножаване, при който грешката се разпространява обратно за актуализиране на теглата.

Предимства на повтарящите се невронни мрежи

  1. RNN може да обработва входове с всякаква дължина.
  2. Моделът RNN е моделиран да запомня всяка информация през цялото време, което е много полезно за всеки прогнозист на времеви серии.
  3. Дори ако входният размер е по-голям, размерът на модела не се увеличава.
  4. Теглата могат да бъдат споделени през стъпките във времето.
  5. RNN може да използва своята вътрешна памет за обработка на произволна серия от входове, което не е така при feedforward невронни мрежи.

Недостатъци на повтарящите се невронни мрежи

  1. Поради своя периодичен характер, изчислението е бавно.
  2. Обучението на RNN модели може да бъде трудно.
  3. Ако използваме relu или tanh като функции за активиране, става много трудно да обработваме много дълги последователности.
  4. Склонни към проблеми като избухване и изчезване на наклона.

заключение

В тази статия научихме друг тип Изкуствена невронна мрежа, наречена Повтаряща се невронна мрежа, фокусирахме се върху основната разлика, поради която RNN се откроява от други видове невронни мрежи, областите, в които може да се използва широко, например при разпознаване на речта и NLP (обработка на естествен език). Освен това, ние изоставихме работата на RNN модели и функции, които се използват за изграждане на здрав RNN модел.

Препоръчителни статии

Това е ръководство за периодични невронни мрежи. Тук обсъждаме въвеждането, как работи, стъпки, предимства и недостатъци на RNN и др. Можете също да разгледате и другите ни предложени статии, за да научите повече -
  1. Какво е невронни мрежи?
  2. Рамки за машинно обучение
  3. Въведение в изкуствения интелект
  4. Въведение в Big Data Analytics
  5. Внедряване на невронни мрежи

Категория: