Deep-Learning-Modell in Python mit Keras

Inhalt

Dieser Artikel wurde im Rahmen der Data Science Blogathon

Einführung

Ein künstliches neuronales Netzwerk ist ein Teilgebiet der künstlichen Intelligenz, das unter Deep Learning neuronalen Netzwerken zusammengestellt wird und versucht, das Netzwerk von Neuronen nachzuahmen, das das menschliche Gehirn bildet, es ihnen zu ermöglichen, wie ein Mensch zu verstehen und darauf zu reagieren.

44394first20keras20model20feature20img-2377445

Inhaltsverzeichnis

  • Übersicht über neuronale Netze
  • Einführung in Keras
  • Schritt-für-Schritt-Implementierung Ihres ersten Keras-Modells
  • Den ganzen Code kombinieren
  • EndNote

Kurzbeschreibung des neuronalen Netzes

Das neuronale Netz besteht aus einer größeren Menge von Neuronen, sogenannte geschichtete Einheiten. In einfachen Worten, Neuronale Netze wurden entwickelt, um eine komplexere Aufgabe auszuführen, bei der Algorithmen des maschinellen Lernens ihre Verwendung nicht finden und nicht die erforderliche Leistung erreichen.

Neuronale Netze werden verwendet, um viele komplexe Aufgaben auszuführen, inklusive Bildklassifizierung, Objekterkennung, Gesichtserkennung, die Textzusammenfassung, Spracherkennung und die Liste ist endlos.

Wie lernen neuronale Netze komplexe Eigenschaften?? Ein neuronales Netzwerk hat viele Schichten und jede Schicht führt eine spezifische und komplexe Funktion des Netzwerks aus. Je mehr Schichten sind, mehr Leistung wird empfangen. Deshalb wird das neuronale Netz auch als mehrschichtiges Perzeptron bezeichnet..

Einführung in die Kears-Bibliothek

Keras ist eine schnelle neuronale Netzwerkbibliothek, Open Source und einfach zu verwenden, geschrieben in Python, das auf Theano oder Tensorflow läuft. Tensorflow bietet sowohl Low-Level- als auch High-Level-APIs; in der Tat, Keras bietet nur High-Level-API.

Als Anfänger, es wird empfohlen, zuerst mit Keras zu arbeiten und dann zu TensorFlow zu wechseln. Der Grund dafür ist, dass die Verwendung von Tensorflow-Funktionen als Anfänger etwas komplex zu verstehen und zu interpretieren ist, aber Keras Funktionalität ist einfach.

Erstellen Sie Ihr erstes neuronales Netzwerkmodell mit Keras

Wir werden Schritt für Schritt ein einfaches künstliches neuronales Netz mit Keras aufbauen, das Ihnen helfen wird, in Zukunft Ihr eigenes Modell zu erstellen.

Paso 1) Lade Daten

Wir werden die Diabetesdaten von Pima Indians verwenden, die Sie herunterladen können von hier. Es handelt sich um einen einfachen Datensatz, der vom UCI Machine Learning-Datensatz bereitgestellt wird, mit einer Krankenakte indischer Patienten. Wir müssen vorhersagen, ob der Patient innerhalb von 5 Jahre.

Pandas als pd importieren
data = pd.read_csv('diabetes.csv')
x = data.drop("Ergebnis", Achse=1)
y = Daten["Ergebnis"]
25441diabetes_dataset_img-8297579

Es ist ein binäres Klassifikationsproblem, bei dem wir sagen müssen, ob Ihr Diabetes-Beginn 1 oder nicht mögen 0. Alle Spalten sind numerisch, was die direkte Erstellung eines neuronalen Netzes darauf erleichtert. Deswegen, wir haben unabhängige und abhängige Daten getrennt.

Paso 2) Definieren Sie das Keras-Modell

Das Modell in Keras ist immer als eine Abfolge von Schichten definiert. Das heißt, wir initialisieren das Sequenzmodell und fügen die Layer nacheinander hinzu, die als Sequenz aus der Liste ablaufen. Wir müssen praktisch versuchen, mit dem Prozess des Hinzufügens und Entfernens von Ebenen zu experimentieren, bis wir mit unserer Architektur zufrieden sind..

Sie müssen darauf achten, dass die erste Ebene die richtige Anzahl von Eingabemerkmalen hat, die mit dem input_dim Parameter. wir können die Anzahl der Neuronen als erstes Argument einer Schicht angeben. Um die Aktivierungsfunktion zu definieren, verwenden Sie das Aktivierungsargument.

In diesem Beispiel, Wir werden ein vollständig verbundenes Netzwerk mit drei Schichten definieren. So definieren Sie die vollständig verbundene Ebene, Verwenden Sie die Keras Dense-Klasse.

  • Die erste Schicht hat 12 Neuronen und Aktivierung wirken als Relu
  • Die zweite versteckte Schicht hat 8 Neuronen und Aktivierung wirken als Relu
  • Schließlich, in der Ausgabeschicht, wir gebrauchen 1 Einheit und Aktivierung als Sigmoid, da es sich um ein binäres Klassifikationsproblem handelt.
von keras.models importieren Sequential
aus keras.layers importieren dicht
Modell = Sequentiell()
model.add(Dicht(12, input_dim=8, Aktivierung="Lebenslauf"))
model.add(Dicht(12, Aktivierung="Lebenslauf"))
model.add(Dicht(1, Aktivierung="sigmoid"))

Denken Sie daran, die richtige Form der Daten in der ersten Ebene anzugeben, die als Eingabeebene bekannt ist.

Paso 3) Kompilieren Sie das Keras-Modell

Wenn wir das Keras-Modell kompilieren, Verwenden Sie numerische Backend-Bibliotheken wie TensorFlow oder Theano. Welches Back-End Sie auch verwenden, wählt automatisch den besten Weg, um das Netzwerk auf Ihrer Hardware darzustellen, als CPU, GPU oder TPU.

Wenn wir das Modell kompilieren, Wir müssen einige zusätzliche Parameter angeben, um das Modell besser zu bewerten und den besten Satz von Gewichtungen zu finden, um Eingaben zu Ausgaben zuzuweisen.

  1. Verlustfunktion: die Verlustfunktion muss angegeben werden, um den Satz von Gewichtungen zu bewerten, auf den das Modell abgebildet wird. Wir werden die Kreuzentropie als Verlustfunktion verwenden, die eigentlich als binäre Kreuzentropie für die binäre Klassifizierung bekannt ist.
  2. Optimierer: der zweite ist der Optimierer, um den Verlust zu optimieren. Wir werden Adam verwenden, Dies ist eine beliebte Version des Gradientenabstiegs und liefert bei den meisten Problemen das beste Ergebnis.
model.compile(Verlust="binäre_kreuzentropie", Optimierer="Adam", Metriken=["Richtigkeit"])

Paso 4) Fange an zu trainieren (passt das modell)

Nach erfolgreicher Zusammenstellung des Modells, Wir sind bereit, die Daten an das Modell anzupassen und mit dem Training des neuronalen Netzes zu beginnen. Neben der Bereitstellung von Daten für das Modell, wir müssen eine Anzahl von Epochen und eine Batchgröße definieren, in der das Training stattfindet.

  • Epoche: Einzeldurchlauf durch alle Zeilen des Trainingsdatensatzes
  • Losgröße: Anzahl der vom Modell berücksichtigten Stichproben vor der Aktualisierung der Gewichte.
model.fit(x,Ja, Epochen=150, batch_size=10)

Eine Epoche kann aus mehr als einer Charge bestehen. Diese Parameter werden schließlich nach der Wärme- und Testmethode festgelegt.

Paso 5) Bewerten Sie das Modell

Nach dem Training des Modells, Lassen Sie uns die Leistung eines neuronalen Netzes wissen. Das Modell wird immer in einem Test-Set bewertet. In diesem Beispiel, Der Einfachheit halber, wir haben an einem kompletten Datensatz trainiert, aber während der Arbeit an einem Projekt, teilt im Grunde die Daten auf und trainiert das Netzwerk.

_, Genauigkeit = model.evaluate(x, Ja)
drucken("Modellgenauigkeit: %.2F"% (Genauigkeit*100))

Um das Modell zu bewerten, Verwenden Sie die Bewertungsmethode und übergeben Sie die Eingabe und Ausgabe an das Modell und überprüfen Sie die Leistung.

Paso 6) Voraussagen machen

Vorhersage der Ausgabe neuer Daten einfach mit der Vorhersagemethode. wir haben eine binäre Klassifikationsproblemstellung, die Ausgabe wird also einfach sein 0 Ö 1.

Vorhersagen = model.predict(x)
drucken([runden(x[0]) für x in Vorhersagen])

Alternative, du kannst auch die verwenden predict_classes Funktion zur direkten Vorhersage von Klassen.

Das ist gelöst, Wir haben ganz einfach ein neuronales Netzwerk mit erstellt 3 Ebenen mit nur wenigen Codezeilen mit Keras.

Kompilieren Sie den gesamten Code zusammen

Modell = Sequentiell()  #Modell definieren
model.add(Dicht(12, input_dim=8, Aktivierung="Lebenslauf"))
model.add(Dicht(8, Aktivierung="Lebenslauf"))
model.add(Dicht(1, Aktivierung="sigmoid"))
model.compile(Verlust="binäre_kreuzentropie", Optimierer="Adam", Metriken=["Richtigkeit"]) #Modell kompilieren
model.fit(x,Ja, Epochen=150, batch_size=10)  #Ausbildung
_, Genauigkeit = model.evaluate(x,Ja)    #testen
drucken("Modellgenauigkeit: %.2F"% (Genauigkeit*100))
Vorhersagen = model.predict(x)     #Voraussagen machen
#rund um die Vorhersage
gerundet = [runden(x[0]) für x in Vorhersagen]

EndNote

Ein neuronales Netzwerk bildet ein Netzwerk verbundener Schichten mit mehreren Neuronen in jeder Schicht. Wenn wir die Anzahl der Schichten erhöhen, das Netzwerk ist in der Lage, komplexere Eigenschaften zu lernen.

Mit Keras . haben Sie ganz einfach Ihr erstes neuronales Netzmodell erstellt. Ich hoffe, es war leicht, all die Dinge zu begreifen. Wenn du irgendeine Frage hast, Bitte kommentieren. Ich helfe dir gerne.

Wenn dir der Artikel gefällt, Schauen Sie sich meine anderen Artikel an. Verknüpfung

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.