Zum Inhalt springen

Deep Learning


PVoss

676 Aufrufe

Moin,

 

letzten Samstag habe ich meine Fallstudie zu Statistical Computing abgegeben. Montag habe ich die Klausur in Deep Learning geschrieben. Bis ich die Ergebnisse bekomme wird es noch etwas dauern; schriftliche Arbeiten dauern ja meistens etwas länger und der Dozent in Deep Learning ist noch ein paar Tage im Urlaub. Aber ich rechne in beiden Kursen mit sehr guten Ergebnissen.

 

Deep Learning

In dem Kurs erfolgte zum Anfang ein kurzer Überblick über ein bisschen Trivialwissen zum Thema: eine Einführung in und Aufgliederung von künstlicher Intelligenz, das übliche Definitionszeug usw.; Unterschiede zwischen den verschiedenen Arten maschinellen Lernens; ein bisschen was zur Geschichte und den 3 großen Hype-Phasen im Bereich Deep Learning zwischen 1940 und heute. Einerseits würde ich sagen, wenn man sich ein bisschen mit den aktuellen Nachrichten im Technikbereich auseinandersetzt sollte man in der ersten Lektion nicht wirklich neues lernen. Andererseits... sehe ich immer noch genug ausgebildete Informatiker die zum Beispiel die Funktionsweise von ChatGPT oder die Fähigkeiten von KI aufgrund falscher Prämissen ins Lächerliche ziehen. Das ist dann das typische "kann nicht mal rechnen aber wird als Intelligenz bezeichnet höhöhö" ... Solche Sachverhalte werden im Skript recht früh mit zwei Sätzen aufgeklärt - die Unterscheidung zwischen schwacher (alles was wir aktuell haben: Expertensysteme, Bilderkennung, Sprachmodelle...) und starker (das was man sich eigentlich unter Intelligenz vorstellt [gibbet noch nich]) künstlicher Intelligenz.

Ab Lektion 2 geht es dann aber auch schon in die fachlichen Themen. Dabei geht es zuerst mit einfachen Regressionsmodellen los - linear und logistisch - um schonmal ganz grundlegend die mathematische Basis zu beschreiben. Der Kurs ist sehr praxisnah orientiert und wird bereits in dieser Lektion mit entsprechenden Codebeispielen in Python ergänzt.

Nach der Regression wird das Prinzip der Perzeptronen erklärt. Danach das Gradientenverfahren mit den Aktivierungsfunktionen der Neuronen und der Backpropagation. Und das war es dann eigentlich auch schon mit dem mathematischen Anteil. Rückblickend war das gar nicht soooo schlimm wie es beim ersten, zweiten, dritten, vierten und fünften Lesen aussah. Bis vor ein paar Wochen hatten mich diese Themen noch ziemlich eingeschüchtert, aber ich habe dann angefangen zig Fragen gegen ChatGPT zu werfen und irgendwann hat es dann *Klick* gemacht. Das tolle ist, man muss sich dabei auch nicht für absolute Noobi-Fragen schämen und geduldig ist das Ding auch (Gleich mal fragen, ob eine theoretische starke KI ebenfalls geduldig wäre...).

Nach Klärung des Matheteils wird der Kurs dann noch praxisorientierter und geht ein paar konkrete Anwendungsszenarien durch. Dabei werden zum Beispiel neuronale Netze zur Klassifikation handschriftlicher Ziffern oder zur Bildklassifikation beschrieben und entwickelt. An diesen Beispielen werden dann auch die weiteren Maßnahmen zur Verbesserung der Performance vorgestellt.

Die fachliche Entwicklung innerhalb des Skripts sieht dabei ungefähr so aus:

  • Entwicklung selfmade-Perzeptron in Python
  • Verwendung von Modellen aus der SciKit-Library
  • Einführung Tensorflow mit "normalem" neuronalen Netz
  • Erweiterung des Netzes um Cross-Validation, Early Stopping, ...
  • Implementierung von Convolutional Neural Networks (hier kamen dann auch wieder neue Verarbeitungsschritte zur Merkmalsextraktion und Zusammenführung dazu)

Falls sie jemand vermisst: Recurrent Neural Networks - die ich dann in Statistical Computing genutzt habe - werden im Skript nur kurz angesprochen.

 

Das Skript hat mir richtig gut gefallen. Der rote Pfaden war klar erkennbar, die Problemstellungen wurden komplexer, gleichzeitig wurden aber auch mächtigere Konzepte zur Problemlösung eingeführt. Mir hat dabei auch gefallen, dass die ersten Schritte wirklich mit Vanilla Python implementiert wurden. Solche Beispiele zu sehen macht die "Magie" viel greifbarer.

Allerdings sind die Codebeispiele teilweise schrecklich (Format und Namenskonventionen). Ich glaube da wollte man sich nah an die mathematischen Begriffe halten, aber Variablennamen w_o und w_x und ... sind halt ein bisschen ätzend zu lesen - mein Azubi müsste für sowas ein paar Strafrunden laufen. Und am Ipad muss man erst auf das Element klicken um den Code zu sehen, anstrengend. Einer der vorherigen Studenten hat die Beispiele aber bereits rausgesucht, aufbereitet und im CourseFeed gepostet.

Oh, und mir haben die Decision Trees im Skript gefehlt. Aber das Thema Machine Learning ist sehr umfangreich und für einen praxisorientierten Einstieg in das Thema ist das Skript schon gut. Für alles weitere gibt es zusätzliche Literatur. Heise hatte letzten Monat so ein Angebot, bei dem man eine Spezialauflage von ix zu Machine Learning und ein kleines O'Reilly Buch bekommt, das habe ich spontan als Ergänzung mitgenommen.

 

 

Die Klausur

Die Fragen haben ziemlich genau den Schwerpunkt meiner letzten Vorbereitungen getroffen. Die Schwerpunkte lagen dabei mit dem Gradientenverfahren und den Aktivierungsfunktionen stark im mathematischen Bereich; außerdem hatte ich mich noch intensiv mit CNNs beschäftigt, da ich mit denen in der Praxis nichts eigenes umgesetzt habe. Eine der 8-Punktefragen hat mich etwas verunsichert, da man sie im ersten Moment einfach mit zwei Sätzen beantworten könnte - wenn man es wirklich knapp halten möchte. Ich habe aber lieber noch ein paar Sätze dazu geschrieben und alles in den richtigen Kontext gesetzt.

Falls ich mich bei den offenen Fragen nicht noch verplappert und falsche Dinge mit untergemischt habe sollte ich sie alle gut beantwortet haben.

Bei den MC-Fragen habe ich wieder keine Trickfragen entdeckt. Bei einer der Fragen ging es wieder um etwas Wortklauberei wo ich imo was falsches angekreuzt habe - weil ich mir nicht sicher war habe ich aber eine Bemerkung zu der Frage mit aufgeschrieben, um meine Auswahl zu erklären.

 

Tipps für die Mitstudenten:

  • Die mathematischen Formeln sehen zuerst schwierig aus, sind im Endeffekt aber nicht so schlimm. Von den statistischen Berechnungen abgesehen führt man die einzelnen Berechnungen (wenn überhaupt) auf einer anderen Ebene durch, wodurch ein paar der Zählvariablen wegfallen.
  • Sobald man den Zusammenhang zwischen Kostenfunktion, Aktivierungsfunktionen und Gradientenverfahren erkennt ist der gesamte Kurs einfach ( => ab dann ist es ein normaler Programmierkurs mit ein bisschen Mathe).
  • Die Charakteristiken von oben genanntem sollten in der Klausur aber auch wirklich sitzen, das Zeug ist schon wichtig.

 

 

Ich muss noch überlegen was und wie viel ich über die Fallstudie schreiben möchte. Deshalb war es das erstmal an dieser Stelle. Wahrscheinlich schreibe ich Sonntag noch einen Eintrag; bis dahin überlege ich auch, ob ich einen Haken hinter meinen Blogtitel setze...

 

Tüdeldü

3 Kommentare


Empfohlene Kommentare

Zitat

 den 3 großen Hype-Phasen im Bereich Deep Learning zwischen 1940 und heute.

 

Wie aktuell war das Skript? Wurden auch neuere Entwicklungen, zum Beispiel eben bei den Sprachmodellen, mit erwähnt?

Link zu diesem Kommentar
Am 29.7.2023 um 10:15 schrieb Markus Jung:

Wie aktuell war das Skript? Wurden auch neuere Entwicklungen, zum Beispiel eben bei den Sprachmodellen, mit erwähnt?

Nope, ich hab nochmal nachgesehen. Konkrete Anwendungsbeispiele wurden in dem Zusammenhang gar nicht genannt. Für die Phase seit 2010 wurde insbesondere die krasse Entwicklung in der Hardware und die niedrigen Preisen für diese hervorgehoben.

 

Btw. Für Deep Learning wurde die IU AI, Synthea, freigeschaltet. Das Ding ist ganz lustig, aber sehr stark auf das Script beschränkt. Man kann dort aber z.B. ein PreAssessment starten und bekommt dann etwa 3-4 MC-Fragen pro Lektion die man beantworten muss und die dann ausgewertet werden. Es ist eine praktische Lernkontrolle für zwischendurch.

Wenn man dem Ding Fragen stellt werden die generierten Antworten auch dem Dozenten angezeigt, der kann sie dann noch nachträglich korrigieren oder ergänzen.

 

Für die tatsächliche Prüfungsvorbereitung bleibe ich aber bei ChatGPT. Diese AI kann einem viel umfangreichere Fragen stellen.

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden



×
  • Neu erstellen...