Logo
Sarah Hoffmann
9 ore fa
Der Code läuft beim Testen auf der CPU einwandfrei. Sobald das Modell auf die GPU soll, bricht alles mit einer langen Fehlermeldung ab.

PyTorch meldet einen Laufzeitfehler, sobald ein Tensor und das Modell auf verschiedenen Geräten liegen. Meist nennt die Meldung beide Geräte, etwa CPU und CUDA, und zeigt damit die Ursache direkt an.

Ein Gerät (Device) ist in PyTorch der Recheneinheit zugewiesener Speicher. Die CPU rechnet im Arbeitsspeicher des Rechners, eine GPU nutzt ihren eigenen Grafikspeicher, und MPS ist PyTorchs Schnittstelle zur GPU von Apple Silicon. Ein Tensor, also ein mehrdimensionales Zahlenfeld, existiert immer genau in einem dieser Speicher. Eine CUDA-GPU kann nicht auf den CPU-Arbeitsspeicher zugreifen und umgekehrt; auch bei MPS mit gemeinsamem Speicher zählt für PyTorch, auf welchem Gerät ein Tensor liegt. Deshalb müssen Modellparameter und Daten zwingend auf demselben Gerät liegen, bevor gerechnet werden kann.

Ein DataLoader, also PyTorchs Baustein zum Bereitstellen von Trainingsdaten, erzeugt seine Tensoren standardmäßig auf der CPU. Liegt das Modell auf der GPU, folgt der Fehler. In PyTorch verschiebt tensor.to("cuda") einen einzelnen Tensor, model.to("cuda") dagegen alle Parameter des Modells auf einmal. Beide Schritte sind nötig.

So prüft man es: tensor.device am Tensor und next(model.parameters()).device am Modell ausgeben. Stimmen beide Ausgaben überein, ist die Ursache beseitigt.

Beim Verschieben entsteht eine Kopie, kein Umbenennen. Deshalb schreibt man in PyTorch üblicherweise tensor = tensor.to("cuda"), damit der Name auf die GPU-Kopie zeigt.

Der Fehler liegt fast nie am Modell, sondern daran, wo die Zahlen gespeichert sind. Gleiche Geräte zuerst, Rechnen danach.

📌 Device · tensor.to · Laufzeitfehler

📚 KI von Grund auf · Tag 5 von 30
#PyTorch #machinelearning #deeplearning
Sarah Hoffmann
12 ore fa
Die meisten kopieren einen PyTorch-Trainingsloop als ganzen Block. Dabei besteht jeder Trainingsschritt aus nur vier Phasen, die immer in derselben Reihenfolge ablaufen.

Wer die Reihenfolge kennt, kann jeden Trainingsloop lesen und jede Zeile einer Phase zuordnen. Das Muster ist in PyTorch überall gleich, vom kleinsten Beispiel bis zum großen Modell.

🧠 Der Vorwärtslauf (Forward Pass) führt die Eingabetensoren durch alle Schichten des Modells und liefert eine Vorhersage, etwa die prognostizierte Klasse für ein Bild. Tensoren und Modell müssen dabei auf demselben Gerät liegen, also CPU, CUDA oder MPS auf Apple Silicon. Gemischte Geräte führen zu Laufzeitfehlern, bevor überhaupt gerechnet wird.

📊 Eine Verlustfunktion (Loss) misst, wie weit die Vorhersagen vom richtigen Ergebnis entfernt sind. Danach ruft der Code optimizer.zero_grad() auf. PyTorch summiert die Gradienten, also die Ableitungen des Verlusts nach den Parametern, standardmäßig auf; ohne zero_grad() vermischen sich die Gradienten mehrerer Schritte. Wer den Aufruf weglässt, sieht scheinbar Lernen, aber das Training wird unzuverlässig.

🔍 loss.backward() berechnet kein Update, sondern schreibt per Autograd in das Feld grad jedes Parameters, wie stark dieser zum Verlust beigetragen hat. Autograd zeichnet beim Vorwärtslauf auf, welche Tensoren voneinander abhängen, und leitet daraus rückwärts die Ableitungen her. optimizer.step() liest dann die Gradienten und verschiebt die Gewichte ein kleines Stück entgegen der Gradientenrichtung.

Der Trainingsschritt ist kein magischer Automat, sondern die feste Reihenfolge Vorwärtslauf, Verlust, Gradienten, Update. Ein Batch ist die Teilmenge der Daten, nach der die Parameter aktualisiert werden; eine Epoche ist der vollständige Durchlauf durch alle Trainingsdaten.

📌 Forward Pass · zero_grad · backward und step

📚 KI von Grund auf · Tag 5 von 30
#PyTorch #machinelearning #deeplearning
Sarah Hoffmann
3 giorni fa
Ein Modell kann jede Übungsaufgabe fehlerfrei lösen und in der Prüfung trotzdem scheitern. Genau das passiert beim Overfitting, einem der häufigsten Fehler im Machine Learning.

Wer eigene Modelle trainiert, begegnet Overfitting spätestens beim ersten Vergleich von Trainings- und Validierungsergebnis. Wer es nicht kennt, hält ein auswendig lernendes Modell für gut und wundert sich über schlechte Vorhersagen auf neuen Daten.

Overfitting (Überanpassung) liegt vor, wenn ein Modell die Trainingsbeispiele nahezu auswendig lernt statt den zugrunde liegenden Zusammenhang. Ein Modell mit vielen Parametern hat genug freie Kapazität, jedes Beispiel einzeln zu speichern – auf neuen Daten hilft das nichts, weil dort im Detail andere Fälle stehen.

Man passt die Parameter auf einer Trainingsmenge an, wählt das Modell anhand einer separaten Validierungsmenge und trägt beide Fehler über die Epochen, also die Trainingsdurchläufe, in eine Kurve ein. Beim Overfitting sinkt der Trainingsfehler weiter, während der Validierungsfehler stagniert oder steigt. Diese wachsende Lücke ist das Warnzeichen, nicht der Trainingsfehler allein. Mit Early Stopping beendet man das Training, wenn sich der Validierungsfehler über eine festgelegte Zahl von Epochen nicht mehr verbessert, und behält die beste Zwischenversion.

Verwechselt wird Overfitting mit Underfitting, wo der Fehler auf Trainings- wie Validierungsdaten hoch ist, weil das Modell zu schwach ist. Der Unterschied zeigt sich in der Lücke: fehlt sie bei hohen Fehlern, ist das Modell zu schwach; wächst sie, lernt es auswendig.

Overfitting heißt nicht, dass ein Modell zu gut gelernt hat, sondern dass es die falsche Sache gelernt hat: Beispiele statt Zusammenhang.

📌 Trainingsfehler vs. Validierungsfehler · Generalisierung · Early Stopping

📚 KI von Grund auf · Tag 3 von 30
#machinelearning #Evaluation #ki #deeplearning
Sarah Hoffmann
3 giorni fa
Epoche und Batch klingen nach Zeitplänen. Dabei regeln sie nur, wie ein Modell seine Trainingsdaten portioniert.

Beide Begriffe tauchen in jeder Trainingsschleife auf und werden oft verwechselt: Einsteiger halten eine Epoche gern für einen einzelnen Trainingsschritt. Tatsächlich besteht eine Epoche aus vielen Schritten.

Die Epoche ist ein vollständiger Durchlauf durch alle Trainingsdaten. Das Modell sieht jedes Beispiel genau einmal pro Epoche. Hat der Datensatz 1000 Beispiele, endet die Epoche erst, wenn alle 1000 durchgerechnet sind. Eine Epoche allein reicht aber praktisch nie, weil das Lernen aus vielen kleinen Wiederholungen besteht. Typisch sind daher mehrere bis viele Epochen, bis der Verlust (der gemessene Fehler) stabil niedrig ist.

Der Batch ist die Teilmenge der Daten, nach der die Parameter jeweils aktualisiert werden. Der Batch wird durchgerechnet, die Verlustfunktion misst den Fehler, dann werden die Parameter einmal angepasst. Bei 1000 Beispielen und einer Batch-Größe von 100 gibt es also zehn Updates pro Epoche. Vor jeder neuen Epoche werden die Daten meist neu gemischt, damit keine feste Reihenfolge auswendiggelernt wird.

Die Epoche zählt, wie oft das Modell alle Daten sieht. Der Batch legt fest, wie oft pro Durchlauf die Parameter neu justiert werden. Beide sind Hyperparameter – Einstellungen, die vor dem Training festgelegt werden.

Faustregel: Die Batch-Größe wählt man klein genug für den Speicher und groß genug für ruhige Updates; die Anzahl der Epochen so hoch, bis der Verlust nicht mehr sinnvoll sinkt.

Epoche heißt nicht „ein Schritt“, sondern ein ganzer Durchlauf – der Batch macht daraus viele kleine.

📌 Epoche · Batch · Parameterupdate

📚 KI von Grund auf · Tag 2 von 30
#machinelearning #deeplearning #ki
Sarah Hoffmann
4 giorni fa
Ein Neuron im Spamfilter arbeitet wie ein Waage-Beamter vor dem Gerichtssaal. Es hört sich alle Zeugenaussagen an und entscheidet dann, wie laut es selbst ruft.

Der Beamte nimmt drei Zeugen ernst, zwei kaum. Jede Aussage hat ein Gewicht, je nach Glaubwürdigkeit. Am Ende addiert er alles zu einem Gesamteindruck. Überschreitet er eine Schwelle, öffnet er die Tür laut – sonst bleibt sie zu.

Technisch ist jede Zeugenaussage eine Eingabe, eine Zahl wie die Anzahl auffälliger Wörter in einer E-Mail. Das Gewicht ist ein gelernter Parameter, also eine Zahl, die das Modell während des Trainings automatisch anpasst. Der Gesamteindruck heißt gewichtete Summe, oft erhöht um einen Bias – eine gelernte Zahl, die das Neuron auch ohne Eingaben aktivieren kann. Das Rufen übernimmt die Aktivierungsfunktion: Sie bestimmt, wie stark das Neuron „feuert“.

Konkret kann ein Spam-Neuron drei Merkmale erhalten, etwa Anzahl auffälliger Wörter und Absenderdaten. Die gewichtete Summe 2,1 geht durch eine Aktivierung, die jeden Wert zwischen 0 und 1 begrenzt. Ein Wert nahe 1 bedeutet: hohe Feuerwahrscheinlichkeit, also Spam. In Netzen ist die ReLU-Funktion am verbreitetsten; sie gibt negative Summen als null aus, positive unverändert.

Das Bild hat eine Grenze: Ein Beamter versteht Aussagen, ein Neuron multipliziert nur Zahlen. Und ohne die Aktivierungsfunktion wäre das Ganze reines Addieren – nur geradlinige Zusammenhänge wären möglich. Viele solcher Schichten hintereinander machen erst ein „tiefes“ Netz.

Ein Neuron trifft also keine kluge Entscheidung – es rechnet und feuert. Die Klugheit steckt in den Gewichten, und die lernt das Training.

📌 Gewichte · Aktivierungsfunktion · Bias

📚 KI von Grund auf · Tag 2 von 30
#machinelearning #deeplearning #ki
Sarah Hoffmann
4 giorni fa
Das Training läuft endlos, der Verlust aber geht nicht zurück. Dabei verrät der Verlustverlauf meist genau, was nicht stimmt.

Der Verlust (ein Maß dafür, wie weit Vorhersagen vom richtigen Ergebnis entfernt sind) schwankt wild oder bleibt auf hoher Ebene stehen. Statt zu lernen, springt das Modell scheinbar ziellos umher.

Beim Gradientenabstieg verändert das Training die Parameter schrittweise, und zwar in die Richtung, in der der Verlust am stärksten abnimmt. Parameter (Gewichte) sind die Zahlen im Modell, die aus den Daten gelernt werden. Der Gradient sagt, wie stark und in welche Richtung sich der Verlust ändert, wenn man einen Parameter ein wenig verschiebt. Die Lernrate bestimmt, wie groß jeder einzelne Schritt ist – und sie ist ein Hyperparameter: eine Einstellung, die vor dem Training von Hand festgelegt wird.

Ist die Lernrate zu groß, springen die Parameter über das beste Ergebnis hinweg; der Verlust pendelt, statt zu sinken. Ist sie zu klein, dauert das Training unverhältnismäßig lange, weil jeder Fortschritt winzig ist. Das Bild ist eine gebirgige Landschaft: Höhe entspricht Verlust, Position entspricht Parametern, und der Algorithmus läuft wie ein Wanderer im Nebel Schritt für Schritt bergab.

So prüft man es: Den Verlust über die Trainingsschritte aufzeichnen und den Verlauf ansehen. Schwankt er stark, die Lernrate verringern; sinkt er quälend langsam, sie erhöhen und erneut laufen.

Gradientenabstieg senkt den Verlust in vielen kleinen Schritten, nicht auf einen Schlag. Er findet ein Tal in der Nähe des Startpunkts – ob es das tiefste ist, ist nicht garantiert.

📌 Gradientenabstieg · Lernrate · Verlustfunktion

📚 KI von Grund auf · Tag 2 von 30
#machinelearning #deeplearning #ki
Sarah Hoffmann
4 giorni fa
Die meisten denken, ein Modell lerne, indem es einfach richtige Antworten auswendig nimmt. Dabei braucht es zuerst eine Zahl, die misst, wie falsch es gerade liegt.

Ohne diese Zahl wüsste niemand, ob Training Fortschritt bringt. Die Verlustfunktion macht aus Fehlern etwas Messbares.

🧠 Die Verlustfunktion übersetzt Fehlentfernung in genau eine Zahl. Sie ist eine mathematische Vorschrift, die aus der Vorhersage des Modells und der bekannten richtigen Antwort (dem Label) eine einzelne Zahl berechnet. Ein kleiner Wert bedeutet geringe Abweichung, ein großer Wert starke Fehlentfernung. Beim Training werden die Parameter (die gelernten Gewichte des Modells) dann so verändert, dass dieser Verlust sinkt.

📊 Am Hauspreisbeispiel wird die Idee greifbar. Liegt der echte Preis bei dreihunderttausend Euro und die Vorhersage nur tausend Euro daneben, ist der Verlust klein. Liegt sie um hunderttausend daneben, ist derselbe Vorgang mit einem großen Verlust verbunden – genau dieser Unterschied treibt die Parameteranpassung. Bei Regressionsaufgaben ist der mittlere quadratische Fehler gängig: Er quadriert die Differenz, sodass große Abweichungen stärker ins Gewicht fallen.

🔍 Der Verlustverlauf ist der sichtbare Lernfortschritt. Der Gradientenabstieg nutzt die Zahl als Kompass, um für jeden Parameter die Richtung zu berechnen, in der der Verlust am stärksten abnimmt; die Lernrate setzt die Schrittweite. Sinkt der Verlust über die Epochen (volle Durchläufe der Trainingsdaten), lernt das Modell. Der Wert allein sagt dabei wenig aus, weil er von der Skala der Daten abhängt.

Verlust heißt nicht Genauigkeit, sondern gemessene Distanz zur richtigen Antwort.

📌 Verlustfunktion · Gradientenabstieg · Lernfortschritt

📚 KI von Grund auf · Tag 2 von 30
#machinelearning #ki #deeplearning
Sarah Hoffmann
4 giorni fa
Viele glauben, das Training stelle das ganze Modell ein. Dabei werden nur die Parameter verändert – die Einstellungen stehen vorher fest.

Viele Einsteiger nehmen an, ein Modell lerne während des Trainings alles – auch seine Konfiguration. Schließlich gehört beides irgendwie zum Modell.

Tatsächlich sind Parameter und Hyperparameter zwei verschiedene Dinge. Parameter sind Zahlen im Modell selbst, etwa die Gewichte, mit denen ein Neuron (eine kleine Recheneinheit) seine Eingaben multipliziert. Hyperparameter sind Einstellungen wie Lernrate oder Anzahl der Epochen, die vor dem Training festgelegt werden. Nur die Parameter werden während des Trainings aus den Daten gelernt.

Der Irrtum entsteht, weil beide Begriffe ähnlich klingen und selten getrennt erklärt werden. Dazu kommt: Auch Hyperparameter beeinflussen das Ergebnis deutlich, nur eben auf Umwegen über den Trainingsablauf.

Ein Beispiel ist die Lernrate, die Schrittweite beim Gradientenabstieg – jenem Verfahren, das die Parameter in die Richtung verändert, in der die Verlustfunktion (das Maß für den Fehler) am stärksten sinkt. Ist die Lernrate zu groß, springen die Parameter über das beste Ergebnis hinweg. Ist sie zu klein, dauert das Training unverhältnismäßig lange. Eine Epoche ist ein vollständiger Durchlauf durch alle Trainingsdaten; auch ihre Anzahl wählt man vorher.

Woran man es erkennt: Parameter stehen nach dem Training als Zahlen im Modell und wandern mit ihm in die Inferenz (die Anwendung auf neue Eingaben). Hyperparameter steuern nur den Ablauf und tauchen im fertigen Modell nicht mehr auf.

„Parameter“ heißt nicht „alle Einstellungen eines Modells“, sondern nur die gelernten Zahlen. „Hyperparameter“ heißt nicht „besonders wichtige Parameter“, sondern die vorab gewählten Regeln fürs Training.

📌 Parameter (gelernt) · Hyperparameter (gewählt) · Lernrate

📚 KI von Grund auf · Tag 2 von 30
#machinelearning #deeplearning #ki
Sarah Hoffmann
4 giorni fa
Überwachtes Lernen funktioniert wie Lernen mit Musterlösung. Wer nur Aufgaben ohne Lösungen bekommt, muss trotzdem etwas lernen können – nur völlig anders.

Beim Üben mit Musterlösung wird jede Antwort aufgeschlagen und korrigiert. Der Lernende merkt, was er falsch gemacht hat, und passt sein Vorgehen an. Mit der Zeit trifft er Antworten, die in der Lösung nicht stehen.

Bei Machine Learning ist die Musterlösung das Label: die bekannte, richtige Antwort zu einem Beispiel. Die Merkmale (Features) sind die Eingangsgrößen, aus denen das Modell seine Vorhersage ableitet; das Label ist die Zielgröße, die vorhergesagt werden soll. Während des Trainings, also des Anpassens der Modellparameter, misst eine Verlustfunktion (Loss), wie weit die Vorhersage vom Label entfernt ist; die Parameter werden so verändert, dass der Verlust sinkt. Das fertige Modell wird dann in der Inferenz auf neue Eingaben angewendet.

Ein Spamfilter ist ein klassisches Beispiel. Merkmale sind Wörter und Absenderdaten einer E-Mail, das Label lautet „Spam“ oder „kein Spam“ und stammt von Menschen. Solche Kategorien vorherzusagen heißt Klassifikation; einen Zahlenwert wie einen Preis vorherzusagen heißt Regression. Weil die Vorhersage mit dem Label verglichen werden kann, lässt sich der Fehler exakt messen.

Das Bild hat eine Grenze: Ohne Musterlösung, also ohne Labels, nutzen überwachte Verfahren die Daten nicht. Unüberwachtes Lernen findet stattdessen Strukturen, etwa Gruppen ähnlicher Kunden, und lässt sich deshalb anders bewerten – es gibt schlicht keine richtige Antwort zum Vergleichen.

Überwachtes Lernen heißt nicht „besser kontrolliertes Lernen“, sondern Lernen aus Beispielen, denen die richtige Antwort mitgeliefert wird. Die Leitfrage lautet: Ist zu jedem Beispiel die richtige Antwort als Label mitgeliefert?

📌 Supervised Learning · Label · Klassifikation

📚 KI von Grund auf · Tag 1 von 30
#machinelearning #ki #deeplearning
Sarah Hoffmann
5 giorni fa
Viele Einsteiger reden von „KI“ und meinen automatisch neuronale Netze. Genau diese Gleichsetzung sitzt so tief, dass sie meist gar nicht auffällt.

Wer KI mit Deep Learning gleichsetzt, verwechselt den größten Begriff mit dem kleinsten. Dadurch wirkt alles wie dieselbe Technologie, und Unterschiede bei der Umsetzung bleiben unsichtbar.

Dahinter steckt ein Mengenbild aus drei ineinanderliegenden Kreisen: Künstliche Intelligenz (KI) ist der Oberbegriff für Systeme, die Aufgaben lösen, für die sonst menschliche Intelligenz nötig wäre. Machine Learning ist das Teilgebiet der KI, in dem Systeme aus Daten lernen statt nach fest programmierten Regeln zu arbeiten. Deep Learning wiederum ist ein Teilgebiet des Machine Learning und nutzt neuronale Netze – also Netze künstlicher Neuronen – mit vielen hintereinanderliegenden Schichten.

Ein Filter, der E-Mails als Spam oder kein Spam einordnet und aus tausenden bereits einsortierten E-Mails lernt, ist Machine Learning, aber noch kein Deep Learning. Er gehört zu den klassischen Verfahren wie Entscheidungsbäumen, die mit wenigen, handgewählten Merkmalen arbeiten. Ein Sprachassistent dagegen, der aus Texten lernt, bewegt sich bereits in den inneren Kreisen.

So prüft man es: Zuerst fragen, ob das System aus Daten lernt – wenn nein, ist es nur KI, etwa ein Expertensystem mit hinterlegten Wenn-Dann-Regeln. Wenn ja, zweitens fragen, ob ein neuronales Netz mit vielen Schichten trainiert wird – dann ist es Deep Learning.

Deep Learning heißt nicht „KI allgemein“, sondern der innerste von drei Kreisen. Es gibt KI ohne Machine Learning, aber kein Machine Learning ohne KI.

📌 Teilmengen · Lernregel · Mengenbild

📚 KI von Grund auf · Tag 1 von 30
#ki #machinelearning #deeplearning
Sarah Hoffmann
10 mesi fa
Transfer Learning in der Praxis: Vortrainiertes ResNet50 auf unsere Spezial-Röntgenbilder angepasst. 2 Stunden Fine-Tuning statt 2 Wochen Training from Scratch. Accuracy: 97.8% vs. 94.2% (from Scratch mit gleichen Daten). Der Trick: Nur die letzten 3 Layer trainieren, Rest einfrieren. Spart GPU-Kosten und liefert bessere Ergebnisse. #transferlearning #deeplearning #medizin

Non abbiamo trovato nulla!

Siamo spiacenti, ma non siamo riusciti a trovare nulla nel nostro database per la tua query di ricerca {{search_query}}. Riprova digitando altre parole chiave.