Ein einfacher konzeptioneller Überblick über neuronale Netze und Deep Learning | von Qi Echo Cai | Juni 2023

0
24


Nachdem wir nun ein grundlegendes Verständnis davon gewonnen haben, was ein neuronales Netzwerk ist, wie es funktioniert und welche Hyperparameter an der Abstimmung beteiligt sind, können wir das Konzept des Deep Studying zur Sprache bringen.

So, was genau ist Deep am Deep Studying? Deep Studying bezieht sich auf eine leistungsstarke Technik, die neuronale Netze mit mehreren verborgenen Schichten nutzt, daher der Begriff „tief“. Im Gegensatz zu herkömmlichen flachen Netzwerken nutzen Deep-Studying-Methoden Architekturen, die aus zahlreichen miteinander verbundenen Schichten bestehen. Diese verborgenen Schichten ermöglichen es dem Netzwerk, hierarchische Darstellungen der Daten zu erlernen und komplexe Muster und Merkmale auf verschiedenen Abstraktionsebenen zu erfassen. Durch die Nutzung dieser Tiefe eignen sich Deep-Studying-Modelle hervorragend für die Lösung komplexer Probleme in verschiedenen Bereichen, darunter Pc Imaginative and prescient, Verarbeitung natürlicher Sprache und Spracherkennung.

Die Bildklassifizierung ist ein Beispiel für Deep Studying oder das Produkt eines Faltungs-Neuronalen Netzwerks. Das Convolutional Neural Community gehört zu den Deep-Studying-Methoden. Es dient der Analyse von Bildern und Movies. CNN reduziert die Komplexität der Netzwerkberechnung oder Modellierungsüberanpassung.

Anhand eines Beispiels zur Unterscheidung von Ziffern (0–9) wird der Prozess eines CNN unten dargestellt:

  1. Erstellen Sie die Faltungsbasis
import tensorflow as tf
import seaborn as sns
from matplotlib import pyplot as plt
from tensorflow.keras import datasets, layers, fashions, callbacks
from sklearn.metrics import ConfusionMatrixDisplay

mannequin = fashions.Sequential()
mannequin.add(layers.Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1))) # (x, y, depth)
mannequin.add(layers.MaxPooling2D(pool_size=(2, 2)))
mannequin.add(layers.Conv2D(64, (3, 3), activation='relu'))
mannequin.add(layers.MaxPooling2D((2, 2)))
mannequin.add(layers.Conv2D(64, (3, 3), activation='relu'))

2. Fügen Sie dichte Schichten hinzu

mannequin.add(layers.Flatten())
mannequin.add(layers.Dense(64, activation='relu'))
mannequin.add(layers.Dense(10, activation='softmax'))

3. Kompilieren und trainieren Sie das Modell

mannequin.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# add early cease to save lots of the computation useful resource or to cease earlier earlier than the assigned epochs.
early_stop = callbacks.EarlyStopping(monitor='val_loss', min_delta=1e-4, verbose=1, mode='min', endurance=5)
outcomes = mannequin.match(train_images, train_labels, epochs=100, batch_size=1024, validation_data=[test_images, test_labels],
callbacks=[early_stop])

4. Bewerten Sie das Modell anhand der Testdaten

test_loss, test_acc = mannequin.consider(test_images, test_labels)
print(test_acc)

5. Zeichnen Sie die Diagramme für Bewertungsmetriken

train_loss = outcomes.historical past['loss']
train_acc = outcomes.historical past['accuracy']
val_loss = outcomes.historical past['val_loss']
val_acc = outcomes.historical past['val_accuracy']
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))
sns.lineplot(x=outcomes.epoch, y=train_loss, ax=ax1, label='train_loss')
sns.lineplot(x=outcomes.epoch, y=train_acc, ax=ax2, label='train_accuracy')
sns.lineplot(x=outcomes.epoch, y=val_loss, ax=ax1, label='val_loss')
sns.lineplot(x=outcomes.epoch, y=val_acc, ax=ax2, label='val_accuracy');

6. Überprüfen Sie zum Schluss ein Bild!

mannequin.predict(test_images[0].reshape(1, 28, 28, 1))
plt.imshow(test_images[0].reshape(28, 28), cmap='grey')
test_pred= mannequin.predict(test_images).argmax(axis=1)
print (test_pred)
ConfusionMatrixDisplay.from_predictions(test_labels, test_pred)

Das ist eine Zusammenfassung der Konzepte neuronaler Netze und Deep Studying! Hoffentlich ist dieser Weblog hilfreich und leicht zu interpretieren!



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here