AI-For-Beginners/translations/fi/lessons/5-NLP/17-GenerativeNetworks
leestott 07e1ffa96b 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
GenerativePyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
GenerativeTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00

README.md

Generatiiviset verkot

Esiluentakysely

Toistuvat neuroverkot (Recurrent Neural Networks, RNN) ja niiden porttimalliset solumuunnelmat, kuten Long Short Term Memory Cells (LSTM) ja Gated Recurrent Units (GRU), tarjoavat mekanismin kielen mallintamiseen, koska ne voivat oppia sanojen järjestyksen ja ennustaa seuraavan sanan sekvenssissä. Tämä mahdollistaa RNN:ien käytön generatiivisissa tehtävissä, kuten tavallisessa tekstin generoinnissa, konekäännöksessä ja jopa kuvatekstien luomisessa.

Mieti kaikkia niitä kertoja, kun olet hyötynyt generatiivisista tehtävistä, kuten tekstin täydennyksestä kirjoittaessasi. Tutki suosikkisovelluksiasi ja selvitä, ovatko ne hyödyntäneet RNN:ejä.

Edellisessä yksikössä käsitellyssä RNN-arkkitehtuurissa jokainen RNN-yksikkö tuotti seuraavan piilotilan ulostulona. Voimme kuitenkin lisätä toisen ulostulon jokaiseen toistuvaan yksikköön, mikä mahdollistaa sekvenssin tuottamisen (joka on yhtä pitkä kuin alkuperäinen sekvenssi). Lisäksi voimme käyttää RNN-yksiköitä, jotka eivät ota syötettä jokaisessa vaiheessa, vaan ottavat vain alkuperäisen tilavektorin ja tuottavat sitten ulostulon sekvenssin.

Tämä mahdollistaa erilaiset neuroverkkoarkkitehtuurit, jotka on esitetty alla olevassa kuvassa:

Kuva, joka näyttää yleisiä toistuvien neuroverkkojen malleja.

Kuva blogikirjoituksesta Unreasonable Effectiveness of Recurrent Neural Networks kirjoittanut Andrej Karpaty

  • Yksi-yhteen on perinteinen neuroverkko, jossa on yksi syöte ja yksi ulostulo
  • Yksi-moneen on generatiivinen arkkitehtuuri, joka ottaa yhden syötearvon ja tuottaa sekvenssin ulostuloarvoja. Esimerkiksi, jos haluamme kouluttaa kuvatekstien luontiverkon, joka tuottaa tekstikuvauksen kuvasta, voimme syöttää kuvan, käsitellä sen CNN:llä saadaksemme piilotilan ja käyttää sitten toistuvaa ketjua tuottamaan kuvatekstin sana sanalta
  • Moneen-yksi vastaa edellisessä yksikössä kuvattuja RNN-arkkitehtuureja, kuten tekstiluokittelua
  • Moneen-moneen, tai sekvenssi-sekvenssi, vastaa tehtäviä, kuten konekäännös, jossa ensimmäinen RNN kerää kaiken tiedon syötesekvenssistä piilotilaan, ja toinen RNN-ketju purkaa tämän tilan ulostulosekvenssiksi.

Tässä yksikössä keskitymme yksinkertaisiin generatiivisiin malleihin, jotka auttavat meitä tuottamaan tekstiä. Yksinkertaisuuden vuoksi käytämme merkkitason tokenisointia.

Koulutamme tämän RNN:n tuottamaan tekstiä askel askeleelta. Jokaisessa vaiheessa otamme merkkisekvenssin, jonka pituus on nchars, ja pyydämme verkkoa tuottamaan seuraavan ulostulomerkin jokaiselle syötemerkille:

Kuva, joka näyttää esimerkin RNN:n sanan 'HELLO' generoinnista.

Kun tuotamme tekstiä (inference-vaiheessa), aloitamme jollakin aloitussyötteellä, joka syötetään RNN-soluihin tuottamaan niiden välimuisti, ja tästä tilasta alkaa generointi. Tuotamme yhden merkin kerrallaan ja syötämme tilan ja tuotetun merkin seuraavaan RNN-soluun tuottamaan seuraavan merkin, kunnes olemme tuottaneet tarpeeksi merkkejä.

Kuva kirjoittajalta

✍️ Harjoitukset: Generatiiviset verkot

Jatka oppimista seuraavissa muistikirjoissa:

Pehmeä tekstin generointi ja lämpötila

Jokaisen RNN-solun ulostulo on merkkien todennäköisyysjakauma. Jos aina valitsemme merkin, jolla on korkein todennäköisyys seuraavaksi merkiksi generoidussa tekstissä, teksti voi usein "jäädä kiertämään" samoja merkkisekvenssejä uudelleen ja uudelleen, kuten tässä esimerkissä:

today of the second the company and a second the company ...

Jos kuitenkin tarkastelemme seuraavan merkin todennäköisyysjakaumaa, voi olla, että muutaman korkeimman todennäköisyyden ero ei ole suuri, esimerkiksi yksi merkki voi saada todennäköisyyden 0,2 ja toinen 0,19. Esimerkiksi, kun etsitään seuraavaa merkkiä sekvenssissä 'play', seuraava merkki voi yhtä hyvin olla joko välilyönti tai e (kuten sanassa player).

Tämä johtaa siihen johtopäätökseen, että ei ole aina "oikeudenmukaista" valita merkkiä, jolla on korkein todennäköisyys, koska toisen korkeimman valitseminen voi silti johtaa mielekkääseen tekstiin. On viisaampaa näytteistää merkkejä verkon ulostulon antamasta todennäköisyysjakaumasta. Voimme myös käyttää parametria, lämpötila, joka tasoittaa todennäköisyysjakaumaa, jos haluamme lisätä satunnaisuutta, tai tekee siitä jyrkemmän, jos haluamme pitäytyä enemmän korkeimman todennäköisyyden merkeissä.

Tutki, miten tämä pehmeä tekstin generointi on toteutettu yllä linkitetyissä muistikirjoissa.

Yhteenveto

Vaikka tekstin generointi voi olla hyödyllistä itsessään, suurimmat hyödyt tulevat kyvystä tuottaa tekstiä RNN:ien avulla jostakin alkuperäisestä piirrevektorista. Esimerkiksi tekstin generointia käytetään osana konekäännöstä (sekvenssi-sekvenssi, tässä tapauksessa enkooderin tilavektoria käytetään tuottamaan tai dekoodaamaan käännetty viesti) tai kuvan tekstikuvauksen luomista (jolloin piirrevektori tulee CNN-uutteesta).

🚀 Haaste

Ota oppitunteja Microsoft Learn -alustalta tästä aiheesta

Jälkiluentakysely

Kertaus ja itseopiskelu

Tässä on joitakin artikkeleita tietämyksesi laajentamiseksi

Tehtävä

Olemme nähneet, kuinka tekstiä voidaan generoida merkki kerrallaan. Laboratoriossa tutkit sanatasoista tekstin generointia.


Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa väärinkäsityksistä tai virhetulkinnoista, jotka johtuvat tämän käännöksen käytöstä.