Monikerroksiset perceptronit (MLP) ovat eräänlaisia neuroverkkoja, jotka voivat ratkaista monia erilaisia ongelmia, kuten regressio- ja luokittelutehtäviä. Näiden tehtävien ratkaiseminen vaatii ymmärrystä siitä, kuinka verkon rakenne ja aktivointifunktiot vaikuttavat ennusteiden tarkkuuteen ja joustavuuteen.
Kun käsitellään regressiotehtäviä, kuten arvojen ennustamista, MLP-verkko käyttää useita ulostuloneuroneja, jotka tuottavat ennusteita. Esimerkiksi, jos halutaan ennustaa tuotteen pituus ja korkeus, tarvitaan vähintään kaksi ulostuloneuronia, jolloin saadaan ennusteet kummallekin ulottuvuudelle. Tällöin ennustukset voivat olla vapaasti liikkuvia lukuja, mutta jos ennusteen on aina oltava positiivinen, voidaan käyttää ReLU-aktivointifunktiota (Rectified Linear Unit). ReLU on suora ja yksinkertainen tapa varmistaa, että negatiiviset ennusteet eivät esiinny, mutta se ei ole kovin joustava, koska se rajoittaa ennusteita vain nollasta ylöspäin. Sileämpi vaihtoehto on softplus-aktivointi, joka toimii samalla tavoin, mutta on vähemmän jyrkkä, erityisesti negatiivisten arvojen kohdalla. Jos taas tarvitaan tiukempaa hallintaa ennusteiden alueelle, voidaan käyttää logistista funktiota tai hyperbolista tangenttia, joka rajaa ennusteet tarkasti haluttuun alueeseen. Näiden käyttö lisää ennusteen tarkkuutta ja hallittavuutta.
Kun MLP-verkkoa koulutetaan regressiotehtävässä, ennusteiden virheiden arvioimiseksi käytetään yleisesti keskimääräistä neliövirhettä (MSE). Tämä mittari on herkkä poikkeaville arvoille, joten jos data sisältää paljon ääriarvoja, voi olla järkevää valita keskimääräinen absoluuttinen virhe (MAE) tai jopa Huberin häviöfunktio, joka on yhdistelmä näistä kahdesta mittarista. Huberin häviö tarjoaa tasapainon neliövirheen herkkyyden ja absoluuttisen virheen yksinkertaisuuden välillä.
MLP:t eivät ole vain regressiotyökaluja; ne ovat erinomaisia myös luokittelutehtävissä. Yksinkertaisessa binääriluokittelutehtävässä, kuten roskapostin tunnistamisessa, verkko voi käyttää yhtä ulostuloneuronia, johon on asetettu logistinen aktivointi. Tämä neuron tuottaa arvon, joka on välillä 0 ja 1, ja tätä arvoa voidaan tulkita todennäköisyytenä sille, että kyseessä on roskaposti. Jos malli ennustaa arvon, joka on lähellä nollaa, se tarkoittaa, että viesti ei ole roskapostia. Tämä malli voidaan helposti laajentaa monitasoisiksi luokittelutehtäviksi. Esimerkiksi, jos samaan viestiin halutaan liittää useita luokkia, kuten roskapostin lisäksi myös kiireellinen tai ei-kiireellinen, tarvitaan kaksi erillistä ulostuloneuronia, molemmat logistisella aktivoinnilla. Näin verkko voi antaa todennäköisyyksiä jokaiselle luokalle erikseen.
Moniluokittelutehtävissä, joissa malli kategorisoi esimerkit useampaan luokkaan, kuten numeroiden tunnistamisessa 0–9, MLP tarvitsee useita ulostuloneuroneja, yhden jokaiselle luokalle. Tällöin käytetään softmax-aktivointia, joka varmistaa, että kaikkien ennustettujen todennäköisyyksien summa on 1 ja että kukin ennuste on välillä 0 ja 1. Tämä on erityisen tärkeää, kun luokat eivät ole toistensa aliluokkia vaan erillisiä, kuten numeroiden tunnistuksessa.
MLP:t ovat siis erittäin monipuolisia ja joustavia, kyeten ratkaisemaan laajan kirjon luokittelutehtäviä, aina yksinkertaisista binääriluokittelutehtävistä aina moniluokkaisiin haasteisiin saakka. Tämä tekee niistä arvokkaita työkaluja koneoppimisen maailmassa, joissa haasteet voivat vaihdella yksinkertaisista käänteisistä tehtävistä monimutkaisiin kategorisointeihin.
MLP:n rakentaminen Kerasilla on helppoa ja tehokasta. Keras on erittäin käyttäjäystävällinen ja helppo käyttää työkalu neuroverkkojen suunnitteluun, koulutukseen ja arviointiin. Kerasin kehittäjä François Chollet loi sen osaksi tutkimusprojektia, ja se julkaistiin avoimen lähdekoodin ohjelmistona vuonna 2015. Kerasin helppokäyttöisyys ja kaunis käyttöliittymä ovat tehneet siitä suosikin, mutta sen taustalla on myös tehokas laskentamoottori, kuten TensorFlow, Microsoft Cognitive Toolkit (CNTK) tai Theano. Tämä takaa, että Keras voi skaalautua tehokkaasti erilaisiin koneoppimisongelmiin.
Kuinka esittää teksti vektoreina ja ratkaista sanaston laajuden ongelma?
Yksi perusmenetelmistä tekstin esittämisessä tietokonesovelluksille on Bag-of-Words (BoW) -malli. Tämä menetelmä muuntaa tekstin numeeriseen muotoon, jotta kone voi käsitellä ja analysoida sitä. BoW-mallissa jokainen lause muunnetaan vektoreiksi, joissa jokainen elementti edustaa tietyn sanan esiintymistä lauseessa. Yksinkertaisuudessaan tämä tarkoittaa sitä, että jokainen sana sanalistasta saa arvon "1" (jos se esiintyy lauseessa) tai "0" (jos se ei esiinny lauseessa).
Esimerkiksi lause "It is good weather today" voidaan esittää seuraavalla tavalla:
“It” = 1, “is” = 1, “good” = 1, “weather” = 1, “today” = 1, “Last” = 0, “Year” = 0, “was” = 0, “not” = 0, “so” = 0.
Tämä vastaa vektoria: [1, 1, 1, 1, 1, 0, 0, 0, 0, 0].
Jos katsomme toista lausetta, "Last year it was not so good", se näyttää tältä:
“Last” = 1, “year” = 1, “it” = 1, “was” = 1, “not” = 1, “so” = 1, “good” = 1.
Tämä muodostaa vektorin: [1, 0, 1, 0, 0, 1, 1, 1, 1, 1].
Näin ollen jokaiselle lauseelle luodaan oma vektorimuotoinen esitys, joka voidaan syöttää koneoppimismalleihin. On kuitenkin tärkeää huomata, että tämä menetelmä saattaa johtaa suureen määrään tyhjiä arvoja (0), sillä sanasto voi olla hyvin laaja, ja monet sanat eivät esiinny kaikissa lauseissa.
Sanaston laajuus on yksi BoW-mallin suurimmista haasteista. Yksinkertaisessa esimerkissä käytimme vain kymmentä sanaa, mutta todellisessa elämässä sanaston koko voi olla huomattavasti suurempi – esimerkiksi kirjassa voi olla tuhansia sanoja. Tämä johtaa siihen, että lauseiden esittämiseen tarvittavat vektorit voivat olla valtavan suuria ja vaikeasti käsiteltäviä. Tässä vaiheessa on hyödyllistä soveltaa erilaisia tekniikoita sanaston koon ja vektoreiden pienentämiseksi.
Yksi näistä tekniikoista on kirjainten koon standardointi. Jos kaikki sanat muunnetaan pieniksi kirjaimiksi, voidaan välttää eroja, kuten “The” ja “the”, jotka saavat saman esitysmuodon. Toinen hyödyllinen lähestymistapa on poistaa niin sanotut "stop words" eli yleiset sanat, jotka eivät tuo merkittävää lisäarvoa analyysille, kuten "and", "the", "is". Näin saadaan vielä tiiviimpi ja tarkempi sanasto.
Kolmas tekniikka, jota voidaan käyttää, on sanojen perusmuotojen (lemmatization) käyttö. Esimerkiksi sanat “eating”, “ate” ja “eaten” voidaan muuntaa perusmuotoonsa “eat”. Tämä vähentää sanaston koon kasvua ja mahdollistaa saman käsitteen ilmaisemisen yhdellä sanalla, vaikka se esiintyisi eri muodoissa.
Kun käsitellään useita dokumentteja, voidaan käyttää esimerkiksi Pythonin CountVectorizer-kirjastoa, joka mahdollistaa sanaston luomisen ja tekstin muuntamisen vektoreiksi. Tässä esimerkissä luodaan sanakirja yksittäisistä sanoista ja muunnetaan dokumentit binäärisiksi vektoreiksi, jotka kuvaavat sanojen esiintymistä kyseisissä dokumenteissa.
Tässä koodissa käytetään seuraavia dokumentteja:
-
"Today Weather is good"
-
"Yesterday it was not so good"
-
"It will remain the same throughout this month"
-
"It was same Last year"
-
"Last year it was also good"
-
"Hopefully, next month it will be good as well"
-
"Good weather in next month will be amazing"
Kun käytämme CountVectorizer-moduulia, saamme sanakirjan, joka sisältää seuraavat sanat: ['amazing', 'good', 'hopefully', 'month', 'remain', 'today', 'weather', 'year', 'yesterday']. Näitä sanoja käytetään vektoreiden luomiseen, ja kukin dokumentti saa oman binäärivektorinsa, joka kertoo, mitkä sanat esiintyvät kyseisessä dokumentissa.
Vaikka BoW-malli toimii hyvin pienemmissä ja vähemmän monimutkaisissa dokumenteissa, se ei ole kovin tehokas käsiteltäessä suuria ja monimuotoisia tekstejä. Tällöin voidaan käyttää N-Gram-mallia, jossa sanastossa ei ole pelkästään yksittäisiä sanoja, vaan myös sanayhdistelmiä (esimerkiksi "good weather" tai "last year"). Tämä parantaa tekstin rakenteen ja merkityksen säilymistä, sillä se ottaa huomioon sanan ympäristön ja yhteydet.
N-Gram-mallin avulla voimme luoda sanakirjan, jossa kukin "token" koostuu useammasta kuin yhdestä sanasta. Esimerkiksi 2-Gram-mallissa dokumenteista muodostetaan sanayhdistelmiä kuten "good weather", "hopefully month" ja niin edelleen. Tämä auttaa pitämään tekstin esitysmuodon tiiviimpänä ja helpommin käsiteltävänä.
Erityisesti laajojen tekstikokoelmien käsittelyssä on hyvä käyttää TF-IDF-mallia, joka painottaa sanojen tärkeyttä dokumentissa niiden esiintymistiheyden ja sanan harvinaisuuden mukaan. Tämä auttaa tunnistamaan keskeiset ja tärkeät sanat dokumenteissa ja vähentämään yleisten, ei-merkitsevien sanojen vaikutusta.
On kuitenkin tärkeää ymmärtää, että vaikka nämä mallit tarjoavat tehokkaita tapoja esittää teksti numeerisessa muodossa, ne eivät kuitenkaan tallenna kielen semanttista tai syntaktista rakennetta. Toisin sanoen ne eivät ymmärrä sanojen merkityksiä tai yhteyksiä keskenään samalla tavalla kuin ihminen. Tämän vuoksi tekstin esittämismalleja tulisi käyttää huolellisesti ja ymmärtäen niiden rajoitukset. Tämä on keskeinen tekijä, joka erottelee perinteiset tekstin käsittelymenetelmät nykyaikaisista syväoppimismalleista, jotka voivat ottaa huomioon tekstin syvemmän merkityksen.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский