Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Numerieke waarden worden in machine learning voorgesteld als één van de volgende wiskundige objecten: scalairen, vectoren, matrices of tensors.

Notatie

We volgen doorheen de cursus de notatieconventies in Goodfellow et al. (2016, xi-xiv).

Scalairen

Een scalaire waarde (of simpelweg “scalair”) is gewoon een enkelvoudig getal - in tegenstelling tot de andere objecten die een verzameling van meerdere getallen voorstellen.

We zullen ze in wiskundige notatie aanduiden met schuingedrukte kleine letters, bv. s∈Rs \in \mathbb{R}.

Ze hebben telkens een bepaald type:

  • natuurlijk: N={0,1,2,3,...}\mathbb{N} = \{0, 1, 2, 3, ...\}

  • geheel: Z={...,−3,−2,−1,0,1,2,3,...}\mathbb{Z} = \{..., -3, -2, -1, 0, 1, 2, 3, ...\}

  • rationaal: Q={...,−1.0,−0.5,0,0.5,1,...}\mathbb{Q} = \{..., -1.0, -0.5, 0, 0.5, 1, ...\}

  • reëel: R=Q∪{π,e,...}\mathbb{R} = \mathbb{Q} \cup \{\pi, e, ...\}

  • enz.

Vectoren

Een vector is een geordende reeks van getallen van éénzelfde type. Ieder individueel getal wordt geïdentificeerd door de index binnen de ordening (startend bij 1). Een vector duiden we in kleine letters en in het vet aan, bv. x\pmb{x}. Het eerste element duiden we aan met x1x_1, het laatste met xnx_n. Wanneer we de elementen expliciet willen voorstellen, gebruiken we een kolom met vierkante haakjes:

x=[x1⋮xi⋮xn]\pmb{x} = \begin{bmatrix} x_1 \cr \vdots \cr x_i \cr \vdots \cr x_n \end{bmatrix}

Om het type aan te duiden gebruiken we bv. x∈Rn\pmb{x} \isin \mathbb{R}^n.
Vectoren laten ons toe om verschillende waarden van eenzelfde variabele samen voor te stellen. Dat maakt bijvoorbeeld in een programmeertaal als Python al een wereld van verschil.

[5, 8, 12, 3]
[ 5  8 12  3]

We kunnen vectoren zien als de coördinaten van individuele punten in een nn-dimensionele ruimte.

Source
Loading...

Matrices

Wanneer we bijvoorbeeld niet 1 maar mm punten in een nn dimensionale ruimte willen weergeven, kunnen we een matrix notatie gebruiken: X∈Rmxn\pmb{X} \isin \mathbb{R}^{mxn}. Een matrix is een geordende reeks van vectoren. We duiden ze aan in het vet met een hoofdletter, bv X\pmb{X}. Voor individuele elementen gebruiken we gewone hoofdletters, bv. X2,4X_{2,4}

X=[X1,1…X1,j…X1,n⋮⋮⋮Xi,1…Xi,j…Xi,n⋮⋮⋮Xm,1…Xm,j…Xm,n]\pmb{X} = \begin{bmatrix} X_{1,1} & \ldots & X_{1,j} & \ldots & X_{1,n} \cr \vdots & & \vdots & & \vdots \cr X_{i,1} & \ldots & X_{i,j} & \ldots & X_{i,n} \cr \vdots & & \vdots & & \vdots \cr X_{m,1} & \ldots & X_{m,j} & \ldots & X_{m,n} \end{bmatrix}

De rijen worden gevormd door rij-vectoren:

xi=[Xi,1,…,Xi,j,…,Xi,n]T=[Xi,1⋮Xi,j⋮Xi,n]\pmb{x_i} = [X_{i, 1}, \ldots, X_{i, j}, \ldots, X_{i, n}]^T = \begin{bmatrix} X_{i, 1} \cr \vdots \cr X_{i, j} \cr \vdots \cr X_{i, n} \end{bmatrix}

De kolommen worden gevormd door kolom-vectoren:

xj=[X1,j⋮Xi,j⋮Xm,j]\pmb{x_j} = \begin{bmatrix} X_{1, j} \cr \vdots \cr X_{i, j} \cr \vdots \cr X_{m, j} \end{bmatrix}

De notatie …T\ldots^T duidt op transpositie tussen rijen en kolommen.

XT=[X1,1…X1,i…X1,m⋮⋮⋮Xj,1…Xj,i…Xj,m⋮⋮⋮Xn,1…Xn,i…Xn,m]\pmb{X^T} = \begin{bmatrix} X_{1,1} & \ldots & X_{1, i} & \ldots & X_{1, m} \cr \vdots & & \vdots & & \vdots \cr X_{j, 1} & \ldots & X_{j,i} & \ldots & X_{j,m} \cr \vdots & & \vdots & & \vdots \cr X_{n,1} & \ldots & X_{n,i} & \ldots & X_{n,m} \end{bmatrix}

Matrices laten ons toe om verschillende waarden (rijen) van verschillende variabelen (kolommen) samen voor te stellen. Opnieuw: dat maakt een wereld van verschil uit als we dit willen programmeren.

[[3, 2, 7], [3, 5, 10]]
[[ 3  2  7]
 [ 3  5 10]]
Shape of a: (2, 3)

Tensors

Wanneer we het concept van een matrix uitbreiden naar een N-dimensionale grid van vectoren, spreken we van een tensor.

We kunnen dit illustreren aan de hand van beeld-data. Een RGB-afbeelding bestaat uit een verzameling pixels die geordend zijn in een 2-dimensionale grid. De dimensies worden bepaald door de resolutie; het aantal horizontale en verticale pixels. Iedere pixel is een vector met 3 waarden, overeenkomstig de channels: Rood, Groen, Blauw. Het gaat hier dus over een 3D tensor. De waarden zitten in een raster met een blok vorm (en dus niet in een vlak raster zoals bij matrices).

<Figure size 1000x600 with 1 Axes>
Image dimensions: height=479, width=638, channels=3
<Figure size 1000x600 with 1 Axes>
<Figure size 1000x600 with 1 Axes>
array([[12, 6, 18], [11, 5, 17], [10, 4, 16], [ 9, 3, 15], [ 9, 3, 15], [ 9, 3, 15], [ 9, 3, 15], [10, 4, 16], [10, 4, 16], [11, 5, 17]], dtype=uint8)
array([27, 26, 31], dtype=uint8)
(479, 638, 4)
Footnotes
  1. Zie cursus ML Principles.