Ga naar hoofdinhoud

Wat is een functie in de wiskunde? Een intuïtieve uitleg

Leer over wiskundige functies: wat ze zijn, hoe ze zich verhouden tot programmeerfuncties en hoe ze worden gebruikt in machine learning-modellering.
Bijgewerkt 2 okt 2026  · 15 min lezen

Verken met AI

ChatGPTClaudePerplexity

Beginnende en junior data scientists zien vaak de term "functie" voorbij komen, maar het is niet altijd duidelijk wat die term precies betekent. 

In dit artikel leer je wat een wiskundige functie is, welke verzamelingen de invoer- en uitvoerwaarden beschrijven en hoe continue en discrete waarden van elkaar verschillen. Je ontdekt hoe functies in technologie worden gebruikt, welke functies vaak voorkomen in data science en hoe ze geoptimaliseerd worden. Onderweg zie je Python-code om functies te manipuleren en te plotten.

Als je wilt oefenen met het schrijven en gebruiken van je eigen functies in Python, raad ik onze cursus Writing Functions in Python aan.

Wat is een functie in de wiskunde?

In de wiskunde is een functie een regel die elke invoer aan precies één uitvoer koppelt. Elke geldige invoer wordt naar één en slechts één uitvoer gestuurd. Een invoer kan niet op de een of andere manier meerdere uitkomsten hebben.

Zo is 32 graden Fahrenheit gelijk aan 0 Celsius. De Fahrenheit-waarde correspondeert met een waarde in Celsius; en wel met precies één waarde. Je kunt niet twee verschillende uitkomsten (Celsius) hebben voor één geldige invoer (Fahrenheit). 

Andere voorbeelden zijn loonberekeningen, waarbij je een bedrag per uur krijgt. Als je $20 per uur verdient en 40 uur werkt, verdien je 20 x 40 = $800.

Niet alle regels zijn functies. Soms is het logisch dat één invoer meerdere uitkomsten heeft. Zo is het koppelen van een naam aan een persoon geen functie. De naam "John Smith" kan naar meerdere mensen verwijzen die allemaal deze naam delen.

In de wiskunde worden regels vaak zo opgesteld dat er slechts één uitkomst per geldige invoer is. In veel gevallen weerspiegelt dit expliciet hoe de wereld echt werkt (loon). In andere gevallen worden problemen als functies geformuleerd omdat dat het probleem hanteerbaar maakt. In plaats van een spaghetti aan in- en uitgangen te volgen, wordt het model zo opgezet dat elke invoer niet meerdere uitkomsten kan hebben.

Je kunt een functie zien als een "machine" die een invoer accepteert (vaak aangeduid met x), deze op een of andere manier verwerkt en een uitvoer produceert (vaak aangeduid met y).

Metafoor van een machine als functie, die invoer omzet in uitvoer

Hier accepteert een machine invoer vanaf de transportband aan de linkerkant, verwerkt deze en produceert rechts een vrolijk groen vinkje.

Multivariate functies accepteren een verzameling van meerdere invoeren maar geven slechts één uitvoer. Je kunt dit zien als het doorgeven van één rij gegevens die uit meerdere variabelen of features bestaat en naar één uitkomst mapt.

Functienotatie en terminologie

Hoe schrijf je de vergelijking op? In het voorbeeld van temperatuurconversie kunnen we de formule schrijven als y = f(x) = (5/9) (x - 32), waarbij x de temperatuur in Fahrenheit is en y in Celsius. Om deze notatie te begrijpen, lees je hem van links naar rechts. 

Links zie je y, de uitvoer. De notatie f(x) geeft aan dat je een functie gebruikt, f genaamd, die een invoer x neemt. Merk op dat f(x) in deze context niet betekent dat een waarde f vermenigvuldigd wordt met een andere waarde x. 

Rechts staat de formule. Die zegt: neem de invoer x, trek er 32 van af en vermenigvuldig dit resultaat met 5/9.

Domein, codomein en bereik

Stel dat je eenmaal per dag de buitentemperatuur noteert en k metingen hebt verzameld, genoteerd als (x1, x2, …, xk). Je wilt een functie die de jaartotaal-gemiddelde temperatuur geeft nadat er n dagen zijn verstreken. Definieer een functie die een positief geheel getal n neemt, kleiner dan of gelijk aan k , die het gemiddelde van de eerste n temperaturen retourneert, wat een reëel getal is. De notatie voor zo’n functie is f: {1, 2, …, k} → ℝ.

Het is handig om jargon te hebben om de verzamelingen in de functie te beschrijven: dat brengt ons bij het domein, codomein en bereik. 

  • Het domein is de naam voor de verzameling die de invoeren beschrijft, in dit geval gehele getallen. 
  • Het codomein is de verzameling die het type bedoelde uitvoer beschrijft, in dit geval reële getallen.

Kijk nu naar het bereik. Neem een eenvoudige kwadratische functie: y = f(x) = x2. Om domein en codomein te specificeren, schrijf je f: ℝ → ℝ. 

Nu weet je dat dit aangeeft dat zowel het domein (verzameling invoeren) als het codomein (verzameling uitkomsten) uit reële getallen bestaan. Met wat nadenken realiseer je je echter dat de verzameling uitkomsten niet alle reële getallen kan zijn. 

Omdat elk getal in het kwadraat niet-negatief is, is de verzameling uitkomsten die daadwerkelijk voorkomen niet alle reële getallen, maar alleen niet-negatieve reële getallen. De term om deze situatie te beschrijven is bereik. We zeggen dat het bereik van deze functie alle niet-negatieve reële getallen is. 

Het codomein is de potentiële uitkomstenverzameling; het bereik is de verzameling feitelijke uitkomsten. Je kiest het codomein om het bedoelde type uitvoer te weerspiegelen, en je ontdekt het bereik: de verzameling uitkomsten die daadwerkelijk gerealiseerd worden.

Continue en discrete variabelen

Dit brengt ons bij het onderscheid tussen continue en discrete variabelen:

  • Continue variabelen nemen elke theoretische waarde aan binnen een gegeven bereik. 
  • Discrete variabelen nemen een eindig of aftelbaar aantal waarden aan. 

Een continue variabele in [0, 1] kan bijvoorbeeld de waarden 0, 0,5, 0,4141 of elke andere reële waarde in het bereik aannemen. Continue variabelen worden vaak gebruikt in modellen waarbij de uitkomst theoretisch elke waarde kan zijn, zoals bij regressie.

Bij binaire classificatie gaat het echter maar om twee waarden: 0 en 1. Een afbeelding bevat bijvoorbeeld óf een kat, óf niet. In een multi-class classificatieprobleem heb je nog steeds een eindig aantal waarden, bijvoorbeeld 0 voor een hond, 1 voor een kat, 2 voor een paard.

Het probleem dat je probeert op te lossen, bepaalt welk soort functie je interesseert. Classificatieproblemen leveren discrete waarden op; regressieproblemen leveren continue functies op.

Vectornotatie

Soms moet je meerdere variabelen aan een functie doorgeven. Je kunt bijvoorbeeld een rij features aan een machine learning-functie doorgeven. In dat geval kun je de features groeperen in één container en die doorgeven. Een manier om gegevens op deze manier te groeperen is via een vector. Het model neemt een invoervector x = [x1, x2, x3] en geeft een doelvariabele y terug.

In Python gebruik je doorgaans een NumPy-array om een vector te representeren.

import numpy as np

def f(x):
    result = (x[0] + x[1] + x[2]) / 3
    return result

x = [3, 4, 7.1]
print(f(x))
4.7

Deze code neemt een vector met de getallen 3, 4 en 7,1 en retourneert een gemiddelde.

Voor een verzameling vectoren is een populaire methode het DataFrame-datatype uit de pandas-bibliotheek te gebruiken. 

import pandas as pd

def row_averages(df):
    return df.mean(axis=1).round(1)

df = pd.DataFrame({
    "A": [1, 5, 2],
    "B": [9, 3, 6],
    "C": [7, 8, 10]
})

print(row_averages(df))

Deze code retourneert een pandas Series met de rijgemiddelden, één waarde per rij. In dit geval:

0    5.7
1    5.3
2    6.0

Functies in technologie

Het concept van een functie is alomtegenwoordig in technologie. Houd er om praktische redenen rekening mee dat "functie" in technologie niet altijd zo strikt gedefinieerd is als in de wiskunde. Programmeerfuncties kunnen bijvoorbeeld neveneffecten hebben die de waarden van andere variabelen dan de uitvoer veranderen, terwijl wiskundige functies dat niet doen.

Spreadsheets

Functies worden veel gebruikt in spreadsheets, bijvoorbeeld in Excel-formules. Je wilt misschien de som, het gemiddelde of de mediaan van een kolom met getallen berekenen. Voor spreadsheets volgen functies dezelfde definitie als de wiskundige die eerder is geïntroduceerd.

Eén ding waar spreadsheets in uitblinken (woordspeling bedoeld) zijn Voorwaardelijke functies: ze laten je complexere voorwaardelijke structuren bouwen met functies zoals IF(). 

Zo wil je misschien het totaal vinden van betalingen aan je hypotheekverstrekker gedurende een jaar. Daarvoor gebruik je waarschijnlijk de SUM()-functie van je spreadsheet.

Programmeertalen

Functies zijn alomtegenwoordig in programmeertalen. Afhankelijk van de taal kan de definitie van "functie" losser zijn dan die van een wiskundige functie. Sommige talen laten een functie meerdere waarden teruggeven, of helemaal geen waarde. 

Een functie kan bijvoorbeeld waarden aannemen en een tekst afdrukken, maar geen waarde expliciet retour neren. Een Python-functie ziet er zo uit:

def print_me(name, color):
       print(f"My name is {name} and my favorite color is {color}.")

name = "Mark"
color = "blue"
print_me(name, color)

Deze code resulteert in de uitvoer: "My name is Mark and my favorite color is blue." Er wordt geen wiskundige waarde expliciet door de functie geretourneerd.

Code in veel gangbare talen, zoals Python, kan ook andere neveneffecten in een functie hebben, zoals het veranderen van de waarde van een globale variabele. Hoewel neveneffecten mogelijk en toegestaan zijn, worden ze afgeraden. Neveneffecten maken programma’s moeilijker te testen, debuggen en doordenken.

Om deze redenen zijn sommige "functionele" talen, zoals Scala en Haskell, strikter rond het idee van een functie opgebouwd. 

Machine learning

In een machine learning-context zijn de invoeren features, is de functie het model en is de uitvoer de voorspelling van het model. Zo’n model wordt vaak een "black box" genoemd omdat het niet per se duidelijk is hoe de inputfeatures zijn verwerkt om de uitvoervoorspelling te geven, waardoor onze eerdere metafoor van een ”machine” nog beter past:

Metafoor van een machine als functie, die twee invoeren omzet in een voorspelling

In deze illustratie worden de features in de model-"machine" gevoerd, die ze op een of andere manier verwerkt en een voorspelling uitspuugt. In vergelijking met eenvoudigere, deterministische functies zoals het temperatuurconversievoorbeeld is wat er binnenin de machine gebeurt lastiger te beschrijven.

In ML is het domein featurevectoren; het codomein kan bestaan uit waarschijnlijkheden, klassen of reële voorspellingen.

Binnen deep learning worden functies meestal niet direct op een set invoeren toegepast, maar wordt de juistheid van het model beoordeeld met een kostenfunctie. Een kostenfunctie is een mate voor hoe slecht een model presteert over de trainingsset. Ze vergelijkt voorspellingen met echte labels of waarden en aggregeert de fouten tot één getal.

Veelvoorkomende functies in data science

Bepaalde functies komen bijna overal in data science voor. Deze functies omvatten lineaire functies, logaritmische functies en exponentiële functies, evenals niet-lineaire activatiefuncties voor deep learning.

Lineaire functies

Laten we beginnen met het klassieke voorbeeld: lineaire functies.

Helling

Stel dat je trek hebt in appels. Je gaat naar een supermarkt die appels voor een vaste prijs van $0,75 per pond verkoopt. Eén pond appels kost dus $0,75, 2 pond kost 2 x $0,75 = $1,50 en 3 pond kost 3 x $0,75 = $2,25. Elk pond dat je koopt, voegt een vast bedrag toe aan de totale kosten.

In functienotatie kun je de formule schrijven als f(x) = 0.75 x. Het getal 0,75 is de helling van de lineaire functie. De helling is de veranderingssnelheid van de uitvoer ten opzichte van elke eenheidsverandering in de invoer.

Om zo’n functie te tekenen, kun je code gebruiken zoals de volgende:

import numpy as np
import matplotlib.pyplot as plt

def cost_of_apples(x, m):
    result = m * x
    return result

# Define x and y
x = np.linspace(0, 5, 100)
y = cost_of_apples(x, 0.75)

# Plot
plt.figure()
plt.plot(x, y)
plt.xlabel("Pounds of Apples")
plt.ylabel("Total Cost ($)")
plt.title("Cost of Apples")
plt.show()

Lineaire functie

Dergelijke functies worden lineaire functies genoemd. Elke toename in de invoer, x, draagt hetzelfde vaste bedrag bij aan de uitvoer, y. Zoals de naam al aangeeft, levert een lineaire functie een lijn op wanneer je deze tekent.

Intercept

Stel nu dat je je boodschappen graag laat bezorgen. De supermarkt rekent een vast bezorgtarief van $2,00. In dit geval is de functie voor je appels f(x) = 0.75 x + 2. Zoals voorheen is 0,75 de helling. Het getal 2, waar de grafiek de y-as kruist, heet het "y-intercept". Het is de uitvoerwaarde wanneer de invoer 0 is. 

De totale kosten zijn de som van de appels en een bezorgtarief. In het algemeen kan een univariate lineaire functie worden geschreven als f(x) = mx + b, waarbij de waarde m de helling wordt genoemd en b het y-intercept. 

Multivariate lineaire functie

Je wilt waarschijnlijk meer eten dan alleen appels. Stel dat je ook brood en pindakaas wilt kopen. Appels kosten $0,75 per pond, een brood kost $2,50 en een pot pindakaas kost $3,00. Je boodschappenfunctie wordt nu:

1.png

Deze functie wordt nog steeds als lineair beschouwd omdat ze lineair is in elke variabele. In het algemeen heeft een lineaire functie de vorm:

2.png

Dit komt neer op het optellen van elk van je hoeveelheden vermenigvuldigd met hun gewichten (een ander woord voor helling in deze context), plus het intercept.

In vectornotatie wordt deze functie als volgt geschreven:

3.png

De T staat hier voor “getransponeerd”, wat nodig is om de vectorvermenigvuldiging voor w en x uit te voeren.

Lineaire regressie

Neem brandstofefficiëntie versus snelheid. Je vermoedt dat naarmate je sneller rijdt, de brandstofefficiëntie afneemt. Je verzamelt vijftig datapunten tussen snelheden van 45 en 65 mijl per uur en ziet het volgende patroon:

Lineaire regressie

Als je elk datapunt zou verbinden, krijg je een kronkelige, moeilijk leesbare, onhandige weergave. Maar de algemene trend van de gegevens is over dit bereik ongeveer lineair. Als we snelheid x noemen, is de functie voor deze grafiek:

4.png

Om zo’n beste lijn te vinden die bij de gegevens past, gebruik je een wiskundig proces dat eenvoudige lineaire regressie heet.

Je kunt zo’n lijn in Python berekenen met Matplotlib en Seaborn:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Reproducibility
np.random.seed(0)

# Create dataset
speed = np.linspace(45, 65, 50)
mpg = 38 - 0.2 * speed + 0.002 * (speed - 55)**2 + np.random.normal(0, 0.5, size=50)

df = pd.DataFrame({
    "speed": speed,
    "mpg": mpg
})

# Plot with regression line
sns.regplot(data=df, x="speed", y="mpg", ci=None)

plt.xlabel("Speed (mph)")
plt.ylabel("Fuel Efficiency (mpg)")
plt.title("Fuel Efficiency vs Speed")
plt.show()

Lineaire regressie werkt met meerdere variabelen. Stel dat je een lineair regressiemodel wilt definiëren voor snelheid (x), voertuiggewicht (y) en motorinhoud (z). De resulterende formule voor multivariate lineaire regressie is:

5.png

In dit geval vertegenwoordigt de coëfficiënt voor elke variabele het gewicht of het belang van die feature, terwijl de andere variabelen constant worden gehouden. 

Inverse functies

Laten we nu de appelvraag “omkeren”: als je $2,25 aan appels hebt uitgegeven, hoeveel pond heb je dan gekocht? Het antwoord is 2,25 / 0,75 = 3, dus je kocht drie pond. Deze soort “omkering” van een functie heet de inverse van de functie. In het voorbeeld zonder intercept is de inverse: 

1.png

Merk op dat in deze notatie de "-1" aangeeft dat je de inverse van een functie neemt, niet een reciproque.

Eén ding om op te letten is dat het domein kan veranderen. Stel bijvoorbeeld dat je oorspronkelijke functie is:

2.png

Deze functie is gedefinieerd voor alle reële getallen behalve 2, omdat de noemer niet nul mag zijn. De inverse van deze functie is 

3.png

Om dezelfde reden is de inverse functie gedefinieerd voor alle invoeren behalve 0. 

Een andere valkuil is dat de resulterende inverse misschien geen functie is omdat er meerdere uitkomsten zijn voor één invoer. Neem de functie y = x2. De omkering daarvan is dus:

4.png

Zoals je aan het plus/minteken ziet, heeft de inverse twee uitkomsten voor één invoer, dus het is geen functie tenzij we het domein beperken (bijvoorbeeld tot x ≥ 0)

Grafisch zijn een functie en haar inverse (als die bestaat) elkaars spiegelbeeld over de lijn y=x. Neem de functie y = x3. De grafiek van deze functie en haar inverse is:Inverse functie als spiegel van de oorspronkelijke functie

De oorspronkelijke functie (in blauw) heeft een inverse (in oranje) die gespiegeld is over de lijn y = x.

Exponentiële en logaritmische functies

Laten we twee typen functies bekijken die nauw verwant zijn: exponentiële en logaritmische functies.

Exponentiële functies

Stel dat je $100 op een spaarrekening stort die 10% rente vergoedt, jaarlijks samengesteld.

  • In jaar 0 (voordat er een jaar is verstreken), f(0) = $100.
  • Na jaar 1, f(1) = $100 x 1,10 = $110.
  • Na jaar 2, f(2) = $110 x 1,10  = ($100 x 1,10) x 1,10 = $100 x 1,102 = $121.
  • Na jaar 3, f(3) = $121 x 1,10 = ($100 x 1,10 x 1,10) x 1,10 = $100 x 1,103 = $133,10
  • Na jaar x, f(x) = $100 * 1,10x.

exponentiële functie

Dit is een voorbeeld van exponentiële groei. Elke stap vermenigvuldigt de vorige stap met een vast bedrag. De algemene functie voor exponentiële groei is y = A bx, waarbij y de uitvoer is, x de invoer (vaak tijd), A het initiële bedrag en b de groeifactor per eenheid x.

In data science komen exponentiële modellen voor bij samengestelde groeiprocessen zoals gebruikersgroei of omzetgroei, in waarschijnlijkheidsmodellen en vele andere toepassingen.

Logaritmische functies

Logaritmische functies draaien deze vraag om. In plaats van te vragen naar het bedrag nadat er x tijd is verstreken, wil je nu weten hoe lang je je geld moet laten groeien om $200 te bereiken, uitgaande van een samengestelde factor van 10%. 

  • Stel de vergelijking op: 200 = 100 * 1,10x 
  • Deel beide kanten door 100: 2 = 1 * 1,10x 

Nu moeten we weten hoe vaak 1,10 met zichzelf moet worden vermenigvuldigd om 2 te krijgen. Dit is de vraag die logaritmen beantwoorden. 

Logaritmische functie

In de grafiek zien we dat het iets meer dan 7 jaar duurt voordat ons geld verdubbelt.

Zoals we hebben gezien, zijn logaritmische functies de inverse van exponentiële functies. Exponentiële modellen stellen vragen als: na x maanden, wat is de groeisnelheid? Logaritmische modellen vragen: gegeven een groeifactor, hoeveel maanden heeft het geduurd om daar te komen?

Data scientists gebruiken vaak logaritmen om een scheve verdeling hanteerbaar te maken. Inkomensverdelingen zijn bijvoorbeeld meestal sterk rechts-scheef: een paar grootverdieners rekken de bovenkant van de verdeling uit, terwijl de meeste mensen aan de onderkant clusteren. 

Typische inkomensverdeling

Je kunt de gegevens transformeren door van elk datapunt de logaritme te nemen:

Logaritme van de inkomensfunctie die tot een ongeveer normale verdeling leidt

Hoge inkomens worden samengedrukt terwijl andere inkomens worden uitgespreid. Logtransformaties veranderen de vraag van absolute verschillen naar relatieve verschillen. Daardoor stort de lange rechterstaart in en wordt de verdeling vaak ongeveer normaal. Nu is de variantie stabieler en kunnen we lineaire regressie toepassen.

De logaritme speelt een centrale rol in een van de meest gebruikte verliesfuncties bij binaire classificatie, bekend als cross-entropy loss of log loss, gedefinieerd voor één sample als:

5.png

Hier is de binaire variabele y (0 of 1) de ware waarde voor een sample, en p is de voorspelde waarschijnlijkheid dat y klasse 1 is. 

  • Als y gelijk is aan 1, is het verlies -log(p), wat je zwaarder straft naarmate p dichter bij 0 ligt.
  • Als y gelijk is aan 0, is het verlies -log(1-p), wat je zwaarder straft naarmate p dichter bij 1 ligt. 

Log loss straft zelfverzekerde maar foute voorspellingen sterk af. Een waarschijnlijkheid dicht bij 0 voorspellen wanneer het echte label 1 is (of omgekeerd) resulteert in een grote straf, terwijl onzekere voorspellingen kleinere straffen krijgen. Dit maakt log loss goed geschikt voor het trainen van probabilistische classifiers zoals logistische regressie.

Niet-lineaire activatiefuncties

Activatiefuncties worden in neurale netwerken gebruikt om te zorgen dat de uitvoer van elke laag niet-lineair is. Veelgebruikte activatiefuncties zijn de sigmoid en ReLU.

Sigmoidfunctie

De sigmoidfunctie is een gladde, S-vormige functie die wordt gedefinieerd door de volgende formule:

6.png

Ze neemt elk reëel getal als invoer en geeft een waarde strikt tussen 0 en 1. Ze wordt gebruikt om ruwe scores om te zetten in waarschijnlijkheden. 

Sigmoidfunctie

Een veelvoorkomend gebruik van de sigmoidfunctie is in logistische regressie voor binaire classificatie. Logistische regressie berekent een lineaire combinatie van de invoeren om een score te produceren. Die score wordt vervolgens met de sigmoidfunctie omgezet in een waarschijnlijkheid. Waarschijnlijkheden boven een drempel (typisch 0,5) worden als 1 geclassificeerd, en die onder de drempel als 0.

Voor meer daarover, bekijk onze tutorials Python Logistic Regression en Logistic Regression in R.  

ReLU (rectified linear unit)

De functie Rectified Linear Unit (ReLU) zet negatieve getallen om in 0 en laat positieve getallen onveranderd. Ze is gedefinieerd als:

7.png

Voor waarden boven 0 is het hetzelfde als de identieke functie, zoals je in de grafiek kunt zien:

ReLU-functie

Net als de sigmoidfunctie fungeert ze als niet-lineaire activatiefunctie in de verborgen lagen van een neuraal netwerk. Ze is echter computationeel eenvoudig en vereist slechts een maximumoperatie, terwijl de sigmoid een dure exponentiële functieberekening vergt. 

Omdat een ReLU alle negatieve waarden op 0 zet, produceert ze sparsity in het netwerk, waarbij veel neuronen worden uitgezet. Dit kan ruis verminderen en tot efficiëntere representaties leiden. 

Beslisbomen als stukgewijze functies

Een andere vorm van niet-lineaire functies vind je in beslisbomen, die de invoerruimte recursief in kleinere regio’s opdelen door te splitsen op features en drempels totdat aan een stopcriterium is voldaan. 

Elke resulterende bladknoop krijgt een voorspelde waarde toegewezen. Zo kun je een beslisboom zien als een stukgewijze functie, waarbij elke regio van het domein naar een constante voorspelde waarde mapt. Door veel lokale regels aan elkaar te naaien, kunnen beslisbomen complexe patronen vatten.

Je zou bijvoorbeeld een tweedimensionale regio als volgt opgedeeld kunnen zien:

Beslisboom als gebiedskaart

Deze heatmap komt overeen met de volgende regio’s:

Regio

Deel van het domein

Functiewaarde

1

x1 < 3 en x2 < 4

1

2

x1 < 3 en x2 >= 4

2

3

3 ≤ x1 < 6 en x2 < 2,5

3

4

3 ≤ x1 < 6 en  2,5 ≤ x2 < 7

4

5

3 ≤ x1 < 6 en x2 ≥ 7

5

6

x1 ≥ 6 en x2 < 5

6

7

x1 ≥ 6 en x2 ≥ 5

7

Functie-optimalisatie

Functie-optimalisatie is het proces van het vinden van invoerwaarden die een functie maximaliseren of minimaliseren. Je wilt bijvoorbeeld een winstfunctie maximaliseren of een foutfunctie minimaliseren. De studie van functie-optimalisatie staat bekend als "operations research" en is een enorme en voortdurende verzameling wiskundige theorie.

Het optimaliseren van functies hangt nauw samen met de lokale en globale "extrema" (maximum- of minimumpunten) van een functie. Een "lokaal minimum" is een minimum binnen een bepaald bereik, en een "globaal minimum" is het minimum van de functie in het geheel. 

Neem bijvoorbeeld de functie f(x) = x4 - 3x2 + x.

Functie met twee minima

Er zijn twee lokale minima: één wanneer x ongeveer -1,30 is en een andere wanneer x ongeveer 1,13 is. De y-waarde is lager wanneer x -1,30 is, dus dat is het globale minimum van de functie.

Voor eenvoudige optimalisatietaken, zoals het vinden van de beste prijs om de winst te maximaliseren in een prijsmodel met één variabele, is het voldoende om de afgeleide van de functie te nemen, die gelijk aan nul te stellen en x op te lossen. Voor het trainen van diepe neurale netwerken is het niet zo eenvoudig, maar het werkt op een vergelijkbare manier.

De belangrijkste optimalisatiemethode voor deep learning is gradient descent. De gradiënt is de meerdimensionale generalisatie van de helling en vertelt ons hoe het verlies verandert ten opzichte van elke parameter.

Het werkt door herhaaldelijk te bewegen in de richting van de steilste neerwaartse verandering van een functie. Bij elke stap gebruikt het de gradiënt om te beslissen welke kant op te bewegen en een stapgrootte om te beslissen hoe ver. Na verloop van tijd leidt dit proces naar een lokaal minimum. 

Conclusie

Functies zijn alomtegenwoordig in wiskunde, programmeren en data science. "Leren" in machine learning is in feite het vinden van de beste functie (en de parameters daarvan) om invoer naar uitvoer te mappen. Nu je weet wat functies zijn, kun je er een paar in Python of je favoriete programmeertaal schrijven!

Om te zien hoe deze ideeën passen in echte machine learning-workflows, kun je doorgaan met de cursus Understanding Machine Learning.

Mathematical Functions FAQs

Wat is een functie in de wiskunde?

Een wiskundige functie is een regel die elke invoer aan precies één uitvoer koppelt.

Waarom heeft een wiskundige functie maar één uitkomst?

Anders zou de regel per definitie geen functie zijn, omdat die dan ambigu is.

Zijn programmeerfuncties hetzelfde als wiskundige functies?

Niet helemaal. Programmeerfuncties kunnen neveneffecten hebben of zelfs geen bruikbare waarde retourneren, wat bij wiskundige functies niet is toegestaan.

Waarom zijn functies belangrijk in data science?

Omdat modellen functies zijn. Modellen koppelen features aan voorspellingen, waarschijnlijkheden of scores.

Wat zijn het domein en codomein van een functie?

Het domein is de verzameling geldige invoeren. Het codomein is de verzameling geldige uitkomsten.


Mark Pedigo's photo
Author
Mark Pedigo
LinkedIn

Mark Pedigo, PhD, is een vooraanstaande data scientist met expertise in data science voor de gezondheidszorg, programmeren en onderwijs. Met een PhD in Wiskunde, een B.S. in Computer Science en een Professional Certificate in AI combineert Mark technische kennis met praktische probleemoplossing. In zijn loopbaan werkte hij onder meer aan fraudedetectie, het voorspellen van kindersterfte en financiële forecasting, en leverde hij bijdragen aan NASA’s software voor kostenraming. Als docent gaf hij les bij DataCamp en Washington University in St. Louis en begeleidde hij junior programmeurs. In zijn vrije tijd geniet Mark samen met zijn vrouw Mandy en hond Harley van de buitenlucht in Minnesota en speelt hij jazzpiano.

Onderwerpen
Data Science

Wiskundecursussen

Cursus

Lineaire algebra voor data science in R

4 uur
21.8K
Deze cursus is een inleiding tot lineaire algebra, een van de belangrijkste wiskundige onderwerpen die ten grondslag liggen aan datawetenschap.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken