CBoW- ja Skip-gram-mallit
Perustiedot neuroverkoista ovat suositeltavia tämän kappaleen ymmärtämiseksi. Jos aihe ei ole entuudestaan tuttu, voit tutustua tähän kurssiin:
Sekä CBoW- että Skip-gram-arkkitehtuurit oppivat sanaupotuksia neuroverkkorakenteen avulla, joka koostuu seuraavista kerroksista:
- syötekerros;
- yksi piilokerros;
- ulostulokerros.
Syöte- ja piilokerrosten välinen painomatriisi, merkittynä W1 tai E, toimii upotusmatriisina. Jokainen tämän matriisin rivi edustaa upotusvektoria vastaavalle sanalle, ja i:s rivi vastaa sanastossa olevaa i:ttä sanaa.
Tämä matriisi sisältää V (sanaston koko) upotusta, joista jokaisen koko on N, määrittelemämme dimensio. Kun tämän matriisin transpoosi (N×V matriisi) kerrotaan one-hot-koodatulla vektorilla (V×1 vektori), saadaan tietyn sanan upotus, joka on N×1 vektori.
Toinen painomatriisi, joka sijaitsee piilotetun ja ulostulokerroksen välillä, on kooltaan N×V. Kun tämän matriisin transpoosi (V×N matriisi) kerrotaan piilotetun kerroksen N×1 vektorilla, tuloksena on V×1 vektori.
CBoW
Tarkastellaan nyt esimerkkiä CBoW-mallin käytöstä:
Ensiksi upotematriisin transpoosi kerrotaan kontekstisanojen one-hot-vektoreilla, jolloin saadaan niiden upotteet. Nämä upotteet summataan tai keskiarvoistetaan toteutuksesta riippuen, jolloin muodostuu yksi vektori. Tämä vektori kerrotaan W2-matriisilla, jolloin saadaan V×1 vektori.
Lopuksi tämä vektori syötetään softmax-aktivointifunktion läpi, jolloin siitä muodostuu todennäköisyysjakauma, jossa jokainen alkio kuvaa sanaston sanan todennäköisyyttä olla kohdesana.
Tämän jälkeen lasketaan tappio, ja molempia painomatriiseja päivitetään tämän tappion minimoimiseksi. Ihannetapauksessa halutaan, että kohdesanan todennäköisyys on lähellä 1 ja kaikkien muiden sanojen todennäköisyydet lähestyvät nollaa. Tämä prosessi toistetaan jokaiselle kohdesanan ja sen kontekstisanojen yhdistelmälle.
Kun kaikki yhdistelmät on käsitelty, yksi epookki on suoritettu. Tyypillisesti neuroverkkoa koulutetaan useiden epookkien ajan, jotta oppiminen olisi tarkkaa. Lopuksi tuloksena saadun upotusmatriisin rivejä voidaan käyttää sanaupotuksina. Jokainen rivi vastaa tietyn sanan vektoriesitystä sanastossa, mikä tehokkaasti tallentaa sen semanttiset ominaisuudet koulutettuun malliin.
Skip-gram
Tarkastellaan nyt skip-gram-mallia:
Kuten huomaat, prosessi on pääosin samanlainen kuin CBoW-mallissa. Se alkaa hakemalla kohdesanan upotus, jota käytetään piilotetussa kerroksessa. Tämän jälkeen tuotetaan V×1 -vektori ulostulokerroksessa. Tämä vektori saadaan kertomalla kohdesanan upotus ulostulokerroksen painomatriisilla, minkä jälkeen softmax-aktivointifunktio muuntaa sen todennäköisyysvektoriksi.
Vaikka tämä todennäköisyysvektori on sama kaikille kontekstisanoille, jotka liittyvät yhteen kohdesanaan yhden koulutusaskeleen aikana, tappio jokaiselle kontekstisanalle lasketaan yksittäin.
Jokaisen kontekstisanan tappio summataan, ja painomatriiseja päivitetään vastaavasti jokaisella iteraatiolla kokonaistappion minimoimiseksi. Kun määritelty määrä epookkeja on suoritettu, upotusmatriisia voidaan käyttää sanaupotusten saamiseksi.
Käytännössä, erityisesti suurilla sanastoilla, softmax-funktio voi olla liian laskennallisesti raskas. Tämän vuoksi käytetään usein approksimaatioita, kuten negatiivista näytteenottoa, laskennan tehostamiseksi.
1. Täydennä aukot
2. Mitä ensimmäinen painomatriisi W1 neuroverkossa edustaa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.45
CBoW- ja Skip-gram-mallit
Pyyhkäise näyttääksesi valikon
Perustiedot neuroverkoista ovat suositeltavia tämän kappaleen ymmärtämiseksi. Jos aihe ei ole entuudestaan tuttu, voit tutustua tähän kurssiin:
Sekä CBoW- että Skip-gram-arkkitehtuurit oppivat sanaupotuksia neuroverkkorakenteen avulla, joka koostuu seuraavista kerroksista:
- syötekerros;
- yksi piilokerros;
- ulostulokerros.
Syöte- ja piilokerrosten välinen painomatriisi, merkittynä W1 tai E, toimii upotusmatriisina. Jokainen tämän matriisin rivi edustaa upotusvektoria vastaavalle sanalle, ja i:s rivi vastaa sanastossa olevaa i:ttä sanaa.
Tämä matriisi sisältää V (sanaston koko) upotusta, joista jokaisen koko on N, määrittelemämme dimensio. Kun tämän matriisin transpoosi (N×V matriisi) kerrotaan one-hot-koodatulla vektorilla (V×1 vektori), saadaan tietyn sanan upotus, joka on N×1 vektori.
Toinen painomatriisi, joka sijaitsee piilotetun ja ulostulokerroksen välillä, on kooltaan N×V. Kun tämän matriisin transpoosi (V×N matriisi) kerrotaan piilotetun kerroksen N×1 vektorilla, tuloksena on V×1 vektori.
CBoW
Tarkastellaan nyt esimerkkiä CBoW-mallin käytöstä:
Ensiksi upotematriisin transpoosi kerrotaan kontekstisanojen one-hot-vektoreilla, jolloin saadaan niiden upotteet. Nämä upotteet summataan tai keskiarvoistetaan toteutuksesta riippuen, jolloin muodostuu yksi vektori. Tämä vektori kerrotaan W2-matriisilla, jolloin saadaan V×1 vektori.
Lopuksi tämä vektori syötetään softmax-aktivointifunktion läpi, jolloin siitä muodostuu todennäköisyysjakauma, jossa jokainen alkio kuvaa sanaston sanan todennäköisyyttä olla kohdesana.
Tämän jälkeen lasketaan tappio, ja molempia painomatriiseja päivitetään tämän tappion minimoimiseksi. Ihannetapauksessa halutaan, että kohdesanan todennäköisyys on lähellä 1 ja kaikkien muiden sanojen todennäköisyydet lähestyvät nollaa. Tämä prosessi toistetaan jokaiselle kohdesanan ja sen kontekstisanojen yhdistelmälle.
Kun kaikki yhdistelmät on käsitelty, yksi epookki on suoritettu. Tyypillisesti neuroverkkoa koulutetaan useiden epookkien ajan, jotta oppiminen olisi tarkkaa. Lopuksi tuloksena saadun upotusmatriisin rivejä voidaan käyttää sanaupotuksina. Jokainen rivi vastaa tietyn sanan vektoriesitystä sanastossa, mikä tehokkaasti tallentaa sen semanttiset ominaisuudet koulutettuun malliin.
Skip-gram
Tarkastellaan nyt skip-gram-mallia:
Kuten huomaat, prosessi on pääosin samanlainen kuin CBoW-mallissa. Se alkaa hakemalla kohdesanan upotus, jota käytetään piilotetussa kerroksessa. Tämän jälkeen tuotetaan V×1 -vektori ulostulokerroksessa. Tämä vektori saadaan kertomalla kohdesanan upotus ulostulokerroksen painomatriisilla, minkä jälkeen softmax-aktivointifunktio muuntaa sen todennäköisyysvektoriksi.
Vaikka tämä todennäköisyysvektori on sama kaikille kontekstisanoille, jotka liittyvät yhteen kohdesanaan yhden koulutusaskeleen aikana, tappio jokaiselle kontekstisanalle lasketaan yksittäin.
Jokaisen kontekstisanan tappio summataan, ja painomatriiseja päivitetään vastaavasti jokaisella iteraatiolla kokonaistappion minimoimiseksi. Kun määritelty määrä epookkeja on suoritettu, upotusmatriisia voidaan käyttää sanaupotusten saamiseksi.
Käytännössä, erityisesti suurilla sanastoilla, softmax-funktio voi olla liian laskennallisesti raskas. Tämän vuoksi käytetään usein approksimaatioita, kuten negatiivista näytteenottoa, laskennan tehostamiseksi.
1. Täydennä aukot
2. Mitä ensimmäinen painomatriisi W1 neuroverkossa edustaa?
Kiitos palautteestasi!