A pozicionális kódolás az egyik alapvető technika a transzformátor alapú modellekben, amely lehetővé teszi számukra, hogy figyelembe vegyék a bemeneti elemek sorrendiségét. A transzformátor modellek, mint a GPT vagy BERT, nem használják az ismert, hagyományos, rekurzív hálózatokat, amelyek időbeli függőségeket modelleznek, hanem egy egyszerűsített mechanizmust alkalmaznak, amely az összes bemeneti token között figyelemfelkeltő kapcsolatokat alakít ki.

A pozicionális kódolás kulcsfontosságú szerepet játszik a tokenek sorrendi információinak átadásában a modell számára. A pozicionális vektorok koordinátái különböző sebességekkel haladnak körbe az egységkörön, amelyeket a pozicionális különbségek szögei mérnek. A transzformátor modellekben azokat a kódolási vektorokat használjuk, amelyek segítségével az adott helyek közötti különbségek jól mérhetők. Az egyik alapvető megfigyelés, hogy a pozicionális kódolás az alacsony frekvenciájú vektorokkal képes pontosan mérni a kisebb távolságokat, míg a nagyobb különbségek esetén a magas frekvenciájú vektorok hatékonyabbak.

A modellben alkalmazott koordináták, mint például az pk,2j1p_k, 2j-1 és pk,2jp_k, 2j, a pozicionális vektorok megfelelő párosítása révén működnek. Ezek a vektorok az egységkör különböző sebességein mozognak, amely lehetővé teszi a különböző távolságok mérését. Az alacsonyabb frekvenciájú kódolók, mint az ábrán látható (b) és (c) példák, hasznosak a nagyobb távolságok mérésére, de érzékenyebbek az apróbb eltérésekre.

Bár a pozicionális kódolás egyszerűen hozzáadódik a tokenekhez, sokan úgy vélik, hogy hatékonyan tárolja a pozicionális és a token információkat különálló, ortogonális térben. Ez akkor lehetséges, mert a tokenek beágyazása tanulható, így a modell képes fenntartani a pozicionális és a token információk elválasztottságát, miközben nem kell azokat teljesen összefűzni. Ez egy hatékony módja annak, hogy a pozicionális információk ne növeljék a dimenziókat, miközben az additív kódolás megtartja az előnyöket.

A transzformátor modellek önálló figyelem mechanizmusa a pozicionális kódolás alkalmazásakor további összefüggéseket generál. A kódolt vektorok önálló figyelemhez történő alkalmazása az alábbi módon alakul:

xi~TWxj~=xiTWxj+piTWxj+xiTWpj+piTWpj\tilde{x_i}^T W \tilde{x_j} = x_i^T W x_j + p_i^T W x_j + x_i^T W p_j + p_i^T W p_j

Ezen négy figyelemkifejezésből az első az alapvető figyelem, amely nem tartalmaz pozicionális információt, míg az utolsó a tisztán pozicionális figyelmet képviseli. A két középső kifejezés azokat az eseteket mutatja be, amikor a pozicionális és a token információk keverednek. Az újabb kutatások arra a következtetésre jutottak, hogy ezek a kevert kifejezések nem mindig hasznosak, és hogy különböző súlyozott mátrixokat kellene alkalmazni a token és a pozicionális figyelem kezelésére. Ezért a poszt-képzés során az ilyen típusú figyelem alternatívájaként különféle súlyozott mátrixok alkalmazása lehet előnyösebb, mint az egyszerű additív módszerek.

A pozicionális kódolás tehát kulcsszerepet játszik abban, hogy a transzformátor modellek hogyan képesek kezelni a bemenetek sorrendjét, és hogyan javítják a figyelem mechanizmusok pontosságát a hosszú távú függőségek kezelésében. Azonban fontos megjegyezni, hogy a pozicionális kódolás nem csak technikai szempontból érdekes, hanem gyakorlati szempontból is jelentős hatással van a modell teljesítményére, különösen a nagyobb szövegminták és komplex feladatok kezelésénél.

A transzformátor alapú modellek folyamatos fejlődésével a pozicionális kódolás hatékonysága és alkalmazhatósága is egyre fontosabbá válik, mivel egyre inkább az a tendencia, hogy a modellek képesek legyenek kezelni a még bonyolultabb és dinamikusabb helyzeteket, amelyek már a hagyományos, klasszikus megközelítésekkel nem oldhatók meg.

Hogyan befolyásolja a normalizálás és a kovariancia a gépi tanulási modellek pontosságát?

A mérési vektorok normalizálása alapvető lépés a gépi tanulásban, különösen akkor, amikor a bemeneti adatok különböző skálákon mozognak. Például, ha a vektorok standard eltérése 1, akkor az adatok átlaga 0, a varianciájuk pedig 1. Ha a mérési vektorok szórását, vagyis a σ1, ..., σn-t figyelembe vesszük, akkor a normalizált adatmátrix X̂ az alábbi képlettel ábrázolható:

X^=XΣ1\hat{X} = X \Sigma^{ -1}

Ahol Σ a szórásmátrix, és minden egyes oszlop (mérési vektor) átlagát 0-ra és szórását 1-re állítjuk be. A normalizálás célja, hogy biztosítsa: minden mérés ugyanazon a skálán helyezkedik el, így egy gépi tanulási algoritmus nem adhat nagyobb súlyt egy mérésnek pusztán azért, mert annak értékei nagyobbak, mint a többié. Ez különösen fontos, mivel ha az adatok különböző tartományokban helyezkednek el, akkor a modell könnyen azokat a változókat részesítheti előnyben, amelyek numerikusan nagyobbak.

A mérési vektorok normalizálása nem csupán a gépi tanulás hatékonyságát növeli, hanem segít abban is, hogy az egyes változók közötti összefüggések jobban láthatóvá váljanak. Egy példa erre, hogy a normalizált adatpontok ábrázolásakor láthatjuk a változók közötti lineáris vagy nem-lineáris összefüggéseket, függetlenül attól, hogy ezek az összefüggések erősek vagy gyengék.

A mérési vektorok közötti kovariancia fogalma különösen fontos, amikor több változó közötti kapcsolatot próbálunk feltárni. A kovariancia két mérési vektor közötti kapcsolat erősségét jelzi, és a következőképpen definiálható:

σvw=νk=1m(vkvˉ)(wkwˉ)\sigma_{vw} = \nu \sum_{k=1}^{m} (v_k - \bar{v}) (w_k - \bar{w})

Ez azt jelenti, hogy a kovariancia a két vektor eltéréseinek szorzataként van meghatározva, és a legfontosabb dolog, hogy a kovariancia pozitív értéke azt jelzi, hogy a két változó között pozitív kapcsolat áll fenn, míg a negatív kovariancia ellentétes, vagyis negatív összefüggést mutat.

A kovariancia matrica, amely az adatpontok közötti párhuzamos kapcsolatokat tartalmazza, a következőképpen néz ki:

SX=νXTJXS_X = \nu X^T J X

A kovariancia matrica szimmetrikus, és tartalmazza az összes lehetséges pár közötti kovarianciát, beleértve a varianciát is, amely a mérési vektorok közötti önálló szórásokat adja meg. A kovariancia matrica nyomvonala (azaz az összes mérési vektor varianciájának összege) az összes adatpont teljes szórását mutatja. Ha a kovariancia matrica átlátszó (vagyis diagonális), az azt jelenti, hogy az egyes változók között nincs összefüggés, tehát minden változó független.

Fontos figyelembe venni, hogy a kovariancia és a korreláció nem ugyanaz. A korreláció egy olyan mérőszám, amely a két változó közötti lineáris kapcsolat erősségét mutatja, és a következő képlettel van meghatározva:

ρvw=σvwσvσw\rho_{vw} = \frac{\sigma_{vw}}{\sigma_v \sigma_w}

Ahol a kovariancia és az egyes változók szórásának hányadosa. Az így kapott értékek -1 és +1 között mozognak, ahol a +1 teljes pozitív korrelációt, a -1 pedig teljes negatív korrelációt jelez, míg a 0 azt jelenti, hogy nincs lineáris kapcsolat.

A korreláció kulcsfontosságú a gépi tanulás számára, mivel segít megérteni, hogy egy-egy változó hogyan befolyásolhatja a többit. Az adatok előfeldolgozása során, a normalizálás és kovariancia számítások elvégzése után, a gépi tanulás modellek jobban megérthetik és modellezhetik a változók közötti összefüggéseket.

Az egyik legfontosabb dolog, amit a gépi tanulás során figyelembe kell venni, az a különböző típusú adatok és címkék kezelése. A címkék, amelyek lehetnek diszkrét kategóriák (mint például osztályozás esetén) vagy folytonos értékek (mint például regresszió esetén), fontos szerepet játszanak a tanulási algoritmusokban. Az algoritmus célja, hogy

Hogyan működik a Support Vector Machine (SVM) és miért fontos a margó?

A Support Vector Machine (SVM) egy olyan módszer, amelyet a gépi tanulásban és az adatbányászatban használnak, különösen akkor, amikor a célunk egy adathalmaz két csoportjának szétválasztása. A SVM a legnagyobb margóval rendelkező hiper síkot keresi a bemeneti adatokhoz. A margó fogalma alatt azt értjük, hogy mennyire széles a két osztály között húzott vonal vagy sík, és ennek maximalizálása segít jobb általánosító képességet elérni.

A SVM-et úgy is értelmezhetjük, hogy az adatokat két osztályba soroljuk, és megpróbálunk találni egy olyan egyenes vagy síkot, amely a legnagyobb távolságot tartja az adatpontok között. Ezt a távolságot hívjuk margónak. A margó maximalizálása egy matematikai optimalizációs feladatot jelent, amelyet a következő formában lehet kifejezni:

minww2olyanbR,yi(xiwb)1,i=1,,m\min_{w} \|w\|^2 \quad \text{olyan} \quad b \in \mathbb{R}, \quad y_i(x_i \cdot w - b) \geq 1, \quad i = 1, \dots, m

Itt a ww a döntési sík normálvektora, bb pedig az eltolás, míg xix_i az adatpontok, és yiy_i az azokhoz tartozó címkék. A cél, hogy a ww-t és bb-t úgy válasszuk meg, hogy minél nagyobb margót eredményezzenek, miközben a szabályozott feltételek teljesülnek.

A support vectorok olyan adatpontok, amelyek a margó határán helyezkednek el, és meghatározzák a legjobb döntési síkot. Ezek azok a pontok, amelyek éppen a xiwb=±1x_i \cdot w - b = \pm 1 egyenletet kielégítik. A geometriai értelemben véve, ezek a pontok a legfontosabbak, mert ezek határozzák meg a döntési határvonalat. Az SVM célja tehát az, hogy a támogatott vektorok helyzete alapján megtalálja a legjobb szétválasztó síkot, amely a maximális margót eredményezi.

Az egyszerű példánkban két adatpont van: x1=zx_1 = z és x2=zx_2 = -z, és a címkék y1=1y_1 = 1 és y2=1y_2 = -1. A két adatpont közötti legjobb szétválasztó sík megtalálásához az SVM problémája a következőképpen alakul:

minww2olyanbR,zwb1,zw+b1\min_w \|w\|^2 \quad \text{olyan} \quad b \in \mathbb{R}, \quad z \cdot w - b \geq 1, \quad -z \cdot w + b \geq 1

A megoldás itt w=z/z2w = z/\|z\|^2 és b=0b = 0, így a döntési szabály a xzx \cdot z előjelének vizsgálatával egyszerűsödik.

Az adatok gyakran nem lineárisan szeparálhatók, mint a fenti példa, és ilyenkor az SVM nem található meg, mivel nem létezik olyan lineáris döntési sík, amely tökéletesen elválasztaná az adatokat. Ebben az esetben szükség van egy soft-margin megközelítésre, amely lehetővé teszi, hogy az adatokat nem tökéletesen válasszuk el, figyelembe véve a zajt és az eltévelyedett adatpontokat. A soft-margin SVM formulája a következőképpen alakul:

minwλw2+1mi=1m(1yi(xiwb))+\min_w \lambda \|w\|^2 + \frac{1}{m} \sum_{i=1}^m (1 - y_i(x_i \cdot w - b))_+

Itt a λ>0\lambda > 0 egy hiperparaméter, amely lehetővé teszi a szabályozás és a szétválasztás közötti egyensúly megtalálását. Amikor az adatok nem szeparálhatók lineárisan, a soft-margin SVM képes rugalmasabban kezelni az ilyen helyzeteket.

A soft-margin SVM előnye, hogy képes kezelni a hibás adatokat is, és így biztosítja a legnagyobb margót, miközben a megoldás nem lesz túl érzékeny a zajra. A gyakorlatban ez az egyik leggyakrabban használt változata az SVM-nek. A különböző szabályozási változók, például a Ridge-regresszióhoz hasonló szabályozás, és a l1 normás változatok, amelyek a Lasso-hoz hasonlóan működnek, mind különböző alkalmazásokban hasznosak lehetnek.

Az SVM célja tehát, hogy a lehető legjobb döntési határt találja meg, amely maximálja a szétválasztás margóját, miközben rugalmasan kezeli a hibás adatokat és a zajos környezetet. Az egyik legnagyobb előnye, hogy képes jól általánosítani, még akkor is, ha az adatok között nem találunk tökéletes lineáris szétválasztást.

A többosztályos osztályozásnál is alkalmazható SVM, bár ekkor a bináris osztályozás módszerét kell alkalmaznunk. A leggyakoribb módszerek az egy-ellen-egy és az egy-ellen-mind (vagyis one-vs-all) stratégiák. Az előbbi esetében minden pár osztályra külön-külön osztályozót képezünk, és a legtöbb szavazattal rendelkező osztályt választjuk ki. Az utóbbi esetében minden egyes osztályra egy-egy bináris osztályozót képzünk, ahol az adott osztályba tartozó adatokat pozitív példáknak, a többieket negatív példáknak tekintjük. Az osztályozás így egyszerűbbé válik, és az SVM képes hatékonyan kezelni a többosztályos problémákat is.