ANN pour la science des données | Notions de base sur les réseaux de neurones artificiels

Contenu

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 rouge 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ée, le calque caché et le Couche de sortie. 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înement, 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 Densa.

À 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éveil 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 reprendre, 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œud 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

  1. 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.
  2. Après l'entrainement, ANN peut déduire des relations invisibles à partir de données invisibles et, pour cela, il généralise.
  3. 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 :

  1. Prétraitement des images et accréditation des personnages.
  2. Prévision.
  3. Cote de crédit.
  4. Détection de fraude.
  5. 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:

Ensembles de données

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 perte 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 profondeur.

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.

  1. Différents types de fonctions de coût et leurs applications.
  2. Descente d'Acerca de Gradient.
  3. 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.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.

Haut-parleur de données