From 0031937a1991087c7c659803c51d7f392925c792 Mon Sep 17 00:00:00 2001 From: NotXia <35894453+NotXia@users.noreply.github.com> Date: Fri, 22 Sep 2023 16:42:08 +0200 Subject: [PATCH] Add SMM finite numbers --- .gitignore | 8 + .../img/_inherent_error.pdf | Bin 0 -> 29740 bytes .../img/floatingpoint_range.png | Bin 0 -> 10045 bytes .../img/inherent_error.drawio | 88 ++++++++ .../img/machine_eps.png | Bin 0 -> 5362 bytes .../main.tex | 51 +++++ .../sections/finite_numbers.tex | 201 ++++++++++++++++++ 7 files changed, 348 insertions(+) create mode 100644 .gitignore create mode 100644 statistical-and-mathematical-methods-for-ai/img/_inherent_error.pdf create mode 100644 statistical-and-mathematical-methods-for-ai/img/floatingpoint_range.png create mode 100644 statistical-and-mathematical-methods-for-ai/img/inherent_error.drawio create mode 100644 statistical-and-mathematical-methods-for-ai/img/machine_eps.png create mode 100644 statistical-and-mathematical-methods-for-ai/main.tex create mode 100644 statistical-and-mathematical-methods-for-ai/sections/finite_numbers.tex diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed96c40 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.synctex.gz +*.log +*.fls +*.fdb_latexmk +*.aux +*.toc +*.out +[!_]*.pdf \ No newline at end of file diff --git a/statistical-and-mathematical-methods-for-ai/img/_inherent_error.pdf b/statistical-and-mathematical-methods-for-ai/img/_inherent_error.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fd37381cb225456993e8e2e1eab59e92c05d3493 GIT binary patch literal 29740 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%0D?|luqs& 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 WIJr4|JtZ?2D<>N)8JVb@*na_%vj_nI literal 0 HcmV?d00001 diff --git a/statistical-and-mathematical-methods-for-ai/img/floatingpoint_range.png b/statistical-and-mathematical-methods-for-ai/img/floatingpoint_range.png new file mode 100644 index 0000000000000000000000000000000000000000..26a7c168fcdbd0098e147516db7eef988410f857 GIT binary patch literal 10045 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/statistical-and-mathematical-methods-for-ai/img/machine_eps.png b/statistical-and-mathematical-methods-for-ai/img/machine_eps.png new file mode 100644 index 0000000000000000000000000000000000000000..c97708482fd4892c8544e6672891df9ff88d19d7 GIT binary patch literal 5362 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 literal 0 HcmV?d00001 diff --git a/statistical-and-mathematical-methods-for-ai/main.tex b/statistical-and-mathematical-methods-for-ai/main.tex new file mode 100644 index 0000000..4b4874b --- /dev/null +++ b/statistical-and-mathematical-methods-for-ai/main.tex @@ -0,0 +1,51 @@ +\documentclass[11pt]{article} +\usepackage[margin=3cm]{geometry} +\usepackage{graphicx} +\usepackage{amsmath, amsfonts, amssymb, amsthm, mathtools} +\usepackage{hyperref} +\usepackage[nameinlink]{cleveref} +\usepackage[all]{hypcap} % Links hyperref to object top and not caption +\usepackage[inline]{enumitem} +\usepackage{marginnote} + +\title{Statistical and Mathematical Methods for Artificial Intelligence} +\date{2023 -- 2024} + +\hypersetup{ + colorlinks, + citecolor=black, + filecolor=black, + linkcolor=black, + urlcolor=black, + linktoc=all +} + +\setlist[description]{labelindent=\parindent} % Indents `description` + +\newtheorem{example}{Example}[section] + + +\begin{document} + + \makeatletter + \begin{titlepage} + \centering + \vspace*{\fill} + \huge + \textbf{\@title} + \vspace*{\fill} + + \Large + Academic Year \@date\\ + Alma Mater Studiorum $\cdot$ University of Bologna + \vspace*{1cm} + \end{titlepage} + \makeatother + \pagenumbering{roman} + \tableofcontents + \newpage + \pagenumbering{arabic} + + \input{sections/finite_numbers.tex} + +\end{document} \ No newline at end of file diff --git a/statistical-and-mathematical-methods-for-ai/sections/finite_numbers.tex b/statistical-and-mathematical-methods-for-ai/sections/finite_numbers.tex new file mode 100644 index 0000000..cc88224 --- /dev/null +++ b/statistical-and-mathematical-methods-for-ai/sections/finite_numbers.tex @@ -0,0 +1,201 @@ +\section{Finite numbers} + + + +\subsection{Sources of error} + +\begin{description} + \item[Measure error] + Precision of the measurement instrument. + + \item[Arithmetic error] + Propagation of rounding errors in each step of an algorithm. + + \item[Truncation error] + Approximating an infinite procedure into a finite number of iterations. + + \item[Inherent error] + Caused by the finite representation of the data (floating-point). + \begin{figure}[h] + \centering + \includegraphics[width=0.6\textwidth]{img/_inherent_error.pdf} + \caption{Inherent error visualization} + \end{figure} +\end{description} + + + +\subsection{Error measurement} + +Let $x$ be a value and $\hat{x}$ its approximation. Then: +\begin{description} + \item[Absolute error] + \begin{equation} + E_{a} = \hat{x} - x + \end{equation} + Note that, out of context, the absolute error is meaningless. + \item[Relative error] + \begin{equation} + E_{a} = \frac{\hat{x} - x}{x} + \end{equation} +\end{description} + + + +\subsection{Representation in base \texorpdfstring{$\beta$}{B}} + +Let $\beta \in \mathbb{N}_{> 1}$ be the base. +Each $x \in \mathbb{R} \smallsetminus \{0\}$ can be uniquely represented as: +\begin{equation} \label{eq:finnum_b_representation} + x = \texttt{sign}(x) \cdot (d_1\beta^{-1} + d_2\beta^{-2} + \dots d_n\beta^{-n})\beta^p +\end{equation} +where: +\begin{itemize} + \item $0 \leq d_i \leq \beta-1$ + \item $d_1 \neq 0$ + \item starting from an index $i$, not all $d_j$ ($j \geq i$) are equal to $\beta-1$ +\end{itemize} +% +\Cref{eq:finnum_b_representation} can be represented using the normalized scientific notation as: +\begin{equation} + x = \pm (0.d_1d_2\dots) \beta^p +\end{equation} +where $0.d_1d_2\dots$ is the \textbf{mantissa} and $\beta^p$ the \textbf{exponent}. + + + +\subsection{Floating-point} + +A floating-point system $\mathcal{F}(\beta, t, L, U)$ is defined by the parameters: +\begin{itemize} + \item $\beta$: base + \item $t$: precision (number of digits in the mantissa) + \item $[L, U]$: range of the exponent +\end{itemize} +% +Each $x \in \mathcal{F}(\beta, t, L, U)$ can be represented in its normalized form: +\begin{eqnarray} + x = \pm (0.d_1d_2 \dots d_t) \beta^p & L \leq p \leq U +\end{eqnarray} +\begin{example} + In $\mathcal{F}(10, 5, -3, 3)$, $x=12.\bar{3}$ is represented as: + \begin{equation*} + \texttt{fl}(x) = + 0.12333 \cdot 10^2 + \end{equation*} +\end{example} + + +\subsubsection{Numbers distribution} +Given a floating-point system $\mathcal{F}(\beta, t, L, U)$, the total amount of representable numbers is: +\begin{equation*} + 2(\beta-1) \beta^{t-1} (U-L+1)+1 +\end{equation*} +% +Representable numbers are more sparse towards the exponent upper bound and more dense towards the lower bound. +It must be noted that there is an underflow area around 0. +\begin{figure}[h] + \centering + \includegraphics[width=0.8\textwidth]{img/floatingpoint_range.png} + \caption{Floating-point numbers in $\mathcal{F}(2, 3, -1, 2)$} +\end{figure} + + +\subsubsection{Numbers representation} +Given a floating-point system $\mathcal{F}(\beta, t, L, U)$, the representation of $x \in \mathbb{R}$ can result in: +\begin{description} + \item[Exact representation] + if $p \in [L, U]$ and $d_i=0$ for $i>t$. + + \item[Approximation] + if $p \in [L, U]$ but $d_i$ may not be 0 for $i>t$. + In this case, the representation is obtained by truncating or rounding the value. + + \item[Underflow] + if $p < L$. In this case, the values is approximated as 0. + + \item[Overflow] + if $p > U$. In this case, an exception is usually raised. +\end{description} + + +\subsubsection{Machine precision} +Machine precision $\varepsilon_{\text{mach}}$ determines the accuracy of a floating-point system. +Depending on the approximation approach, machine precision can be computes as: +\begin{description} + \item[Truncation] $\varepsilon_{\text{mach}} = \beta^{1-t}$ + \item[Rounding] $\varepsilon_{\text{mach}} = \frac{1}{2}\beta^{1-t}$ +\end{description} +Therefore, rounding results in more accurate representations. + +$\varepsilon_{\text{mach}}$ is the smallest distance among the representable numbers (\Cref{fig:finnum_eps}). +\begin{figure}[h] + \centering + \includegraphics[width=0.2\textwidth]{img/machine_eps.png} + \caption{Visualization of $\varepsilon_{\text{mach}}$ in $\mathcal{F}(2, 3, -1, 2)$} + \label{fig:finnum_eps} +\end{figure}\\ +% +In alternative, $\varepsilon_{\text{mach}}$ can be defined as the smallest representable number such that: +\begin{equation*} + \texttt{fl}(1 + \varepsilon_{\text{mach}}) > 1. +\end{equation*} + + +\subsubsection{IEEE standard} +IEEE 754 defines two floating-point formats: +\begin{description} + \item[Single precision] Stored in 32 bits. Represents the system $\mathcal{F}(2, 24, -128, 127)$. + \begin{center} + \small + \begin{tabular}{|c|c|c|} + \hline + 1 (sign) & 8 (exponent) & 23 (mantissa) \\ + \hline + \end{tabular} + \end{center} + + \item[Double precision] Stored in 64 bits. Represents the system $\mathcal{F}(2, 53, -1024, 1023)$. + \begin{center} + \small + \begin{tabular}{|c|c|c|} + \hline + 1 (sign) & 11 (exponent) & 52 (mantissa) \\ + \hline + \end{tabular} + \end{center} +\end{description} +As the first digit of the mantissa is always 1, it does not need to be stored. +Moreover, special configurations are reserved to represent \texttt{Inf} and \texttt{NaN}. + + +\subsubsection{Floating-point arithmetic} +Let: +\begin{itemize} + \item $+: \mathbb{R} \times \mathbb{R} \rightarrow \mathbb{R}$ be a real numbers operation. + \item $\oplus: \mathcal{F} \times \mathcal{F} \rightarrow \mathcal{F}$ be the corresponding operation in a floating-point system. +\end{itemize} +% +To compute $x \oplus y$, a machine: +\begin{enumerate} + \item Calculates $x + y$ in a high precision register (still approximated, but more precise than the storing system) + \item Stores the result as $\texttt{fl}(x + y)$ +\end{enumerate} + +A floating-point operation causes a small rounding error: +\begin{equation} + \left\Vert \frac{(x \oplus y) - (x + y)}{x+y} \right\Vert < \varepsilon_{\text{mach}} +\end{equation} +% +Although, some operations may be subject to the \textbf{cancellation} problem which causes information loss. +\begin{example} + Given $x = 1$ and $y = 1 \cdot 10^{-16}$, we want to compute $x + y$ in $\mathcal{F}(10, 16, U, L)$.\\ + \begin{equation*} + \begin{split} + z & = \texttt{fl}(x) + \texttt{fl}(y) \\ + & = 0.1 \cdot 10^1 + 0.1 \cdot 10^{-15} \\ + & = (0.1 + 0.\overbrace{0\dots0}^{\mathclap{16\text{ zeros}}}1) \cdot 10^1 \\ + & = 0.1\overbrace{0\dots0}^{\mathclap{15\text{ zeros}}}1 \cdot 10^1 + \end{split} + \end{equation*} + Then, we have that $\texttt{fl}(z) = 0.1\overbrace{0\dots0}^{\mathclap{15\text{ zeros}}} \cdot 10^1 = 1 = x$. +\end{example} \ No newline at end of file