Cet article a été publié dans le cadre de la Blogathon sur la science des données
Dans ce billet, Je vais expliquer les concepts de base des réseaux de neurones et leur code. Actuellement, de nombreux étudiants apprennent simplement à coder des réseaux de neurones sans en comprendre les bases et son fonctionnement interne. Premier, Que sont les réseaux de neurones?
Qu'est-ce que le réseau de neurones?
Neural Network est une série d'algorithmes qui tentent d'imiter le cerveau humain et de trouver le lien entre les ensembles de données. Il est utilisé dans divers cas d'utilisation comme régression, classification, accréditation d'image et bien d'autres.
Comme nous l'avons dit précédemment, les réseaux de neurones tentent d'imiter le cerveau humain, alors il pourrait y avoir des différences et des similitudes entre eux. Parlons-en brièvement.
Quelques différences importantes entre elles sont que la neuronal rougeLes réseaux de neurones sont des modèles computationnels inspirés du fonctionnement du cerveau humain. Ils utilisent des structures appelées neurones artificiels pour traiter et apprendre des données. Ces réseaux sont fondamentaux dans le domaine de l’intelligence artificielle, permettant des avancées significatives dans des tâches telles que la reconnaissance d’images, Traitement du langage naturel et prédiction de séries temporelles, entre autres. Leur capacité à apprendre des motifs complexes en fait des outils puissants.. la biologique réalise un traitement parallèle, tandis que le réseau de neurones artificiels effectue un traitement en série, aussi dans le premier, le traitement est plus lent (en millisecondes), tandis que dans ce dernier, le traitement est plus rapide (en une nanoseconde).
Architecture ANN
Un réseau de neurones a de nombreuses couches et chaque couche remplit une fonction spécifique, et à mesure que la complexité du modèle augmente, le nombre de couches augmente également, c'est pourquoi il est connu comme un perceptron multicouche.
La forme la plus pure d'un réseau de neurones a trois couches: la couche d'entréeLa "couche d'entrée" fait référence au niveau initial d’un processus d’analyse de données ou d’architectures de réseaux de neurones. Sa fonction principale est de recevoir et de traiter l’information brute avant qu’elle ne soit transformée par les couches suivantes. Dans le contexte de l’apprentissage automatique, Une bonne configuration de la couche d’entrée est cruciale pour garantir l’efficacité du modèle et optimiser ses performances dans des tâches spécifiques...., le calque caché et le Couche de sortieLa "Couche de sortie" est un concept utilisé dans le domaine des technologies de l’information et de la conception de systèmes. Il s’agit de la dernière couche d’un modèle logiciel ou d’une architecture qui est chargée de présenter les résultats à l’utilisateur final. Cette couche est cruciale pour l’expérience utilisateur, puisqu’il permet une interaction directe avec le système et la visualisation des données traitées..... La couche d'entrée collecte les signaux d'entrée et les transfère à la couche suivante et, finalement, la couche de sortie donne la prévision finale et ces réseaux neuronaux doivent être entraînés avec certaines données de entraînementLa formation est un processus systématique conçu pour améliorer les compétences, connaissances ou aptitudes physiques. Il est appliqué dans divers domaines, Comme le sport, Éducation et développement professionnel. Un programme d’entraînement efficace comprend la planification des objectifs, Pratique régulière et évaluation des progrès. L’adaptation aux besoins individuels et la motivation sont des facteurs clés pour obtenir des résultats réussis et durables dans toutes les disciplines...., ainsi qu'avec des algorithmes d'apprentissage automatique avant de fournir un obstacle particulier. À présent, comprenons mieux le perceptron.
À propos de Perceptron
Comme discuté précédemment, le perceptron multicouche est simplement les couches cachées ou denses. Ils sont constitués de nombreux neurones et les neurones sont l'unité principale qui travaille ensemble pour former le perceptron.. En mots simples, comme vous pouvez le voir sur la photo ci-dessus, chaque cercle représente des neurones et une combinaison verticale de neurones représente des perceptrons qui sont simplement une Capa DensaLa couche dense est une formation géologique qui se caractérise par sa grande compacité et sa résistance. On le trouve couramment sous terre, où il agit comme une barrière à l’écoulement de l’eau et d’autres fluides. Sa composition varie, Mais il comprend généralement des minéraux lourds, ce qui lui confère des propriétés uniques. Cette couche est cruciale dans l’ingénierie géologique et les études des ressources en eau, car il influence la disponibilité et la qualité de l’eau...
À présent, dans l'image ci-dessus, vous pouvez voir la vue détaillée de chaque neurone. Ici, chaque neurone a des poids (dans l'image ci-dessus w1, w2, w3) et les préjugés et, sur la base de ces calculs, sont exécutés comme, combinaison = biais + pesos * entrée (F = w1 * x1 + w2 * x2 + w3 * x3) et enfin on applique la fonction de réveilLa fonction d’activation est un composant clé des réseaux de neurones, puisqu’il détermine la sortie d’un neurone en fonction de son entrée. Son objectif principal est d’introduire des non-linéarités dans le modèle, vous permettant d’apprendre des modèles complexes dans les données. Il existe différentes fonctions d’activation, comme le sigmoïde, ReLU et tanh, chacun avec des caractéristiques particulières qui affectent les performances du modèle dans différentes applications.... sortie = activation (combinaison) dans l'image ci-dessus, l'activation est sigmoïde représentée par 1 / (1 + e-F). Il existe d'autres fonctions d'activation, Quoi reprendreLa fonction d’activation ReLU (Unité linéaire rectifiée) Il est largement utilisé dans les réseaux neuronaux en raison de sa simplicité et de son efficacité. Défini comme suit : ( F(X) = max(0, X) ), ReLU permet aux neurones de se déclencher uniquement lorsque l’entrée est positive, ce qui permet d’atténuer le problème de l’évanouissement en pente. Il a été démontré que son utilisation améliore les performances dans diverses tâches d’apprentissage profond, faire de ReLU une option.., Fuite ReLU, soh et bien d'autres.
ANN travail
Au début, les informations sont transmises à la couche d'entrée qui les transfère ensuite aux couches cachées, et l'interconnexion entre ces deux couches attribue des poids à chaque entrée de manière aléatoire au point initial. et plus tard, le biais est ajouté à chaque neurone d'entrée et après cela, la somme pondérée qui est une combinaison de poids et de biais passe par la fonction d'activation. La fonction d'activation a la responsabilité de quoi nœudNodo est une plateforme digitale qui facilite la mise en relation entre les professionnels et les entreprises à la recherche de talents. Grâce à un système intuitif, Permet aux utilisateurs de créer des profils, Partager des expériences et accéder à des opportunités d’emploi. L’accent mis sur la collaboration et le réseautage fait de Nodo un outil précieux pour ceux qui souhaitent élargir leur réseau professionnel et trouver des projets qui correspondent à leurs compétences et à leurs objectifs.... déclencher pour l'extraction des caractéristiques et enfin la sortie est calculée. Toute cette procédure est connue sous le nom de propagation directe.. Après avoir obtenu le modèle de sortie à comparer avec la sortie d'origine et l'erreur est connue et enfin, les poids sont mis à jour en propagation vers l'arrière pour réduire l'erreur et cette procédure se poursuit pendant un certain nombre d'époques (itération). En résumé, les poids du modèle sont mis à jour et la prévision est effectuée.
avantage
- ANN a la capacité d'apprendre et de modéliser des relations complexes et non linéaires, puisque de nombreuses relations entrées-sorties ne sont pas linéaires.
- Après l'entrainement, ANN peut déduire des relations invisibles à partir de données invisibles et, pour cela, il généralise.
- Contrairement à de nombreux modèles d'apprentissage automatique, ANN n'a aucune restriction sur les ensembles de données, puisque les données doivent avoir une distribution gaussienne ou aucune autre distribution.
Applications
Il existe de nombreuses applications de l'ANN. Certains d'entre eux sont :
- Prétraitement des images et accréditation des personnages.
- Prévision.
- Cote de crédit.
- Détection de fraude.
- Gestion de portefeuille.
PARTIE CODAGE
Maintenant codons et comprenons les concepts qui l'utilisent.
1. Comprendre et charger vos ensembles de données
Première importation de bibliothèques en tant que NumPy, pandas et aussi importer des classes séquentielles dites denses de la bibliothèque Keras.
importer numpy en tant que np importer des pandas au format pd à partir de keras.models Importation séquentielle de keras.layers importer Dense
À présent, ici, je vais utiliser l'ensemble de données sur l'apparition du diabète des Indiens Pima, qui est un ensemble de données d'apprentissage automatique standard du référentiel d'apprentissage automatique UCI et le lien peut être trouvé ci-dessous. Cet ensemble de données indique les antécédents médicaux du patient et s'il a eu un début de diabète dans les cinq ans, c'est aussi un obstacle de classification binaire.
Vous pouvez télécharger les ensembles de données ici:
Importez maintenant l'ensemble de données à l'aide de pandas et plus tard, nous en apprendrons davantage sur les ensembles de données et diviserons plus tard les ensembles de données en variables dépendantes et indépendantes.
ensemble de données = pd.read_csv('pima-indians-diabetes.csv')
X = jeu de données[:,0:8]
y = jeu de données[:,8]
2. Définition du modèle Keras
Les modèles dans Keras sont définis comme une séquence de couches dans laquelle chaque couche est ajoutée l'une après l'autre. L'entrée doit contenir des caractéristiques d'entrée et est spécifiée lors de la création de la première couche avec input_dims argument. Ici, input_dims sera 8.
Maintenant, la question se pose de savoir comment choisir le nombre de couches et le nombre de neurones dans chaque couche.
Il est assez difficile de savoir combien de couches nous devrions utiliser. En général pour cela Accordeur Keras on utilise, qui a une gamme de couches, une gamme de neurones et certaines fonctions d'activation. et par la suite, par permutation et combinaison, essayer de trouver ce qui est le plus approprié. Mais un inconvénient est que cela prend beaucoup de temps. Vous pouvez consulter sa documentation. Accordeur Keras pour plus de détails.
Dans cet exemple, un réseau entièrement connecté avec trois couches est utilisé qui est défini à l'aide d'une classe dense. Le premier argument prend le nombre de neurones dans cette couche et, et activation L'argument prend la fonction d'activation en entrée. Ici, ReLU est utilisé comme fonction d'activation dans les deux premières couches et sigmoïde dans la dernière couche, puisqu'il s'agit d'un obstacle de classification binaire.
modèle = Séquentiel() model.ajouter(Dense(12, input_dim=8, activation='relu')) model.ajouter(Dense(8, activation='relu')) model.ajouter(Dense(1, activation='sigmoid'))
3. Compiler le modèle Keras
Pendant la compilation, nous devons spécifier la Fonction de perteLa fonction de perte est un outil fondamental de l’apprentissage automatique qui quantifie l’écart entre les prédictions du modèle et les valeurs réelles. Son but est de guider le processus de formation en minimisant cette différence, permettant ainsi au modèle d’apprendre plus efficacement. Il existe différents types de fonctions de perte, tels que l’erreur quadratique moyenne et l’entropie croisée, chacun adapté à différentes tâches et... pour calculer les erreurs, l'optimiseur pour mettre à jour les poids et les métriques.
Dans cette circonstance, nous utiliserons « binary_crossentropy« comme lui perdu argument étant donné qu'il s'agit d'un obstacle de classification binaire.
Ici, nous prendrons optimiseur Quoi « Adam« Comme il s'ajuste automatiquement et fonctionne bien sur un large éventail de problèmes et qu'en fin de compte, nous collecterons et signalerons l'exactitude du classement au moyen de métrique argument.
modèle.compile(perte ="binary_crossentropy", optimiseur="Adam", métriques=['précision'])
4. Ajustement du modèle Keras.
Maintenant, nous allons adapter notre modèle aux données chargées en appelant pour se adapter à() fonction dans le modèle.
La procédure d'apprentissage s'exécutera pendant un nombre fixe d'itérations à travers l'ensemble de données spécifié via le époques argument. Le nombre de lignes dans l'ensemble de données doit être mis à jour et est mis à jour à chaque époque, et régler en utilisant le La taille du lot argument.
Ici, nous exécuterons 150 époques et une taille de lot de 10.
model.fit(X, Oui, époques=150, taille_lot=10)
5. Examiner le modèle Keras
L'évaluation du modèle sur l'ensemble de données peut être effectuée en utilisant le examiner() une fonction. Deux arguments sont nécessaires, En d'autres termes, entrée et sortie. Il générera une prédiction pour chaque paire d'entrée et de sortie et collectera les scores, y compris la perte moyenne et toutes les mesures, comme la précision.
Les examiner() La fonction renverra une liste avec deux valeurs, le premier est la perte du modèle et le second sera la précision du modèle dans le jeu de données. Nous sommes uniquement intéressés à signaler l'exactitude et, pour cela, nous ignorons la valeur de la perte.
_, precision = model.evaluate(X, Oui)
imprimer('Précision: %.2f' % (précision*100))
6.Faire des prédictions
La prévision peut être faite en appelant prédire() fonction dans le modèle. Ici, la fonction d'activation sigmoïde est utilisée dans la couche de sortie, les prédictions seront donc une probabilité comprise entre 0 Oui 1.
prédictions = model.predict(X) arrondi = [tour(X[0]) pour x dans les prédictions]
Résumé du code final
Ici, nous avons appris comment créer votre premier modèle de réseau neuronal en utilisant la puissante bibliothèque Keras Python pour le l'apprentissage en profondeurL'apprentissage en profondeur, Une sous-discipline de l’intelligence artificielle, s’appuie sur des réseaux de neurones artificiels pour analyser et traiter de grands volumes de données. Cette technique permet aux machines d’apprendre des motifs et d’effectuer des tâches complexes, comme la reconnaissance vocale et la vision par ordinateur. Sa capacité à s’améliorer continuellement au fur et à mesure que de nouvelles données lui sont fournies en fait un outil clé dans diverses industries, de la santé....
Il y a six étapes principales dans l'utilisation de Keras pour créer un réseau de neurones ou un modèle d'apprentissage en profondeur qui charge les données, définir le réseau de neurones à Keras, compiler plus tard, évaluer et enfin faire des prédictions avec le modèle.
CONCLUSION
Dans cet article, nous avons compris les concepts de base des réseaux de neurones artificiels et leur code. Dans la partie codage, nous avons utilisé l'ensemble de données sur l'apparition du diabète chez les Indiens Pima. ici nous avons compris en détail les six étapes principales pour créer des réseaux de neurones. A part ça, beaucoup de choses n'ont pas été couvertes dans les blogs et, ensuite, J'ai fourni les liens d'autres blogs à partir desquels vous pouvez consulter les sujets.
- Différents types de fonctions de coût et leurs applications.
- Descente d'Acerca de Gradient.
- Documentation Keras
Les médias présentés dans cet article ne sont pas la propriété de DataPeaker et sont utilisés à la discrétion de l'auteur.



