Domanda

Qualcuno può spiegarmi come eseguire insiemi di dati più complessi come statistiche di squadra, meteo, dadi, tipi di numeri complessi

Capisco tutta la matematica e come funziona tutto, non so come inserire dati più complessi e quindi come leggere i dati che sputa

se qualcuno potesse fornire esempi in Python sarebbe di grande aiuto

È stato utile?

Soluzione

Devi codificare il tuo input e il tuo output in qualcosa che può essere rappresentato dalle unità di rete neurale. (ad esempio 1 per " x ha una certa proprietà p " -1 per " x non ha la proprietà p " se l'intervallo delle tue unità è compreso tra [-1, 1])

Il modo in cui codifichi il tuo input e il modo in cui decodifichi il tuo output dipende da cosa vuoi addestrare per la rete neurale.

Inoltre, ci sono molte "reti neurali" algoritmi e regole di apprendimento per diversi compiti (propagazione della schiena, macchine boltzman, mappe auto-organizzate).

Altri suggerimenti

Le tue funzioni devono essere scomposte in parti che possono essere rappresentate come numeri reali. La magia di una rete neurale è che è una scatola nera, le associazioni corrette saranno fatte (con pesi interni) durante l'allenamento


Ingressi

Scegli quante funzionalità sono necessarie per descrivere accuratamente la situazione, quindi decompone ciascuna in un insieme di numeri reali valutati.

  • Meteo: [temperatura oggi, umidità oggi, temperatura ieri, umidità ieri ...] l'associazione tra la temperatura di oggi e l'umidità di oggi è fatta internamente
  • Statistiche squadra: [altezza ave, peso ave, altezza massima, punteggio più alto, ...]
  • Dadi: non sono sicuro di aver capito questo, vuoi dire come codificare i valori discreti? *
  • Numero complesso: [a, ai , b, bi , ...]

* Le funzioni con valori discreti sono complicate, ma possono comunque essere codificate come (0.0,1.0). Il problema è che non forniscono un gradiente per apprendere la soglia.


Uscite

Decidi tu cosa vuoi che significhi l'output, quindi codifica i tuoi esempi di allenamento in quel formato. Meno valori di output, più facile da addestrare.

  • Meteo: [possibilità di domani di pioggia, temperatura di domani, ...] **
  • Statistiche squadra: [possibilità di vincere, possibilità di vincere di oltre 20, ...]
  • Numero complesso: [x, xi , ...]

** Qui i tuoi vettori di allenamento sarebbero: 1.0 se piovesse il giorno successivo, 0.0 se non lo facesse


Ovviamente, se il problema può effettivamente essere modellato o meno da una rete neurale è una domanda diversa.

Dati più complessi di solito significa aggiungere più neuroni nei livelli di input e output.

Puoi alimentare ogni campo " " del tuo registro, correttamente codificato come valore reale (normalizzato, ecc.) per ciascun neurone di input, o forse puoi persino decomporre ulteriormente in campi di bit, assegnando input saturi di 1 o 0 ai neuroni ... per l'output, dipende da come si allena la rete neurale, proverà a imitare i risultati del set di addestramento.

Devi aggiungere il numero di unità per input e output necessarie per il problema. Se la funzione sconosciuta da approssimare dipende dal parametro n , avrai n unità di input. Il numero di unità di output dipende dalla natura della funzione. Per funzioni reali con n parametri reali avrai un'unità di output.

Alcuni problemi, ad esempio nella previsione di serie temporali, si avranno m unità di output per i m valori successivi della funzione. La codifica è importante e dipende dall'algoritmo scelto. Ad esempio, nella backpropagation per le reti feedforward, è meglio trasformare, se possibile, il maggior numero di funzionalità in input discreti, come per le attività di classificazione.

Un altro aspetto della codifica è che devi valutare il numero di input e unità nascoste in funzione della quantità di dati. Troppe unità correlate ai dati possono dare una scarsa approssimazione a causa del problema di dimensionalità del corso. In alcuni casi, è possibile aggregare alcuni dei dati di input in qualche modo per evitare tale problema o utilizzare un meccanismo di riduzione come PCA.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top