Elemente de Matematică

Acest material nu isi propune sa fie un ghid complet in urmatoarele domenii alte matematicii. Conceptele sunt prezentate pe scurt. Pentru aprofundare se recomanda:

De asemenea, nu este necesar sa fie stiuta toata teoria matematica pentru a lucra la nivel de baza (judeteana, nationala). Cei pasionati, dornici sa inteleaga cum functioneaza algoritmii utilizati, pot invata matematica din spate.

Probabilități

Calculul probabilităților discrete constituie fundamentul teoretic pentru înțelegerea incertitudinii în machine learning. Spațiul eșantionului Ω\Omega reprezintă mulțimea tuturor rezultatelor posibile ale unui experiment aleatoriu, iar un eveniment AA este o submulțime a acestui spațiu. Probabilitatea unui eveniment AA este definită ca:

P(A)=AΩ=numa˘ri cazuri favorabilenuma˘r cazuri posibileP(A) = \frac{|A|}{|\Omega|} = \frac{\text{numări cazuri favorabile}}{\text{număr cazuri posibile}}

Exemplu: fie un zar, care este probabilitatea sa obtinem 3?

P(X=3)=16P(X = 3) = \frac{1}{6}

Probabilitățile condiționate exprimă probabilitatea unui eveniment AA știind că s-a produs evenimentul BB. Această noțiune este crucială pentru algoritmii de clasificare și inferența bayesiană. Probabilitatea condiționată se calculează prin raportul dintre probabilitatea intersecției și probabilitatea condiției.

P(AB)=P(AB)P(B),P(B)>0P(A|B) = \frac{P(A \cap B)}{P(B)}, \quad P(B) > 0

Evenimentele independente sunt caracterizate prin proprietatea că apariția unuia nu influențează probabilitatea celuilalt. Două evenimente AA și BB sunt independente dacă și numai dacă probabilitatea intersecției lor este egală cu produsul probabilităților individuale.

P(AB)=P(A)P(B)P(A \cap B) = P(A) \cdot P(B)

Teorema lui Bayes oferă un mecanism fundamental pentru actualizarea probabilităților în funcție de noi informații observate. Această teoremă stă la baza multor algoritmi de machine learning, inclusiv clasificatorii naive Bayes și rețelele bayesiene.

P(AB)=P(BA)P(A)P(B)P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}

Variabilele aleatorii sunt funcții care asociază fiecărui rezultat din spațiul eșantionului o valoare numerică. O variabilă aleatorie discretă XX poate lua doar un număr finit sau numărabil de valori, în timp ce o variabilă aleatorie continuă poate lua orice valoare dintr-un interval real.

Distribuțiile de probabilitate descriu modul în care probabilitatea este repartizată asupra valorilor posibile ale unei variabile aleatorii. Pentru variabilele discrete, funcția de masă de probabilitate (PMF) p(x)=P(X=x)p(x) = P(X = x) specifică probabilitatea fiecărei valori, iar pentru variabilele continue, funcția de densitate de probabilitate (PDF) f(x)f(x) satisface proprietatea că probabilitatea unui interval este integrala densității pe acel interval.

P(aXb)=abf(x)dxP(a \leq X \leq b) = \int_a^b f(x) dx

Funcția de distribuție cumulativă (CDF) F(x)=P(Xx)F(x) = P(X \leq x) oferă probabilitatea ca variabila aleatorie să ia o valoare mai mică sau egală cu xx. Pentru variabilele continue, CDF-ul este legat de PDF prin relația de integrare.

F(x)=xf(t)dtF(x) = \int_{-\infty}^x f(t) dt

Distribuția uniformă atribuie probabilități egale tuturor valorilor dintr-un interval specificat. Pentru distribuția uniformă continuă pe intervalul [a,b][a,b], densitatea de probabilitate este constantă și egală cu inversul lungimii intervalului.

f(x)=1ba,x[a,b]f(x) = \frac{1}{b-a}, \quad x \in [a,b]

Distribuția binomială modelează numărul de succese în nn încercări independente, fiecare cu probabilitatea de succes pp. Această distribuție este fundamentală pentru problemele de clasificare binară și testarea ipotezelor statistice.

P(X=k)=(nk)pk(1p)nkP(X = k) = \binom{n}{k} p^k (1-p)^{n-k}

Notam

XBin(n,p)X \sim \mathrm{Bin}(n, p)

Distribuția Poisson aproximează distribuția binomială când numărul de încercări este mare și probabilitatea de succes este mică, astfel încât produsul np=λnp = \lambda rămâne constant. Aceasta modelează evenimente rare care apar independent în timp sau spațiu.

P(X=k)=λkeλk!P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!}

Notam

XPoi(λ)X \sim \mathrm{Poi}(\lambda)

Distribuția normală (gaussiană) este cea mai importantă distribuție continuă în statistică și machine learning, caracterizată prin parametrii de medie μ\mu și deviația standard σ2\sigma^2. Forma sa în clopot și proprietățile analitice o fac ideală pentru multe aplicații practice.

f(x)=1σ2πe(xμ)22σ2f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}

Notam

XN(μ,σ2)X \sim \mathcal{N}(\mu, \sigma^2)

Statistică

Media aritmetică reprezintă măsura centrală de tendință cea mai utilizată, calculată ca suma valorilor împărțită la numărul de observații. Pentru un eșantion x1,x2,,xnx_1, x_2, \ldots, x_n, media oferă o estimare a valorii tipice din setul de date.

xˉ=1ni=1nxi\bar{x} = \frac{1}{n} \sum_{i=1}^n x_i

Mediana constituie valoarea centrală care împarte setul de date ordonate în două părți egale. Spre deosebire de medie, mediana este robustă la valorile extreme și oferă o măsură mai stabilă a tendinței centrale pentru distribuții asimetrice.

Deviația standard măsoară dispersia valorilor în jurul mediei și reprezintă rădăcina pătrată a varianței. Această măsură exprimă variabilitatea datelor în aceleași unități de măsură ca variabila originală, facilitând interpretarea practică.

σ=1n1i=1n(xixˉ)2\sigma = \sqrt{\frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})^2}

σ=Var(X)\sigma = \sqrt{\mathrm{Var}(X)}

Variația cuantifică gradul de răspândire a valorilor în jurul mediei prin calcularea mediei pătratelor abaterilor de la medie. Pentru un eșantion, variația eșantionului utilizează n1n-1 la numitor pentru a obține o estimare nebiasată.

Var(X)=σ2=1n1i=1n(xixˉ)2\mathrm{Var}(X) = \sigma^2 = \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})^2

Var(X)=Cov(X,X)=E[(XXˉ)2]\mathrm{Var}(X) = \mathrm{Cov}(X, X) = \mathrm{E}[(X-\bar{X})^2]

Valoarea așteptată (expected value) generalizează conceptul de medie pentru variabilele aleatorii, reprezentând valoarea medie pe termen lung a unei variabile aleatorii. Pentru o variabilă discretă, se calculează ca suma ponderată a valorilor cu probabilitățile corespunzătoare.

E[X]=ixiP(X=xi)E[X] = \sum_{i} x_i P(X = x_i)

Exemplu: avem un zar, toate numerele au probabilitate egala de a pica 16\frac{1}{6}, care este valoarea expected cand aruncam zarul?

E[X]=1+2+3+4+5+66=216=3,6E[X] = \frac{1+2+3+4+5+6}{6} = \frac{21}{6} = 3,6

Covarianța măsoară gradul în care două variabile aleatorii variază împreună, indicând direcția relației liniare dintre ele. O covarianță pozitivă sugerează că variabilele tind să crească sau să scadă împreună, în timp ce o covarianță negativă indică o relație inversă.

Cov(X,Y)=E[(XE[X])(YE[Y])]=E[XY]E[X]E[Y]\text{Cov}(X,Y) = E[(X - E[X])(Y - E[Y])] = E[XY] - E[X]E[Y]

Matricea de covarianță extinde conceptul de covarianță la vectori aleatorii multidimensionali, unde elementul (i,j)(i,j) reprezintă covarianța dintre componentele ii și jj. Această matrice este simetrică și pozitiv semi-definită, fiind fundamentală în analiza componentelor principale și algoritmii de clustering.

Σij=Cov(Xi,Xj)\Sigma_{ij} = \text{Cov}(X_i, X_j)

Algebra Liniară

Algebra liniară este studiul vectorilor, spațiilor vectoriale (care sunt seturi de vectori) și al transformărilor liniare între aceste spații. Este un limbaj fundamental pentru modelarea multor fenomene în machine learning, de la reprezentarea datelor la optimizarea algoritmilor.

Scalari, Vectori, Matrici, Tensori

  • Scalar: O singură valoare numerică. Ex: 55, 3.14-3.14.
  • Vector: O listă ordonată de scalari. Poate fi văzut ca un punct într-un spațiu multidimensional sau ca o direcție și o magnitudine. Un vector coloană este standard: v=[v1v2vn]\mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix} Un vector rând este transpusa unui vector coloană: vT=[v1v2vn]\mathbf{v}^T = \begin{bmatrix} v_1 & v_2 & \cdots & v_n \end{bmatrix}.
  • Matrice: Un tabel dreptunghiular de scalari aranjați în rânduri și coloane. O matrice AA de dimensiune m×nm \times n are mm rânduri și nn coloane. A=[A11A12A1nA21A22A2nAm1Am2Amn]A = \begin{bmatrix} A_{11} & A_{12} & \cdots & A_{1n} \\ A_{21} & A_{22} & \cdots & A_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ A_{m1} & A_{m2} & \cdots & A_{mn} \end{bmatrix}
  • Tensor: O generalizare a scalărilor, vectorilor și matricilor la un număr arbitrar de dimensiuni (axe sau moduri). Un scalar este un tensor de ordin 0, un vector este un tensor de ordin 1, o matrice este un tensor de ordin 2. Tensorii sunt esențiali în deep learning pentru reprezentarea datelor (imagini, secvențe) și a parametrilor modelului.

Operații cu Vectori și Matrici

  • Adunarea/Scăderea: Se efectuează element cu element, necesită dimensiuni identice. [12]+[34]=[46]\begin{bmatrix} 1 \\ 2 \end{bmatrix} + \begin{bmatrix} 3 \\ 4 \end{bmatrix} = \begin{bmatrix} 4 \\ 6 \end{bmatrix}
  • Înmulțirea cu un Scalar: Fiecare element al vectorului/matricei este înmulțit cu scalarul. 2[1234]=[2468]2 \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 2 & 4 \\ 6 & 8 \end{bmatrix}
  • Produsul Scalar (Dot Product): Pentru doi vectori u,vRn\mathbf{u}, \mathbf{v} \in \mathbb{R}^n: uv=uTv=_i=1nuivi\mathbf{u} \cdot \mathbf{v} = \mathbf{u}^T \mathbf{v} = \sum\_{i=1}^n u_i v_i Rezultatul este un scalar. Măsoară similaritatea sau proiecția unui vector pe altul. Dacă uv=0\mathbf{u} \cdot \mathbf{v} = 0, vectorii sunt ortogonali.
  • Norma Vectorului (Vector Norm): Măsoară "lungimea" sau "magnitudinea" unui vector.
    • Norma Euclideană (L2 norm): v2=i=1nvi2=vTv\|\mathbf{v}\|_2 = \sqrt{\sum_{i=1}^n v_i^2} = \sqrt{\mathbf{v}^T \mathbf{v}}.
    • Norma L1: v1=i=1nvi\|\mathbf{v}\|_1 = \sum_{i=1}^n |v_i|.
    • Norma L-infinit: v=maxivi\|\mathbf{v}\|_\infty = \max_i |v_i|.
  • Înmulțirea Matricilor: Produsul C=ABC = AB al unei matrice AA de dimensiune m×km \times k cu o matrice BB de dimensiune k×nk \times n este o matrice CC de dimensiune m×nm \times n, unde elementul CijC_{ij} este produsul scalar al rândului ii din AA cu coloana jj din BB: Cij=p=1kAipBpjC*{ij} = \sum*{p=1}^k A*{ip} B*{pj} Notă: Înmulțirea matricilor nu este comutativă (ABBAAB \ne BA în general).
  • Matricea Identitate (Identity Matrix): Notată II, este o matrice pătratică cu 1 pe diagonală și 0 în rest. Are proprietatea că AI=IA=AAI = IA = A.
  • Transpusa unei Matrici (Matrix Transpose): Notată ATA^T, este obținută prin interschimbarea rândurilor cu coloanele. Dacă AA este de m×nm \times n, atunci ATA^T este de n×mn \times m. (AT)ij=Aji(A^T)_{ij} = A_{ji} Proprietăți: (AT)T=A(A^T)^T = A, (AB)T=BTAT(AB)^T = B^T A^T.
  • Inversa unei Matrici (Matrix Inverse): Pentru o matrice pătratică AA, inversa sa A1A^{-1} (dacă există) este matricea care satisface AA1=A1A=IAA^{-1} = A^{-1}A = I. O matrice care are inversă este numită inversabilă sau nesingulară.

Valori proprii (eigenvalues) și vectori proprii (eigenvectors)

Pentru o matrice pătratică AA, un vector nenul v\mathbf{v} este un vector propriu (eigenvector) al lui AA dacă, atunci când este înmulțit cu AA, rezultatul este un scalar înmulțit cu v\mathbf{v}. Scalarul λ\lambda este valoarea proprie (eigenvalue) corespondentă. Formal, această relație este exprimată ca: Av=λvA \mathbf{v} = \lambda \mathbf{v} Unde:

  • AA este o matrice pătratică de dimensiune n×nn \times n.
  • v\mathbf{v} este un vector propriu nenul de dimensiune n×1n \times 1.
  • λ\lambda este o valoare proprie scalară.

Interpretare Geometrică: Aplicarea transformării liniare reprezentate de AA asupra unui vector propriu v\mathbf{v} are ca efect doar scalarea (întinderea sau comprimarea) vectorului v\mathbf{v}, fără a-i schimba direcția (sau, în cazul λ<0\lambda < 0, schimbându-i doar sensul).

Calculul Valorilor și Vectorilor Proprii: Ecuația Av=λvA \mathbf{v} = \lambda \mathbf{v} poate fi rescrisă ca: Avλv=0A \mathbf{v} - \lambda \mathbf{v} = \mathbf{0} (AλI)v=0(A - \lambda I) \mathbf{v} = \mathbf{0} Pentru ca această ecuație să aibă o soluție nenulă pentru v\mathbf{v}, matricea (AλI)(A - \lambda I) trebuie să fie singulară (adică să nu aibă inversă). Acest lucru se întâmplă dacă și numai dacă determinantul ei este zero: det(AλI)=0\det(A - \lambda I) = 0 Aceasta este ecuația caracteristică a matricei AA. Soluțiile acestei ecuații pentru λ\lambda sunt valorile proprii. Odată ce o valoare proprie λ\lambda este găsită, se substituie în (AλI)v=0(A - \lambda I) \mathbf{v} = \mathbf{0} pentru a găsi vectorul propriu corespondent v\mathbf{v}.

Aplicații în Machine Learning:

  • Analiza Componentelor Principale (PCA): Folosește vectorii proprii ai matricei de covarianță a datelor pentru a găsi direcțiile de varianță maximă (componentele principale). Valorile proprii indică magnitudinea varianței de-a lungul acelor direcții.
  • Analiza Spectrală: Utilizată în procesarea imaginilor, analiza rețelelor și în unele algoritmi de clustering.
  • Descompunerea Valorilor Singulare (SVD): Deși legată de valori proprii, SVD generalizează conceptul și la matricile non-pătratice și este extrem de importantă în reducerea dimensionalității și în sisteme de recomandare.

Matrici Simetrice: Pentru o matrice simetrică (A=ATA = A^T), toate valorile proprii sunt reale, iar vectorii proprii corespunzători unor valori proprii distincte sunt ortogonali. Acest lucru este crucial în PCA, deoarece matricea de covarianță este simetrică.

Analiza matematica

1. Derivate

Notiunea de derivata, care se invata in clasa a 11a, este esentiala pentru intelegerea problemelor de optimizare. Folosim notatia lui Leibniz:

f(x)=dfdxf'(x) = \frac{\text{d} f}{\text{d} x}

In problemele de optimizare este intalnit conceptul de derivata partiala. Acestea sunt folosite cand lucram cu o functie de mai multe variabile si dorim sa derivam in functie doar de una. Un exemplu:

Fie f:R2Rf : \mathbb{R}^2 \to \mathbb{R}, f(x,y)=x2+5yf(x, y) = x^2 + 5y. Exista doua derivate partiale de ordin 1:

fx=2x,fy=5\frac{\partial f}{\partial x} = 2x, \quad \frac{\partial f}{\partial y} = 5

Derivam normal relatiile ce contin variabile dupa care derivam, si tratam restul terminilor ca fiind constanti. Similar exista si derivate partiale de ordin superior:

2fx2=2\frac{\partial^2 f}{\partial x^2} = 2

Pentru derivatele de ordin superior, putem deriva de fiecare data dupa alta variabila. De exemplu, avem g:R2Rg : \mathbb{R}^2 \to \mathbb{R}, g(x,y)=x2yg(x, y) = x^2 y. Avem:

gx=2xy,gy=x2\frac{\partial g}{\partial x} = 2x y, \quad \frac{\partial g}{\partial y} = x^2

Dupa care:

2gxy=x(gy)=x(x2)=2x\frac{\partial^2 g}{\partial x \partial y} = \frac{\partial}{\partial x} \left( \frac{\partial g}{\partial y} \right) = \frac{\partial}{\partial x} (x^2) = 2x

2gyx=y(gx)=y(2xy)=2x\frac{\partial^2 g}{\partial y \partial x} = \frac{\partial}{\partial y} \left( \frac{\partial g}{\partial x} \right) = \frac{\partial}{\partial y} (2xy) = 2x

Observatie: in notatia utilizata, x\frac{\partial}{\partial x} reprezinta un operator ce primeste o functie si returneaza o alta functie.

Gradientul unei functii

În machine learning, lucrăm adesea cu funcții care au un număr mare de variabile. Pentru a înțelege cum o funcție se modifică în funcție de toate variabilele sale, introducem conceptul de gradient. Gradientul unei funcții scalare f(x)f(\mathbf{x}) unde x=[x1,x2,,xn]T\mathbf{x} = [x_1, x_2, \ldots, x_n]^T este un vector de variabile, ce conține toate derivatele parțiale de ordin întâi ale funcției. Este notat cu f\nabla f sau grad(f)\operatorname{grad}(f).

Pentru o funcție f:RnRf: \mathbb{R}^n \to \mathbb{R}, gradientul este definit ca:

f(x)=[fx1fx2fxn]\nabla f(\mathbf{x}) = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix}

Gradientul "arată" în direcția celei mai rapide creșteri a funcției într-un punct dat. Magnitudinea gradientului, adică f\|\nabla f\|, reprezintă rata de creștere a funcției în acea direcție. În contextul optimizării, algoritmul de gradient descent utilizează această proprietate, deplasându-se în direcția opusă gradientului pentru a găsi minimul unei funcții.

Exemplu: Fie f(x,y)=x2+y2f(x, y) = x^2 + y^2. Gradientul este:

f(x,y)=[fxfy]=[2x2y]\nabla f(x, y) = \begin{bmatrix} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{bmatrix} = \begin{bmatrix} 2x \\ 2y \end{bmatrix}

La punctul (1,1)(1, 1), gradientul este f(1,1)=[22]\nabla f(1, 1) = \begin{bmatrix} 2 \\ 2 \end{bmatrix}. Acest vector indică direcția în care funcția crește cel mai rapid de la (1,1)(1, 1).

Matricea Jacobiană

Pe lângă funcțiile scalare, în machine learning întâlnim și funcții vectoriale, adică funcții care mapează un vector la un alt vector. Pentru o funcție vectorială f:RnRm\mathbf{f}: \mathbb{R}^n \to \mathbb{R}^m, unde f(x)=[f1(x),f2(x),,fm(x)]T\mathbf{f}(\mathbf{x}) = [f_1(\mathbf{x}), f_2(\mathbf{x}), \ldots, f_m(\mathbf{x})]^T și fiecare fif_i este o funcție scalară de x\mathbf{x}, derivata este reprezentată de matricea Jacobiană.

Matricea Jacobiană JJ este o matrice de dimensiune m×nm \times n ale cărei elemente sunt derivatele parțiale de ordin întâi ale componentelor funcției vectoriale:

J=fx=[f1x1f1x2f1xnf2x1f2x2f2xnfmx1fmx2fmxn]J = \frac{\partial \mathbf{f}}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \frac{\partial f_2}{\partial x_1} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_2}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \frac{\partial f_m}{\partial x_2} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}

Fiecare rând al matricei Jacobiane este gradientul unei componente scalare fif_i a funcției vectoriale f\mathbf{f}. Dacă m=1m=1, adică f\mathbf{f} este o funcție scalară, atunci Jacobianul este vectorul rând al gradientului (transpus).

Exemplu: Fie f:R2R2\mathbf{f}: \mathbb{R}^2 \to \mathbb{R}^2 definită prin f(x,y)=[x2+y3x+y2]\mathbf{f}(x, y) = \begin{bmatrix} x^2 + y \\ 3x + y^2 \end{bmatrix}. Componentele funcției sunt f1(x,y)=x2+yf_1(x, y) = x^2 + y și f2(x,y)=3x+y2f_2(x, y) = 3x + y^2. Matricea Jacobiană este:

J=[f1xf1yf2xf2y]=[2x132y]J = \begin{bmatrix} \frac{\partial f_1}{\partial x} & \frac{\partial f_1}{\partial y} \\ \frac{\partial f_2}{\partial x} & \frac{\partial f_2}{\partial y} \end{bmatrix} = \begin{bmatrix} 2x & 1 \\ 3 & 2y \end{bmatrix}

Matricea Hessiană

Matricea Hessiană este o matrice pătratică de derivate parțiale de ordinul al doilea ale unei funcții scalare f:RnRf: \mathbb{R}^n \to \mathbb{R}. Este notată cu HH sau 2f\nabla^2 f.

Elementul HijH_{ij} al matricei Hesse este definit ca:

Hij=2fxixjH_{ij} = \frac{\partial^2 f}{\partial x_i \partial x_j}

Matricea Hessiană este dată de:

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2]H = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix}

O proprietate importantă a matricei Hesse (dacă derivatele parțiale mixte sunt continue) este că este simetrică, adică 2fxixj=2fxjxi\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial^2 f}{\partial x_j \partial x_i}.

Matricea Hessiană oferă informații despre curbura funcției și este utilizată pentru a determina dacă un punct critic este un minim local, un maxim local sau un punct șa. În optimizare, al doilea ordin de derivare este fundamental pentru metode mai avansate decât gradient descent, cum ar fi metoda lui Newton.

Exemplu: Fie f(x,y)=x3+xy22yf(x, y) = x^3 + xy^2 - 2y. Mai întâi calculăm derivatele parțiale de ordin întâi (gradientul):

fx=3x2+y2fy=2xy2\frac{\partial f}{\partial x} = 3x^2 + y^2 \\ \frac{\partial f}{\partial y} = 2xy - 2

Apoi calculăm derivatele parțiale de ordinul al doilea:

2fx2=6x2fy2=2x2fxy=2y2fyx=2y\frac{\partial^2 f}{\partial x^2} = 6x \\ \frac{\partial^2 f}{\partial y^2} = 2x \\ \frac{\partial^2 f}{\partial x \partial y} = 2y \\ \frac{\partial^2 f}{\partial y \partial x} = 2y

Matricea Hessiană este:

H=[6x2y2y2x]H = \begin{bmatrix} 6x & 2y \\ 2y & 2x \end{bmatrix}

Calcul Diferențial cu Matrici

În machine learning, operațiile sunt adesea exprimate sub formă de matrici și vectori, ceea ce face esențială înțelegerea calculului diferențial aplicat direct pe aceste structuri. Obiectivul este să calculăm derivatele funcțiilor scalare sau vectoriale în raport cu vectori sau matrici.

Derivata unei funcții scalare în raport cu un vector:

Acesta este exact gradientul discutat anterior. Dacă f:RnRf: \mathbb{R}^n \to \mathbb{R}, atunci derivata lui ff în raport cu vectorul x\mathbf{x} este:

fx=f=[fx1fx2fxn]\frac{\partial f}{\partial \mathbf{x}} = \nabla f = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix}

Exemplu: Fie f(x)=xTxf(\mathbf{x}) = \mathbf{x}^T \mathbf{x}, unde xRn\mathbf{x} \in \mathbb{R}^n. Desfășurată, f(x)=x12+x22++xn2f(\mathbf{x}) = x_1^2 + x_2^2 + \ldots + x_n^2. Atunci:

fxi=2xi\frac{\partial f}{\partial x_i} = 2x_i

Deci, fx=[2x12x22xn]=2x\frac{\partial f}{\partial \mathbf{x}} = \begin{bmatrix} 2x_1 \\ 2x_2 \\ \vdots \\ 2x_n \end{bmatrix} = 2\mathbf{x}.

Exemplu: Derivata unei forme liniare. Fie f(x)=aTxf(\mathbf{x}) = \mathbf{a}^T \mathbf{x}, unde a,xRn\mathbf{a}, \mathbf{x} \in \mathbb{R}^n. Desfășurată, f(x)=a1x1+a2x2++anxnf(\mathbf{x}) = a_1 x_1 + a_2 x_2 + \ldots + a_n x_n. Atunci:

fxi=ai\frac{\partial f}{\partial x_i} = a_i

Deci, fx=[a1a2an]=a\frac{\partial f}{\partial \mathbf{x}} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} = \mathbf{a}.

Derivata unei funcții scalare în raport cu o matrice:

Fie f:Rm×nRf: \mathbb{R}^{m \times n} \to \mathbb{R} o funcție scalară care primește o matrice XRm×nX \in \mathbb{R}^{m \times n}. Derivata lui ff în raport cu XX este o matrice de aceeași dimensiune ca XX, ale cărei elemente sunt derivatele parțiale ale lui ff în raport cu fiecare element al lui XX.

fX=[fX11fX12fX1nfX21fX22fX2nfXm1fXm2fXmn]\frac{\partial f}{\partial X} = \begin{bmatrix} \frac{\partial f}{\partial X_{11}} & \frac{\partial f}{\partial X_{12}} & \cdots & \frac{\partial f}{\partial X_{1n}} \\ \frac{\partial f}{\partial X_{21}} & \frac{\partial f}{\partial X_{22}} & \cdots & \frac{\partial f}{\partial X_{2n}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f}{\partial X_{m1}} & \frac{\partial f}{\partial X_{m2}} & \cdots & \frac{\partial f}{\partial X_{mn}} \end{bmatrix}

Exemplu: Fie f(X)=tr(AX)f(X) = \operatorname{tr}(AX), unde ARm×mA \in \mathbb{R}^{m \times m} și XRm×mX \in \mathbb{R}^{m \times m}. Știm că tr(AX)=i=1m(AX)ii=i=1mk=1mAikXki\operatorname{tr}(AX) = \sum_{i=1}^m (AX)_{ii} = \sum_{i=1}^m \sum_{k=1}^m A_{ik} X_{ki}. Pentru a găsi fXjk\frac{\partial f}{\partial X_{jk}}, analizăm termenii care conțin XjkX_{jk}: Singurul termen din sumă care conține XjkX_{jk} este când i=ji=j și kk în suma interioară este elementul XjkX_{jk}, adică AjjXjjA_{jj}X_{jj} nu, asta e greșit. Corect: când k=jk=j și i=ji=j e o chestie, dar de fapt kk este indexul interior și ii indexul exterior. Termenul cu XjkX_{jk} apare doar când elementul din AA este AijA_{ij} și XjkX_{jk} contribuie la (AX)ik(AX)_{ik} doar dacă k=jk=j.

tr(AX)=i=1mk=1mAikXki\operatorname{tr}(AX) = \sum_{i=1}^m \sum_{k=1}^m A_{ik} X_{ki}

Elementul XjkX_{jk} apare în termenul AkjXjkA_{kj} X_{jk} pentru i=ji=j și kk pentru al doilea index.

Xjk(i=1ml=1mAilXli)=Akj\frac{\partial}{\partial X_{jk}} \left( \sum_{i=1}^m \sum_{l=1}^m A_{il} X_{li} \right) = A_{kj}

Deci, fX=AT\frac{\partial f}{\partial X} = A^T.

Cheat Sheet - Formule Esențiale

Probabilități:

P(A)=numa˘ri cazuri favorabilenuma˘r cazuri posibileP(A) = \frac{\text{numări cazuri favorabile}}{\text{număr cazuri posibile}}

Teorema lui Bayes:

P(AB)=P(BA)P(A)P(B)P(A|B) = \frac{P(B|A) \cdot P(A)}{P(B)}

PDF-ul distributiei normale de μ\mu si σ2\sigma^2:

fnormal(x)=1σ2πe(xμ)22σ2f_{\text{normal}}(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}

Statistică

DenumireFormula
Media aritmeticăXˉ=1ni=1nXi\bar{X}=\displaystyle\frac{1}{n}\sum_{i=1}^{n}X_{i}
Valoarea expectedE[X]=xP(X=x)=Xˉ\mathbb{E}[X]=\sum xP(X=x)=\bar{X}
CovarianțăCov(X,Y)=E[(XXˉ)(YYˉ)]=E[XY]E[X]E[Y]\mathrm{Cov}(X,Y)=\mathbb{E}[(X-\bar{X})(Y-\bar{Y})]=\mathbb{E}[XY]-\mathbb{E}[X]\mathbb{E}[Y]
VarianțăVar(X)=Cov(X,X)=E[(XXˉ)2]\mathrm{Var}(X)=\mathrm{Cov}(X,X)=\mathbb{E}[(X-\bar{X})^2]
Deviație standardσ=Var(X)\sigma=\sqrt{\mathrm{Var}(X)}
Corelația PearsonρX,Y=Cov(X,Y)σXσY=E[(XXˉ)(YYˉ)]E[(XXˉ)2]E[(YYˉ)2]\rho_{X,Y}=\displaystyle\frac{\mathrm{Cov}(X,Y)}{\sigma_{X}\sigma_{Y}}=\frac{\mathbb{E}[(X-\bar{X})(Y-\bar{Y})]}{\sqrt{\mathbb{E}[(X-\bar{X})^2]}\sqrt{\mathbb{E}[(Y-\bar{Y})^2]}}

Algebră liniară

DenumireFormula
Valori și vectori propriiAv=λvAv=\lambda v
Condiție valori propriidet(AλI)=0\det(A-\lambda I)=0
Condiție vectori proprii(AλI)v=0(A-\lambda I)v=0