J'ai donc essayé de comprendre les réseaux de neurones depuis que je suis tombé sur le blog d' Adam Geitgey sur l'apprentissage automatique. J'ai lu autant que possible sur le sujet (que je peux comprendre) et je crois comprendre tous les concepts généraux et certains des fonctionnements (en dépit d'être très faible en mathématiques), les neurones, les synapses, les poids, les fonctions de coût, la rétropropagation etc. Cependant, je n'ai pas pu comprendre comment traduire des problèmes du monde réel en une solution de réseau neuronal.
Par exemple, Adam Geitgey donne comme exemple d'utilisation, un système de prédiction du prix de la maison où, étant donné un ensemble de données contenant le nombre de chambres , m² pieds , Quartier et Prix de vente vous pouvez former un réseau de neurones pour pouvoir prédire le prix d'une maison. Cependant, il s'arrête avant d'implémenter une solution possible dans le code. Le plus proche qu'il obtient, à titre d'exemple, est une fonction de base montrant comment vous implémentez des pondérations:
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
D'autres ressources semblent se concentrer davantage sur les mathématiques et le seul exemple de code de base que je pourrais trouver que je comprends (c'est-à-dire que ce n'est pas tout le chant, toute la base de code de classification des images dansantes) est une implémentation qui forme un réseau neuronal à être un XOR porte qui ne traite que dans 1 et 0.
Il y a donc une lacune dans mes connaissances que je n'arrive pas à combler. Si nous revenons au problème de prédiction du prix des logements , comment rendre les données adaptées à l'alimentation d'un réseau neuronal? Par exemple:
- Nbre de chambres: 3
- Sq. pieds: 2000
- Quartier: Normaltown
- Prix de vente: 250 000 $
Pouvez-vous simplement alimenter 3 et 2000 directement dans le réseau neuronal car ce sont des nombres? Ou avez-vous besoin de les transformer en autre chose? De même, qu'en est-il de la valeur Normaltown , qui est une chaîne, comment procédez-vous pour la traduire en une valeur qu'un réseau de neurones peut comprendre? Pouvez-vous simplement choisir un nombre, comme un index, tant qu'il est cohérent dans toutes les données?
La plupart des exemples de réseaux de neurones dont j'ai vu les nombres passer entre les couches sont de 0 à 1 ou de -1 à 1. Donc, à la fin du traitement, comment transformez-vous la valeur de sortie en quelque chose utilisable comme 185 000 $ ?
Je sais que l'exemple de prédiction du prix des maisons n'est probablement pas un problème particulièrement utile étant donné qu'il a été massivement simplifié à trois points de données. Mais je pense simplement que si je pouvais surmonter cet obstacle et écrire une application extrêmement basique qui s'entraîne à l'aide de données pseudo-réelles et crache une réponse pseudo-réelle, j'en aurai brisé le dos et pourrai lancer et approfondissez votre apprentissage automatique.