Le matrici del kernel RBF tendono ad essere mal condizionate?


10

Uso la funzione kernel RBF per implementare un algoritmo di machine learning (KLPP) basato sul kernel, la risultante matrice del kernel K

K(i,j)=exp((xixj)2σm2)
risulta estremamente mal condizionato. Il numero di condizione della norma L2 è di10171064

C'è un modo per renderlo ben condizionato? Immagino che il parametro σ debba essere sintonizzato, ma non so esattamente come.

Grazie!


1
bene, se si σm si migliora il numero della condizione.
user189035

Risposte:


11

Ridurre la larghezza del kernel solito riduce il numero della condizione.σm

Tuttavia, le matrici del kernel possono diventare singolari o vicine al singolare per qualsiasi funzione di base o distribuzione dei punti, a condizione che le funzioni di base si sovrappongano. La ragione di ciò è in realtà abbastanza semplice:

  • La matrice del kernel è singolare quando il suo determinante det ( K ) è zero.Kdet(K)
  • Lo scambio di due punti e nell'interpolazione equivale allo scambio di due file in , supponendo che i punti di prova rimangano costanti.Xio KXjK
  • Scambiare due righe in una matrice cambia il segno del suo determinante.

Ora immagina di selezionare due punti e e lentamente in modo che cambino posizione. Mentre lo fa, il determinante di cambierà segno, diventando zero a un certo punto nel mezzo. A questo punto, è, per definizione, singolare.x j K KXioXjKK


Le matrici K non sono simmetriche - scambiando due punti si scambiano righe e colonne?
denis,

@Denis Questo è il caso solo se i tuoi nodi e punti di prova sono gli stessi e muovi entrambi. Questo è il motivo per cui, nel secondo punto, ho scritto "supponendo che i tuoi punti di prova rimangano costanti".
Pedro,

la matrice del kernel dei gaussiani (la domanda del PO) è comunque semi-definita positiva?
denis,

@Denis: Ancora una volta, questa è una domanda su come definire il problema di interpolazione RBF. Si consideri il caso più generale in cui si dispone di RBFs centrato sui punti , , e si vuole minimizzare l'interpolazione nei punti , . L'esempio del poster presuppone e . Se inizialmente impostiamo e , e poi spostiamo semplicemente x i , possiamo semplicemente generare K singolare . x i i = 1 N M ξ j j = 1 M M = N ξ j = x i M N ξ jx iNXioio=1...NMξjj=1...MM=Nξj=XioMNξjXioXioK
Pedro,

3

Un paio di suggerimenti:

  1. Scegli la distanza media | casuale x - il più vicino x i . (A approssimazione a buon mercato per N punti distribuiti uniformemente nel cubo unità in R d , d 2 . . 5 , è di 0,5 / N 1 / d ). Vogliamo che φ ( | x - x i | ) ad essere grandi per x i vicino x , piccolo per il rumore di fondo; traccialo per qualche x casuale .σ~XXioNRd,d 2..5N1/d
    φ(|X-Xio|)XioXX

  2. Spostare da 0, K K + λ I , λ 10 - 6 o giù di lì; cioè regolarizzare.KKK+λioλ~10-6

  3. Guarda i pesi da risolvere . Se alcuni sono ancora enormi (indipendentemente dal numero di condizione), ciò tenderebbe a confermare Boyd (sotto) che l'RBF gaussiano è fondamentalmente debole.(K+λio)w=f

(Un'alternativa a RBF è la ponderazione a distanza inversa, IDW. Ha il vantaggio del ridimensionamento automatico, lo stesso per le distanze più vicine 1 2 3 come per 100 200 300 ... Inoltre trovo la scelta esplicita dell'utente di N n e a r , il numero di vicini vicini da considerare, più chiaro della ricerca della griglia su σ , λ .)......Nneun'rσ,λ

John P. Boyd, L'inutilità della Trasformazione di Gauss veloce per sommare la serie di funzioni di base radiale gaussiana , afferma

l'interpolante gaussiano RBF è mal condizionato per la maggior parte delle serie, nel senso che l'interpolante è la piccola differenza di termini con coefficienti esponenzialmente grandi.

Spero che sia di aiuto; per favore condividi la tua esperienza.

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.