Réseaux de neurones artificiels
Le réseau de neurones artificiels, ou simplement le réseau de neurones, n'est pas une idée nouvelle. Il existe depuis environ 80 ans.
Ce n'est qu'en 2011, lorsque les réseaux de neurones profonds sont devenus populaires grâce à l'utilisation de nouvelles techniques, à l'énorme disponibilité de jeux de données et à des ordinateurs puissants.
Un réseau neuronal imite un neurone, qui a des dendrites, un noyau, un axone et un axone terminal.
Pour un réseau, nous avons besoin de deux neurones. Ces neurones transfèrent des informations via une synapse entre les dendrites de l'un et l'axone terminal de l'autre.
Un modèle probable d'un neurone artificiel ressemble à ceci -
Un réseau de neurones ressemblera à celui ci-dessous -
Les cercles sont des neurones ou des nœuds, avec leurs fonctions sur les données et les lignes / arêtes qui les relient sont les poids / informations transmis.
Chaque colonne est une couche. La première couche de vos données est la couche d'entrée. Ensuite, toutes les couches entre la couche d'entrée et la couche de sortie sont les couches cachées.
Si vous avez une ou quelques couches cachées, vous avez un réseau neuronal peu profond. Si vous avez de nombreuses couches cachées, vous disposez d'un réseau neuronal profond.
Dans ce modèle, vous avez des données d'entrée, vous les pondérez et les transmettez à travers la fonction du neurone appelée fonction de seuil ou fonction d'activation.
Fondamentalement, c'est la somme de toutes les valeurs après l'avoir comparée à une certaine valeur. Si vous déclenchez un signal, le résultat est (1) ou rien n'est déclenché, alors (0). Cela est ensuite pondéré et transmis au neurone suivant, et le même type de fonction est exécuté.
Nous pouvons avoir une fonction sigmoïde (en forme de S) comme fonction d'activation.
Quant aux poids, ils sont simplement aléatoires pour commencer, et ils sont uniques par entrée dans le nœud / neurone.
Dans un "feed forward" typique, le type le plus élémentaire de réseau neuronal, vous faites passer vos informations directement à travers le réseau que vous avez créé, et vous comparez la sortie à ce que vous espériez que la sortie aurait utilisé vos exemples de données.
À partir de là, vous devez ajuster les poids pour vous aider à faire correspondre votre sortie à la sortie souhaitée.
Le fait d'envoyer des données directement via un réseau neuronal s'appelle un feed forward neural network.
Nos données vont de l'entrée, aux couches, dans l'ordre, puis à la sortie.
Lorsque nous reculons et commençons à ajuster les poids pour minimiser les pertes / coûts, cela s'appelle back propagation.
C'est un optimization problem. Avec le réseau de neurones, en pratique, nous devons traiter des centaines de milliers de variables, voire des millions, voire plus.
La première solution était d'utiliser la descente de gradient stochastique comme méthode d'optimisation. Maintenant, il existe des options comme AdaGrad, Adam Optimizer et ainsi de suite. Quoi qu'il en soit, il s'agit d'une opération de calcul massive. C'est pourquoi les réseaux de neurones ont été pour la plupart laissés sur les tablettes pendant plus d'un demi-siècle. Ce n'est que très récemment que nous avons même eu la puissance et l'architecture de nos machines pour même envisager de faire ces opérations, et les jeux de données correctement dimensionnés pour correspondre.
Pour les tâches de classification simples, les performances du réseau neuronal sont relativement proches des autres algorithmes simples tels que K Nearest Neighbours. La véritable utilité des réseaux de neurones se concrétise lorsque nous avons des données beaucoup plus volumineuses et des questions beaucoup plus complexes, qui surpassent les autres modèles d'apprentissage automatique.