Vorrei proporre un diverso tipo di sfida golfistica a questa comunità:
Le reti neurali (artificiali) sono modelli di machine learning molto popolari che possono essere progettati e addestrati per approssimare qualsiasi funzione (di solito sconosciuta). Sono spesso usati per risolvere problemi molto complessi che non sappiamo come risolvere algoritmicamente come il riconoscimento vocale, alcuni tipi di classificazione delle immagini, vari compiti in sistemi di guida autonomi, ... Per un primer sulle reti neurali, considera questo eccellente Articolo di Wikipedia .
Poiché questo è il primo in quella che spero sia una serie di sfide del golf di apprendimento automatico, mi piacerebbe mantenere le cose il più semplice possibile:
Nel linguaggio e nella struttura di tua scelta, progetta e addestra una rete neurale che, data calcola il loro prodotto per tutti i numeri interi tra (e inclusi) e .
Obiettivo di prestazione
Per essere idoneo, il tuo modello non può discostarsi di oltre dal risultato corretto su nessuna di queste voci.
Regole
Il tuo modello
- deve essere una rete neurale "tradizionale" (il valore di un nodo viene calcolato come una combinazione lineare ponderata di alcuni dei nodi in uno strato precedente seguito da una funzione di attivazione),
- può utilizzare solo le seguenti funzioni di attivazione standard:
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- deve prendere come tupel / vettore / elenco / ... di numeri interi o float come unico input,
- restituisce la risposta come un numero intero, float (o un contenitore adatto, ad esempio un vettore o un elenco, che contiene questa risposta).
La risposta deve includere (o collegarsi a) tutto il codice necessario per verificare i risultati, compresi i pesi addestrati del modello.
punteggio
Vince la rete neurale con il minor numero di pesi (inclusi i pesi di polarizzazione).
Godere!
f(x) = x
inoltrare il suo input?