Въвеждане на повтарящи се невронни мрежи (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 е теглото на изходния слой.
Стъпки за обучение на повтаряща се невронна мрежа
- Във входните слоеве първоначалният вход се изпраща с всички, които имат еднаква функция на тегло и активиране.
- Използвайки текущия вход и изход от предишното състояние, се изчислява текущото състояние.
- Сега текущото състояние h t ще стане h t-1 за втора стъпка.
- Това продължава да се повтаря за всички стъпки и за да реши всеки конкретен проблем, може да продължи толкова пъти, за да се присъедини към информацията от всички предишни стъпки.
- Последната стъпка се изчислява от текущото състояние на крайното състояние и всички останали предишни стъпки.
- Сега се генерира грешка чрез изчисляване на разликата между действителния изход и изхода, генериран от нашия RNN модел.
- Последната стъпка е, когато се случи процесът на обратното размножаване, при който грешката се разпространява обратно за актуализиране на теглата.
Предимства на повтарящите се невронни мрежи
- RNN може да обработва входове с всякаква дължина.
- Моделът RNN е моделиран да запомня всяка информация през цялото време, което е много полезно за всеки прогнозист на времеви серии.
- Дори ако входният размер е по-голям, размерът на модела не се увеличава.
- Теглата могат да бъдат споделени през стъпките във времето.
- RNN може да използва своята вътрешна памет за обработка на произволна серия от входове, което не е така при feedforward невронни мрежи.
Недостатъци на повтарящите се невронни мрежи
- Поради своя периодичен характер, изчислението е бавно.
- Обучението на RNN модели може да бъде трудно.
- Ако използваме relu или tanh като функции за активиране, става много трудно да обработваме много дълги последователности.
- Склонни към проблеми като избухване и изчезване на наклона.
заключение
В тази статия научихме друг тип Изкуствена невронна мрежа, наречена Повтаряща се невронна мрежа, фокусирахме се върху основната разлика, поради която RNN се откроява от други видове невронни мрежи, областите, в които може да се използва широко, например при разпознаване на речта и NLP (обработка на естествен език). Освен това, ние изоставихме работата на RNN модели и функции, които се използват за изграждане на здрав RNN модел.
Препоръчителни статии
Това е ръководство за периодични невронни мрежи. Тук обсъждаме въвеждането, как работи, стъпки, предимства и недостатъци на RNN и др. Можете също да разгледате и другите ни предложени статии, за да научите повече -- Какво е невронни мрежи?
- Рамки за машинно обучение
- Въведение в изкуствения интелект
- Въведение в Big Data Analytics
- Внедряване на невронни мрежи