Strängkärna

En strängkärna är en kärnfunktion definierad på strängar , dvs. ändliga teckensekvenser som inte nödvändigtvis har samma längd. Strängkärnor kan intuitivt förstås som funktioner som mäter likheten mellan par av strängar - ju mer lika två strängar a och b är, desto större är värdet på strängkärnan K(a, b) .

Användningen av strängkärnor med algoritmer för inlärning av kärnor , såsom stödvektormaskiner, tillåter sådana algoritmer att arbeta på strängar utan att behöva konvertera dem till funktionsvektorer med konstant längd som har verkliga element [1] . Strängkärnor används i områden där en sekvens av data är klustrade eller klassificerade, såsom textdatabearbetning och genanalys [2] .

Informell introduktion

Anta att någon automatiskt kommer att jämföra två textstycken och fastställa deras relativa likhet. För många applikationer kan det räcka med att hitta några helt matchande sökord. Ett exempel där en sådan exakt matchning inte alltid är tillräcklig kan hittas i skräppostdetektorer [3] . Ett annat exempel är datorgenanalys, där homologa gener har mutationer där tecken i den övergripande sekvensen kan raderas, infogas eller ersättas.

Bakgrund

Eftersom vissa väletablerade metoder för klustring, klassificering och extrahering av information från data (till exempel stödvektormaskin) är utformade för att fungera med vektorer (d.v.s. data representerar element i ett vektorrum), tillåter användningen av en strängkärna dessa metoder ska utvidgas till sekventiell data.

Strängkärnmetoden står i kontrast till de textklassificeringsmetoder som var vanliga innan dess uppkomst, där funktionsvektorerna endast visade närvaron eller frånvaron av ett ord. Detta förbättrade inte bara befintliga tillvägagångssätt, utan är också ett exempel på hur hela klassen av kärnor anpassar sig till de datastrukturer som började dyka upp på 2000-talet. En genomgång av sådana metoder gjordes av Gärtner [4] .

Inom bioinformatik används strängkärnor för att transformera biologiska sekvenser som proteiner eller DNA till vektorer för vidare användning i maskininlärningsmodeller. Ett exempel på en strängkärna för sådana ändamål är profilkärnan [5] .

Definition

Kärnan i domänen D är en funktion som uppfyller vissa villkor ( symmetrisk i argument, kontinuerlig , positiv definitiv i någon mening).

Mercers sats säger att K sedan kan uttryckas som enc-funktion sommappar argumenten till ett punktproduktutrymme .

Vi kan nu reproducera definitionen av kärnan av strängsubsekvenser [1] över strängar från alfabetet . Den koordinatvisa kartläggningen definieras enligt följande:

Indexen är multi- index , och u är en sträng med längd n - undersekvenser kan vara diskontinuerliga, men luckor straffas. Multiindexet anger matchande positioner för tecknen i u och s . är skillnaden mellan det första och sista elementet i , det vill säga hur långt en delföljd i s är från dess motsvarande delföljd i u . Parametern kan ställas in på vilket värde som helst mellan 0 (gap är inte tillåtna, eftersom endast 0 0 inte är 0, utan 1) och 1 (undersekvenser även med stora avstånd väger samma som utan avstånd, det vill säga som kontinuerliga undersekvenser), sedan .

För vissa viktiga algoritmer erhålls data av algoritmen endast i uttryck som använder den skalära produkten av funktionsvektorn, vilket är anledningen till att de kallas kärnmetoder . Därför är det önskvärt att det inte skulle vara nödvändigt att explicit beräkna transformationen , utan det skulle vara möjligt att bara beräkna den skalära produkten genom kärnan, vilket kan vara mycket snabbare, speciellt när man använder approximation [1] .

Anteckningar

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

Litteratur