AI 101

Generatieve vs. Discriminatieve Machine Learning-modellen

mm

Sommige machine learning-modellen behoren tot de categorie “generatief” of “discriminatief” modellen. Maar wat is het verschil tussen deze twee categorieën van modellen? Wat betekent het voor een model om discriminatief of generatief te zijn?

Het korte antwoord is dat generatieve modellen die zijn die de verdeling van de dataset omvatten, waardoor een waarschijnlijkheid voor een bepaald voorbeeld wordt geretourneerd. Generatieve modellen worden vaak gebruikt om te voorspellen wat er vervolgens in een reeks gebeurt. Ondertussen worden discriminatieve modellen gebruikt voor classificatie of regressie en retourneren een voorspelling op basis van voorwaardelijke waarschijnlijkheid. Laten we de verschillen tussen generatieve en discriminatieve modellen in meer detail onderzoeken, zodat we echt kunnen begrijpen wat de twee typen modellen scheidt en wanneer elk type moet worden gebruikt.

Generatieve vs. Discriminatieve Modellen

Er zijn verschillende manieren om een machine learning-model te categoriseren. Een model kan worden geclassificeerd als behorend tot verschillende categorieën, zoals: generatieve modellen, discriminatieve modellen, parametrische modellen, niet-parametrische modellen, boom-gebaseerde modellen, niet-boom-gebaseerde modellen.

Dit artikel zal zich richten op de verschillen tussen generatieve modellen en discriminatieve modellen. We zullen beginnen met het definiëren van zowel generatieve als discriminatieve modellen en vervolgens enkele voorbeelden van elk type model onderzoeken.

Generatieve Modellen

Generatieve modellen zijn die welke zich richten op de verdeling van de klassen binnen de dataset. De machine learning-algoritmen modelleren typisch de verdeling van de datapunten. Generatieve modellen vertrouwen op het vinden van de gezamenlijke waarschijnlijkheid. Het creëren van punten waar een bepaalde invoerfunctie en een gewenste uitvoer/label gelijktijdig bestaan.

Generatieve modellen worden typisch gebruikt om waarschijnlijkheden en kans te schatten, datapunten te modelleren en te discrimineren tussen klassen op basis van deze waarschijnlijkheden. Omdat het model een waarschijnlijkheidsverdeling voor de dataset leert, kan het naar deze waarschijnlijkheidsverdeling verwijzen om nieuwe datapunten te genereren. Generatieve modellen vertrouwen vaak op Bayes’ theorem om de gezamenlijke waarschijnlijkheid te vinden, waardoor p(x,y) wordt gevonden. Eigenlijk modelleren generatieve modellen hoe de data werd gegenereerd, beantwoorden de volgende vraag:

“Wat is de kans dat deze klasse of een andere klasse deze datapunt/voorbeeld gegenereerd heeft?”

Voorbeelden van generatieve machine learning-modellen zijn Lineaire Discriminant Analyse (LDA), Hidden Markov-modellen en Bayesiaanse netwerken zoals Naive Bayes.

Discriminatieve Modellen

Terwijl generatieve modellen leren over de verdeling van de dataset, leren discriminatieve modellen over de grens tussen klassen binnen een dataset. Met discriminatieve modellen is het doel om de beslissingsgrens tussen klassen te identificeren om betrouwbare klasse-etiketten toe te kennen aan datapunten. Discriminatieve modellen scheiden de klassen in de dataset door voorwaardelijke waarschijnlijkheid te gebruiken, zonder enige veronderstellingen over individuele datapunten.

Discriminatieve modellen proberen de volgende vraag te beantwoorden:

“Aan welke kant van de beslissingsgrens wordt deze instantie gevonden?”

Voorbeelden van discriminatieve modellen in machine learning zijn ondersteuningsvector-machines, logistische regressie, beslissingsbomen en willekeurige bossen.

Verschillen Tussen Generatieve en Discriminatieve

Hier is een korte samenvatting van de belangrijkste verschillen tussen generatieve en discriminatieve modellen.

Generatieve modellen:

  • Generatieve modellen proberen de werkelijke verdeling van de klassen in de dataset te vangen.
  • Generatieve modellen voorspellen de gezamenlijke waarschijnlijkheidsverdeling – p(x,y) – met behulp van Bayes’ theorem.
  • Generatieve modellen zijn computationeel duur in vergelijking met discriminatieve modellen.
  • Generatieve modellen zijn nuttig voor ongezuperviseerde machine learning-taken.
  • Generatieve modellen worden meer beïnvloed door de aanwezigheid van uitschieters dan discriminatieve modellen.

Discriminatieve modellen:

  • Discriminatieve modellen modelleren de beslissingsgrens voor de dataset-klassen.
  • Discriminatieve modellen leren de voorwaardelijke waarschijnlijkheid – p(y|x).
  • Discriminatieve modellen zijn computationeel goedkoop in vergelijking met generatieve modellen.
  • Discriminatieve modellen zijn nuttig voor gezuperviseerde machine learning-taken.
  • Discriminatieve modellen hebben het voordeel dat ze robuuster zijn tegen uitschieters dan generatieve modellen.
  • Discriminatieve modellen zijn robuuster tegen uitschieters in vergelijking met generatieve modellen.

We zullen nu enkele verschillende voorbeelden van generatieve en discriminatieve machine learning-modellen onderzoeken.

Voorbeelden van Generatieve Modellen

Lineaire Discriminant Analyse (LDA)

LDA-modellen werken door de variantie en het gemiddelde van de data voor elke klasse in de dataset te schatten. Nadat het gemiddelde en de variantie voor elke klasse zijn berekend, kunnen voorspellingen worden gedaan door de waarschijnlijkheid te schatten dat een bepaalde set invoer tot een bepaalde klasse behoort.

Hidden Markov-modellen

Markov-ketens kunnen worden beschouwd als grafieken met waarschijnlijkheden die aangeven hoe waarschijnlijk het is dat we van een punt in de keten, een “toestand”, naar een andere toestand zullen gaan. Markov-ketens worden gebruikt om de waarschijnlijkheid te bepalen van het verplaatsen van toestand j naar toestand i, wat kan worden aangeduid als p(i,j). Dit is slechts de gezamenlijke waarschijnlijkheid die hierboven wordt genoemd. Een Hidden Markov-model is waar een onzichtbare, niet-waargenomen Markov-keten wordt gebruikt. De datapunten worden aan het model gegeven en de waarschijnlijkheden voor de huidige toestand en de toestand die onmiddellijk daarvoor komt, worden gebruikt om de meest waarschijnlijke uitkomst te berekenen.

Bayesiaanse Netwerken

Bayesiaanse netwerken zijn een type waarschijnlijkheidsgrafisch model. Ze representeren voorwaardelijke afhankelijkheden tussen variabelen, zoals weergegeven door een gerichte acyclische grafiek. In een Bayesiaans netwerk vertegenwoordigt elke rand in de grafiek een voorwaardelijke afhankelijkheid en komt elke knoop overeen met een unieke variabele. De voorwaardelijke onafhankelijkheid voor de unieke relaties in de grafiek kan worden gebruikt om de gezamenlijke verdeling van de variabelen te bepalen en de gezamenlijke waarschijnlijkheid te berekenen. Met andere woorden, een Bayesiaans netwerk vangt een deel van de onafhankelijke relaties in een specifieke gezamenlijke waarschijnlijkheidsverdeling.

Als een Bayesiaans netwerk eenmaal is gemaakt en correct gedefinieerd, met willekeurige variabelen, voorwaardelijke relaties en waarschijnlijkheidsverdelingen, kan het worden gebruikt om de waarschijnlijkheid van gebeurtenissen of resultaten te schatten.

Een van de meest gebruikte soorten Bayesiaanse netwerken is een Naive Bayes-model. Een Naive Bayes-model lost het probleem op van het berekenen van de waarschijnlijkheid voor datasets met veel parameters/variabelen door alle kenmerken als onafhankelijk van elkaar te behandelen.

Voorbeelden van Discriminatieve Modellen

Ondersteuningsvector-machines

Ondersteuningsvector-machines werken door een beslissingsgrens tussen datapunten te trekken, de beslissingsgrens te vinden die de klassen in de dataset het beste scheidt. Het SVM-algoritme trekt ofwel lijnen of hypervlakken die punten scheiden, voor 2-dimensionale ruimtes en 3D-ruimtes respectievelijk. SVM probeert de lijn/hypervlak te vinden die de klassen het beste scheidt door de marge, of de afstand tussen de lijn/hypervlak en de dichtstbijzijnde punten, te maximaliseren. SVM-modellen kunnen ook worden gebruikt op datasets die niet lineair gescheiden zijn door de “kernel-truc” te gebruiken om niet-lineaire beslissingsgrenzen te identificeren.

Logistische Regressie

Logistische regressie is een algoritme dat een logit (log-odds) functie gebruikt om de waarschijnlijkheid te bepalen dat een invoer in een van twee toestanden is. Een sigmoïde functie wordt gebruikt om de waarschijnlijkheid naar 0 of 1, waar of onwaar, te “knijpen”. Waarschijnlijkheden groter dan 0,50 worden geacht klasse 1 te zijn, terwijl waarschijnlijkheden van 0,49 of lager worden geacht klasse 0 te zijn. Om deze reden wordt logistische regressie typisch gebruikt in binaire classificatieproblemen. Logistische regressie kan echter ook worden toegepast op multi-klasse problemen door een one-vs-all-benadering te gebruiken, een binaire classificatiemodel voor elke klasse te maken en de waarschijnlijkheid te bepalen dat een voorbeeld de doelklasse is of een andere klasse in de dataset.

Beslissingsboom

Een beslissingsboom model werkt door een dataset te splitsen in kleinere en kleinere delen, en als de subsets niet verder kunnen worden gesplitst, is het resultaat een boom met knopen en bladeren. Knopen in een beslissingsboom zijn waar beslissingen over datapunten worden gemaakt met behulp van verschillende filtercriteria. De bladeren in een beslissingsboom zijn de datapunten die zijn geclassificeerd. Beslissingsboom-algoritmen kunnen zowel numerieke als categorische data verwerken, en splitsingen in de boom zijn gebaseerd op specifieke variabelen/kenmerken.

Willekeurige Bossen

Een willekeurig bos model is eigenlijk gewoon een verzameling van beslissingsbomen waar de voorspellingen van de individuele bomen worden gemiddeld om tot een finale beslissing te komen. Het willekeurig bos-algoritme selecteert willekeurig observaties en kenmerken, waardoor de individuele bomen worden gebouwd op basis van deze selecties.

Deze tutorial-artikel zal onderzoeken hoe een Box Plot in Matplotlib kan worden gemaakt. Box-plots worden gebruikt om samenvattingsstatistieken van een dataset te visualiseren, waarbij kenmerken van de verdeling zoals het bereik en de verdeling van de data worden weergegeven.

Blogger en programmeur met specialisaties in Machine Learning en Deep Learning onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor het sociale goede.