modèle d'apprentissage profond en python avec keras

Contenu

Cet article a été publié dans le cadre du Blogathon sur la science des données

introduction

Un réseau de neurones artificiels est un sous-domaine de l'intelligence artificielle compilé sous des réseaux de neurones d'apprentissage en profondeur qui tente d'imiter le réseau de neurones que le cerveau humain fabrique., leur permettant de comprendre et de répondre comme un humain.

44394premier20keras20modèle20caractéristique20img-2377445

Table des matières

  • Présentation du réseau de neurones
  • Présentation de Keras
  • Implémentation pas à pas de votre premier modèle Keras
  • Combiner tout le code
  • Note de fin

Brève description du réseau de neurones

Le réseau de neurones est constitué d'un plus grand ensemble de neurones, appelées unités superposées. En mots simples, Le réseau neuronal est conçu pour effectuer une tâche plus complexe où les algorithmes d'apprentissage automatique ne trouvent pas leur utilité et n'atteignent pas les performances requises.

Les réseaux de neurones sont utilisés pour effectuer de nombreuses tâches complexes, y compris la classification des images, détection d'objets, identification du visage, le résumé du texte, reconnaissance vocale et la liste est interminable.

Comment les réseaux de neurones apprennent-ils des caractéristiques complexes? Un réseau de neurones a de nombreuses couches et chaque couche remplit une fonction spécifique et complexe du réseau. Plus il y a de couches, plus de performances sont reçues. C'est pourquoi le réseau de neurones est également appelé perceptron multicouche..

Introduction à la bibliothèque Kears

Keras est une bibliothèque de réseau de neurones rapide, Open source et facile à utiliser écrit en Python qui s'exécute sur Theano ou Tensorflow. Tensorflow fournit des API de bas et de haut niveau; En réalité, Keras ne fournit qu'une API de haut niveau.

En tant que débutant, il est recommandé de travailler d'abord avec Keras, puis de passer à TensorFlow. La raison en est que l'utilisation des fonctions Tensorflow en tant que débutant est un peu complexe à comprendre et à interpréter, mais la fonctionnalité Keras est simple.

Créez votre premier modèle de réseau de neurones avec Keras

Nous allons construire un simple réseau de neurones artificiels en utilisant Keras étape par étape qui vous aidera à créer votre propre modèle à l'avenir.

Paso 1) Charger les données

Nous allons utiliser les données sur le diabète des Indiens Pima que vous pouvez télécharger à partir de ici. Il s'agit d'un ensemble de données simple fourni par l'ensemble de données UCI Machine Learning, contenant un dossier médical de patients indiens. Nous devons prédire si le patient a un début de diabète dans les 5 ans.

importer des pandas au format pd
données = pd.read_csv('diabète.csv')
x = data.drop("Résultat", axe=1)
y = données["Résultat"]
25441diabete_dataset_img-8297579

C'est un problème de classification binaire où nous devons dire si l'apparition de votre diabète est 1 ou pas comme 0. Toutes les colonnes sont numériques, ce qui facilite la création directe d'un réseau de neurones sur celui-ci. Donc, nous avons séparé les données indépendantes et dépendantes.

Paso 2) Définir le modèle Keras

Le modèle dans Keras est toujours défini comme une séquence de couches. Cela signifie que nous initialisons le modèle de séquence et ajoutons les couches les unes après les autres qui s'exécutent comme la séquence de la liste. Nous devons pratiquement essayer d'expérimenter le processus d'ajout et de suppression de couches jusqu'à ce que nous soyons satisfaits de notre architecture..

Ce dont vous devez faire attention, c'est que la première couche a le nombre correct de caractéristiques d'entrée qui est spécifié à l'aide de la input_dim paramètre. on peut spécifier le nombre de neurones comme premier argument d'une couche. pour définir la fonction d'activation utilisez l'argument d'activation.

Dans cet exemple, nous allons définir un réseau entièrement connecté avec trois couches. Pour définir la couche entièrement connectée, utiliser la classe Keras Dense.

  • La première couche a 12 les neurones et la fonction d'activation comme relu
  • La deuxième couche cachée a 8 les neurones et la fonction d'activation comme relu
  • Finalement, dans la couche de sortie, nous utilisons 1 unité et activation comme sigmoïde car c'est un problème de classification binaire.
à partir de keras.models Importation séquentielle
de keras.layers importer Dense
modèle = Séquentiel()
model.ajouter(Dense(12, input_dim=8, activation="reprendre"))
model.ajouter(Dense(12, activation="reprendre"))
model.ajouter(Dense(1, activation="sigmoïde"))

N'oubliez pas de spécifier la forme correcte des données dans la première couche appelée couche d'entrée.

Paso 3) Compiler le modèle Keras

Quand on compile le modèle Keras, utiliser des bibliothèques numériques backend comme TensorFlow ou Theano. Quel que soit le backend que vous utilisez, choisit automatiquement la meilleure façon de représenter le réseau sur votre matériel, comme processeur, GPU ou TPU.

Quand on compile le modèle, nous devons spécifier des paramètres supplémentaires pour mieux évaluer le modèle et trouver le meilleur ensemble de poids pour affecter les entrées aux sorties.

  1. Fonction de perte: la fonction de perte doit être spécifiée pour évaluer l'ensemble de poids auxquels le modèle sera mappé. Nous utiliserons l'entropie croisée comme fonction de perte qui est en fait connue sous le nom d'entropie croisée binaire utilisée pour la classification binaire.
  2. Optimiseur: le second est l'optimiseur pour optimiser la perte. Nous utiliserons Adam, qui est une version populaire de la descente de gradient et donne le meilleur résultat sur la plupart des problèmes.
modèle.compile(perte ="binary_crossentropy", optimiseur="Adam", métriques=["précision"])

Paso 4) Commence l'entraînement (adapter le modèle)

Après une compilation réussie du modèle, nous sommes prêts à adapter les données au modèle et à commencer à entraîner le réseau de neurones. En plus de fournir des données pour modéliser, nous devons définir un certain nombre d'époques et une taille de lot dans laquelle la formation se produit.

  • Époque: passage unique à travers toutes les lignes de l'ensemble de données d'entraînement
  • Taille du lot: nombre d'échantillons pris en compte par le modèle avant la mise à jour des poids.
model.fit(X,Oui, époques=150, taille_lot=10)

Une époque peut être composée de plusieurs lots. Ces paramètres sont finalement décidés après la méthode de chaleur et d'essai.

Paso 5) Évaluer le modèle

Après avoir formé le modèle, faisons connaître les performances d'un réseau de neurones. Le modèle est toujours évalué dans un ensemble de test. Dans cet exemple, Pour la simplicité, nous nous sommes entraînés sur un ensemble de données complet, mais en travaillant sur n'importe quel projet, divise essentiellement les données et entraîne le réseau.

_, precision = model.evaluate(X, Oui)
imprimer("Précision du modèle: %.2F"% (précision*100))

Pour évaluer le modèle, utiliser la méthode d'évaluation et transmettre l'entrée et la sortie au modèle et vérifier les performances.

Paso 6) Faire des prédictions

prédire la sortie de nouvelles données en utilisant simplement la méthode de prédiction. nous avons un énoncé de problème de classification binaire, donc la sortie sera simplement 0 O 1.

prédictions = model.predict(X)
imprimer([tour(X[0]) pour x dans les prédictions])

Alternativement, vous pouvez également utiliser le prédire_classes fonction pour prédire directement les classes.

C'est résolu, nous avons facilement créé un réseau de neurones avec 3 couches en utilisant seulement quelques lignes de code avec Keras.

Compilez tout le code ensemble

modèle = Séquentiel()  #définir le modèle
model.ajouter(Dense(12, input_dim=8, activation="reprendre"))
model.ajouter(Dense(8, activation="reprendre"))
model.ajouter(Dense(1, activation="sigmoïde"))
modèle.compile(perte ="binary_crossentropy", optimiseur="Adam", métriques=["précision"]) #modèle de compilation
model.fit(X,Oui, époques=150, taille_lot=10)  #entraînement
_, precision = model.evaluate(X,Oui)    #essai
imprimer("Précision du modèle: %.2F"% (précision*100))
prédictions = model.predict(X)     #faire des prédictions
#arrondir la prédiction
arrondi = [tour(X[0]) pour x dans les prédictions]

Note de fin

Un réseau de neurones construit un réseau de couches connectées avec plusieurs neurones dans chaque couche. Au fur et à mesure que nous augmentons le nombre de couches, le réseau est capable d'apprendre des caractéristiques plus complexes.

Vous avez facilement créé votre premier modèle de réseau de neurones avec Keras. J'espère que c'était facile de saisir toutes les choses. Si vous avez des questions, commentez s'il vous plaît. je serai heureux de vous aider.

Si vous aimez l'article, Jetez un oeil sur mes autres objets. Relier

Abonnez-vous à notre newsletter

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