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:
- 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 ConfusionMatrixDisplaymannequin = 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!