1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-25 09:24:21 +00:00
triennale-appunti-steffo/pages/year4/machinelearning/teoria.tsx

212 lines
8.7 KiB
TypeScript
Raw Normal View History

2022-09-30 01:17:30 +00:00
import {Heading, Chapter, Box, ListUnordered, BringAttention as B, Idiomatic as I, UAnnotation as U, Parenthesis, Quote} from "@steffo/bluelib-react"
2022-09-28 10:58:58 +00:00
import type { NextPage, NextPageContext } from 'next'
import { Link } from '../../../components/link'
import 'katex/dist/katex.min.css';
import TeX from "@matejmazur/react-katex"
const r = String.raw
const X = () => <TeX math={r`\mathbb{X}`}/>
const Y = () => <TeX math={r`\mathbb{Y}`}/>
export async function getStaticProps(_context: NextPageContext) {
return {
props: {}
}
}
const Page: NextPage = () => {
return <>
<Heading level={2}>
<Link href="/year4/machinelearning">
Machine learning
</Link>
</Heading>
<Chapter>
2022-09-30 01:17:30 +00:00
<Heading level={2}>
Apprendimento
2022-09-28 10:58:58 +00:00
</Heading>
2022-09-29 21:37:20 +00:00
<Box>
2022-09-28 10:58:58 +00:00
<Heading level={3}>
Machine learning
</Heading>
<p>
2022-09-29 21:37:20 +00:00
L&apos;obiettivo del <i>machine learning</i> è quello di costruire un <B>modello matematico</B> in grado di associare tutti i valori di uno spazio di input <X/> a quelli di un altro spazio di output <Y/>.
2022-09-28 10:58:58 +00:00
</p>
<p>
<TeX block math={r`F: \mathbb{X} → \mathbb{Y}`}/>
</p>
<p>
2022-09-29 21:37:20 +00:00
Per costruire il modello, usano <B>insiemi di associazioni</B> tra un <B>vettore di input</B> <TeX math={r`\mathbf{x} \in \mathbb{X}`}/> e un <B>risultato di output</B> <TeX math={r`y \in \mathbb{Y}`}/>:
2022-09-28 10:58:58 +00:00
</p>
<p>
2022-09-29 21:37:20 +00:00
<TeX block math={r`D = { ( \mathbf{x}_i, y_i ), i = 1, \dots, N, \mathbf{x}_i \in {X}, y_i \in {Y} }`}/>
2022-09-28 10:58:58 +00:00
</p>
2022-09-29 21:37:20 +00:00
<Chapter>
<Box>
<Heading level={3}>
2022-09-30 01:17:30 +00:00
Training set
2022-09-29 21:37:20 +00:00
</Heading>
<p>
2022-09-30 01:17:30 +00:00
Insieme di associazioni su cui ci si basa per <B>creare</B> il modello matematico.
2022-09-29 21:37:20 +00:00
</p>
2022-09-30 01:17:30 +00:00
<Parenthesis>
Il codice di programmazione del modello!
</Parenthesis>
2022-09-29 21:37:20 +00:00
</Box>
<Box>
<Heading level={3}>
2022-09-30 01:17:30 +00:00
Validation set
2022-09-29 21:37:20 +00:00
</Heading>
<p>
2022-09-30 01:17:30 +00:00
Insieme di associazioni usate per <B>verificare</B> che il modello matematico sia <I>valido</I>.
2022-09-29 21:37:20 +00:00
</p>
2022-09-30 01:17:30 +00:00
<Parenthesis>
La Continuous Integration del modello!
</Parenthesis>
</Box>
<Box>
<Heading level={3}>
Testing set
</Heading>
2022-09-29 21:37:20 +00:00
<p>
2022-09-30 01:17:30 +00:00
Insieme di associazioni usate per <B>determinare l&apos;efficacia</B> del modello matematico.
2022-09-29 21:37:20 +00:00
</p>
2022-09-30 01:17:30 +00:00
<Parenthesis>
Il benchmark del modello!
</Parenthesis>
2022-09-29 21:37:20 +00:00
</Box>
</Chapter>
2022-09-28 10:58:58 +00:00
</Box>
</Chapter>
<Chapter>
2022-09-30 01:17:30 +00:00
<Box>
<Heading level={3}>
Supervised learning
</Heading>
<p>
Quando <U builtinColor={"lime"}>si è a conoscenza</U> del dominio dello spazio di output <Y/>, il machine learning è detto <I>supervised learning</I>.
</p>
<p>
In particolare, i problemi risolti in questo caso sono detti:
</p>
<ListUnordered>
<ListUnordered.Item>
<I>Problemi di <B>binary classification</B></I> se <TeX math={r`\mathbb{Y} = \{ +1, -1 \}`}/>
</ListUnordered.Item>
<ListUnordered.Item>
<I>Problemi di <B>multi-class classification</B></I> se <TeX math={r`\mathbb{Y} = \{ 0, 1, \dots, n \}`}/>
</ListUnordered.Item>
<ListUnordered.Item>
<I>Problemi di <B>regression</B></I> se <TeX math={r`\mathbb{Y} = \{ 0, 1, \dots, n \}`}/>
</ListUnordered.Item>
</ListUnordered>
</Box>
<Box>
<Heading level={3}>
Unsupervised learning
</Heading>
<p>
Quando <U builtinColor={"red"}>non si è a conoscenza</U> del dominio dello spazio di output <Y/>, il machine learning è detto <I>supervised learning</I>.
</p>
<p>
In particolare, i problemi risolti in questo caso sono detti:
</p>
<ListUnordered>
<ListUnordered.Item>
<I>Problemi di <B>novelty detection</B></I> se si cerca di capire se qualcosa è simile o nuovo rispetto agli elementi precedenti
</ListUnordered.Item>
<ListUnordered.Item>
<I>Problemi di <B>clustering</B></I> se si cerca di trovare gruppi a cui potrebbero appartenere gli elementi
</ListUnordered.Item>
</ListUnordered>
</Box>
</Chapter>
<Chapter>
<Heading level={2}>
Ottimizzazione
</Heading>
<Box>
2022-09-28 10:58:58 +00:00
<Heading level={3}>
Come un problema di ottimizzazione
</Heading>
<p>
2022-09-30 01:17:30 +00:00
Possiamo astrarre il machine learning come il seguente problema di ottimizzazione:
2022-09-28 10:58:58 +00:00
</p>
<p>
2022-09-30 01:17:30 +00:00
<TeX block math={r`\min_{f \in \mathcal{H}} \left( \quad \sum_{i=1}^N \hspace{0.5em} V(y_i, f(x_i)) \quad + \quad \lambda \| f \|^2 \quad \right)`}/>
2022-09-28 10:58:58 +00:00
</p>
2022-09-30 01:17:30 +00:00
<Parenthesis>
<Quote>Trova la <B>funzione</B> che minimizza gli <B>errori sul training set</B> e la <B>complessità della funzione</B>, dando opzionalmente <B>priorità</B> a uno dei due addendi.</Quote>
</Parenthesis>
</Box>
</Chapter>
<Chapter>
<Box>
<Heading level={3}>
Hypothesis space
</Heading>
<p>
<TeX block math={r`\mathcal{H}`}/>
</p>
<p>
<I>Spazio</I> delle <B>funzioni adatte</B> a descrivere la relazione tra input e output.
</p>
</Box>
<Box>
<Heading level={3}>
Loss function
</Heading>
<p>
<TeX block math={r`\sum_{i=1}^N \hspace{0.5em} V(y_i, f(x_i))`}/>
</p>
<p>
Funzione <u>predeterminata</u> che <B>determina l&apos;errore</B> del modello su un elemento del training set.
</p>
</Box>
<Box>
<Heading level={3}>
Complessità della funzione
</Heading>
<p>
<TeX block math={r`\| f \|^2`}/>
</p>
<Parenthesis todo>
Non ancora spiegato.
</Parenthesis>
<Parenthesis todo>
È la <I>norma a infinito al quadrato</I> o la <I>norma quadratica</I>?
</Parenthesis>
</Box>
<Box>
<Heading level={3}>
Priorità
</Heading>
<p>
<TeX block math={r`\lambda`}/>
</p>
<p>
Parametro moltiplicativo <U>predeterminato</U> che permette di selezionare quanta <B>importanza</B> dare agli errori sul training set rispetto alla complessità del modello.
</p>
<Parenthesis>
<p>
Se <U>minore</U> di 1, prioritizza gli errori.<br/>
</p>
<p>
Se <U>maggiore</U> di 1, prioritizza la semplicità.
</p>
</Parenthesis>
<Parenthesis>
<p>
Se troppo <U>basso</U>, il modello commette <B>overfitting</B>.
</p>
<p>
Se troppo <U>alto</U>, il modello <B>perde accuratezza</B>.
</p>
</Parenthesis>
2022-09-28 10:58:58 +00:00
</Box>
</Chapter>
</>
}
export default Page