Предсказването на бъдещето някога е било предмет на спекулации и мистерия. Благодарение на човешкия напредък това се превърна в задача, ограничена само от количеството и дълбочината на данните.

И тъй като живеем в общество, което непрекъснато генерира данни с експоненциална скорост, тази задача на предвиждане става все по-достъпна.

Колкото повече се вглеждате в прогнозите, базирани на данни, терминът LSTM със сигурност ще ви обърква. Както при много технологични концепции, това е акроним и означава Long Short Term Memory.

Казано по-просто, това е невронна мрежа - система за машинно обучение, предназначена да емулира човешки модели на обучение - която е в състояние да "помни" предишни данни и заключения и да ги използва, за да стигне по-точно до крайно заключение.

„… LSTM е обещаващ за всяка задача за последователна обработка, в която подозираме, че може да съществува йерархично разлагане, но не знаем предварително какво представлява това разлагане.“
— Феликс А. Герс, et al., Learning to Forget: Continual Prediction with LSTM, 2000

LSTM е тип повтаряща се невронна мрежа в дълбокото обучение, която е специално разработена за използване при справяне с проблеми с последователно прогнозиране. Например:

  • Прогноза за времето
  • Прогноза за фондовия пазар
  • Препоръка за продукта
  • Генериране на текст/изображение/ръкописен текст
  • Превод на текст

Имате нужда от опресняване на невронните мрежи като цяло?



„Тъй като LSTMs са ефективни при улавяне на дългосрочни времеви зависимости, без да страдат от препятствията за оптимизация, които измъчват обикновените повтарящи се мрежи (SRN), те са били използвани за напредък в най-съвременните технологии за много трудни проблеми. Това включва разпознаване и генериране на ръкописен текст, езиково моделиране и превод, акустично моделиране на реч, синтез на реч, прогнозиране на вторична структура на протеини, анализ на аудио и видео данни между другото.“
— Клаус Греф и др. ., LSTM: Космическа одисея за търсене, 2015 г

Подобно на други невронни мрежи, те съдържат неврони за извършване на изчисления, но за LSTM те често се наричат ​​клетки на паметта или просто клетки. Тези клетки съдържат тежести и порти; портите са отличителната черта на моделите LSTM. Във всяка клетка има 3 порти. Входната порта, портата за забравяне и изходната порта.

— Важни променливи —

— LSTM Gates —

Състоянието на клетката

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

Портата на забравата

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

Той приема 2 входа, нова информация (x_t) и изход от предишните клетки (h_t-1). Той прекарва тези входове през сигмоиден гейт, за да филтрира ненужните данни, и след това ги обединява със състоянието на клетката чрез умножение.

Входната врата

Тази врата добавя информация към състоянието на клетката. Човешкият еквивалент обмисля новопредставена информация в допълнение към информацията, която вече имате.

Подобно на вратата за забравяне, тя използва сигмоидна врата, за да определи какво количество информация трябва да се запази. Той използва функцията tanh, за да създаде вектор на информацията, която трябва да се добави. След това умножава резултатите от сигмоидния гейт и функциите tanh и добавя полезната информация към състоянието на клетката, като използва събиране.

В този момент цялата информация е настроена: начална информация, нова информация и премахване на ненужната информация. Всичко е събрано и компилирано и решението е готово за вземане.

Изходната врата

Последният порт избира полезна информация въз основа на състоянието на клетката, предишния изход на клетката и новите данни. Той прави това, като взема състоянието на клетката, след като вратите за въвеждане и забравяне са се слели, и го пуска през функция tanh, за да създаде вектор. След това взема новите данни и изхода на предишната клетка и ги прекарва през сигмоидна функция, за да намери какви стойности трябва да бъдат изведени. След това резултатите от тези 2 операции се умножават и се връщат като резултат от тези клетки.

За повече информация относно функциите за активиране (tanh и sigmoid):



Целият процес на движение на данните през клетките се случва в 1 клетка. Но в действителен модел може да има произволно количество клетки на слой, колкото и слоеве да се добавят, преди да се стигне до окончателно заключение.

И след това целият модел се изпълнява отново за толкова много епохи (повторения), които са необходими, за да се доближим до по-точен отговор. Колкото по-добра е точността; Колкото по-добра е прогнозата.

Като хора, ние извършваме този процес постоянно и с невероятно бърза скорост. Дори още докато се научихме да ходим, като поглеждаме назад и какво сме направили грешно, гледаме какво другите хора са направили правилно и се коригираме от това. Процесът LSTM, подобно на други невронни мрежи, има за цел да подражава на човешкия ум.

Разликата е в изчислителната мощ.

Хората сме изключително интелигентни същества, затова сме стигнали дотук, но знаем, че самите машини, които сме създали, са по-умни от нас. Особено по отношение на математическата и научната скорост.

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

Можем ли да го направим? да

Но може би не със същото ниво на точност. Да не говорим за приемането на милиони точки от данни като вход.

Така че виждате, ние можем да предсказваме бъдещето и дори не се нуждаем от гадател, за да го направим.

Просто мощен компютър, малко данни и малко математика!

Хареса ли ви четенето? Коментирайте, за да ми кажете какво мислите по темата, и следвайте, за да получите още статии за машинно обучение, наука за данни, STEM и кариерно/личностно развитие.