[PYTHON] [TensorFlow] [Keras] Aufbau eines neuronalen Netzwerks mit Keras

In diesem Artikel "Erstellen Sie ein neuronales Netzwerk mit Python ohne Verwendung einer Bibliothek --Qiita" Ein Artikel (Aufbau eines neuronalen Netzes mit Chainer - Qiita), den ein Senior des Unternehmens mit Chainer ausprobiert hat Ich habe es auch mit Keras versucht (Material für LT in der Firma)

Keras Documentation

Alle Quellen und Ausführungsergebnisse (Jupyter Notebook)

Die Quelle und das Ausführungsergebnis sind in der folgenden Übersicht aufgeführt. Aufbau eines neuronalen Netzwerks mit Keras

Implementierung und Beschreibung

Datenerstellung

Erstellen Sie Eingabedaten. Dies ist genau die gleiche Implementierung.

Erstellung von Eingabedaten (Cum-Teacher-Daten)


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

Modellieren

Erstellen Sie ein Modell mit Keras.

Modellieren


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')

Es ist ungefähr das gleiche, weil ich Chainer's portiert habe. (Es scheint jedoch, dass die Verlustfunktion in Classifier in Chainer versteckt ist, aber was wird verwendet?) => [Addition] Im folgenden Artikel wurde gesagt, dass "softmax_cross_entropy" in Chainers Klassifikator verwendet wird. Hinweise zu Änderungen in Chainer 1.5 --studylog / Northern Clouds

Art Wert einstellen
Eingabeebene 2
Versteckte Ebene 6
Aktivierungsfunktion tanh
Ausgabeschicht 2
Optimierer (Optimierungsalgorithmus) Adam
Zielfunktion (Verlustfunktion) Durchschnittlicher quadratischer Fehler(Mean Squared Error)

Sequential Model Guide-Keras-Dokumentation Aktivierungsfunktion - Keras-Dokumentation Optimization-Keras-Dokumentation Zielfunktion - Keras-Dokumentation

(Epoche war 20000 in Chainer, aber es wurde zum Zeitpunkt der Transplantation fälschlicherweise auf 2000 geändert, und es war ein schlechtes Ergebnis, wenn die verborgene Schicht 3 war, was mit Chainer identisch ist. Als die verborgene Schicht jedoch auf 6 gesetzt wurde, war es 2000. Ich habe ein gutes Ergebnis erzielt

Lernen

Trainiere mit model.fit (). In Bezug auf y_train wird es in ein zweidimensionales Array (Vektor) mit einer Wahrscheinlichkeit von 0 und einer Wahrscheinlichkeit von 1 umgewandelt. (Chainer scheint es ohne Erlaubnis zu konvertieren)

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)

Numpy Utility - Keras-Dokumentation

Ergebnisanzeige

Ergebnisausgabe


# 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) #Holen Sie sich den Index, der der Maximalwert ist

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

ダウンロード (1).png

Ich denke, dies ergibt fast das gleiche Ergebnis wie der Originalartikel.

Recommended Posts

[TensorFlow] [Keras] Aufbau eines neuronalen Netzwerks mit Keras
Neuronales Netzwerk mit Python (Scikit-Learn)
Neuronales Netz beginnend mit Chainer
4. Kreisparameter mit einem neuronalen Netzwerk!
TensorFlow Tutorial-Convolution Neuronales Netz (Übersetzung)
MNIST (DCNN) mit Keras (TensorFlow-Backend)
Neuronales Netzwerk mit OpenCV 3 und Python 3
Einfaches Klassifizierungsmodell mit neuronalem Netz
Komponieren Sie mit einem neuronalen Netzwerk! Führen Sie Magenta aus
Vorhersage von Zeitreihendaten mit einem neuronalen Netzwerk
Vergleichen Sie rohen TensorFlow mit tf.contrib.learn und Keras
Behalten Sie das mit PyBrain aufgebaute neuronale Netzwerk bei
2. Mittelwert und Standardabweichung beim neuronalen Netz!
Erstellen Sie mithilfe des TensorFlow-Faltungsnetzwerks einen Klassifikator mit einer Handschrifterkennungsrate von 99,2%
Zundokokiyoshi mit TensorFlow
Brechen Sie Blöcke mit Tensorflow
Parametrisches neuronales Netzwerk
Überprüfung der Chargennormalisierung mit einem mehrschichtigen neuronalen Netz
Tensorflow / Keras-Zusammenfassung
Trainieren Sie MNIST-Daten mit PyTorch mithilfe eines neuronalen Netzwerks
Bilderkennung mit Keras
[Umgebungskonstruktion] @anaconda, die Keras / Tensorflow auf der GPU ausführt
Daten mit TensorFlow lesen
Bootsrennen Vorhersage mit TensorFlow
Implementieren Sie das Convolutional Neural Network
Identifizieren Sie den Namen aus dem Blumenbild mit Keras (Tensorfluss)
CIFAR-10-Tutorial mit Keras
Implementieren Sie das neuronale Netzwerk von Grund auf neu
Erfahrung mit faltbaren neuronalen Netzen
Fordern Sie die Bildklassifizierung mit TensorFlow2 + Keras 3 heraus ~ Visualisieren Sie MNIST-Daten ~
Multivariates LSTM mit Keras
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
Lernen Sie Wasserstein GAN mit Keras-Modell und TensorFlow-Optimierung
Versuchen Sie eine Regression mit TensorFlow
Ich habe das TensorFlow-Tutorial mit Kommentaren ausgeführt (erstes neuronales Netzwerk: Beginn des Klassifizierungsproblems)
Ich habe ein Convolutional Neural Network (CNN) mit einem TensorFlow-Tutorial zur Cloud9-Klassifizierung handgeschriebener Bilder ausprobiert.
Erstellen Sie eine Web-App, die Zahlen mit einem neuronalen Netzwerk erkennt
2020/02 Python 3.7 + TensorFlow 2.1 + Keras 2.3.1 + YOLOv3 Objekterkennung mit der neuesten Version
Versuchen Sie, ein Deep Learning / Neuronales Netzwerk mit Scratch aufzubauen
Eine Python-Probe zum Lernen von XOR mit einem genetischen Algorithmus in einem neuronalen Netz
[TensorFlow 2 / Keras] Ausführen des Lernens mit CTC Loss in Keras
[Deep Learning] Bildklassifizierung mit Faltungsnetz [DW Tag 4]
Aufbau eines neuronalen Netzwerks, das XOR durch Z3 reproduziert
[Ubuntu 18.04] Aufbau einer Tensorflow 2.0.0-GPU-Umgebung
Implementieren Sie ein dreischichtiges neuronales Netzwerk
Übersetzen Erste Schritte mit TensorFlow
Simulieren Sie neuronale Aktivitäten mit Brian2
Versuchen Sie es mit TensorFlow
Verwenden Sie TensorFlow mit Intellij IDEA
Multiple Regressionsanalyse mit Keras
Ungefähre Sinusfunktion mit TensorFlow
AutoEncodder-Notizen mit Keras
Word2vec mit Theano + Keras implementiert
Satzerzeugung mit GRU (Keras)
Optimieren von Keras-Parametern mit Keras Tuner
Aktienkursprognose mit Tensorflow
Python-Umgebungskonstruktion und TensorFlow
Erstellen Sie einfach CNNs mit Keras
Implementierung eines neuronalen Netzwerks in Python