Strengkerne

En strengkerne er en kernefunktion defineret på strenge , dvs. endelige sekvenser af tegn, der ikke nødvendigvis har samme længde. Stringkerner kan intuitivt forstås som funktioner, der måler ligheden mellem strengepar - jo mere ens to strenge a og b er, jo større er værdien af ​​strengkernen K(a, b) .

Brugen af ​​strengkerner med kerneindlæringsalgoritmer , såsom understøttende vektormaskiner, tillader sådanne algoritmer at operere på strenge uden at skulle konvertere dem til konstantlængde featurevektorer , der har reelle elementer [1] . Strengkerner bruges i områder, hvor en sekvens af data er grupperet eller klassificeret, såsom tekstdatabehandling og genanalyse [2] .

Uformel introduktion

Antag, at nogen automatisk vil sammenligne to stykker tekst og bestemme deres relative lighed. For mange applikationer kan det være tilstrækkeligt at finde nogle helt matchende søgeord. Et eksempel, hvor et sådant nøjagtigt match ikke altid er tilstrækkeligt, kan findes i spam- detektorer [3] . Et andet eksempel er computergenanalyse, hvor homologe gener har mutationer , hvor karakterer i den samlede sekvens kan slettes, indsættes eller erstattes.

Baggrund

Da nogle veletablerede metoder til at klynge, klassificere og udtrække information fra data (f.eks. understøtte vektormaskine) er designet til at arbejde med vektorer (dvs. dataene repræsenterer elementer af et vektorrum), tillader brugen af ​​en strengkerne. disse metoder skal udvides til sekventielle data.

Strengekernemetoden står i kontrast til de almindelige tekstklassificeringsmetoder før dens fremkomst, hvor featurevektorerne kun viste tilstedeværelsen eller fraværet af et ord. Dette forbedrede ikke kun eksisterende tilgange, men er også et eksempel på, hvordan hele klassen af ​​kerner tilpasser sig de datastrukturer, der begyndte at dukke op i det 21. århundrede. En gennemgang af sådanne metoder blev lavet af Gärtner [4] .

I bioinformatik bruges strengkerner til at transformere biologiske sekvenser såsom proteiner eller DNA til vektorer til videre brug i maskinlæringsmodeller. Et eksempel på en strengkerne til sådanne formål er profilkernen [5] .

Definition

Kernen i domænet D er en funktion , der opfylder nogle betingelser ( symmetrisk i argumenter, kontinuerlig , positiv bestemt i en eller anden forstand).

Mercers sætning siger, at K så kan udtrykkes som enc-funktion, derkortlægger argumenterne til et punktproduktrum .

Vi kan nu gengive definitionen af ​​kernen af ​​streng-undersekvenser [1] over strenge fra alfabetet . Den koordinatvise kortlægning er defineret som følger:

Indeksene er multiindekser , og u er en streng med længde n - undersekvenser kan være diskontinuerlige, men huller straffes. Multiindekset angiver de matchende positioner for tegnene i u og s . er forskellen mellem første og sidste element i , altså hvor langt en delfølge i s er fra dens tilsvarende delfølge i u . Parameteren kan indstilles til en hvilken som helst værdi mellem 0 (gab er ikke tilladt, da kun 0 0 ikke er 0, men 1) og 1 (undersekvenser selv med store afstande vejer det samme som uden afstande, det vil sige som kontinuerlige undersekvenser), siden .

For nogle vigtige algoritmer opnås dataene kun af algoritmen i udtryk, der bruger det skalære produkt af feature-vektoren, hvorfor de kaldes kernemetoder . Derfor er det ønskeligt, at det ikke er nødvendigt eksplicit at beregne transformationen , men det ville være muligt kun at beregne det skalære produkt gennem kernen, hvilket kan være meget hurtigere, især når man bruger tilnærmelse [1] .

Noter

  1. 1 2 3 Lodhi, Saunders, Shawe-Taylor, Cristianini, Watkins, 2002 , s. 419-444.
  2. Leslie, Eskin, Noble, 2002 , s. 566-575.
  3. Amayri, Bouguila .
  4. Gartner, 2003 .
  5. Kuang, Ie, Wang et al., 2005 , s. 527-550.

Litteratur