Maschinelles Lernen und Künstliche Intelligenz

Die Beziehung zwischen Künstlicher Intelligenz, maschinellem Lernen und Deep Learning

Stellen Sie sich eine russische Matrjoschka vor: Eine große Puppe enthält eine mittlere Puppe, und die mittlere Puppe enthält eine kleine Puppe. Die Beziehung zwischen künstlicher Intelligenz, maschinellem Lernen und Deep Learning ist genau so:

  • Künstliche Intelligenz (KI): Die größte Puppe, das umfassendste Konzept
  • Maschinelles Lernen (ML): Die mittlere Puppe, ein Teil der KI
  • Deep Learning (DL): Die kleinste Puppe, ein Teil des maschinellen Lernens

Was ist Künstliche Intelligenz (KI)?

Künstliche Intelligenzist ein breites Konzept, das sich auf Technologien bezieht, die es Maschinen ermöglichen, menschenähnliche Intelligenz zu zeigen. So wie die menschliche Intelligenz Fähigkeiten wie Schlussfolgern, Lernen, Wahrnehmung und Sprachverständnis umfasst, versucht KI auch, Maschinen mit diesen Fähigkeiten auszustatten.

Die Ziele der KI:

  • Menschliche Denkprozesse simulieren
  • Aufgaben lösen, für die menschliche Intelligenz erforderlich ist
  • Übertrifft menschliche Fähigkeiten in bestimmten Bereichen

Beispiele für KI:

  • Schachprogramme (wie AlphaGo)
  • Sprachassistenten (wie Siri, Xiao Ai)
  • Selbstfahrende Autos

Die Stellung des maschinellen Lernens (ML) in der KI

Maschinelles Lernenist eine Methode zur Erreichung künstlicher Intelligenz, aber nicht die einzige. So wie es mehrere Arten des Kochens gibt (Pfannenrühren, Kochen, Dämpfen, Braten), gibt es auch mehrere Ansätze zur Umsetzung von KI.

Merkmale des maschinellen Lernens:

  • Erfordert nicht, alle Regeln manuell zu schreiben
  • Lernt automatisch Muster aus Daten
  • Geeignet für komplexe Probleme, bei denen Regeln schwer explizit zu definieren sind

Traditionelle KI vs. Maschinelles Lernen:

Traditioneller KI-Ansatz Ansatz des maschinellen Lernens
Expertensysteme: manuell geschriebene Regeln Regeln aus Daten lernen
Logisches Schlussfolgern: basierend auf expliziten Regeln Mustererkennung: Muster in Daten finden
Geeignet für Probleme mit klar definierten Regeln Geeignet für komplexe, mehrdeutige Probleme

Deep Learning (DL) und maschinelles Lernen

Deep Learningist ein Teilbereich des maschinellen Lernens, der mehrschichtige neuronale Netze verwendet, um komplexe Muster in Daten zu lernen.

Merkmale des Deep Learning:

  • Verwendet mehrschichtige neuronale Netze ("deep" bezieht sich auf viele Schichten)
  • Besonders geeignet für die Verarbeitung unstrukturierter Daten wie Bilder, Audio und Text
  • Erfordert große Datenmengen und Rechenressourcen

Entwicklungsgeschichte und Evolution

  1. Frühe KI (1950er-1970er): Beruhte hauptsächlich auf manuell geschriebenen Regeln und logischem Schlussfolgern
  2. Aufstieg des maschinellen Lernens (1980er-2000er): Begann aus Daten zu lernen, aber Merkmale mussten manuell entworfen werden
  3. Deep-Learning-Ära (2010er-heute): Lernt Merkmale automatisch, behandelt komplexere Probleme


Beispiel

Verwenden wir ein einfaches Beispiel, um die Unterschiede zwischen traditionellen Methoden, maschinellem Lernen und Deep Learning zu demonstrieren - der Versuch, handgeschriebene Ziffern zu erkennen.

Methode 1: Traditioneller Ansatz (regelbasiert)

Beispiel

# Traditioneller Ansatz: Erkennung handgeschriebener Ziffern auf Basis manuell entworfener Regeln
# Dies ist nur ein konzeptionelles Beispiel; in der Praxis funktioniert diese Methode sehr schlecht
def recognize_digit_by_rules(image):
    """
Erkennung von Ziffern auf Basis manueller Regeln (vereinfachtes Beispiel)
    """

    # Regel 1: Zähle die Anzahl der schwarzen Pixel im Bild
    black_pixels = count_black_pixels(image)
    # Regel 2: Berechne die Schwerpunktposition des Bildes
    center_x, center_y = calculate_center(image)
    # Regel 3: Erkenne bestimmte Formmerkmale
    has_circle = detect_circle(image)
    has_straight_line = detect_straight_line(image)
    # Regelbasierte Beurteilung
    if has_circle and black_pixels < 50:
        return "0"
    elif has_straight_line and center_y < image_height/2:
        return "7"
    # ... weitere Regeln
    else:
        return "Kann nicht erkannt werden"
# Problem: Regeln können nur schwer alle Fälle abdecken und sind sehr fragil

Methode 2: Ansatz des maschinellen Lernens

Beispiel

# Ansatz des maschinellen Lernens: Verwendung traditioneller Merkmalsextraktion + Klassifikator
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 1. Merkmale manuell entwerfen (dies ist die Einschränkung des traditionellen maschinellen Lernens)
def extract_features(image):
    """
Manuell entworfene Merkmale
    """

    features = []
    # Merkmal 1: Anteil schwarzer Pixel
    features.append(count_black_pixels(image) / total_pixels)
    # Merkmal 2: Bildschwerpunkt
    center_x, center_y = calculate_center(image)
    features.extend([center_x, center_y])
    # Merkmal 3: Kantendichte
    features.append(calculate_edge_density(image))
    # ... weitere manuell entworfene Merkmale
    return features
# 2. Merkmale aus allen Trainingsdaten extrahieren
X_train = [extract_features(img) for img in train_images]
y_train = train_labels
# 3. Das Modell trainieren
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
# 4. Test
X_test = [extract_features(img) for img in test_images]
predictions = model.predict(X_test)
print(f"Genauigkeit: {accuracy_score(test_labels, predictions):.2f}")

Methode 3: Deep-Learning-Ansatz

Beispiel

# Deep-Learning-Ansatz: End-to-End-Lernen, automatische Merkmalsextraktion
import tensorflow as tf
from tensorflow.keras import layers, models
# 1. Ein neuronales Netz aufbauen
model = models.Sequential([
    # Lernt automatisch Low-Level-Merkmale (Kanten, Texturen usw.)
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    layers.MaxPooling2D((2, 2)),
    # Lernt automatisch Mid-Level-Merkmale (Formen, Kombinationen usw.)
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    # Lernt automatisch High-Level-Merkmale (übergeordnete Muster)
    layers.Conv2D(64, (3, 3), activation='relu'),
    # Klassifikationsschicht
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(10, activation='softmax')  # 10 Ziffernkategorien
])
# 2. Das Modell kompilieren
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
# 3. Direkt mit Rohbilddaten trainieren (keine manuell entworfenen Merkmale nötig)
model.fit(train_images, train_labels, epochs=5,
          validation_data=(test_images, test_labels))
# 4. Evaluieren
test_loss, test_acc = model.evaluate(test_images, test_labels)
print(f"Genauigkeit des Deep-Learning-Modells: {test_acc:.2f}")

Vergleich der Ausführungsergebnisse:

  • Traditionelle Methode: Genauigkeit etwa 60-70% (und komplexe Regeln)
  • Maschinelles Lernen: Genauigkeit etwa 85-92% (erfordert manuell entworfene Merkmale)
  • Deep Learning: Genauigkeit etwa 98-99% (lernt Merkmale automatisch)
Andere Erweiterungen