From 6809df754a86284ae1f33aa52b2d60f9cb96b4d4 Mon Sep 17 00:00:00 2001 From: NotXia <35894453+NotXia@users.noreply.github.com> Date: Mon, 6 May 2024 21:02:30 +0200 Subject: [PATCH] Add LAAI3 Occam's razor and VC dimension --- .../module3/img/_vc_interval_2.pdf | Bin 0 -> 15017 bytes .../module3/img/_vc_interval_3.pdf | Bin 0 -> 12981 bytes .../module3/img/_vc_rectangle_4.pdf | Bin 0 -> 3000 bytes .../module3/img/vc.drawio | 148 ++++++++++++++++ .../module3/laai3.tex | 2 + .../module3/sections/_vc.tex | 167 ++++++++++++++++++ 6 files changed, 317 insertions(+) create mode 100644 src/year1/languages-and-algorithms-for-ai/module3/img/_vc_interval_2.pdf create mode 100644 src/year1/languages-and-algorithms-for-ai/module3/img/_vc_interval_3.pdf create mode 100644 src/year1/languages-and-algorithms-for-ai/module3/img/_vc_rectangle_4.pdf create mode 100644 src/year1/languages-and-algorithms-for-ai/module3/img/vc.drawio create mode 100644 src/year1/languages-and-algorithms-for-ai/module3/sections/_vc.tex diff --git a/src/year1/languages-and-algorithms-for-ai/module3/img/_vc_interval_2.pdf b/src/year1/languages-and-algorithms-for-ai/module3/img/_vc_interval_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5d6ddd5cf7b719a58c7f07faa40315b1dd863219 GIT binary patch literal 15017 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

yHZVNrCYU=ZPBtW9uZ@& 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 literal 0 HcmV?d00001 diff --git a/src/year1/languages-and-algorithms-for-ai/module3/img/_vc_rectangle_4.pdf b/src/year1/languages-and-algorithms-for-ai/module3/img/_vc_rectangle_4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b5497e5042724ed0089ab08696ac34b3ac03aab0 GIT binary patch literal 3000 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 literal 0 HcmV?d00001 diff --git a/src/year1/languages-and-algorithms-for-ai/module3/img/vc.drawio b/src/year1/languages-and-algorithms-for-ai/module3/img/vc.drawio new file mode 100644 index 0000000..d6cc92d --- /dev/null +++ b/src/year1/languages-and-algorithms-for-ai/module3/img/vc.drawio @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/year1/languages-and-algorithms-for-ai/module3/laai3.tex b/src/year1/languages-and-algorithms-for-ai/module3/laai3.tex index e7b5307..922cbdb 100644 --- a/src/year1/languages-and-algorithms-for-ai/module3/laai3.tex +++ b/src/year1/languages-and-algorithms-for-ai/module3/laai3.tex @@ -23,5 +23,7 @@ \input{sections/_turing.tex} \input{sections/_complexity.tex} \input{sections/_computational_learning.tex} + \input{sections/_vc.tex} + \eoc \end{document} \ No newline at end of file diff --git a/src/year1/languages-and-algorithms-for-ai/module3/sections/_vc.tex b/src/year1/languages-and-algorithms-for-ai/module3/sections/_vc.tex new file mode 100644 index 0000000..e837ab6 --- /dev/null +++ b/src/year1/languages-and-algorithms-for-ai/module3/sections/_vc.tex @@ -0,0 +1,167 @@ +\lohead{\color{gray} Not required for the exam} +\lehead{\color{gray} Not required for the exam} +\chapter{Computational learning theory extras} + + +\section{Occam's razor} + +\begin{description} + \item[Consistent learner] \marginnote{Consistent learner} + Given a concept class $\mathcal{C}$, a learning algorithm $\mathcal{L}$ is a consistent learner for $\mathcal{C}$ if for all: + \begin{itemize} + \item $n \geq 1$, + \item $m \geq 1$, + \item $c \in \mathcal{C}^n$ ($\mathcal{C}^n$ is the concept class over the instance space $X^n$), + \end{itemize} + $\mathcal{L}$ outputs on input $((x_1, y_1), \dots, (x_m, y_m))$ a concept $h \in \mathcal{C}^n$ such that $h(x_i) = y_i$. + In other words, $\mathcal{L}$ is capable of perfectly predicting the training concept. + + + \begin{remark} + A simple but not interesting family of learning algorithms is that of the models + that learn the training data as a chain of \texttt{if-else}. + + We are not interested in models that grow with the size of the training data. + \end{remark} + + \begin{description} + \item[Efficient consistent learner] \marginnote{Efficient consistent learner} + A learning algorithm $\mathcal{L}$ is an efficient consistent learner for $\mathcal{C}$ + if it is a consistent learner for $\mathcal{C}$ and works in polynomial time in $n$, $\texttt{size}(c)$ and $m$. + \end{description} +\end{description} + +\begin{theorem}[Occam's razor] \marginnote{Occam's razor} + Let $\mathcal{C}$ be a concept class and $\mathcal{L}$ a consistent learner for $\mathcal{C}$. + It holds that for all: + \begin{itemize} + \item $n \geq 1$, + \item $c \in \mathcal{C}^n$ + \item Distributions $\mathcal{D}$ over $X_n$, + \item $0 < \varepsilon < \frac{1}{2}$, + \item $0 < \delta < \frac{1}{2}$, + \end{itemize} + if $\mathcal{L}$ is given a sample of size $m$ drawn from $\mathcal{D}$ such that: + \[ m \geq \frac{1}{\varepsilon} \left( \log(\vert \mathcal{C}^n \vert) + \log \left(\frac{1}{\delta}\right) \right) \] + + then $\mathcal{L}$ is guaranteed to output a concept $h$ that satisfies $\texttt{err}(h) \leq \varepsilon$ with a probability of at least $(1-\delta)$.\\[-0.5em] + + \begin{corollary} + If $\mathcal{L}$ is an efficient consistent learner and $\log(\vert \mathcal{C}^n \vert)$ is polynomial in $n$ and $\texttt{size}(c)$, + then $\mathcal{C}$ is efficiently PAC learnable through $\mathcal{L}$. + + \begin{remark} + This implies that small (i.e. polynomial) concept classes can be efficiently learned. + \end{remark} + \end{corollary} + + % \begin{remark} + % This theorem considers the cardinality of the concept class. + % \end{remark} +\end{theorem} + + + +\section{VC dimension} + +\begin{description} + \item[Concept class restriction] \marginnote{Concept class restriction} + Given an instance space $X$, a finite subset $S \subseteq X$ and a concept $c: X \rightarrow \{0,1\}$, + the restriction of $c$ to $S$ is the concept $c|_{S}: S \rightarrow \{0, 1\}$ such that: + \[ \forall x \in S: c|_{S}(x) = c(x) \] + + The set of all the restrictions of a concept class $\mathcal{C}$ to $S$ is denoted as: + \[ \Pi_\mathcal{C}(S) = \{ c|_{S} \mid c \in \mathcal{C} \} \] + + \begin{remark} + % The set $\Pi_\mathcal{C}(S)$ is in bijective correspondence with the set of vectors in $\{ 0, 1 \}^*$ of length $\vert S \vert$. + % What matters of $c|_{S}$ is $( c(x_1), \dotsm c(x_{\vert S \vert}) )$ where $S = \{ x_1, \dots, x_{\vert S \vert} \}$. + It holds that: + \[ \big\vert \Pi_\mathcal{C}(S) \big\vert \leq \big\vert \{ (b_1, \dots, b_{\vert S \vert}) \mid b_i \in \{0,1\} \} \big\vert = 2^{\vert S \vert} \] + \end{remark} + + + + \item[Shattered set] \marginnote{Shattered set} + Given an instance space $X$ and a concept class $\mathcal{C}$, + a finite set $S \subseteq X$ is shattered by $\mathcal{C}$ if: + \[ \vert \Pi_\mathcal{C}(S) \vert = 2^{\vert S \vert} \] + + In other words, all possible dichotomies (division into two partitions) over $S$ can be done by $\mathcal{C}$. + + + \item[Vapnik-Chervonenkis dimension] \marginnote{Vapnik-Chervonenkis dimension} + The VC dimension of a concept class $\mathcal{C}$ (denoted as $\texttt{VCD}(\mathcal{C})$) is + the cardinality $d$ of the largest finite set $S$ which is shattered by $\mathcal{C}$. + In other words, $\texttt{VCD}(\mathcal{C}) = d$ if there exists a set $S$ such that $\vert S \vert = d$ + and it is shattered by $\mathcal{C}$. + + If $\mathcal{C}$ shatters arbitrarily big sets, then the VC dimension of $\mathcal{C}$ is $+\infty$. +\end{description} + + +\begin{example}[Intervals] + Let $X = \mathbb{R}$ and $\mathcal{C} = \{ c: X \rightarrow \{0, 1\} \}$. + Learning a concept $c \in \mathcal{C}$ consists of learning an interval that includes the reals labeled with $1$ and excludes the ones labeled with $0$. + + It holds that $\texttt{VCD}(\mathcal{C}) = 2$ as a set $S \subseteq \mathbb{R}$ such that $\vert S \vert = 2$ can always be shattered. + \begin{figure}[H] + \centering + \includegraphics[width=0.55\linewidth]{./img/_vc_interval_2.pdf} + \caption{Solutions for all the possible cases with $\vert S \vert = 2$} + \end{figure} + + A set $S$ such that $\vert S \vert = 3$ can never be shattered. + \begin{figure}[H] + \centering + \includegraphics[width=0.13\linewidth]{./img/_vc_interval_3.pdf} + \caption{Instance with $\vert S \vert = 3$ in which an interval cannot be found} + \end{figure} +\end{example} + +\begin{example}[Rectangles] + Let $X = \mathbb{R}^2$ and $\mathcal{C} = \{ c: X \rightarrow \{0, 1\} \}$. + Learning a concept $c \in \mathcal{C}$ consists of learning an axis-aligned rectangle that includes the points labeled with $1$ and excludes the ones labeled with $0$. + + It holds that $\texttt{VCD}(\mathcal{C}) = 4$ as it is possible to capture all the possible dichotomies for at least an $S$ such that $\vert S \vert = 4$. + \begin{figure}[H] + \centering + \includegraphics[width=0.15\linewidth]{./img/_vc_rectangle_4.pdf} + \caption{ + \parbox[t]{0.7\linewidth}{ + Case with $\vert S \vert = 4$ in which any subset of the points can be enclosed within a rectangle that includes only those points + } + } + \end{figure} + + For $\vert S \vert = 5$, there is at least an instance for any $S$ in which a rectangle is not possible. +\end{example} + + +\begin{theorem}[Sample complexity upper bound] \marginnote{Sample complexity upper bound} + Let $\mathcal{C}$ be a concept class with $\texttt{VCD}(\mathcal{C}) = d$ where $1 \leq d < +\infty$ and + $\mathcal{L}$ a consistent learner for $\mathcal{C}$. + Then, for every $0 < \varepsilon < \frac{1}{2}$ and $\delta \leq \frac{1}{2}$, + $\mathcal{L}$ is a PAC learning algorithm for $\mathcal{C}$ if it is provided with an amount $m$ of samples such that: + \[ m \geq k_0 \left( \frac{1}{\varepsilon} \log\left(\frac{1}{\delta}\right) + \frac{d}{\varepsilon}\log\left(\frac{1}{\varepsilon}\right) \right) \] + for some constant $k_0$. +\end{theorem} + +\begin{theorem}[Sample complexity lower bound] \marginnote{Sample complexity lower bound} + Let $\mathcal{C}$ be a concept class with $\texttt{VCD}(\mathcal{C}) \geq d$ where $d \geq 25$\footnote{ + This comes from the original proof that was done on neural networks. With a slightly modified argument, the theorem holds for $d \geq 2$. + }. + Then, every PAC learning algorithm for $\mathcal{C}$ requires an amount $m$ of samples such that: + \[ m \geq \max \left\{ \frac{d-1}{32\varepsilon}, \frac{1}{4\varepsilon}, \log\left(\frac{1}{4\delta}\right) \right\} \] + + \begin{remark} + Note that this value depends on the VC dimension $d$ which, in theory, + implies that it should be very difficult to learn neural networks with large \texttt{VCD} as it would require lots of data. + + In practice, it usually happens that the dataset has particular distributions or properties. + \end{remark} +\end{theorem} + + +% \lohead{} +% \lehead{} \ No newline at end of file