Qual è la differenza fondamentale tra un modello ML e una funzione?
Un modello può essere definito approssimativamente come qualsiasi progetto in grado di risolvere un'attività ML. Esempi di modelli sono la rete neurale, l'albero decisionale, la rete di Markov, ecc.
Una funzione può essere definita come un insieme di coppie ordinate con proprietà uno-a-molti dal dominio al co-dominio / intervallo.
Qual è la differenza fondamentale tra loro in termini formali?
Risposte
Anche se questo potrebbe non essere applicabile a tutti i casi, mi piace pensare a un modello come a un insieme di funzioni, quindi ecco la differenza.
Perché questa definizione è utile? Se pensi a una rete neurale con un vettore di parametri$\theta \in \mathbb{R}^m$come modello, quindi una specifica combinazione di questi parametri rappresenta una funzione specifica. Ad esempio, supponiamo di avere una rete neurale con 2 ingressi, 1 neurone nascosto (con una funzione di attivazione ReLU, indicata come$\phi$, che segue una combinazione lineare degli input) e 1 neurone di output (con una funzione di attivazione del sigmoide, $\sigma$). Gli ingressi sono collegati all'unica unità nascosta e queste connessioni hanno un peso reale. Se ignoriamo i pregiudizi, ci sono 3 parametri, che possono essere raggruppati nel vettore del parametro$\theta = [\theta_1, \theta_2, \theta_3] \in \mathbb{R}^3 $. La funzione arbitraria rappresentata da questa rete neurale può essere definita come segue
$$ f(x_1, x_2) = \sigma (\theta_3 \phi(x_1 \theta_1 + x_2 \theta_2)) \tag{1}\label{1}, $$
In questo caso, l'equazione \ ref {1} rappresenta il modello, dato lo spazio dei parametri $\Theta = \mathbb{R}^3$. Per qualsiasi valore specifico che$\theta_1, \theta_2,$ e $\theta_3$ può assumere, abbiamo una funzione specifica (deterministica) $f: \mathbb{R} \rightarrow [0, 1]$.
Per esempio, $\theta = [0.2, 10, 0.4]$ rappresenta una funzione specifica, vale a dire
$$ f(x_1, x_2) = \sigma (0.4 \phi(x_1 0.2 + x_2 10.0)) $$Puoi tracciare questa funzione (con Matplotlib) per alcuni valori degli input per vedere come appare. Notare che$x_1$ e $x_2$ può essere arbitrario (perché quelli sono solo gli input, che ho assunto essere numeri reali).
Questa interpretazione di un modello è coerente con la definizione di una classe di ipotesi (o spazio) nella teoria dell'apprendimento computazionale, che è essenzialmente un insieme di funzioni . Questa interpretazione è anche coerente con i teoremi di approssimazione universale per le reti neurali , che affermano che è possibile trovare un insieme specifico di parametri tale da poter calcolare approssimativamente una determinata funzione in modo arbitrario, dato che alcune condizioni sono soddisfatte. Questa interpretazione può essere applicata anche ad alberi decisionali, HMM, RNN e tutti questi modelli ML.
Il termine modello è talvolta utilizzato anche per riferirsi a una distribuzione di probabilità, ad esempio, nel contesto dell'apprendimento per rinforzo, dove $p(s', r \mid s, a)$ è una distribuzione di probabilità sullo stato successivo $s'$ e ricompensa $r$ dato lo stato attuale $s$ e azione $a$ preso in quello stato $s$. Controlla questa domanda per maggiori dettagli. Una distribuzione di probabilità potrebbe anche essere pensata come un insieme (possibilmente infinitamente grande) di funzioni, ma non è solo un insieme di funzioni, perché puoi anche campionare da una distribuzione di probabilità (cioè c'è una certa stocasticità associata a una distribuzione di probabilità). Quindi, una distribuzione di probabilità può essere considerata un modello statistico o può essere utilizzata per rappresentarla. Controlla questa risposta .
Qualsiasi modello può essere considerato una funzione. Il termine "modello" denota semplicemente una funzione utilizzata in un modo particolare, vale a dire per approssimare qualche altra funzione di interesse.
In termini semplici, un modello di rete neurale è un approssimatore di funzione che cerca di adattare la curva della funzione di ipotesi. Una funzione stessa ha un'equazione che genererà una curva fissa:

Se abbiamo l'equazione (cioè la funzione), non abbiamo bisogno della rete neurale per i suoi dati di input. Tuttavia, quando abbiamo solo qualche nozione della sua curva (o dei dati di input e output) cerchiamo un approssimatore di funzione, in modo che per dati di input nuovi e invisibili, possiamo generare l'output.
L'addestramento di questa rete neurale significa avvicinarsi quanto più possibile all'originale (funzione sconosciuta).
Ogni modello è una funzione. Non tutte le funzioni sono un modello.
Una funzione mappa in modo univoco gli elementi di un insieme su elementi di un altro insieme, possibilmente lo stesso insieme.
Ogni modello di intelligenza artificiale è una funzione perché sono implementati come programmi per computer e ogni programma per computer è una funzione che mappa in modo univoco la combinazione della sequenza di bit in memoria e di archiviazione all'avvio del programma, più gli input, alla sequenza di bit in memoria e archiviazione , più output, al termine del programma.
Tuttavia, un "modello" è in modo molto specifico una rappresentazione di qualcosa. Prendi la curva logistica:
$$ f(x) = \frac{L}{1 + e^{k(x-x_{0})} } $$
Dati valori reali arbitrari per $L$, $k$, e $x_{0}$, questa è una funzione. Tuttavia, dati valori molto più specifici appresi dai dati, può essere un modello di crescita della popolazione.
Allo stesso modo, una rete neurale con pesi inizializzati a tutti zeri è una funzione, ma una funzione molto poco interessante con il codominio piuttosto limitato $\{0\}$. Tuttavia, se poi addestri la rete alimentandola con un mucchio di dati fino a quando i pesi convergono per fornire previsioni o azioni corrispondenti all'incirca a qualche processo di generazione del mondo reale, ora hai un modello di quel processo di generazione.