AI:n perusteet
Mitkä ovat RNN:t ja LSTM:t syvän oppimisen alalla?
Monet merkittävimmistä edistysaskelista luonnollisen kielen prosessoinnissa ja tekoälychatboteissa perustuvat Toistuvasti Neuroverkkoihin (RNN) ja Pitkän Lyhyen Aikamuistin (LSTM) verkostoihin. RNN:t ja LSTM:t ovat erityisiä neuroverkkoarkkitehtuureja, jotka pystyvät prosessoimaan sekvenssimuotoista dataa, dataa, jossa aikajärjestys on tärkeää. LSTM:t ovat periaatteessa parannettuja versioita RNN:istä, jotka pystyvät tulkkaamaan pidempiä datajonoja. Tarkastellaan, miten RNN:t ja LSTM:t ovat rakennettu ja miten ne mahdollistavat monimutkaisten luonnollisen kielen prosessointijärjestelmien luomisen.
Mitä ovat Feed-Forward Neuroverkot?
Ennen kuin puhumme siitä, miten Pitkän Lyhyen Aikamuisti (LSTM) ja Konvoluutio Neuroverkot (CNN) toimivat, tulisi keskustella neuroverkon yleisestä muodosta.
Neuroverkko on tarkoitettu tarkastelemaan dataa ja oppimaan merkityksellisiä malleja, jotta nämä mallit voidaan soveltaa muihin datoihin ja uusia datoja voidaan luokitella. Neuroverkot on jaettu kolmeen osaan: syötekerrokseen, piilotettuun kerrokseen (tai useisiin piilotettuihin kerroksiin) ja ulostekerrokseen.
Syötekerros on se, joka ottaa datan neuroverkkoon, kun taas piilotetut kerrokset ovat ne, jotka oppivat datan malleja. Piilotetut kerrokset datassa ovat yhdistetty syöte- ja ulostekerroksiin “painoilla” ja “harhoilla”, jotka ovat oletuksia siitä, miten datapisteet liittyvät toisiinsa. Nämä painot säätetään koulutuksen aikana. Kun verkko koulutetaan, mallin arvaukset koulutusdatasta (ulostearvot) vertaillaan todellisiin koulutusmerkintöihin. Koulutuksen aikana verkko pitäisi (toivottavasti) tulla tarkemmaksi suhteiden ennustamisessa datapisteiden välillä, jotta se voi luokitella uudet datapisteet oikein. Syvät neuroverkot ovat verkkoja, joilla on enemmän kerroksia keskellä/enemmän piilotettuja kerroksia. Mitä enemmän piilotettuja kerroksia ja solmuja malli on, sitä paremmin se tunnistaa datoissa olevia malleja.
Tavalliset, eteenpäin suuntautuvat neuroverkot, kuten ne, joita olen kuvaillut yllä, kutsutaan usein “tiheiksi neuroverkoiksi”. Nämä tiheät neuroverkot yhdistetään erilaisiin verkkoarkkitehtuureihin, jotka erikoistuvat erilaisten datoien tulkkaamiseen.
Mitä ovat RNN:t (Toistuvat Neuroverkot)?

Toistuvat Neuroverkot ottavat yleisen periaatteen eteenpäin suuntautuvista neuroverkoista ja mahdollistavat niiden käsittelyn sekvenssimuotoista dataa antamalla mallille sisäisen muistin. “Toistuva” osa RNN:n nimestä tulee siitä, että syöte- ja ulostesignaaleiden silmukat. Kun verkon ulostus on tuotettu, ulostus kopioituu ja palautetaan verkkoon syötteenä. Kun tehdään päätös, ei vain nykyinen syöte ja ulostus analyysoida, vaan myös edellinen syöte otetaan huomioon. Toisin sanoen, jos verkon alkuperäinen syöte on X ja ulostus on H, sekä H että X1 (seuraava syötedatajonossa) syötetään verkkoon seuraavaan oppimiskierroksen aikana. Tällä tavoin datan konteksti (edelliset syötteet) säilytetään, kun verkko koulutetaan.
Toistuvien Neuroverkkojen tuloksena on, että ne pystyvät käsittelemään sekvenssimuotoista dataa. Toistuvat Neuroverkot kuitenkin kärsivät joistakin ongelmista. Toistuvat Neuroverkot kärsivät häviävän gradientin ja räjähtävän gradientin ongelmista.
Toistuvien Neuroverkkojen tulkittavien sekvenssien pituus on melko rajoitettu, erityisesti verrattuna LSTM:ihin.
Mitä ovat LSTM:t (Pitkän Lyhyen Aikamuistin Verkot)?
Pitkän Lyhyen Aikamuistin Verkot voidaan pitää Toistuvien Neuroverkkojen laajennuksina, jotka soveltavat edelleen syötteen kontekstin säilyttämisen periaatetta. Pitkän Lyhyen Aikamuistin Verkot on kuitenkin muutettu useilla tärkeillä tavoilla, jotka mahdollistavat niiden tulkkaamisen aiempaa paremmin. Pitkän Lyhyen Aikamuistin Verkkojen muutokset liittyvät häviävän gradientin ongelmaan ja mahdollistavat niiden tarkastelemisen paljon pidempiä syötedatoja.

Pitkän Lyhyen Aikamuistin mallit koostuvat kolmesta eri komponentista tai porteista. On syöteportti, ulosteportti ja unohdusportti. Kuten Toistuvat Neuroverkot, Pitkän Lyhyen Aikamuistin Verkot ottaa huomioon edellisen aikajanan syötteet, kun ne muokkaavat mallin muistia ja syötepainoja. Syöteportti tekee päätöksiä siitä, mitkä arvot ovat tärkeitä ja mitkä pitäisi päästää malliin. Syöteportissa käytetään sigmoid-funktiota, joka tekee päätöksiä siitä, mitkä arvot pitäisi välittää neuroverkon kautta. Nolla pudottaa arvon, kun taas yksi säilyttää sen. Tanh-funktiota käytetään myös tässä, joka päättää, miten tärkeitä syötearvot ovat mallille, vaihdellen -1 ja 1 välillä.
Kun nykyiset syötteet ja muistitila on otettu huomioon, ulosteportti päättää, mitkä arvot pitäisi välittää seuraavaan aikajaksoon. Ulostportissa arvot analyysoidaan ja niille annetaan tärkeys, joka vaihtelee -1 ja 1 välillä. Tämä säätelee dataa, ennen kuin se siirretään seuraavaan laskuun. Lopulta, unohdusportin tehtävä on pudottaa tarpeettomat tiedot, joita malli pitää tarpeettomina päätöksenteon kannalta. Unohdusportissa käytetään sigmoid-funktiota arvoille, josta saadaan lukuja välillä 0 (unohda) ja 1 (säilytä).
Pitkän Lyhyen Aikamuistin neuroverkko koostuu sekä erityisistä Pitkän Lyhyen Aikamuistin kerroksista, jotka voivat tulkita sekvenssimuotoista sana-dataa, että tiheästi yhdistetyistä kerroksista, kuten yllä kuvattu. Kun data kulkee Pitkän Lyhyen Aikamuistin kerrosten läpi, se siirtyy tiiviisti yhdistetyille kerroksille.












