Un’introduzione delicata alle Reti Neurali Orientabili (parte 2)

Un'elegante introduzione alle Reti Neurali Orientabili (parte 2)

Come costruire un filtro orientabile e una CNN orientabile

1) Introduzione

Questo articolo è la seconda e ultima parte del tutorial “Un’introduzione dettagliata alle reti neurali orientabili”. Segue l’articolo numero uno (qui). Il primo articolo offre una panoramica accessibile delle reti neurali orientabili (S-CNN), spiegando il loro scopo e le loro applicazioni. Approfondisce anche il formalismo sottostante e i concetti chiave, incluso la definizione di equivarianza e filtri orientabili. Sebbene nel paragrafo successivo verrà fornito un breve riassunto del formalismo, consigliamo di leggere il primo articolo per una comprensione completa.

In questa ultima parte del tutorial, vogliamo fornire una guida su come costruire un filtro orientabile e, alla fine, come comporre una rete neurale orientabile.

Breve riassunto della nomenclatura:

Figura 3A: Rappresentazione di una rete neurale seguendo il formalismo.

  • S: spazio di dominio di input. Lo spazio in cui gli oggetti esistono (solitamente ℝ³ o ℝ²).
  • f: una mappa/funzione, f ₙ: S → ℝ ͨ ʿⁿ ʾ ( Fₙ), che descrive la n-esima mappa di caratteristiche della rete neurale. Si noti che f ⁰ è la funzione che descrive l’input (strato di input), mentre fₙ, con n>0, descrive l’n-esima mappa di caratteristiche.
  • F= ℝ ͨ ʿⁿ ʾ, è codominio della mappa f ₙ.
  • Φ: F→ F ₙ₊₁, n-esimo ͑filtro della rete neurale caratterizzabile dalla funzione kernel k : S → ℝ ͨ ʿⁿ ʾ ˟ ͨ ʿⁿ⁺ ¹ ʾ. La definizione di convoluzione può essere vista nella seconda equazione sopra.
  • G: gruppo di trasformazioni (singolo elemento g).

Considerando tutti questi concetti siamo stati in grado di definire la convoluzione come segue:

2) Progettazione di un filtro CNN orientabile

Figura 3A: Esempio visuale di un filtro CNN equivariante. Data la trasformazione g che agisce su S e la conseguente rotazione del segnale di input f data da Π₀(g), f1 viene ruotato da Π1(g).

2.1 Formalizzazione del problema

Possiamo affermare che una CNN di n strati è equivariante rispetto a un gruppo di trasformazioni G se, per ogni g in G,0: quando una funzione di input f ₀ viene trasformata in Π₀(g), quindi la funzione di output dell’n-esimo strato viene trasformata in una trasformazione Πn(g).

Una condizione sufficiente per rendere vera questa affermazione è che ogni strato contiguo sia equivariante alle trasformazioni sui suoi input immediati (vedi fig 3A). L’equivarianza della rete deriva per induzione. Seguendo le definizioni date nel secondo articolo, un filtro Φ è equivariante se soddisfa la seguente condizione:

Eq.0: Definizione di equivarianza

È ora possibile affermare il risultato principale della teoria delle reti neurali orientabili.

Sia k il kernel che collega il livello f ₙ a f in modo che fₙ₊₁ = k* f ₙ.

La convoluzione k* f ₙ è equivariante rispetto a una trasformazione g, se e solo se:

o più semplicemente

Eq.1: Condizione necessaria e sufficiente per l'equivarianza di un kernel rispetto a una trasformazione g.

Nella letteratura più ampia [2,3] i kernel che aderiscono a questa restrizione vengono chiamati kernel g-orientabili. Poiché la restrizione del kernel opera in modo lineare, le soluzioni che genera costituiscono uno spazio vettoriale lineare all’interno dello spazio vettoriale dei kernel non vincolati normalmente utilizzati nelle CNN standard. Dopo un’analisi più approfondita, questa definizione si allinea strettamente al concetto di filtri orientabili introdotto nel paragrafo 2 dell’ultimo articolo qui presente. In termini pratici, per ottenere questo lavoro abbiamo bisogno di una base per questo sottospazio del kernel, indicato come {k_1, …k_D}, che aderisce a Eq.1. La dimensione di questa base, indicata come D, può essere calcolata come D = cʿⁿ ʾ ˟ cʿⁿ⁺¹ʾ. Successivamente, il kernel k(x) viene derivato attraverso una combinazione lineare di questa base, con la rete che apprende i pesi nel processo:

Eq.2: La linearità di Eq(1) fa sì che la soluzione sia uguale alla seguente combinazione lineare.

In uno scenario di allenamento, il nostro approccio prevede di impostare le dimensioni dei livelli di input e output a valori specifici, ossia cʿⁿ ʾ e cʿⁿ⁺¹. Quindi, in base alle trasformazioni per le quali desideriamo l’equivarianza, risolviamo l’equazione e determiniamo una base del kernel. Successivamente, durante il processo di allenamento, apprendiamo i pesi associati a questi kernel.

2.2 Risoluzione dell’equazione

La soluzione del vincolo presentato in Eq.1 è tutto fuorché banale. Dipende da tre elementi principali:

  • lo spazio S, che sia S= ℝ³ o S= ℝ².
  • Il gruppo G.
  • La dimensione di input e output dei livelli: cʿⁿ ʾ e cʿⁿ⁺ ¹ ʾ.

In modo più specifico, possiamo dire che la scelta del gruppo G definisce il tipo di rete. Siamo principalmente interessati ai seguenti tipi di reti:

  • SO Networks: Equivarianti alle rotazioni nel Gruppo Ortogonale Speciale (SO).
  • SE Networks: Equivarianti alle rotazioni e alle traslazioni all’interno del Gruppo Euclideo Speciale (SE).
  • E Networks: Equivarianti alle rotazioni, alle traslazioni e alle riflessioni nel Gruppo Euclideo (E).

Se operiamo in un dominio di input 2D, abbiamo reti SO(2), SE(2) ed E(2) [4]. Al contrario, con un dominio di input 3D, lavoriamo con reti SO(3), SE(3) ed E(3) [1], e questo concetto può essere esteso a qualsiasi spazio E(n) [6].

Estendere questo lavoro ad altri spazi e simmetrie è un’area di ricerca in corso, si incoraggia un lettore interessato a indagare nei campi di studio matematico noti come spazi di Hilbert e funzioni di Green, una discussione di cui qui esce dal campo di questo articolo.

Tuttavia è possibile vedere che nel caso delle reti SE(n) la soluzione generale dell’Eq.1 è una funzione di base armonica in S= ℝⁿ. Nell’immagine sopra (Figura 3B) sono possibili le funzioni armoniche in ℝ² a sinistra e le funzioni armoniche in ℝ³ a destra.

Figura 3B: Base di funzioni armoniche in 2D (a sinistra) e in 3D (a destra). Questa base costituisce una base di filtri equivarianti sterzabili nelle reti SE(2) e SE(3) rispettivamente.

Considerando uno scenario di progettazione di filtri più complesso, nell’immagine Figura 3C qui sotto, vediamo ad esempio come viene costruito un kernel equivariante sterzabile SO2 per uno strato di input f ₀: ℝ²->ℝ³ e uno strato di output f₁:ℝ²->ℝ². Il kernel è una funzione k: ℝ²->ℝ³ˣ². Ogni singolo elemento della matrice è ottenuto da una funzione risultante dalla combinazione lineare pesata delle basi D campionate nella posizione (x₁, x₂). Vediamo l’esempio sopra per la posizione x=(1,2).

Di seguito mostreremo alcune soluzioni semplici di questa equazione considerando, S=ℝ² e G come gruppo di trasformazioni di rotazione che implicano reti di SO2.

Figura 3C: Rappresentazione visiva di un kernel sterzabile 3x2 costruito utilizzando una base di 6 funzioni armoniche.

2.3 Soluzioni pratiche

– Caso1A: reti SO2, k: S=ℝ² → ℝ

Immaginiamo il caso pratico di avere un’immagine in scala di grigi come input e voler costruire un filtro sterzabile per elaborarla. Prima di tutto, dobbiamo decidere la dimensione dello strato di output (numero di caratteristiche). Prendiamo per semplicità la dimensione 1. In questa configurazione, abbiamo una funzione di input f: ℝ²-> ℝ e una funzione di output simile f₁: ℝ²-> ℝ. Pertanto, la funzione del kernel è k: ℝ² -> ℝ. Vogliamo che il nostro strato CNN sia equivariante a un gruppo di trasformazioni, G, che rappresenta rotazioni di angolo theta all’interno di [0,2π) (rete SO). Per questo problema, la base della funzione del kernel richiede l’uso dell’Eq.1. Dato che sia f che f¹ sono scalari, Pi_out = 1 e Pi_in = 1. Ciò comporta k[g_θ(x)] = k[x] come scritto nell’Eq.3. Se x = (x₁, x₂) è in ℝ², g(theta) si allinea con la matrice di Eulero 2D.

Eq.3: Riscrittura Eq.(1) nel caso di k: S=ℝ² → ℝ

È ovvio che questo è risolto da ogni funzione isotropa in (x₁, x₂). In particolare, questo si risolve con una base unidimensionale di kernel isotropi (invarianti per rotazione). (cioè k(x₁, x₂) = x₁² +x₂²)

Caso 2: Filtro SO2, k: ℝ² → ℝ²

Prendiamo ora in considerazione un caso più complesso. La funzione di input è f: ℝ² → ℝ² e lo strato di output è una funzione f ₁: ℝ² → ℝ². Il kernel può quindi essere scritto come la funzione k: S= ℝ² → ℝ² ˣ ²; in altre parole, per ogni posizione x in ℝ² abbiamo una matrice bidimensionale 2×2 (vedi l’equazione di seguito). Vogliamo costruire un filtro S02 in modo che il gruppo di trasformazioni da considerare sia ancora G={g(θ)} ={r(θ)} , θ ∈ [0,2Π[. Essendo ℝ² il codominio di f e f ₁, Π_out=Π_θ e Π_in=Π_θ , dove Π_θ è la matrice di Euler in ℝ². Considerando tutte queste condizioni possiamo riscrivere l’Eq.1 sopra nel seguente modo:

Eq.(4): Funzione del kernel che considera k: S= ℝ² → ℝ² ˣ ²
Eq.(5): Riscrittura dell'Eq.(1) per un kernel SO2 k: S=ℝ² → ℝ².

Per una comprensione più approfondita della soluzione di questa equazione e per ulteriori approfondimenti, si prega di fare riferimento alla sezione appendice nel paper [4].

2.4 Non-linearità della rete

Fino ad ora abbiamo considerato solo l’equivarianza rispetto all’operazione di convoluzione, senza considerare la parte non-lineare data dalla funzione σ(f(x)): ℝ=ℝ ͨ →ℝ ͨ’ . Nella sezione 4.3 del paper [1] e nella sezione 2.6 del paper [4] questo è ampiamente trattato. Data la funzione f(x), la condizione di equivarianza può essere riassunta nel seguente modo:

Eq.(5) : Condizione di equivarianza per la funzione di attivazione.

Come menzionato anche in una conferenza YouTube correlata qui, è possibile creare una funzione di attivazione che soddisfi questo criterio utilizzando ciò che è noto come funzione di attivazione basata sulla norma come σ(u) = σ(||u||) . La motivazione per questo è che una norma scalare è trasparentemente invariante e quindi l’applicazione di una qualsiasi funzione non lineare ad essa produrrà un output invariante. Per dimostrare questo, quando applichiamo questa formula alla condizione sopra menzionata per l’Eq.(5) otteniamo la seguente equazione:

Eq.(6): Riscrittura dell'Eq.(5) come funzioni basate sulla norma.

Se ‘g’ appartiene al gruppo di trasformazioni E, la norma rimane costante. Di conseguenza, l’equazione è universalmente valida quando Π’(g) è uguale all’Identità. Ciò implica che la funzione di attivazione appositamente progettata è costantemente invariante rispetto alla rotazione. Un esempio di ciò sono le Norm-ReLUs, definite da η(|f(x)|) = ReLU(|f(x)| − b)

Sono stati suggerite anche altre funzioni di attivazione non lineari nei paper di ricerca e nella conferenza, come le funzioni di attivazione non-gated. Per ulteriori spiegazioni si consiglia di consultare queste fonti.

3) Progettare una CNN steerabile

Figura 3D: L'architettura di una CNN steerabile come descritta in <a href=[3]. Si noti l’utilizzo dei filtri steerabili nel secondo livello accoppiati con una G-convoluzione.” src=”https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/0*PBKBmh-QW0hhAsXR”/>

Nella sessione precedente, abbiamo compreso i fondamenti della costruzione di un singolo filtro orientabile. In questo segmento conclusivo, approfondiremo la metodologia di integrazione di questi filtri in modo coerente per stabilire una rete neurale orientabile completamente funzionale.

Nell’immagine sopra possiamo vedere un esempio tratto dall’articolo [3]. Siamo particolarmente interessati al livello 2 dove vengono utilizzati i filtri orientabili. Qui, ogni rappresentazione orizzontale è un filtro orientabile – una composizione di funzioni armoniche pesate – che produce un output distintivo, indicato come fⁿ. Osservando la struttura, è evidente che mentre le funzioni armoniche rimangono consistenti tra i filtri, le loro orientazioni variano da uno all’altro. Questo è emblematico della tecnica di G-convoluzione, un metodo sofisticato che contribuisce alla costruzione di reti invarianti alle trasformazioni (puoi trovare ulteriori informazioni su questa tecnica qui). La rete sfrutta il potere del max-pooling per convogliare solo le risposte più robuste dalla serie di filtri orientabili nel livello successivo. Questo principio di trasmissione selettiva garantisce che le caratteristiche più forti siano preservate e potenziate man mano che progrediscono attraverso la rete. Questo approccio riflette le metodologie implementate in altri lavori, come nel riferimento [5], che ha creato con successo una rete orientabile invarianti alla scala. L’architettura di una tale CNN orientabile beneficia di questa tecnica, poiché incorpora naturalmente l’invarianza di scala e rotazione, arricchendo così la capacità della rete di riconoscere modelli e caratteristiche in maniera più astratta ma robusta. In ogni caso, è possibile vedere dall’immagine che il risultato finale è una rete equivariante alle rotazioni.

Fig 3E: Un esempio visivo dell'applicazione di un filtro orientabile 2D su un'immagine ruotata (l'originale può essere trovato qui)

Una spiegazione eccellente passo passo sul design di una rete neurale orientabile può essere trovata a questo link, incluso nel repository Github “e2cn” (link). In questo repository è possibile trovare il codice PyTorch per progettare una rete orientabile SE2. Al contrario, è possibile trovare codice utile per lo sviluppo di reti SE3 a questo link, mentre un breve corso sulle reti equivarianti 3D è stato pubblicato qui.

LETTERATURA:

[1] “3D Steerable CNNs: Apprendimento di caratteristiche equvarianti di rotazione nei dati volumetrici”, Weilier et al., (link);

[2] “Steerable CNNs”, Cohen et al. ( link);

[3] “Apprendimento di filtri orientabili per reti CNN equvarianti alla rotazione”, Weilier et al., (link)

[4] “General E(2)-Equivariant Steerable CNNs” Weilier et al., (link)

[5] “Filtri orientabili in scala per la rete neurale convoluzionale localmente invariante alla scala”, Ghosh et al. (link)

[6] “Un programma per costruire reti CNN orientabili E(n)-equivarianti”. Cesa et al. (link)

✍️ 📄. Autore:

1️⃣ Matteo Ciprian, Ingegnere di Machine Learning/Ricercatore

  • Laureato magistrale in Ingegneria delle Telecomunicazioni presso l’Università di Padova. Attualmente lavora nel campo della fusione dei sensori, dell’elaborazione del segnale e dell’AI applicata. Esperienza in progetti legati alle applicazioni di intelligenza artificiale in eHealth e tecnologie indossabili (ricerca accademica e settori aziendali). Specializzato nello sviluppo di algoritmi di rilevamento delle anomalie, nonché nell’avanzamento delle tecniche di Deep Learning e Fusioni di Sensori. Appassionato di Filosofia. Creatore di contenuti su Youtube. 🔗 Links: 💼 Linkedin 📹 Youtube 👨‍💻Instagram

2️⃣ Robert Schoonmaker, Ricercatore in Elaborazione del Segnale/Machine Learning

  • Dottorato in Fisica dei Materiali Condensati Computazionale presso l’Università di Durham. Si specializza nell’applicazione del machine learning e nelle statistiche non lineari, attualmente indaga sull’utilizzo dei metodi di calcolo GPU nei radar ad apertura sintetica e in sistemi simili. Ha esperienza nello sviluppo di metodi di machine learning simmetrici per l’utilizzo nelle tecniche di fusione dei sensori e di posizionamento.🔗 Link: 💼 Linkedin