diff --git a/Glossary.tex b/Glossary.tex index 0e66f19..b39acd2 100644 --- a/Glossary.tex +++ b/Glossary.tex @@ -79,6 +79,7 @@ \newacronym{DNN}{DNN}{Deep Neural Network} \newacronym{RBF}{RBF}{Radial Basis Function Kernel} \newacronym{SVM}{SVM}{Support Vector Machine} +\newacronym{ARD}{ARD}{Automatic Relevance Determination} %-------------------- %nomenclature @@ -131,6 +132,8 @@ \newnom{slack-variable}{Slack-Variable}{\xi_i}{} \newnom{parameter_vector}{Parameter Vector}{\bm{\theta}}{} \newnom{gaussian_distribution}{Gaußsche Normalverteilung}{\mathcal{N}}{} +\newnom{gaussian_process}{Gaußscher Prozess}{\mathcal{GP}}{} +\newnom{hyper_parameters}{Hyper-Parameter}{\bm{\beta}}{} \shorthandoff{"} \makeglossaries diff --git a/chapters/Bayesian_Learning/Bayesian_Learning.tex b/chapters/Bayesian_Learning/Bayesian_Learning.tex index e0621b8..616d472 100644 --- a/chapters/Bayesian_Learning/Bayesian_Learning.tex +++ b/chapters/Bayesian_Learning/Bayesian_Learning.tex @@ -1,4 +1,4 @@ -\chapter{Bayesian Learning**}% +\chapter{Bayesian Learning}% \label{cha:Bayesian Learning} Die meisten bisher behandelten Algorithmen geben auf Basis der gegebenen Eingaben ein einzelnes Modell (den \nomf{parameter_vector}) zurück. Wie allerdings bereits gezeigt wurde, diff --git a/chapters/Bayesian_Learning/Bayesian_Regression_Algorithms.tex b/chapters/Bayesian_Learning/Bayesian_Regression_Algorithms.tex index b68d1e6..10c93bf 100644 --- a/chapters/Bayesian_Learning/Bayesian_Regression_Algorithms.tex +++ b/chapters/Bayesian_Learning/Bayesian_Regression_Algorithms.tex @@ -39,3 +39,43 @@ Anschließend erfolgt die Regression nach den Schritten des \nameref{cha:Bayesia \end{enumerate} Es fällt auf, dass $\nomeq{mean}(\bm{x^*})$ sich im Vergleich zur \nameref{sub:Ridge Regression} nicht verändert hat. Allerdings ist $\nomeq{variance}(\bm x^*)$ jetzt abhängig von den Eingangsdaten. + +\section{Gaussian Processes}% +\label{sec:Gaussian Processes} +Ein Gaußscher Prozess ist im Grunde nichts anderes als die kernelized version der \nameref{sec:Bayesian Linear Regression} ({\color{red}Beweis: Vorlesung 07 Folie 44 ff.}). +\begin{equation} \label{eq:guassian_process_general_definition} + f(\bm x)\sim\nomeq{gaussian_process}(\underbrace{m(\bm x)}_{\text{mean function}},\underbrace{k(\bm x,\bm x')}_{\text{covariance function}}) +\end{equation} +\begin{itemize} + \item Die \say{mean function} gibt den Prior für die Funktion: + \begin{equation} \label{eq:gaussian_process_mean_function} + \mathbb{E}[f(\bm x)] = m(\bm x) + \end{equation} + (im folgenden wird angenommen $m(\bm x) = 0$) + \item Die \say{covariance function} gibt an, wie ähnlich die Funktion $f$ an den Stellen $\bm x$ und $\bm x'$ ist + \begin{equation} + \label{eq:gaussian_process_covariance_function} + \mathbb{E}[f(\bm x)f(\bm x')] = k(\bm x,\bm x') + \end{equation} + (Covariance Function muss positiv definit sein (genau wie Kernel Function(\cref{sec:Positive Definite Kernels}))) +\end{itemize} +Für Gaußsche Prozesse lässt ist der Posterior gegeben durch:\\ +({\color{red} Herleitung und weitere Informationen Vorlesung 07 Folie 40}) +\begin{equation} \label{eq:gaussian_process_posterior} + p(\bm y|\bm X) = \nomeq{gaussian_distribution}(\bm y|0,\bm K + \sigma_y^2\nomeq{identity_matrix}) +\end{equation} +Hierbei ist $\bm K$ die \say{covariance matrix} und nicht die \noms{kernel_matrix} (außer $k$ ist eine \noms{kernel_function}) +\begin{equation} \label{eq:covariance_matrix} + \bm K = \begin{bmatrix} + k(\bm x_1,\bm x_1) & \cdots & k(\bm x_1,\bm x_N)\\ + \vdots & \ddots & \vdots\\ + k(\bm x_N, \bm x_1) & \cdots & k(\bm x_N,\bm x_N) + \end{bmatrix} +\end{equation} +Die Vorhersage $p(y^*|\bm X,\bm y,\bm x^*)$ ist eine \noms{gaussian_distribution}, +wobei \noms{mean} und \noms{variance} gegeben sind durch:\\ +({\color{red} Herleitung Vorlesung 07 Folie 41}) +\begin{itemize} + \item $\nomeq{mean}(\bm x^*) = \bm k_{\bm x^*}^T(\bm K + \sigma_y^2\nomeq{identity_matrix})^{-1}\bm y$ + \item $\nomeq{variance}(\bm x^*) = k^* + \sigma_y^2 - \bm k_{\bm x^*}^T(\bm K + \sigma_y^2\nomeq{identity_matrix})^{-1}\bm k_{\bm x^*}$ +\end{itemize} diff --git a/chapters/Mathematische_Grundlagen/Kernel_Basics.tex b/chapters/Mathematische_Grundlagen/Kernel_Basics.tex index 40dc217..78c38a1 100644 --- a/chapters/Mathematische_Grundlagen/Kernel_Basics.tex +++ b/chapters/Mathematische_Grundlagen/Kernel_Basics.tex @@ -95,3 +95,33 @@ Dies ermöglicht es viele Algorithmen (z.B. \nameref{cha:Linear Classification} \item $\nomeq{kernel_vector}(\bm x^*) = \begin{bmatrix} \nomeq{kernel_function}(\bm x_1,\bm x^*) \\\vdots\\\nomeq{kernel_function}(\bm x_N,\bm x^*) \end{bmatrix} = \begin{bmatrix} \bm\phi(\bm x_1)^T\bm\phi(x^*)\\\vdots\\\bm\phi(\bm x_N)^T \bm\phi(x^*) \end{bmatrix} = \bm\Phi_X\bm\phi(\bm x^*)$ \end{itemize} + +\section{Kernels and Hyperparameters}% +\label{sec:Kernels and Hyperparameters} +Die Parameter eines Kernels werden als \nomf{hyper_parameters} bezeichnet. +Wenn man den \nameref{sub:Gaussian Kernel} um eine length-scale $l_k$ für jede Dimension $k$ erweitert und alle \noms{hyper_parameters}, +die meist nicht benötigt werden hinzufügt, +erhält man einen Kernel, +der auch als \gls{ARD} Kernel bezeichnet wird: +\begin{equation} \label{ARD_kernel} + k(\bm x_i,\bm x_j)= \lambda^{-1}\exp\left( -\sum_{k=1}^d \frac{(x_{i,k} - x_{j,k})^2}{2l_k^2} \right) + \delta_{ij}\sigma_y^2 +\end{equation} +\begin{itemize} + \item $\lambda$: \tabto{2cm}a-priori Genauigkeit des Gewichtsvektors (prior precision of weight vector) + \item $\lambda^2$: \tabto{2cm} Rauschvarianz (noise variance) (gilt nur für $i=j$) + \item $l_k$:\tabto{2cm} Längenskalierung (length scale) für die Dimension $k$ +\end{itemize} +Die Längenskalierung $l_k$ legt die Relevanz der jeweiligen Dimension fest (je größer $l_k$ desto unwichtiger $k$) + +\subsection{Optimization of the Hyperparameters}% +\label{sub:Optimization of the Hyperparameters} +\begin{align} \label{eq:hyper_parameter_optimization} + \nomeq{hyper_parameters}^* &= \argmax_{\nomeq{hyper_parameters}} \nomeq{gaussian_distribution}(\bm y|0,\bm C_{\nomeq{hyper_parameters}})\\ + &= \argmax_{\nomeq{hyper_parameters}} -\frac{1}{2}\log|\bm C_{\nomeq{hyper_parameters}}| - \frac{1}{2}\bm y^T\bm C_{\nomeq{hyper_parameters}}\bm y - \frac{N}{2}\log(2\pi) +\end{align} +Leider ist diese zu optimierende Funktion nicht konvex, +weshalb hier nur mit dem \nameref{sec:Gradient Descent} Verfahren angesetzt werden kann +und auch hierbei potentiell nur ein lokales Optimum gefunden wird. +\subsubsection{Beispiele}% +\label{ssub:Beispiele} +({\color{red}siehe Vorlesung 07 Folie 55 ff.})