Hjemmeopgave 1#

Læs reglerne her: Hjemmeopgaver

Husk alle svar skal begrundes.

Opgave 1: Jacobi-matrix af et neuralt netværk#

Vi betragter et simpelt neuralt netværk, der består af to lag. Netværket tager en inputvektor \(x\in \mathbb{R}^{2}\) og producerer en sandsynlighedsvektor \(p\in \mathbb{R}^{3}\).

Netværket kan beskrives som en sammensat funktion \(\pmb{h}=\pmb{g}\circ \pmb{f}\), hvor:

  1. \(\pmb{f}:\mathbb{R}^{2} \to \mathbb{R}^{3}\) er en affin funktion \(\pmb{f}(\pmb{x}) = A \pmb{x} + \pmb{b}\) (som i bogen skrives \(T_{A,\pmb{b}}\) – det er det “skjulte” lag før aktivering).

  2. \(\pmb{g}:\mathbb{R}^{3} \to \mathbb{R}^{3}\) er Softmax-funktionen.

Det oplyses, at forskriften for \(\pmb{f}\) er givet ved:

\[\begin{equation*} \pmb{f}(x_1, x_2) = \begin{bmatrix} 2x_1 + x_2 \\ x_1 - x_2 \\ x_2 \end{bmatrix} + \begin{bmatrix} -1 \\ 0 \\ 1 \end{bmatrix} \end{equation*}\]

Funktionen \(\pmb{g}\) (Softmax) tager en vektor \(z=\left[z_{1},z_{2},z_{3}\right]^{T}\) og returnerer:

\[\begin{equation*} \pmb{g}(\pmb{z}) = \frac{1}{\sum_{k=1}^3 e^{z_k}} \begin{bmatrix} e^{z_1} \\ e^{z_2} \\ e^{z_3} \end{bmatrix} \end{equation*}\]

Det oplyses desuden (uden bevis, vi klarer det i næste opgave), at Jacobimatricen for Softmax-funktionen \(\pmb{g}\) i et vilkårligt punkt \(\pmb{z}\) kan udtrykkes ved output-vektoren \(\pmb{p}=\pmb{g}\left(\pmb{z}\right)\) som:

\[\begin{equation*} \pmb{J}_{\pmb{g}}(\pmb{z}) = \begin{bmatrix} p_1(1-p_1) & -p_1 p_2 & -p_1 p_3 \\ -p_2 p_1 & p_2(1-p_2) & -p_2 p_3 \\ -p_3 p_1 & -p_3 p_2 & p_3(1-p_3) \end{bmatrix} \end{equation*}\]

Vi ønsker at bestemme Jacobimatricen \(\pmb{J}_{\pmb{h}}\) for hele netværket i punktet: \(\pmb{x}_0 = (1, -1)\).

Spørgsmål a#

Bestem den mellemliggende vektor \(\pmb{z}_{0}=\pmb{f}\left(1,−1\right)\) samt netværkets endelige output \(\pmb{p}_{0}=\pmb{g}\left(\pmb{z}_{0}\right)\) . Du må gerne bruge Python/lommeregner til at evaluere \(e^{z}\) , men angiv også det eksakte udtryk.

Spørgsmål b#

Bestem Jacobimatricen \(\pmb{J}_{\pmb{f}}\left(1,−1\right)\). Beregn desuden de numeriske værdier for Jacobimatricen \(\pmb{J}_{\pmb{g}}\left(\pmb{z}_{0}\right)\) ved at indsætte værdierne for \(\pmb{p}_{0}\) fundet i spørgsmål a.

Spørgsmål c#

Argumenter for, at den sammensatte funktion \(\pmb{h}=\pmb{g}\circ \pmb{f}\) er differentiabel. Anvend kædereglen til at bestemme Jacobimatricen \(\pmb{J}_{\pmb{h}}\left(1,−1\right)\).

Dette svarer til at finde netværkets “gradienter” mht. inputtet, hvilket bruges til at forstå modellens følsomhed overfor ændringer i input.

Opgave 2: Differentiabilitet af Softmax#

I denne opgave skal du bevise formlen for Jacobimatricen til Softmax-funktionen, som blev benyttet i forrige opgave. Vi definerer Softmax-funktionen som en vektorfunktion \(g: \mathbb{R}^{n} \to \mathbb{R}^{n}\). Vi kalder input-vektoren for \(\pmb{z}=\left[z_{1},\dots,z_{n}\right]^{T}\) og output-vektoren for \(\pmb{p}=g\left(\pmb{z}\right) =\left[p_{1},\dots,p_{n}\right]^{T}\).

Spørgsmål a#

Lad \(S(\pmb{z}) = \sum_{k=1}^{n} e^{z_{k}}=e^{z_{1}}+e^{z_{2}}+ \dots +e^{z_{n}}\). Find de partielle afledte af \(S\) med hensyn til \(z_{j}\), dvs. find \(\frac{\partial S}{\partial z_{j}}(\pmb{z})\) for \(j=1,\dots,n\).

Spørgsmål b#

Benyt kvotientreglen til at differentiere \(p_{i}=\frac{e^{z_{i}}}{S(\pmb{z}) }\) med hensyn til \(z_{i}\) (altså hvor output-indeks og input-indeks er ens). Vis, at resultatet kan skrives som:

\[ \frac{\partial p_{i}}{\partial z_{i}}=p_{i}\left(1−p_{i}\right) \]

Spørgsmål c#

Benyt kvotientreglen til at differentiere \(p_{i}=\frac{e^{z_{i}}}{S(\pmb{z}) }\) med hensyn til \(z_{j}\) , hvor \(j\ne i\) (altså elementer uden for diagonalen af Jacobimatricen). Vis, at resultatet kan skrives som:

\[ \frac{\partial p_{i}}{\partial z_{j}}=−p_{i}p_{j} \]

Spørgsmål d#

Opskriv Jacobimatricen \(\pmb{J}_{\pmb{g}}\left(\pmb{z}\right)\) for tilfældet \(n=4\) ved hjælp af resultaterne fra spørgsmål b og c, hvor Jacobimatricen kun må udtrykkes ved værdierne af \(p_1, p_2, p_3, p_4\).

Det er en smule usædvanligt at udtrykke \(\pmb{J}_{\pmb{g}}\left(z\right)\) ved output-variablen \(\pmb{p}\) og ikke input-variablen \(\pmb{z}\). Man foretrækker her at bruge \(\pmb{p}\), da formlen bliver meget simpel.

Opgave 3: Et nyt indreprodukt#

Betragt \(\mathbb{C}^n\) med det sædvanlige indreprodukt \(\langle \cdot, \cdot \rangle\). Lad

  • \(U \in \mathbb{C}^{n \times n}\) være en unitær matrix (dvs. \(U^*U=I\)),

  • \(\Lambda \in \mathbb{R}^{n \times n}\) være en diagonal matrix med strengt positive diagonalelementer, dvs. \(\lambda_i>0\) for \(i=1,\ldots,n\).

Definer

\[\begin{equation*} B = U\,\Lambda\,U^*. \end{equation*}\]

Definer videre

\[\begin{equation*} A = U\,D\,U^*, \end{equation*}\]

hvor \(D\) er en diagonal matrix med elementerne

\[\begin{equation*} d_i = \sqrt{\lambda_i}, \quad i=1,\ldots,n. \end{equation*}\]

Spørgsmål a#

Vis, at

\[\begin{equation*} A^*A = B \quad \text{og at $A$ og $B$ er hermitiske}. \end{equation*}\]

Spørgsmål b#

Bestem den inverse matrix \(A^{-1}\).

Spørgsmål c#

Definer for søjlevektorerne \(\pmb{x}, \pmb{y} \in \mathbb{C}^n\) indreproduktet

\[\begin{equation*} \langle \pmb{x}, \pmb{y} \rangle_B = \langle B\,\pmb{x}, \pmb{y} \rangle. \end{equation*}\]

Vis, at

\[\begin{equation*} \langle \pmb{x}, \pmb{y} \rangle_B = \langle A\,\pmb{x}, A\,\pmb{y} \rangle. \end{equation*}\]

Spørgsmål d#

Vis, at \(\langle \pmb{x}, \pmb{y} \rangle_B\) faktisk er et indreprodukt på \(\mathbb{C}^n\). Du må gerne bruge uden bevis at det sædvanlige indreprodukt \(\langle \pmb{x}, \pmb{y} \rangle\) er et indreprodukt på \(\mathbb{C}^n\).

Spørgsmål e#

Lad \(B = \operatorname{diag}(2,5)\). Angiv to vektorer \(\pmb{x}, \pmb{y} \in \mathbb{C}^2\) der er ortogonale på hinanden m.h.t. \(\langle \cdot, \cdot \rangle_B\). Vektorerne må ikke være nulvektoren i \(\mathbb{C}^2\).