‫Welkom terug, iedereen, bij deze voortdurende bespreking van de theorie en intuïtie achter ondersteunende
‫vectormachines in deze lezing.
‫We gaan ons echt concentreren op de kerneltruc en de wiskunde achter ondersteunende vectormachines.
‫Eerder hebben we eigenlijk alleen de intuïtie achter deze methoden besproken.
‫Dus we gaan nu kort in op de algemene wiskunde van hoe we bouwen om vectormachines
‫te ondersteunen en we zullen ook bespreken hoe de wiskunde gerelateerd is aan de seculiere en klassenoproepen.
‫We beginnen met een korte bespreking van het gebruik van op marges gebaseerde classificaties, langzaam uitbreidend
‫van maximale margeclassificatie naar ondersteuningsvectorclassificatie, en ten slotte het gebruik van de kerneltruc voor ondersteunende
‫vectormachines.
‫Beschouw dit nu gerust als een optionele lezing, die je kunt vervangen door de relatieve lezing.
‫De achtergrondinformatie is te vinden in hoofdstuk negen van een inleiding tot statistisch leren voor een diep,
‫uitgebreid overzicht van alles wat we bespreken.
‫Je zou de originele publicatie van Cortez kunnen bekijken en of APNIC Support Vector Networks heeft genoemd in het
‫Machine Learning Journal.
‫Laten we het eerst hebben over hyperplaints die hier wiskundig zijn gedefinieerd. Ik kan me een tweedimensionale
‫ruimte voorstellen met twee kenmerken X1 en X2.
‫Een hypervlak is slechts een lijn in twee kenmerken, wat betekent dat ik dit wiskundig zou kunnen definiëren als de lijnen die we
‫eerder hebben gezien.
‫Een bèta, niet voor het intercept plus bèta één keer X1 plus bèta twee keer x2 en stel dit gelijk aan nul en er
‫zal een reeks bèta's zijn die deze lijn gaat definiëren.
‫Houd er rekening mee dat ik dit zou kunnen uitbreiden naar een aantal dimensies, en dit gewoon kan voortzetten waar
‫er een enkele Beita-coëfficiënt is voor elk afzonderlijk kenmerk.
‫Dit is de wiskundige definitie van een hypervlak voor een aantal kenmerken.
‫Laten we het hebben over het scheiden van hypervlakken, het hele idee achter hypervlakken voor ondersteunende vectormachines
‫is dat ze de klassen scheiden, wat betekent dat ik niet alleen moet nadenken over de
‫hybride vlaklijn zelf, maar ook over de wiskundige definities van wat ik' ga ik als scheidingsfactor
‫beschouwen.
‫Dus ik wil overwegen dat de waarden die boven nul liggen aan één kant van dit hypervlak zullen vallen.
‫Evenzo zullen de waarden onder nul aan de andere kant van het hypervlak vallen.
‫Dus nu heb ik een reeks vergelijkingen die kan bepalen aan welke kant van het hypervlak je valt.
‫De laatste overweging die we moeten maken om iets als een max-margeclassificator wiskundig
‫te definiëren, zijn de gegevenspunten zelf.
‫Iets om op te merken is dat wanneer we dit wiskundig uittypen, we meestal
‫de werkelijke kenmerkpunten of gegevenspunten weergeven als de getransponeerde matrix van X.
‫Dat wil zeggen dat X één tot en met NP het aantal gegevenspunten vertegenwoordigt en één tot en met P
‫het aantal kenmerken.
‫Merk dus op dat dit is getransponeerd van de manier waarop we onze gegevens doorgaans uitschrijven in zoiets als
‫het dataframe van een panda.
‫Het zijn dezelfde gegevens.
‫Gewoon transponeren.
‫Dus dan de kolommen van de rijen en de rijen van de kolommen, nogmaals, één tot en met N is het
‫aantal punten zelf.
‫Een therapie is het aantal feitelijke kenmerken.
‫Dus in dit geval zouden we twee kenmerken X1 en X2 hebben, gezien het diagram aan de rechterkant en we
‫zouden zes punten hebben.
‫Dus één tot zes zou één door zijn.
‫Laten we nu al deze informatie gebruiken om wiskundig een max-margeclassificatie te definiëren.
‫Bedenk dat het hele doel van een max-marge-classificator is om M te maximaliseren, waarbij m deze marge is die zich uitstrekt vanaf
‫het waterplan.
‫We proberen dus in wezen de beste bètacoëfficiënten te kiezen die deze marge kunnen maximaliseren, maar
‫we hebben enkele beperkingen.
‫We zijn onderhevig aan deze twee beperkingen, gezien de dataset, dus wat betekent dit eigenlijk?
‫Dit betekent alleen dat wat we proberen te doen is de datapunten hier te bekijken.
‫In dit geval hebben we zes gegevenspunten of één door NP.
‫En we willen ervoor zorgen dat we aan deze onderwerpvereiste voldoen, waarbij de datapunten in wezen gelijk aan of
‫groter zijn dan de marge, afhankelijk van aan welke kant van de marge ze
‫daadwerkelijk vallen.
‫Dit is in wezen slechts een wiskundige manier om te zeggen dat voor een classificatie van de maximale marge geen gegevenspunten
‫zich daadwerkelijk binnen de marge kunnen bevinden.
‫We zijn ook onderworpen aan deze kwadratensom voor de bètacoëfficiënten die gelijk zijn aan één.
‫Dit helpt eigenlijk om overeen te komen met de andere vergelijking door te bepalen dat als je de functiewaarden
‫in de onderstaande vergelijking zou invoeren, als je onderworpen bent aan bèta-kwadraat en de som daarvan
‫gelijk is aan één, waarom heb ik dan vermenigvuldigd? door deze beta coëfficiënten tijden?
‫De kenmerkwaarde geeft u de loodrechte afstand van het punt tot de hypervlakte en zorgt ervoor dat die
‫afstand minstens zo groot is als de marge zelf.
‫Dit wil alleen maar zeggen dat we met deze beperking in staat zijn om wiskundig de orthogonale
‫afstand van elk punt tot de hypervlakte te berekenen.
‫En hier hebben we de volledige definitie, wiskundig gesproken, van de Emax-margeclassificator opnieuw, gezien deze getransponeerde matrix
‫van gegevenspunten, willen we de bètacoëfficiënten berekenen die deze em gaan maximaliseren, afhankelijk
‫van deze twee vergelijkingen, wat er in wezen voor zorgt dat dat de punten buiten die marges vallen en gezien
‫hun klasse aan de juiste kant van de marge vallen.
‫En we zijn onderworpen aan dit bèta-kwadraat, waarbij een coëfficiënt gelijk is aan één om de orthogonale afstand
‫van de punten tot de hypervlakte te bepalen.
‫Laten we nu verder gaan met een ondersteuningsvectorclassificatie.
‫Bedenk dat een ondersteuningsvectorclassificatie anders is dan een maximale margeclassificatie omdat deze onjuiste classificaties
‫toestaat, waardoor in wezen een aantal punten binnen de marge kan vallen.
‫Dus we willen nog steeds deze marge maximaliseren en we willen er nog steeds zeker van
‫zijn dat de som van het kwadraat gelijk is aan één om de orthogonale afstand van de vectoren tot het vlak
‫zelf te kunnen bepalen.
‫Maar omdat er een ondersteuningsvectorclassificatie is, laat ik nu een foutterm toe.
‫Dus merk op dat ik Epsilon gebruik en deze epsilon is een relatie tussen een bepaalde C-waarde of deze C-waarde
‫gaat bepalen hoeveel verkeerde classificaties je jezelf toestaat.
‫Het is dus vrijwel dezelfde vergelijking, behalve dat de marge deze foutfactor epsilon-factor heeft, bepaald door de som van de Epsilon's
‫die Lessner is, om te zien waar de C door de gebruiker kan worden geleverd.
‫En we zullen kruisvalidatie kunnen gebruiken om de optimale C op te lossen om de nauwkeurigheid te maximaliseren of de precisie
‫of terugroepactie te maximaliseren, afhankelijk van wat we hier eigenlijk proberen te optimaliseren.
‫Maar dit is de volledige definitie van een ondersteuningsvectorclassificatie, in wezen hetzelfde als een
‫maximale margeclassificatie.
‫Maar met deze toegevoegde beperkingen of toevoegingen van het feit dat we eigenlijk verkeerde classificaties kunnen hebben die worden
‫beperkt door een bepaalde waarde van C en als C naar nul gaat, dan gaan we eigenlijk terug naar een
‫max-margeclassificatie, in wezen geen fouten toestaand.
‫Nu, een korte opmerking over deze waarde van SI, je zou moeten opmerken dat hoe je het hier wiskundig
‫hebt gedefinieerd, hoe groter de zeewaarde, hoe meer fouten we onszelf toestaan.
‫Saikat leert vanwege het feit dat ze consistent willen blijven in meerdere modellen.
‫Ze zeggen dat C een regularisatieparameter is die omgekeerd evenredig is met de C die hier in de vergelijking wordt getoond.
‫Dat wil allemaal zeggen dat wiskundig gesproken, in de vergelijkingen die we hier laten zien, als
‫je C verhoogt, je het aantal verkeerde classificaties vergroot dat je inzicht geeft en leert dat het omgekeerd evenredig is met
‫de hier getoonde vergelijking.
‫Het is duidelijk dat ze duidelijker zullen worden als we beginnen te experimenteren met Saikat leren.
‫Maar het is gewoon iets om in gedachten te houden dat de C in cyclers-documentatie en class call
‫for support vectormachines niet precies hetzelfde is wat ik hier in de vergelijkingen laat zien, of
‫dat je meestal leest wanneer je de eigenlijke vergelijkingen voor ondersteuningsvectormachines.
‫Het is eigenlijk omgekeerd evenredig met C, en dat is alleen maar omdat ze willen dat die
‫regularisatieparameter consistent blijft in meerdere modellen.
‫OK, dus laten we ten slotte verder gaan met het ondersteunen van vectormachines en hoe we deze wiskundig definiëren herinneren
‫eraan dat we ondersteuningsvectormachines moeten gebruiken. We konden geen duidelijk scheidbaar hypervlak vinden voor onze datapunten hier hebben
‫we iets dat lijkt op iets dat we kunnen niet echt scheiden met de lijn.
‫We hebben een aantal punten in het midden en dan een andere klasse eromheen.
‫Dus wat we doen, zoals we eerder hebben besproken, is dit transformeren naar een soort hogere dimensie of
‫functieruimte.
‫Dus op dit moment zou ik functies x1 x2 helemaal tot XP-aantal functies kunnen hebben, en ik zou zoiets
‫als een polynoomtransformatie kunnen gebruiken met X1 en x1 kwadraat x2 naast kwadraat helemaal om XP kwadraat uit te breiden om
‫te proberen erachter te komen als er een hyperwatervliegtuig in deze grotere functieruimte is
‫die deze twee klassen met succes kan scheiden.
‫En ik kan nog steeds verkeerde classificaties toestaan in deze hogere functieruimte.
‫Dus nogmaals, wat ik wil doen is deze marge maximaliseren.
‫Maar nu moet ik met veel meer bètacoëfficiënten rekening houden, afhankelijk van de functieruimte waarnaar ik dit
‫uitbreid.
‫Dus als we dit allemaal wiskundig uitleggen, wat we hier doen, is dat we de optelling toevoegen
‫voor dit eenvoudige geval van een vierkante veelterm.
‫Houd er rekening mee dat dit geen gegeneraliseerde ondersteuningsvectormachine is.
‫Ik laat alleen de ondersteuningsvectormachine zien die we eerder hebben laten zien, waar de uitbreiding van de functieruimte
‫vierkant was, in wezen een van de eenvoudigste ondersteuningsvectormachines die we mogelijk kunnen maken.
‫Dus we overwegen niet langer alleen x1 x2 helemaal tot aan XP, maar we denken ook aan de
‫kwadratische eigenschapswaarde.
‫Ik wil nog steeds mijn marge m maximaliseren, maar nu heb ik niet alleen coëfficiënten voor de originele kenmerken,
‫maar ook coëfficiënten voor de gekwadrateerde kenmerken.
‫En ik sta verkeerde classificaties toe, waarvan je zult merken dat ze in het onderwerp van y
‫zitten als ik waar het groter is dan of gelijk is aan de marge maal één minus Epsilon of
‫Epsilon opnieuw wordt gedefinieerd door deze gebruikersparameter C die in wezen wat mis toestaat classificaties, zelfs in deze hogere
‫functieruimte.
‫Dus de ondersteunende vectormachine met het gebruik van deze grotere feature-ruimte zou me in staat
‫stellen om uit te zoeken hoe ik de feitelijke feature-ruimte kan scheiden om deze punten correct te classificeren,
‫zelfs buiten de beperkingen van de originele features.
‫Aangezien ik nu een grotere functieruimte overweeg van dingen als X-kwadraat of X2-kwadraat, enz.
‫Nu, de belangrijkste vraag die rijst naarmate we verder gaan naar een grotere functieruimte, is hoe we eigenlijk omgaan
‫met deze groeiende complexiteit?
‫Hoewel we slechts een eenvoudig voorbeeld van een polynoom van twee hebben laten zien, is het zeer waarschijnlijk dat
‫we voor complexere datasets deze polynoom in een veel grotere mate moeten laten groeien.
‫En naarmate de polynomiale orde groter wordt, groeit het aantal berekeningen dat nodig is
‫om marges op te lossen ook tot een punt waarop het onhaalbaar kan zijn om zoveel margeberekeningen daadwerkelijk te berekenen.
‫Het antwoord hierop ligt in de kerneltruc, die gebruik maakt van het inproduct van vectoren.
‫Dit wordt ook wel het DOT-product genoemd.
‫Voordat we u laten zien hoe we de kerneltruc daadwerkelijk kunnen gebruiken met onze ondersteuningsvectormachineberekening.
‫Laten we snel bekijken wat een DOT-product of inproduct eigenlijk vertegenwoordigt.
‫Dus hier gaan we een product vereenvoudigen zodat het tussen twee vectoren ligt en herinneren we ons dat vectoren meer
‫kunnen zijn dan alleen twee dimensies. Hier wordt getoond dat het vele, vele dimensies kan zijn.
‫Maar voor de eenvoud gaan we dit gewoon gebruiken in een tweedimensionale ruimte.
‫Ik heb vector A en vector B, en het DOT-product of inproduct tussen deze twee vectoren wordt gedefinieerd
‫als de som van elk van hun subcomponenten, vermenigvuldigd met elkaar.
‫Dat wil zeggen, als ik hier een tweedimensionale vector heb, dan is er een subcomponent langs de
‫X-as en een subcomponent langs de Y-as, die ik zou kunnen definiëren als A1 en B één langs de X-as, en dan
‫A twee en B twee langs de Y-as.
‫Nu kun je je voorstellen dat als we verder gaan met driedimensionale vectoren, vierdimensionale vectoren, enzovoort,
‫er subcomponenten zullen zijn voor elk van die dimensies en voor het DOT-product.
‫Dat zou in dit specifieke geval betekenen dat het inproduct of DOT-product tussen A en B gewoon
‫de som zou zijn van elk van die subcomponenten, vermenigvuldigd met elkaar.
‫Nu herinner je je misschien ook van je wiskundelessen dat dit niet de enige definitie of wiskundige notatie
‫ervoor is.
‫Dat product, het DOT-product, kan ook worden gedefinieerd als een vermenigvuldiging van de grootte van elk van
‫de vectoren vermenigvuldigd met de cosinus van de graad ertussen.
‫Nu, waarom is dit belangrijk om op te merken dat als we beginnen te denken aan een product in dit
‫formaat, het in wezen een overeenkomst is tussen de vectoren.
‫Dit resulteert dus in dezelfde berekening als A1 keer B1 plus A twee keer B2.
‫Het is in wezen een andere definitie voor het DOT-product.
‫De reden dat dit nuttig is, is omdat met deze productie van cosinus van theta het een overeenkomstmeting is tussen
‫de vectoren.
‫U kunt hieraan denken door extreme gevallen te overwegen.
‫Stel je voor dat de graad tussen deze nul was.
‫Cosinus van nul is gelijk aan één waarbij dat betekent dat dat product in wezen de
‫vermenigvuldiging is van de grootte van Vector A. en vector B, dat is logisch, want als de graad
‫nul was, betekent dit dat beide vectoren in exact dezelfde richting wijzen, wat betekent dat hun graad of
‫cosinus theta honderd procent gelijk is.
‫Het moet dus gelijk zijn aan één.
‫Je zult ook merken dat deze twee vectoren loodrecht of orthogonaal op elkaar staan, cosinus
‫van 90 graden.
‫Dat zou gelijk zijn aan nul, wat betekent dat het inproduct gelijk is aan nul.
‫En als ze dan in precies tegenovergestelde richtingen wijzen, dat is cosinus van honderdtachtig graden, dan
‫zouden we een negatieve hebben die in wezen zegt dat het negatief is één keer de grootte van
‫A en de grootte van B.
‫We kunnen dit inproduct dus duidelijk zien als een meting van overeenstemming.
‫Dus laten we nu verder gaan met het bespreken van de kolonel, Eric.
‫We kunnen een lineaire ondersteuningsvectorclassificator bedenken in termen van dit inproduct, of we kunnen zeggen dat
‫we een functie hebben van X is gelijk aan Beita, niet plus de som van enkele alfatermtijden, het
‫inproduct van elk paar draaiingen punten.
‫We berekenen in wezen de innerlijke producten van alle paren trainingsobservaties.
‫En je kunt de lezing in hoofdstuk negen van eSolar lezen voor een meer diepgaande kijk.
‫Of u kunt de publicatie van Cortez en Chapnick bekijken, evenals waarom we
‫deze berekening van inproducten daadwerkelijk kunnen uitvoeren.
‫Maar voor nu, neem het gewoon, zoals dat ik in staat ben om een lineaire ondersteuningsvectorclassificatie te herschrijven in
‫termen van innerlijke producten.
‫Nu ik in staat ben om de innerlijke producten van alle paren trainingsobservaties
‫vermenigvuldigd met een alfaparameter te berekenen, zul je je realiseren dat in dit specifieke geval de alfaparameter alleen
‫niet-nul is voor de ondersteuningsvectoren.
‫Dus laten we even teruggaan en kijken of dit logisch is.
‫Ik heb je net verteld dat ik de lineaire ondersteuningsvectorclassificatie kan herschrijven met behulp
‫van deze vergelijking, die zegt dat in plaats van deze bètacoëfficiënt maal de kenmerkwaarde zelf te berekenen,
‫ik ga proberen deze alfa te berekenen vermenigvuldigd met het inproduct van alle paren van trainingsobservaties.
‫Maar als ik het op deze manier herschrijf, zul je snel beseffen dat Alpha alleen niet-nul is voor de ondersteuningsvectoren die in het
‫geel op die plot zijn gemarkeerd.
‫Nu, heeft dat zin?
‫Intuïtief gesproken herinnert het zich wel dat de marge alleen afhangt van de ondersteuningsvectoren.
‫Vanuit het oogpunt van de marges maakt het niet echt uit als je eenmaal de ondersteuningsvector
‫raakt, welke vectoren erachter liggen, omdat je alleen die marge vindt bij de eerste ondersteuningsvectoren waarmee het
‫in contact komt, wat betekent dat je' u bespaart uzelf al veel rekenwerk, maar hoeft u alleen maar
‫zorgen te maken over de steunvectoren, dat wil zeggen de vectoren die in contact komen met de marge.
‫Hierdoor kan ik herschrijven van I is gelijk aan één helemaal tot een willekeurig aantal punten en
‫in plaats daarvan alleen ik zei s te beschouwen waarbij s een verzameling van de indices van deze steunpunten is, in wezen
‫dezelfde vergelijking.
‫Maar ik kijk alleen naar de ondersteunende vectorpunten omdat we kunnen aantonen dat Alpha alleen afhankelijk is van
‫die ondersteunende punten, en in wezen niet zoveel berekeningen hoeft te doen.
‫Dan komt de kolonelfunctie, dus we gaan een kolonelfunctie vinden als een functie K tussen twee trainingspunten,
‫trainingspuntoog en trainingspunt I prime, en we kunnen laten zien dat dit gelijk zal zijn
‫aan het volgende.
‫Sommige X van IFJ vermenigvuldigd met X door prime van J.
‫En dit moet natuurlijk bekend voorkomen, want het ziet eruit als een innerlijk product en een kolonel.
‫Je kunt het zien als een functie die alleen de overeenkomst van twee waarnemingen kwantificeert.
‫En we hebben het er net over gehad dat de punten op product en inproduct in wezen een gelijkenismeting zijn.
‫Dat betekent dat als je echt naar die lineaire ondersteuningsvectorclassificatievergelijking begint te kijken, we dat definiëren
‫met behulp van een inproduct.
‫Dus nu kan ik mijn relatie van een inwendig product gebruiken dat gelijk is aan de som van
‫deze vermenigvuldigingen van elke subcomponent om mijn kernelfunctie om te wisselen in deze nieuw herschreven ondersteuningsvectorclassificatie, wat ons
‫in wezen een ondersteuningsvectormachine geeft waar ik gemakkelijk kan wisselen in elke kernelfunctie die ik
‫wil, waar nogmaals, de kernelfunctie in wezen een overeenkomstmeting is.
‫En er zijn hier eigenlijk veel kernelfuncties om uit te kiezen.
‫We laten de eenvoudigste kernelfunctie zien, die slechts een lineaire kernel is, maar ik kan ook een
‫polynomiale kernelmelding hebben.
‫Ik bereken nu alleen deze kernelfunctie waarbij ik een relatie heb tussen de kernelfunctie
‫en de mate van wat ik wil berekenen, waardoor ik mezelf een hoop rekenwerk bespaar omdat ik
‫eigenlijk niet langer berekeningen bereken in de volledige functieruimte.
‫Ik bereken de kernel, wat een inwendig product is.
‫Een andere populaire kolonel is de radiobassist, kolonel of ook wel bekend als de RBF-radiobassistfunctie.
‫Dit is een veel gecompliceerdere kolonel.
‫En in feite, als je dit probeert te berekenen zonder de innerlijke producten te gebruiken,
‫creëert het in feite een oneindig aantal computationele vergelijkingen.
‫Dus de enige manier om dit wiskundig te doen is met een kernelfunctie die het inproduct gaat gebruiken.
‫Dus het gebruik van Col's als vervanging staat bekend als de COL-truc, en dat is wat er gebeurt als we
‫ondersteuning gebruiken.
‫Vectormachines waren in staat om die relatie te herschrijven vanuit de ondersteuningsvectorclassificatie in termen van
‫een inproduct.
‫En dan hebben we een verscheidenheid aan Khalsa waaruit we kunnen kiezen die in wezen worden gedefinieerd als gelijkheidsfuncties,
‫die ik kan inwisselen waar ik het innerlijke product zie gebeuren.
‫En dan stellen Col's ons in staat om berekeningen in de vergrote feature-ruimte te vermijden.
‫Ze hoeven alleen berekeningen uit te voeren voor elk afzonderlijk paar keerpunten, terwijl ik eigenlijk alleen
‫die ondersteuningsvectoren zelf hoef te beschouwen.
‫De volledige details hierachter zijn te vinden in sectie negen punt drie punt twee, eSolar.
‫Nu, intuïtief, wat we al hebben gezien, is dat innerlijke producten fungeren als een meting van gelijkenis tussen
‫vectoren en de beste manier waarop ik intuïtief ondersteuningsvectormachines kan uitleggen, voor het geval je een beetje onduidelijk
‫was door de kerneltruc, is dat het gebruik van kernels kunnen worden gezien als een maat voor
‫de overeenkomst tussen de oorspronkelijke feature-ruimte en de vergrote feature-ruimte.
‫Dus in plaats van dat ik de onbewerkte berekeningen en de vergrote feature-ruimte moet uitvoeren, kan ik zeggen
‫dat de kernels me een zekere mate van overeenkomst zullen geven tussen de originele feature-ruimte en de
‫grote feature-ruimte en de kernels zullen gebruiken om berekeningen uit te voeren, in plaats daarvan besparen ze me veel
‫rekenwerk in die vergrote functieruimte.
‫Oké, nu we de theorie en intuïtie achter ondersteunende vectormachines begrijpen, gaan we verder met het
‫daadwerkelijk gebruiken ervan met code.
‫Ik zie je in de volgende lezing.