vault backup: 2024-10-29 13:19:12

This commit is contained in:
Marco Realacci 2024-10-29 13:19:12 +01:00
parent 27da6659b0
commit 2f23ac3314
14 changed files with 15990 additions and 60 deletions

View file

@ -4,5 +4,6 @@
"obsidian-git",
"mathlive-in-editor-mode",
"smart-second-brain",
"local-gpt"
"local-gpt",
"obsidian-latex-suite"
]

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,11 @@
{
"id": "obsidian-latex-suite",
"name": "Latex Suite",
"version": "1.9.7",
"minAppVersion": "1.0.0",
"description": "Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements",
"author": "artisticat",
"authorUrl": "https://github.com/artisticat1",
"fundingUrl": "https://ko-fi.com/artisticat",
"isDesktopOnly": false
}

View file

@ -0,0 +1,235 @@
/* Settings panel */
.setting-item.hidden {
display: none;
}
.setting-item.setting-item-heading .latex-suite-settings-icon {
margin-right: var(--size-4-2);
display: inline-flex;
}
.setting-item.setting-item-heading:has(.latex-suite-settings-icon) {
border-bottom: 1px solid var(--background-modifier-border);
}
.setting-item.setting-item-heading:has(.latex-suite-settings-icon) + .setting-item {
border-top: none;
}
.setting-item.setting-item-heading:has(.latex-suite-settings-icon) ~ .setting-item:not(.setting-item-heading), .latex-suite-snippet-variables-setting + .setting-item-control {
width: calc(100% - 26px);
margin-left: 26px;
}
.latex-suite-snippet-variables-setting .setting-item-control {
height: 120px;
}
.latex-suite-snippet-variables-setting .setting-item-control textarea {
width: 100%;
height: 100%;
}
.snippets-text-area, .latex-suite-snippet-variables-setting {
display: inline-block;
}
.snippets-text-area .setting-item-info, .latex-suite-snippet-variables-setting .setting-item-info {
margin-bottom: 0.75rem;
}
.snippets-text-area .setting-item-control {
flex-direction: column;
align-items: flex-end;
}
.snippets-editor-wrapper {
width: 100%;
margin-bottom: 0.75rem;
}
.snippets-editor-wrapper .cm-editor {
border: 1px solid var(--background-modifier-border);
border-radius: 4px;
font-size: var(--font-inputs);
height: 20em;
outline: none !important;
text-align: left;
}
.snippets-editor-wrapper .cm-line, .snippets-editor-wrapper .cm-lineNumbers {
font-family: var(--font-monospace);
}
.snippets-footer {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
}
.snippets-editor-validity {
display: flex;
align-items: center;
}
.snippets-editor-validity-indicator {
color: white;
display: inline-block;
border-radius: 1em;
margin-right: 10px;
cursor: default;
visibility: hidden;
}
.snippets-editor-validity-indicator svg {
width: 16px !important;
height: 16px !important;
}
.snippets-editor-validity-indicator:hover {
color: white;
}
.snippets-editor-validity-indicator.valid {
background-color: var(--color-green);
visibility: visible;
}
.snippets-editor-validity-indicator.invalid {
background-color: var(--color-red);
visibility: visible;
}
.snippets-editor-buttons {
display: flex;
flex-direction: row;
}
.latex-suite-confirmation-modal .setting-item {
border: none;
}
.search-input-container input.latex-suite-location-input-el {
width: initial;
}
/*
Snippet color classes.
*/
/* These extra selectors enforce their color on all children, because CodeMirror does weird nesting of spans when
nesting multiple decorations. */
.latex-suite-snippet-placeholder {
border-radius: 2px;
background-color: var(--placeholder-bg);
outline: var(--placeholder-outline) solid 1px;
}
.latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span {
--placeholder-bg: #87cefa2e;
--placeholder-outline: #87cefa6e;
}
.theme-dark .latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span {
--placeholder-outline: #87cefa43;
}
.latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span {
--placeholder-bg: #ffa50033;
--placeholder-outline: #ffa5006b;
}
.theme-dark .latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span {
--placeholder-outline: #ffa5004d;
}
.latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span {
--placeholder-bg: #00ff0022;
--placeholder-outline: #00ff0060;
}
.theme-dark .latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span {
--placeholder-outline: #00ff003d;
}
/* Conceal */
span.cm-math.cm-concealed-bold {
font-weight: bold;
}
span.cm-math.cm-concealed-underline {
text-decoration: underline;
}
span.cm-math.cm-concealed-mathrm, sub.cm-math.cm-concealed-mathrm {
font-style: normal;
}
/* Conceal superscripts without changing line height */
sup.cm-math {
line-height: 0;
}
sup.cm-math, sub.cm-math {
font-style: italic;
}
/* Inline math tooltip styling */
.theme-light .cm-tooltip.cm-tooltip-cursor {
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.028), 0px 3.4px 6.7px rgba(0, 0, 0, .042), 0px 5px 20px rgba(0, 0, 0, .07);
}
.theme-dark .cm-tooltip.cm-tooltip-cursor {
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1),
0px 3.4px 6.7px rgba(0, 0, 0, 0.15),
0px 0px 30px rgba(0, 0, 0, 0.27);
}
/* Highlight brackets */
.theme-light .latex-suite-highlighted-bracket, .theme-light .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] {
background-color: hsl(var(--accent-h), var(--accent-s), 40%, 0.3);
}
.theme-dark .latex-suite-highlighted-bracket, .theme-dark .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] {
background-color: hsl(var(--accent-h), var(--accent-s), 70%, 0.6);
}
/* Color matching brackets */
.theme-light .latex-suite-color-bracket-0, .theme-light .latex-suite-color-bracket-0 .cm-bracket {
color: #527aff;
}
.theme-dark .latex-suite-color-bracket-0, .theme-dark .latex-suite-color-bracket-0 .cm-bracket {
color: #47b8ff;
}
.theme-light .latex-suite-color-bracket-1, .theme-light .latex-suite-color-bracket-1 .cm-bracket {
color: #ff50b7;
}
.theme-dark .latex-suite-color-bracket-1, .theme-dark .latex-suite-color-bracket-1 .cm-bracket {
color: #ff55cd;
}
.theme-light .latex-suite-color-bracket-2, .theme-light .latex-suite-color-bracket-2 .cm-bracket {
color: #69ba00;
}
.theme-dark .latex-suite-color-bracket-2, .theme-dark .latex-suite-color-bracket-2 .cm-bracket {
color: #73ff63;
}
/* .latex-suite-color-bracket-3 {
color: #8de15c;
} */

View file

@ -13,12 +13,12 @@
"state": {
"type": "markdown",
"state": {
"file": "Foundation of data science/notes/1 CV Basics.md",
"file": "Foundation of data science/notes/2 Logistic Regression.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "1 CV Basics"
"title": "2 Logistic Regression"
}
}
]
@ -190,28 +190,28 @@
"smart-second-brain:Open S2B Chat": false
}
},
"active": "0d5325c0f9289cea",
"active": "5af0211cef5316b5",
"lastOpenFiles": [
"Foundation of data science/images/Pasted image 20241029123613.png",
"Foundation of data science/notes/2 Logistic Regression.md",
"Foundation of data science/images/Pasted image 20241029130844.png",
"Foundation of data science/notes/3 Multi Class Binary Classification.md",
"Foundation of data science/images/Pasted image 20241029125726.png",
"Foundation of data science/images/Pasted image 20241029122255.png",
"Chats/New Chat.md",
"Foundation of data science/notes/1 CV Basics.md",
"conflict-files-obsidian-git.md",
"Foundation of data science/notes/Logistic Regression.md",
"Foundation of data science/notes/Logistic Regression for C > 1.md",
"Foundation of data science/images/Pasted image 20241025165411.png",
"Foundation of data science/images/Pasted image 20241025165317.png",
"Foundation of data science/images/Pasted image 20241025165130.png",
"Foundation of data science/images/Pasted image 20241025163314.png",
"Foundation of data science/images/Pasted image 20241025163040.png",
"Foundation of data science/images/Pasted image 20241025162426.png",
"Foundation of data science/images/Pasted image 20241025162234.png",
"Foundation of data science/images/Pasted image 20241025162152.png",
"Foundation of data science/images/Pasted image 20241025161824.png",
"Foundation of data science/images",
"Autonomous Networking/slides/AutonomousNet-Class11-2122-Performance_of_action_selection_methods_UCB.pdf",
"Autonomous Networking/notes/q&a.md",
"Autonomous Networking/notes/8.md",
"Autonomous Networking/images/Pasted image 20241025092935.png",
"Autonomous Networking/notes/5 Drones.md",
"Chats/New Chat.md",
"Chats",
"Autonomous Networking/slides/5 Drones.pdf",
"Autonomous Networking/slides/6 IoT.pdf",

View file

@ -24,3 +24,22 @@ If you'd like to know more about UAVs, feel free to ask!
(Note: I couldn't find any specific notes on UAVs in your existing knowledge, so I've provided general information. If you have any additional notes or details, please let me know!)
- - - - -
User
latex absolute value
- - - - -
Assistant
It seems that there is no relevant information about "latex absolute value" in your existing knowledge. However, based on my understanding of LaTeX, I can provide you with a brief explanation.
**Absolute Value in LaTeX**
In LaTeX, the absolute value of an expression is denoted by the `\lvert` command for left absolute value and `\rvert` command for right absolute value. The `|` symbol can also be used to represent absolute value.
For example:
* `\lvert x \rvert` represents the absolute value of `x`
* `|x|` is an alternative way to represent absolute value
If you need more information or have specific questions about LaTeX, feel free to ask!
(Note: I've assumed that your knowledge on LaTeX is limited, so I've provided basic information. If you have any additional notes or details, please let me know!)
- - - - -

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -51,4 +51,21 @@ Poi aggiorniamo il valore così:
il parametro $\eta$ indica il rate di apprendimento, come nel gradiant descend della linear regression. Lo scegliamo noi, se è troppo grande l'algoritmo non convergerà mai, se è troppo piccolo ci metterà un fottio, ma sarà più preciso.
#### Newton's method
Un altro metodo è quello di Newton, che è pure migliore. Però ora devo andare alla maker faire quindi ne parliamo settimana prossima, ciao.
Un altro metodo è quello di Newton, che è pure migliore.
Il nostro obiettivo è quello di massimizzare la LL(Θ), per cui vogliamo che LL'(Θ) = 0, dove LL' è la derivata, dal momento che LL è una funzione concava.
Generalmente, col metodo di Newton vogliamo trovare i valori Θ a partire da un'inizializzazione randomica di questi.
Per far ciò, "seguiamo la derivata" (guarda il grafico per capire), fino ad arrivare molto vicini allo 0.
![[Pasted image 20241029130844.png]]
Possiamo definire la derivata come: $$f'(\theta^0)=\frac{f(\theta^0)}{∆}$$
Aggiorniamo $\theta$ come segue: $$\theta^1 = \theta^0 - ∆$$con $$∆ = \frac{f(\theta^0)}{f'(\theta^0)}$$
In generale:
$$\theta^{t+1} = \theta^{t} - \frac{f(\theta^0)}{f'(\theta^0)}$$
Ora tutto ciò lo applichiamo alla LL (log likelihood):
$$\theta^{t+1} = \theta^{t} - \frac{LL'(\theta^0)}{LL''(\theta^0)}$$
fidatevi, funziona.
Se $\theta$ è un vettore, possiamo anche scriverlo così: $$\theta^{t+1} = \theta^{t} - \frac{\nabla_{\theta}LL}{H}$$
con H matrice definita come segue: $$H_{i,j}=\frac{\partial^2 LL}{\partial \Theta_i \partial \Theta_j}
$$

View file

@ -0,0 +1,112 @@
Ovviamente non possiamo usare la sigmoide, ci serve qualcos'altro.
Possiamo usare la SoftMax, che è definita così:
$$\text{softmax}(z_i) =\frac{ e^{z_i}}{\sum_{j=1}^{n}e^{z_{j}}}
$$
Per cui otteniamo:
$$f_{\theta}(x_i)=softmax(\theta^Tx_i)$$
$\theta^Tx_i$ corrisponde al logit, o score.
- $x_i$ è un vettore di dimensione $[d*1]$ che rappresenta le features del sample $i$
- può anche essere una feature sola ovviamente, ma possono essere 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26...
- $\theta$ è la matrice dei parametri (pesi) di dimensione $[c*d]$
- con due classi era un vettore perché in quel caso consideravamo solamente la probabilità di cadere nella classe 1. Stavolta invece consideriamo la probabilità di cadere in ogni singola classe. Per cui abbiamo un vettore di pesi diverso per ogni classe, con come sempre, un peso per ogni feature.
- negli esempi di seguito, per semplicità avremo sempre d = 1
Esempio stupido che mi sono inventato ora: i sample sono case e le feature sono dimensione e numero di piani, le classi da predire sono: appartamento, villa in campagna, villetta in città
(da questo momento in poi $x$ e $x_i$ potrebbero venire interscambiati a cazzo, comunque sia ci si riferisce a un sample)
Definiamo
- $f(x)$: codifica la distribuzione di probabilità su tutte le classi
- $f(x)_i$: rappresenta la probabilità per la singola classe i
- con probabilità $f(x)_i$, ci si trova nella classe i
La probabilità di cadere in una certa classe (probabilità che la classe reale sia $y_i$ dato l'output del modello di predizione) la definiamo in modo simile alla volta scorsa. Ma dobbiamo chiaramente considerare che le classi non sono 2. Sia $c$ il numero di classi, otteniamo:
$$P(y \mid f(x))= \prod_{i=1}^c[f(x)_i]^{y_i}$$
Y è un vettore cosiddetto "one-hot", ovvero solo uno degli elementi vale 1 e tutti gli altri 0.
Possiamo togliere la produttoria e considerare solo uno degli elementi: quello per cui $y_i$ vale 1. Otteniamo così: $$P(y_i \mid f(x_i))= f(x_i)_y$$
Definiamo ora in modo analogo la Likelihood:
$$L = \prod_{i=1}^{n} P(y_i \mid f(x_i))$$
(come scritto qualche riga sopra, $P(y_i \mid f(x_i))$ è la probabilità che il valore reale sia $y_i$ dato il valore predetto con il sample $x_i$)
Come sempre, la Likelihood può essere difficile da calcolare, è molto più facile calcolare il logaritmo di essa, per cui lo definiamo:
$$log(L)=LL=\sum_{i=0}^nlog(P(y_i \mid f(x_i)))=\sum_{i=0}^nlog(f(x^i)_{y_i})$$
(con n = numero di sample)
Analogamente, definiamo la NLL (Negative Log Likelihood) aggiungendo il $-$ davanti:
$$NLL = -\sum_{i=0}^nf(x^i)_{y_i}=-\sum_{i=0}^n\sum_{j=0}^clog(f(x^i)_j)$$
Questa viene anche detta Cross Entropy (CE)
Definiamo un esempio:
classi
- gatto [1, 0, 0]
- cane [0, 1, 0]
- giraffa [0, 0, 1]
sample x1 e x2
- $f(x1)=[0.4, 0.2, 0.4]$ (il modello è indeciso, non riesce a decidere se $x1$ è un gatto o una giraffa, però il modello dice che probabilmente non è un cane)
- $f(x2)=[0.01, 0.98, 0.01]$ (il modello per questo sample invece è molto sicuro)
Calcoliamo la Cross Entropy!
$$-[[1(-0.91)+0(-1.6)+0(-0.91)]+[0(-4.6)+0(-0.02)+0(-4.6)]] = 0.93$$
quei numeri strani sono semplicemente i logaritmi di 0.4, 0.2 ecc., abbiamo semplicemente applicato la formula sopra!
##### Softmax optimization
Goal: massimizzare la probabilità della classe vera, al costo degli altri output.
Facciamo il -log della sigmoide
$$-\frac{\log \exp p_{i}}{\sum_{{j}}\exp p_{j}}=-p_{i}+\log \sum_{j} \exp p_{j}$$
Per evitare di avere degli zeri, aggiungiamo una costante $c$ in questo modo:
$$=-p_{i}+\log \left(\sum_{j} \exp (p_{j}-c) \right) + c$$
##### Entropia
Per trovare i parametri migliori dobbiamo minimizzare la Cross Entropy
**Entropy:** misura l'incertezza di una distribuzione p $$H(p) = - \sum_{i} p(i) \log(p(i))$$
**Cross Entropy:** quantifica la differenza tra due distribuzioni di probabilità: la distribuzione "vera" (o reale) dei dati e quella "predetta" da un modello $$H(p, q) = - \sum_{i} p(i) \log(q(i))$$
La **Kullback-Leibler Divergence** (o KL divergence) è una misura di quanto una distribuzione di probabilità q differisce da una distribuzione di probabilità di riferimento p. In altre parole, quantifica la "distanza" (non simmetrica) tra due distribuzioni di probabilità, spesso usata per confrontare una distribuzione reale con una stimata o approssimata.
In pratica misura quante informazioni perdiamo usando q al posto di p.$$KL(p \parallel q) = \sum_{i} p(i) \log \left( \frac{p(i)}{q(i)} \right)$$
Si ottiene: $CE = H(P) + KL(P\parallel Q)$
##### How to measure if a model is calibrated
L'**Expected Calibration Error** è una metrica che misura quanto bene un modello probabilistico è "calibrato", ovvero quanto le sue predizioni di probabilità riflettono la realtà.
Per calcolare l'ECE, si suddividono le predizioni in intervalli (o "bucket") di probabilità, quindi si confrontano le probabilità medie delle predizioni con le frequenze reali per ogni bucket.
Dato un validation set, dividiamo i sample in m bucket, in base alla confidenza del modello per ogni sample.
Definiamo così l'**Expected Calibration Error (ECE)** come segue:
$$\sum_{m}^M \frac{B_{m}}{n} \lvert a_{m}-P_{m}\rvert$$
con:
- $B_{m}$: numero di sample la cui confidenza cade nel bucket m
- $P_{m}$: confidenza media per il bucket m
- $a_{m}$ accuratezza media per il bucket m
- $n$ è il numero totale di sample
- $M$ è il numero totale di bucket
![[Pasted image 20241029122255.png]]
##### Classificazione con gli iperpiani
Dato uno spazio di dimensione $N$, un iperpiano è un sottospazio di dimensione $N-1$
Ad esempio, in uno spazio 2D, un iperpiano ha una dimensione. In uno spazio 3D, un iperpiano è 2D, ecc.
Possiamo usare gli iperpiani per separare classi, ma funzionano bene solo se le classi sono linearmente separabili. La distanza tra il sample più vicino e l'iperpiano è chiamata margine.
Un modello che fa questo è la SVM (Support Vector Machine).
#### Bias vs variance
###### Definizioni concettuali:
- **l'errore causato dal Bias** è definito come la differenza tra la previsione media del modello e il valore corretto da prevedere. Anche se si utilizza un solo modello, si può immaginare di ripetere il processo di costruzione del modello più volte, creando così modelli diversi a causa della variabilità nei dati. Il bias misura quanto, in media, le previsioni di questi modelli si discostano dal valore corretto.
- **l'errore dovuto alla varianza** è la variabilità delle previsioni di un modello per un dato punto. Se si potesse ripetere il processo di costruzione del modello più volte, la varianza misurerebbe quanto le previsioni per quel punto differiscono tra le varie realizzazioni del modello. Questo riflette l'impatto della casualità nei dati sui risultati delle previsioni.
###### Definizione grafica:
La definizione di sopra potrebbe non essere chiarissima, ma se proviamo a vederla graficamente dovrebbe risultare moooolto più chiara!
Si può visualizzare graficamente il bias e la varianza utilizzando un diagramma a bersaglio. Il centro rappresenta un modello che predice perfettamente i valori corretti. Allontanandosi dal centro, le previsioni peggiorano. Ripetendo il processo di costruzione del modello, si ottengono vari risultati che mostrano una dispersione di punti sul bersaglio, influenzata dalla variabilità nei dati di addestramento. Si possono tracciare quattro casi diversi che combinano alta e bassa bias e varianza.
![[Pasted image 20241029123613.png]]
###### Definizione matematica
eh sì, purtroppo c'è pure questa
Consideriamo la variabile che vogliamo prevedere Y e la covariata X.
Possiamo assumere che tra le due c'è una relazione definita come: $$Y = f(X) + \epsilon, \quad \epsilon \sim N(0, \sigma_\epsilon)$$dove $\epsilon$ rappresenta un errore normalmente distribuito con valore atteso 0.
Possiamo stimare un modello $\hat{f}(X)$ di $f(X)$ usando la linear regression o altre tecniche. In questo caso il nostro errore atteso (expected squared prediction error) sarà:
$$\text{Err}(x) = E[(Y - \hat{f}(x))^2]$$
L'errore di previsione al punto x può essere scomposto in bias, varianza e errore irriducibile: $$\text{Err}(x) = \left(E[\hat{f}(x)] - f(x)\right)^2 + E\left[(\hat{f}(x) - E[\hat{f}(x)])^2\right] + \sigma^2_\epsilon$$$$\text{Err}(x) = \text{Bias}^2 + \text{Variance} + \text{Irreducible Error}$$
L'errore irriducibile rappresenta il rumore nel modello reale, che non può essere ridotto da alcun modello. In situazioni reali, esiste un tradeoff tra la minimizzazione del bias e quella della varianza.
![[Pasted image 20241029125726.png]]

View file

@ -1,48 +0,0 @@
Ovviamente non possiamo usare la sigmoide, ci serve qualcos'altro.
Possiamo usare la SoftMax, che è definita così:
$$\text{softmax}(z_i) =\frac{ e^{z_i}}{\sum_{j=1}^{n}e^{z_{j}}}
$$
Per cui otteniamo:
$$f_{\theta}(x_i)=softmax(\theta^Tx_i)$$
$\theta^Tx_i$ corrisponde al logit, o score.
- $x_i$ è un vettore di dimensione $[d*1]$ che rappresenta le features del sample $i$
- può anche essere una feature sola ovviamente, ma possono essere 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26...
- $\theta$ è la matrice dei parametri (pesi) di dimensione $[c*d]$
- con due classi era un vettore perché in quel caso consideravamo solamente la probabilità di cadere nella classe 1. Stavolta invece consideriamo la probabilità di cadere in ogni singola classe. Per cui abbiamo un vettore di pesi diverso per ogni classe, con come sempre, un peso per ogni feature.
Esempio stupido che mi sono inventato ora: i sample sono case e le feature sono dimensione e numero di piani, le classi da predire sono: appartamento, villa in campagna, villetta in città
Definiamo
- $f(x)$: codifica la distribuzione di probabilità su tutte le classi
- $f(x)_i$: rappresenta la probabilità per la singola classe i
- con probabilità $f(x)_i$, ci si trova nella classe i
La probabilità di cadere in una certa classe la definiamo in modo simile alla volta scorsa. Ma dobbiamo chiaramente considerare che le classi non sono 2. Sia $c$ il numero di classi, otteniamo:
$$P(Y|f(X))= \prod_{i=1}^c[f(X)_i]^{Y_i}$$
Y è un vettore cosiddetto "one-hot", ovvero solo uno degli elementi vale 1 e tutti gli altri 0.
Possiamo togliere la produttoria e considerare solo uno degli elementi: quello per cui $y_i$ vale 1. Otteniamo così: $$P(Y_i|f(X_i))= f(X_i)_Y$$
Definiamo ora in modo analogo la Likelihood:
$$L = \prod_{i=1}^{n} P(Y_i \mid f(X_i))$$
(come sempre, $P(Y_i \mid f(X_i))$ è la probabilità che il valore reale sia Yi dato il valore predetto con il sample $x_i$)
Come sempre, la Likelihood può essere difficile da calcolare, è molto più facile calcolare il logaritmo di essa, per cui lo definiamo:
$$log(L)=LL=\sum_{i=0}^nlog(P(y_i|f(x_i)))=\sum_{i=0}^nlog(f(x^i)_{y_i})$$
(con n = numero di sample)
Analogamente, definiamo la NLL aggiungendo il $-$ davanti:
$$NLL = -\sum_{i=0}^nf(x^i)_{y_i}=-\sum_{i=0}^n\sum_{j=0}^clog(f(x^i)_j)$$
Questa viene anche detta Cross Entropy (CE)
Definiamo un esempio:
classi
- gatto [1, 0, 0]
- cane [0, 1, 0]
- giraffa [0, 0, 1]
sample x1 e x2
- $f(x1)=[0.4, 0.2, 0.4]$ (il modello è indeciso, non riesce a decidere se $x1$ è un gatto o una giraffa, però il modello dice che probabilmente non è un cane)
- $f(x2)=[0.01, 0.98, 0.01]$ (il modello per questo sample invece è molto sicuro)
Calcoliamo la Cross Entropy!
$$-[[1(-0.91)+0(-1.6)+0(-0.91)]+[0(-4.6)+0(-0.02)+0(-4.6)]] = 0.93$$
quei numeri strani sono semplicemente i logaritmi di 0.4, 0.2 ecc., abbiamo semplicemente applicato la formula sopra!