Funzioni di covarianza o kernel: che cosa sono esattamente?


13

Sono piuttosto nuovo nel campo dei processi gaussiani e di come vengono applicati nell'apprendimento automatico. Continuo a leggere e ascoltare le funzioni di covarianza come l'attrazione principale di questi metodi. Qualcuno potrebbe spiegare in modo intuitivo cosa sta succedendo in queste funzioni di covarianza?

Altrimenti, se potessi segnalare un tutorial o un documento specifico che li spiega.



Se si tratta principalmente di un problema di richiesta di riferimento, è possibile aggiungere il tag "riferimenti". (La domanda è piuttosto ampia, ma se accetti le persone che indicano cosa dovresti andare a leggere, questo risolve ampiamente questo problema.)
Silverfish

Risposte:


12

k(x,x)x,xxxk(,)

I kernel tipici potrebbero semplicemente dipendere dalla distanza euclidea (o dalle loro trasformazioni lineari) tra i punti, ma il divertimento inizia quando ti rendi conto che puoi fare molto, molto di più.

Come dice David Duvenaud:

I kernel possono essere definiti su tutti i tipi di strutture di dati: testo, immagini, matrici e persino kernel. Venire con un kernel su un nuovo tipo di dati era un modo semplice per ottenere un documento NIPS.

Per una facile panoramica dei kernel per i GP, raccomando vivamente il suo ricettario del kernel e i riferimenti in esso.


(*) Come osserva @Dikran Marsupial, attenzione che non è vero il contrario; non tutte le metriche di somiglianza sono kernel validi (vedere la sua risposta).


8

K(x,x)=ϕ(x)ϕ(x)ϕ() è una funzione che mappa i vettori di input nello spazio delle caratteristiche.

Quindi perché il kernel deve essere interpretabile come prodotto interno in uno spazio di funzionalità? Il motivo è che è molto più facile escogitare limiti teorici sulle prestazioni di generalizzazione per i modelli lineari (come la regressione logistica) rispetto ai modelli non lineari (come una rete neurale). La maggior parte dei modelli lineari può essere scritta in modo tale che i vettori di input appaiano solo sotto forma di prodotti interni. Questo significa che possiamo costruire un modello non lineare costruendo un modello lineare nello spazio delle caratteristiche del kernel. Questa è una trasformazione fissa dei dati, quindi tutti i limiti teorici delle prestazioni per il modello lineare si applicano automaticamente al nuovo modello non lineare del kernel *.

Un punto importante che all'inizio è difficile da capire è che tendiamo a non pensare a uno spazio di funzionalità che sarebbe utile per la nostra particolare applicazione e quindi progettare un kernel che dia origine a quello spazio di funzionalità. In generale troviamo una buona metrica di somiglianza e quindi vediamo se si tratta di un kernel (il test è semplice, se una matrice di valutazioni a coppie della funzione del kernel in punti in posizione generale è definita positiva, allora è un kernel valido) .


1
"un kernel (il test è semplice, se una matrice di valutazioni a coppie della funzione del kernel è definita positiva, allora è un kernel valido)." Credo che sia necessario includere "in punti distinti".
Mark L. Stone,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.