Quindi ho cercato di capire le reti neurali da quando mi sono imbattuto nel blog di Adam Geitgey sull'apprendimento automatico. Ho letto il più possibile sull'argomento (che posso capire) e credo di comprendere tutti i concetti generali e alcuni dei meccanismi (nonostante sia molto debole in matematica), neuroni, sinapsi, pesi, funzioni di costo, backpropagation ecc. Tuttavia, non sono stato in grado di capire come tradurre i problemi del mondo reale in una soluzione di rete neurale.
Ad esempio, Adam Geitgey fornisce a titolo esemplificativo un sistema di previsione dei prezzi delle abitazioni in cui viene fornito un set di dati contenente il numero di camere da letto , Sq. piedi , quartiere e prezzo di vendita è possibile addestrare una rete neurale per essere in grado di prevedere il prezzo di una casa. Tuttavia si ferma a corto di implementare effettivamente una possibile soluzione nel codice. Il più vicino che ottiene, a titolo di esempio, è una funzione di base che dimostra come implementare i pesi:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
Altre risorse sembrano concentrarsi maggiormente sulla matematica e l'unico esempio di codice di base che ho potuto capire che capisco (cioè che non è un po 'tutto il canto, tutta la base di codice di classificazione delle immagini danzanti) è un'implementazione che addestra una rete neurale per essere un XOR gate che si occupa solo di 1 e 0.
Quindi c'è una lacuna nella mia conoscenza che non riesco proprio a colmare. Se torniamo al problema della previsione del prezzo della casa , come si fa a rendere i dati adatti all'alimentazione in una rete neurale? Per esempio:
- Numero di camere da letto: 3
- Sq. piedi: 2000
- Quartiere: Normaltown
- Prezzo di vendita: $ 250.000
Puoi semplicemente inserire 3 e 2000 direttamente nella rete neurale perché sono numeri? O hai bisogno di trasformarli in qualcos'altro? Allo stesso modo, che dire del valore di Normaltown , che è una stringa, come si fa a tradurlo in un valore che può comprendere una rete neurale? Puoi semplicemente scegliere un numero, come un indice, purché sia coerente in tutti i dati?
La maggior parte degli esempi di reti neurali che ho visto passare tra i livelli sono da 0 a 1 o da -1 a 1. Quindi alla fine dell'elaborazione, come si trasforma il valore di output in qualcosa di utilizzabile come $ 185.000 ?
So che l'esempio di previsione del prezzo della casa probabilmente non è un problema particolarmente utile dato che è stato enormemente semplificato in soli tre punti dati. Ma sento solo che se potessi superare questo ostacolo e scrivere un'app estremamente semplice che si allena usando dati pseudo nella vita reale e sputa una risposta pseudo nella vita reale di quanto avrò rotto il retro e sarei in grado di calciare e approfondire ulteriormente l'apprendimento automatico.