Reti neurali artificiali EQUIVALENTE alla regressione lineare con caratteristiche polinomiali?


11

Voglio migliorare la mia comprensione delle reti neurali e dei loro vantaggi rispetto ad altri algoritmi di apprendimento automatico. La mia comprensione è la seguente e la mia domanda è:

Puoi correggere e integrare la mia comprensione per favore? :)

La mia comprensione:

(1) Reti neurali artificiali = una funzione che prevede i valori di output dai valori di input. Secondo un teorema di approssimazione universale ( https://en.wikipedia.org/wiki/Universal_approximation_theorem ), di solito puoi avere qualsiasi possibile (anche se dovrebbe comportarsi bene) funzione di predizione, dato abbastanza neuroni.

(2) Lo stesso vale per la regressione lineare, prendendo i polinomi dei valori di input come valori di input aggiuntivi, poiché è possibile approssimare (confrontare l'espansione di Taylor) ogni funzione bene con i polinomi.

(3) Ciò significa che (in un certo senso, rispetto ai migliori risultati possibili), questi 2 metodi sono equivalenti.

(4) Quindi, la loro principale differenza sta nel metodo che si presta a una migliore implementazione computazionale. In altre parole, con quale metodo puoi trovare, sulla base di esempi di addestramento, buoni valori più veloci per i parametri che alla fine definiscono la funzione di previsione.

Accolgo con favore pensieri, commenti e raccomandazioni ad altri link o libri per migliorare il mio modo di pensare.


2
Dovrebbe essere spostato su math.stackexchange.com Le reti neurali con attivazione approssimano in modo arbitrario bene qualsiasi funzione regolare ma hanno un'altra funzione: la scorrevolezza (il ridimensionamento dei pesi) dipende dal punto, questa è la chiave per un buon globale approssimazione. Non puoi ottenerlo con l'approssimazione polinomiale (data una funzione continua, prendi la sua convoluzione con e usa i primi termini dell'espansione di Taylor attorno ad un certo punto, il che dà solo una buona approssimazione locale )n d e - π | n x | 2tanhndeπ|nx|2
user1952009

@ user1952009 - Stone-Weierstrass non implica un'approssimazione globale arbitrariamente buona, a causa dell'uniformità dell'approssimazione nel teorema?
jbowman,

@jbowman Fa una buona approssimazione locale: per ogni continua, e esiste una funzione liscia, analitica o polinomiale (come desideri) tale che . Lo stesso vale per una rete neurale, ma la caratteristica è che può richiedere molte approssimazioni locali diverse (attorno a diversi ) e mescolarle per ottenere un qualche tipo di approssimazione globale. frϵfr,ϵsup|x|r|f(x)fr,ϵ(x)|ϵx0
user1952009

1
Questo è potenzialmente un duplicato di stats.stackexchange.com/questions/41289/… Contrassegnerei questa domanda, ma con la generosità su di essa, suppongo che invece commenterò qui :)
Hugh Perkins

1
+1 @HughPerkins per il collegamento a un'intuizione correlata Q. Ma, anche se le risposte nella domanda correlata forniscono informazioni sulla domanda qui (ad esempio, come spiega Stephan Kolassa, aNN considera la non linearità come impostazione predefinita mentre la regressione lo fa solo quando specificamente modellato attraverso tecniche aggiuntive) non vorrei contrassegnare per duplicati . Hai chiesto quale tipo di modello può dare risultati migliori, mentre questa domanda chiede specificamente di spiegare se due metodi sono simili nei loro risultati e nella loro generalizzabilità.
IWS,

Risposte:


7

Ecco l'accordo:

Tecnicamente hai scritto frasi vere (entrambi i modelli possono approssimare qualsiasi funzione 'non troppo pazza' dati parametri sufficienti), ma quelle frasi non ti portano da nessuna parte!

Perché? Bene, dai un'occhiata più da vicino alla teoria universale dell'approssimazione, o qualsiasi altra prova formale che una rete neurale può calcolare qualsiasi f (x) se ci sono abbastanza neuroni.

Tutti quei tipi di prove che ho visto usano solo un livello nascosto.

Dai un'occhiata qui http://neuralnetworksanddeeplearning.com/chap5.html per un po 'di intuizione. Ci sono lavori che dimostrano che in un certo senso il numero di neuroni necessari cresce in modo esponenziale se si utilizza solo uno strato.

Quindi, mentre in teoria hai ragione, in pratica, non hai una quantità infinita di memoria, quindi non vuoi davvero addestrare una rete di 2 ^ 1000 neuroni, vero? Anche se tu avessi una quantità infinita di memoria, quella rete si sovraccaricherà di sicuro.

A mio avviso, il punto più importante di ML è il punto pratico! Espandiamo un po 'su questo. Il vero grande problema qui non è solo come i polinomi aumentano / diminuiscono molto rapidamente al di fuori del set di allenamento. Affatto. A titolo di esempio, il pixel di qualsiasi immagine rientra in un intervallo molto specifico ([0,255] per ciascun colore RGB) in modo da poter essere certi che qualsiasi nuovo campione sarà compreso nell'intervallo di valori del set di allenamento. No. Il grosso problema è: questo confronto non è utile per iniziare (!).

Ti suggerisco di sperimentare un po 'con MNIST e di provare a vedere i risultati reali che puoi ottenere usando un solo livello.

Le reti pratiche usano più di un livello nascosto, a volte dozzine (beh, Resnet ancora di più ...) di livelli. Per una ragione. Questa ragione non è provata e, in generale, la scelta di un'architettura per una rete neurale è una zona calda di ricerca. In altre parole, mentre dobbiamo ancora saperne di più, entrambi i modelli che hai confrontato (regressione lineare e NN con un solo livello nascosto), per molti set di dati, non sono affatto utili!

A proposito, nel caso in cui entrerai in ML, c'è un altro teorema inutile che in realtà è un 'area di ricerca' attuale: la dimensione PAC (probabilmente approssimativamente corretta) / VC. Espanderò su questo come bonus:

Se l'approssimazione universale afferma sostanzialmente che, data la quantità infinita di neuroni, possiamo approssimare qualsiasi funzione (grazie mille?), Ciò che PAC dice in termini pratici è, data (praticamente!) Infinita quantità di esempi etichettati che possiamo avvicinarci desidera la migliore ipotesi all'interno del nostro modello. È stato assolutamente divertente quando ho calcolato l'effettiva quantità di esempi necessari affinché una rete pratica fosse all'interno di un certo tasso di errore desiderato pratico con qualche probabilità accettabile :) Era più del numero di elettroni nell'universo. PS per potenziarlo presuppone anche che i campioni siano IID (che non è mai vero!).


Quindi, le reti neurali artificiali equivalgono alla regressione lineare con caratteristiche polinomiali o no? La tua risposta sembra concentrarsi sulla quantità di strati e neuroni richiesti, ma non spiega perché queste due analisi dovrebbero / potrebbero essere equivalenti. L'aggiunta di più livelli (nascosti) rende una rete neurale in grado di gestire (anche) più funzioni di una regressione con i polinomi? E, come si è chiesto OP in una risposta, che ne dici della validità esterna / delle prestazioni fuori campione di questi modelli (e dei compromessi tra l'utilizzo di opzioni e prestazioni del modello più complesse)?
IWS,

Ti rimando alla mia prima frase: "Tecnicamente hai scritto frasi vere".
Yoni Keren,

Bene, ho chiesto perché il ragionamento per la tua affermazione secondo cui "l'OP ha scritto frasi vere" non mi era chiaro sulla base della tua risposta. Saresti così gentile da approfondire?
IWS,

Di sicuro. È meglio o trovi qualcos'altro ancora poco chiaro?
Yoni Keren,

8

È vero che qualsiasi funzione può essere approssimata in modo arbitrario vicino sia da qualcosa che conta come una rete neurale sia da qualcosa che conta come un polinomio.

Prima di tutto, tieni presente che questo è vero per molti costrutti. Potresti approssimare qualsiasi funzione combinando seno e coseno (trasformate di Fourier), o semplicemente aggiungendo molti "rettangoli" (non proprio una definizione precisa, ma spero che tu capisca il punto).

In secondo luogo, proprio come la risposta di Yoni, ogni volta che si sta allenando una rete o adattando una regressione con molti poteri, il numero di neuroni o il numero di poteri sono fissi. Quindi applichi un algoritmo, magari una discesa gradiente o qualcosa del genere, e trovi i migliori parametri con quello. I parametri sono i pesi in una rete e i coefficienti per un grande polinomio. La massima potenza che assumi in un polinomio, o il numero di neuroni usati, sono chiamati iperparametri. In pratica, ne proverai un paio. Puoi affermare che un parametro è un parametro, certo, ma in pratica non è così.

Il punto però, con l'apprendimento automatico, non vuoi davvero una funzione che si adatti perfettamente ai tuoi dati. In realtà non sarebbe troppo difficile da raggiungere. Vuoi qualcosa che si adatti bene, ma probabilmente funziona anche per punti che non hai ancora visto. Vedi questa immagine per esempio, presa dalla documentazione per scikit-learn.

Una linea è troppo semplice, ma l'approssimazione migliore non è sulla destra, è nel mezzo, anche se la funzione sulla destra si adatta meglio. La funzione a destra farebbe delle previsioni piuttosto strane (e probabilmente non ottimali) per i nuovi punti dati, specialmente se cadessero vicino ai bit sinuosi a sinistra.

La ragione ultima per le reti neurali con un paio di parametri che funzionano così bene, è che possono adattarsi a qualcosa ma non adattarsi davvero. Questo ha anche molto a che fare con il modo in cui vengono allenati, con una qualche forma di discesa graduale stocastica.


2

Dal momento che non è stata ancora fornita alcuna risposta (anche se accetterei il commento dell'utente 1952009 se fosse pubblicato come risposta), vorrei condividere ciò che ho imparato nel frattempo:

(1) Mi sembra che la mia comprensione sia generalmente giusta, ma il diavolo è nei dettagli.

(2) Una cosa che è mancata nella "mia comprensione": quanto sarà buona l'ipotesi parametrizzata generalizzata ai dati al di fuori del set di addestramento? La natura non polinomiale delle previsioni della rete neurale può essere migliore rispetto alla semplice regressione lineare / polinomiale (ricordare come i polinomi aumentano / diminuiscono molto rapidamente al di fuori del set di addestramento).

(3) Un link che spiega ulteriormente l'importanza di poter calcolare rapidamente i parametri: http://www.heatonresearch.com/2017/06/01/hidden-layers.html


2

Forse questo documento può aiutarti:

Regressione polinomiale in alternativa alle reti neurali

L'abstract dice:

Nonostante il successo delle reti neurali (NN), c'è ancora una preoccupazione tra molti per la loro natura di "scatola nera". Perché funzionano Qui presentiamo un semplice argomento analitico secondo cui le NN sono in realtà modelli di regressione polinomiale. Questa visione avrà varie implicazioni per le NN, ad esempio fornendo una spiegazione del motivo per cui sorgono problemi di convergenza nelle NN e fornisce una guida approssimativa per evitare un eccesso di adattamento. Inoltre, utilizziamo questo fenomeno per prevedere e confermare una proprietà multicollinearità di NN non precedentemente riportata in letteratura. Ancora più importante, data questa corrispondenza libera, si può scegliere di utilizzare abitualmente modelli polinomiali invece di NN, evitando così alcuni importanti problemi di questi ultimi, come dover impostare molti parametri di ottimizzazione e affrontare i problemi di convergenza. Presentiamo una serie di risultati empirici; in ogni caso, l'accuratezza dell'approccio polinomiale corrisponde o supera quella degli approcci NN. È disponibile un pacchetto software open source multi-funzione, polyreg.

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.