[PYTHON] [TensorFlow] [Keras] Construction d'un réseau neuronal avec Keras

Dans cet article, "Créer un réseau de neurones avec Python sans utiliser de bibliothèque --Qiita" Un article (Construction de réseau neuronal avec chainer --Qiita) qu'un senior de l'entreprise a essayé avec Chainer Je l'ai aussi essayé avec Keras (matériel pour LT dans l'entreprise)

Keras Documentation

Toutes les sources et résultats d'exécution (Jupyter Notebook)

La source et le résultat de l'exécution sont répertoriés dans la liste suivante. Création d'un réseau neuronal avec Keras

Mise en œuvre et description

Création de données

Créez des données d'entrée. C'est exactement la même implémentation.

Création de données d'entrée (données cum-enseignant)


import numpy as np
import sklearn.datasets
import matplotlib
import matplotlib.pyplot as plt

np.random.seed(0)
X,y=sklearn.datasets.make_moons(200,noise=0.20)
plt.scatter(X[:,0], X[:,1], s=40, c=y, cmap=plt.cm.Spectral)

ダウンロード.png

La modélisation

Créez un modèle avec Keras.

La modélisation


import keras
from keras.models import Sequential
from keras.layers import Dense, Activation

model = Sequential()
model.add(Dense(output_dim=6, input_dim=2))
model.add(Activation('tanh'))
model.add(Dense(output_dim=2))
model.compile(optimizer='Adam', loss='mse')

C'est à peu près la même parce que j'ai porté Chainer's. (Cependant, il semble que la fonction de perte soit cachée dans Classifier dans Chainer, mais qu'est-ce qui est utilisé?) => [Addition] Dans l'article suivant, il a été dit que softmax_cross_entropy est utilisé dans le classificateur de Chainer. Notes sur les changements dans Chainer 1.5 --studylog / Northern Clouds

Type Définir la valeur
Couche d'entrée 2
Couche cachée 6
Fonction d'activation tanh
Couche de sortie 2
Optimiseur (algorithme d'optimisation) Adam
Fonction objective (fonction de perte) Erreur quadratique moyenne(Mean Squared Error)

Guide du modèle séquentiel - Documentation Keras Fonction d'activation - Documentation Keras Documentation Optimisation-Keras Fonction Objectif - Documentation Keras

(L'époque était de 20000 dans Chainer, mais elle a été changée par erreur à 2000 au moment de la transplantation, et ce n'était pas un bon résultat si la couche cachée était de 3, ce qui est identique à Chainer. Lorsque la couche cachée était réglée sur 6, c'était 2000. J'ai eu un bon résultat)

Apprentissage

Entraînez-vous avec model.fit (). Concernant y_train, il est converti en un tableau bidimensionnel (vecteur) avec une probabilité de 0 et une probabilité de 1. (Chainer semble le convertir sans autorisation)

x_train = X
y_train = keras.utils.np_utils.to_categorical(y, nb_classes=2)
model.fit(x=x_train, y=y_train, nb_epoch=2000)

Utilitaire Numpy - Documentation Keras

Affichage des résultats

Sortie de résultat


# https://gist.github.com/dennybritz/ff8e7c2954dd47a4ce5f
def plot_decision_boundary(pred_func):
    # Set min and max values and give it some padding
    x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
    y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
    h = 0.01
    # Generate a grid of points with distance h between them
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    # Predict the function value for the whole gid
    Z = pred_func(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)
    # Plot the contour and training examples
    plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)
    plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)

def predict(model, x_data):
    y = model.predict(x_data)
    return np.argmax(y.data, axis=1) #Obtenez l'index qui est la valeur maximale

plot_decision_boundary(lambda x: predict(model, x))

ダウンロード (1).png

Je pense que cela donne presque le même résultat que l'article original.

Recommended Posts

[TensorFlow] [Keras] Construction d'un réseau neuronal avec Keras
Réseau de neurones avec Python (scikit-learn)
Réseau de neurones commençant par Chainer
4. Entourez les paramètres avec un réseau neuronal!
Tutoriel TensorFlow - Réseau neuronal à convolution (traduction)
MNIST (DCNN) avec Keras (backend TensorFlow)
Réseau neuronal avec OpenCV 3 et Python 3
Modèle de classification simple avec réseau neuronal
Composez avec un réseau neuronal! Run Magenta
Prédire les données de séries chronologiques avec un réseau neuronal
Comparez le TensorFlow brut avec tf.contrib.learn et Keras
Persister le réseau de neurones construit avec PyBrain
2. Écart moyen et standard avec le réseau neuronal!
Créez un classificateur avec un taux de reconnaissance de l'écriture manuscrite de 99,2% à l'aide du réseau neuronal convolutif TensorFlow
Zundokokiyoshi avec TensorFlow
Casser des blocs avec Tensorflow
Réseau neuronal paramétrique
Vérification de la normalisation des lots avec un réseau neuronal multicouche
Résumé de Tensorflow / Keras
Entraînez les données MNIST avec PyTorch en utilisant un réseau neuronal
Reconnaissance d'image avec keras
[Construction de l'environnement] @anaconda qui exécute keras / tensorflow sur GPU
Lecture de données avec TensorFlow
Prévisions de courses de bateaux avec TensorFlow
Implémenter un réseau neuronal convolutif
Identifiez le nom de l'image de la fleur avec des keras (flux tenseur)
Tutoriel CIFAR-10 avec Keras
Implémenter le réseau neuronal à partir de zéro
Expérience de réseau de neurones pliable
Challenge classification des images par TensorFlow2 + Keras 3 ~ Visualiser les données MNIST ~
LSTM multivarié avec Keras
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow
Découvrez Wasserstein GAN avec le modèle Keras et l'optimisation TensorFlow
Essayez la régression avec TensorFlow
J'ai couru le tutoriel TensorFlow avec des commentaires (premier réseau de neurones: le début du problème de classification)
J'ai essayé un réseau de neurones convolutifs (CNN) avec un tutoriel TensorFlow sur Cloud9-Classification des images manuscrites-
Créez une application Web qui reconnaît les nombres avec un réseau neuronal
2020/02 Python 3.7 + TensorFlow 2.1 + Keras 2.3.1 + YOLOv3 Détection d'objets avec la dernière version
Essayez de créer un réseau de neurones / d'apprentissage en profondeur avec scratch
Un exemple de python pour apprendre XOR avec un algorithme génétique sur un réseau neuronal
[TensorFlow 2 / Keras] Comment exécuter l'apprentissage avec CTC Loss dans Keras
[Apprentissage en profondeur] Classification d'images avec un réseau neuronal convolutif [DW jour 4]
Construction d'un réseau neuronal qui reproduit XOR par Z3
[Ubuntu 18.04] Construction de l'environnement Tensorflow 2.0.0-GPU
Implémenter un réseau neuronal à 3 couches
Traduire Premiers pas avec TensorFlow
Simuler l'activité neurale avec Brian2
Essayez l'apprentissage en profondeur avec TensorFlow
Utiliser TensorFlow avec Intellij IDEA
Analyse de régression multiple avec Keras
Fonction sinueuse approximative avec TensorFlow
Notes AutoEncodder avec Keras
Implémentation de word2vec avec Theano + Keras
Génération de phrases avec GRU (keras)
Réglage des paramètres Keras avec Keras Tuner
Prévision du cours de l'action avec tensorflow
Construction d'environnement Python et TensorFlow
Créez facilement des CNN avec Keras
Implémentation de réseau neuronal en python