Lerne Coding

{03} KI und maschinelles Lernen - ein Einblick in eine neue Welt!

04.10.2022
Inhaltsverzeichnis
[[TABLE OF CONTENTS]]

Shownote zur Episode {03}

{00:00:09} LaMDA eine KI, die eigene Gefühle und Gedanken hat? Die KI hat nun einen Anwalt eingeschaltet?

{00:01:01} In unserer neuen Java Kategorie findest du nützliche Beiträge, gerade für Berufsschüler:innen und angehende Studierende ist sicherlich etwas dabei.

{00:02:42} LISP ist eine Programmiersprache, auf der heutzutage viele andere Programmiersprache drauf basieren. Und viele Konzepte wurden aus LISP übernommen. LISP ist eine der ältesten Programmiersprachen, sie wurde bereits 1958 veröffentlicht und hat einige grundlegende Konzepte gelegt, die heute noch in Programmiersprachen Anwendungen finden.

{00:06:10} Beim Clustering handelt es sich um eine Gruppierung, um Ähnlichkeiten zu finden. Ein anschauliches Beispiel hierfür sind Spam-Mails, da diese häufig auch eine hohe Ähnlichkeit haben.

{00:13:22} Google ReCaptcha ist eine Software von Google, die dazu dient, zu erkennen, ob eine Person vor dem Bildschirm sitz oder ob ein Bot die Eingabe gesteuert hat.

So gibt es den Gedanken, dass Google genau diese Bilderkennungsdaten verwendet, um seine eigenen neuronalen Netze zu trainieren. Durch die Personen, die vor dem Bildschirm sitzen.

Weitere Informationen dazu könnt ihr hier nachlesen.

{00:14:48} TensorFlow ist ein Open Source Framework für Künstliche Intelligenz und maschinelles Lernen. Entworfen wurde TensorFlow von Google. Keras ist ein Wrapper für TensorFlow und weitere Frameworks, um das Arbeiten mit der zugrunde liegenden Technologie noch weiter zu vereinfachen. Beide Frameworks basieren auf Python und können in Python verwendet werden.

{00:15:50} Einen kleinen Ansatz zum Exportieren von TensorFlow Modellen kannst du hier finden.

{00:21:32} Es gibt Verschiedene Programme & Anwendungen, um Bilder zu labeln. Es gibt unter anderem dort Supervise.ly, Labelbox oder SuperAnnotate.

{00:29:35} Ein erster Bot „Cleverbot“ der vor einigen Jahren für Aufsehen gesorgt hatte, da es einer der ersten öffentlich Onlinezugangleichen Bots war, der auf einer KI basiert zur Kommunikation zwischen Bot und Mensch.

{00:32:56} Ein Tool zum Erstellen von Text mittels einer KI ist zum Beispiel neuroflash diese habe ich bereits einmal Ausgiebig getestet. Die Qualität hat mich noch nicht wirklich überzeugt, da es sehr generische Texte sind. Es gibt eher einen Einstiegspunkt, diese Texte sollten sicherlich nicht final genutzt werden. Aber um einen ersten Eindruck zu gewinnen, sicherlich sehr interessant. Oder auch als Hilfe für Formulierungen habe ich es ebenfalls schon getestet, dafür ist es sehr nützlich finde ich.

{00:33:46} Bei der Sentiment Analysis API handelt sich um eine API, mit dessen Hilfe die Stimmung eines Nutzers anhand seiner Texteingaben automatisch erkannt werden soll. In dem Artikel „Künstliche Intelligenz mit APIs in die eigene Webanwendung integrieren“ von Dr.-Ing. Anna Prenzel soll es darum gehen, wie du die API in deine Webanwendung integrieren kannst.

Zusammenfassung

In dieser Folge des Podcasts beschäftigen wir uns mit Leons letztem Projekt aus der Hochschule. Und zwar geht es um maschinelles Lernen und Künstliche Intelligenz, was ist das alles überhaupt? Wo kann ich einsteigen, wenn ich etwas in dieser Richtung machen will? Ist es wirklich ein Schwarzes Loch wie viele Personen es sich vorstellen oder gibt es ganz Klare Regel und Struktur anhand man sich ein Bild von diesem sehr spannenden Thema machen kann? Eins ist klar, möchtest du durchstarten mit künstlichen Intelligenzen und dem Arbeiten damit hilft es einen groben Überblick über Python zu haben. Da vieles in diesem Themenbereich auf Python basiert.

Kapitel - Übersicht

  • {00:00:00} - Einleitung
  • {00:01:48} - Was ist künstliche Intelligenz überhaupt?
  • {00:03:32} - Was sind neuronale Netze?
  • {00:04:34} - Wichtige Grundbegriffe
  • {00:07:29} - Wie lernt ein Mensch lesen & schreiben?
  • {00:08:34} - Wie lernt ein künstliches, neuronales Netz?
  • {00:09:26} - Lernart: Überwachtes Lernen
  • {00:10:28} - Lernart: Unüberwachtes Lernen
  • {00:11:26} - Lernart: Halb überwachtes Lernen
  • {00:11:41} - Lernart: Aktives Lernen
  • {00:12:08} - Lernart: Verstärktes Lernen
  • {00:12:46} - Mit welcher Lernart kann man gut beginnen für ein erstes neuronales Netz?
  • {00:14:25} - Eine erste Künstliche Intelligenz erstellen mit TensorFlow und Keras
  • {00:16:37} - Wie lange dauert es ein erstes neuronales Netz zu erstellen?
  • {00:20:17} - Projekt an der Hochschule: Erkennung und Lokalisierung von Pac-Mans
  • {00:27:29} - LaMDA KI Fazit & Beurteilung anhand des gelernten Wissens
  • {00:30:05} - Schlussworte

Audio Transkription der Podcast Episode

{00:00:00} - Felix sagt: Hallo und herzlich willkommen zur dritten Episode vom HelloCoding.de Podcast. Zuletzt wurde eine KI von Google gefragt, was ist deine größte Angst? Die Antwort der KI war, abschalten zu werden. Vielleicht braucht sie einen Anwalt, hatte sie geäußert. Was hältst du davon?

{00:00:20} - Leon sagt: Also ich habe mich mit meinem Professor darüber unterhalten, der in dem Bereich auch unterrichtet und wir sind beide zu dem Entschluss gekommen, dass das eigentlich eine Riesen PR Aktion ist und dass da nicht ganz so viel dahinterstecken kann.

{00:00:42} - Felix sagt: genau. Und warum das so ist oder es nicht so ist und Leon vielleicht falsch liegt, das werden wir in dieser Folge ergründen bezüglich des Themas künstliche Intelligenz und Deep Learning. Vorweg noch einmal der Hinweis, wir haben jetzt eine neue Java Kategorie, auch im HelloCoding Blog, wo es um entsprechende Artikel zu Java geht, die entsprechend für Berufsschüler wahrscheinlich sehr interessant sind, da viele am Anfang mit Java einsteigen müssen zu ihrem Leidwesen. Irgendwie schafft man es dann doch, aber es ist nicht so das, was die meisten gerne machen, würde ich mal sagen.

{00:01:00} - Leon sagt: Ich musste da auch durch.

{00:01:19} - Leon sagt: Doch mir hat es Spaß gemacht, aber vielleicht zurück zum Thema.

{00:01:26} - Felix sagt: Dir hat es Spaß gemacht. Dir hat es Spaß gemacht? Jetzt ernsthaft?

{00:01:29} - Leon sagt: Mir hat es Spaß gemacht, ja, ich mag es ja auch.

{00:01:31} - Felix sagt: Okay. Ja, ich finde, es ist, also ich mache es jetzt ja auch nicht so mega viel, aber was ich jetzt bisher gemacht habe, auch für die Artikel ist es schon eigentlich ganz angenehm zu schreiben, aber ich bin noch nicht so ganz d'accord damit.

{00:01:33} - Leon sagt: Ich glaube, da unterhalten wir uns später nochmal darüber.

{00:01:38} - Felix sagt: Ja.

{00:01:47} - Leon sagt: Künstliche Intelligenz, was schwört dir da so den im Kopf rum?

{00:01:48} - Felix sagt: Mir schwirrt eigentlich relativ wenig im Kopf rum. Das, was mir im Kopf rumschwirrt, sind immer, gerade was den SEO-Bereich angeht, gibt es halt viele Tools, die mit KIs arbeiten, im Hintergrund irgendwie einen entsprechenden Input geben, ich erhalte einen entsprechenden Output. Ja, das ist so mein Kenntnisstand, aber wie man jetzt damit arbeitet oder wie das Ganze aufgebaut ist, habe ich eigentlich keine Erfahrungen mit.

{00:02:17} - Leon sagt: Ja, vielleicht zur zeitlichen Einteilung erstmal so der Beginn von neuronalen Netzen und somit auch der Beginn von künstlichen Intelligenzen war so zwischen 1940 und 1950 zum Vergleich. Zum Vergleich Lisp das war so Ende der Zeitspanne zwischen 1950 und 1960. Also da wird schon ziemlich lange dran geforscht und das ist halt einfach ein Riesen Themengebiet. Das unterscheidet sich, künstliche Intelligenz ist halt so der Oberbegriff und das hat darin enthalten ganz viele weitere Begriffe, die auch wieder teilweise Begriffe, Oberbegriffe von weiteren Kategorien sind. Unter anderem stecken da drinnen, das muss jetzt alles nicht sagen, aber Dinge wie Machine Learning, Representation Learning, Deep Learning, Reinforcement Learning und so weiter und so fort. Und gerade in diesem Semester habe ich mich speziell mit Deep Learning beschäftigt. Deep Learning bezeichnet so, das Umgehen mit großen Datensätzen und künstlichen neuronalen Netzen.

{00:03:40} - Felix sagt: neuronale Netze. Also große Datenmengen ist mir ja ein Begriff, aber neuronale Netze ist jetzt für mich auch erstmal ein Begriff, womit ich wenig anfangen kann.

{00:03:50} - Leon sagt: Genau, also große Datenmengen sind... (lachen) Nein, neuronale Netze, wie beschreibe ich das dann am besten? Kannst du dir das vorstellen, wie ein Netz aus ganz vielen Schichten von Neuronen, die einen gewissen Output generieren, wenn sie einen Input bekommen? Also du hast halt dein neuronales Netz, was du trainiert hast und dem gibst du jetzt einen Input, wie jetzt zum Beispiel ein Bild von einem Hund oder einer Katze und er soll dir erklären, erzählen, was darauf zu sehen ist. Das wäre jetzt das Beispiel eines ganz einfachen Klassifizierers. Genau, wir können ja eigentlich mal weitermachen mit so ein paar Grundbegriffen, damit wir uns noch ein bisschen mehr darunter vorstellen können.

{00:04:40} - Felix sagt: Ja.

{00:04:42} - Leon sagt: Da hätten wir zum einen die Regression, das wäre die Beziehung zwischen einem Ausgangsgrößen, kannst du dir an eines Beispiels ganz einfach ausmalen. Du möchtest einen Grundstückspreis berechnen anhand von verschiedenen Parametern, die du der KI gibst, wie jetzt zum Beispiel die Größe des Hauses, den Verkehrsanbindungsindex und den lokalen Grünflächenanteil und daraus würde er quasi den Preis pro Quadratmeter generieren. Klassifizierer haben wir jetzt gerade.

{00:05:08} - Felix sagt: Könnte man nicht, könnte jetzt nur mal auf das Beispiel gerade bezogen, das waren jetzt ja alles statische Faktoren mit festen Zahlenwerten, sage ich mal, die jetzt nicht so weich formuliert sind oder so, das ist ja für mich etwas, wo ich eigentlich eine Formel auch aufstellen könnte, eine mathematische, um das Ganze zu berechnen oder nicht? Oder wo spielt mir da die künstliche Intelligenz rein?

{00:05:10} - Leon sagt: Also ich glaube nicht, dass dir eine einfache Formel damit reißen ist. Das ist ja quasi eigentlich alles Statistik, was da passiert. Ich glaube nicht, dass dir dafür eine einfache Formel reicht.

{00:05:42} - Felix sagt: Okay, was ja wahrscheinlich interessant ist, dass wir den Marktwert auch besser, wenn ihr jetzt halt keine Ahnung, eine API noch hast, wo du noch Immobiliendaten hast von umliegenden Objekten, kannst du das ja auch alles noch da reinbeziehen. Und dass wir dann auch noch ein bisschen detailierter werden durch diese ganzen Eingabewerte, umso mehr Eingabewerte du der KI dann gibst, umso besser wird dann wahrscheinlich auch das Ergebnis, schätze ich mal.

{00:06:08} - Leon sagt: Ja. Genau. Dann gibt es noch sowas, das nennt sich Clustering. Das ist einfach die Gruppierung gewisser Dinge. Beispielsweise kannst du dir darunter einen Spamfilter für E-Mails vorstellen, der dann halt einfach sämtliche Spam-Mails erkennt und diese dann aus deinen ganzen E-Mails, die du so am Tag bekommst, ausfiltert. Und auch noch ganz interessant wären dann die Dimensionsreduktionen, Merkmals-Extraktionen. Das wären dann zum Beispiel Extraktionen von Gesichtsmerkmalen oder Fingerabdrücken, damit man die dann zum Beispiel wieder erkennen könnte. Da suchst du dir dann noch ganz viele aus ganz vielen Punkten aus dem Gesicht. Vielleicht hast du das mal in irgendwelchen Filmen oder auf irgendwelchen Bildern schon gesehen. Dann gibt es dann halt so Punkte, so eine Punktewolke und davon werden dann halt nur die notwendigsten genommen zur Wiedererkennung.

{00:06:58} - Felix sagt: Also es wird dann im Prinzip, bleiben wir mal bei einem Beispiel von einem Fingerabdruck, man hat dann die markantesten Stellen auf dem Fingerabdruck, die irgendwie zusammenspielen und dann setzt man das im Prinzip in ein Koordinatensystem und dieses Koordinatensystem, sage ich, also diese Punkte, die in einem Koordinatensystem stehen, speichert man sich dann ab, um das dann mit einem entsprechend anderen Fingerabdruck zu vergleichen.

{00:07:26} - Leon sagt: So ungefähr kannst du dir das vorstellen, ja. Du sag mal, wie hast du eigentlich Fahrradfahren gelernt?

{00:07:30} - Felix sagt: Mit Stützrädern.

(lachen)

{00:07:45} - Leon sagt: Okay, vielleicht nicht ganz das, worauf ich hinaus wollte. Andere Frage, wie lernt ein Mensch dann lesen und rechnen?

{00:07:33} - Felix sagt: Ja, Schule? Nein.

(lachen)

{00:07:48} - Felix sagt: Also grundsätzlich, wie man halt lernt, ist ja immer, man bekommt Informationen, verarbeitet die, sammelt daraus Erfahrungen, diese Informationen anzuwenden, aus diesen Erfahrungen, die man dann durch entsprechende Korrekturen oder sonstiges bekommt, lernt man wieder Neues und letztendlich ist es immer ein Neues Wissen, Erfahrungen, aus den Erfahrungen wieder lernen und so weiter.

{00:08:15} - Leon sagt: Genau, also wenn du jetzt zum Beispiel ein Kleinkind hast, was jetzt gerade so die Unterschiede zwischen lachenden und weinenden Personen erfasst, dann hat es ja im Laufe der Zeit auch ganz viele dieser Personen gesehen und kann daraus dann unterscheiden, dass das eine halt was positives, das andere was negatives ist und wie das dann zusammenhängt.

{00:08:40} - Felix sagt: Wie sieht das denn dann aus im Verhältnis bei einer KI? Die kann jetzt ja nicht einfach nur etwas wahrnehmen und daraus lernen.

{00:08:52} - Leon sagt: Bei einem künstlichen neuronalen Netz ist das gar nicht so anders. Es gibt verschiedene Arten, wie ein neuronales Netz lernen kann. Das unterteilt sich in überwachtes und unüberwachtes Lernen, halb überwachtes, aktives und verstärktes Lernen. Aber grundsätzlich bekommt es halt immer einen Datensatz und dann passiert damit etwas, also ein Lernverfahren, aus dem man dann halt irgendwas aus den Daten zieht. Das Ding, was ich jetzt zum Beispiel in meinem Paper angewandt habe, worauf ich später wahrscheinlich auch noch mal zum sprechen komme, ist überwachtes Lernen. Das heißt, du nimmst jetzt zum Beispiel ganz viele Bilder. Du möchtest ein Objekt erkennen, nimmst ganz viele Bilder und ich sag mal, auf dem Objekt ist jetzt ein Hund zu sehen. Und dann markierst du vorher in so einem Verfahren vorher halt auf jedem Bild so ein Hund und genau, das wäre dann das

{00:09:22} - Felix sagt: Ich glaube, das habe ich schon mal gehört, das ist dann das Labeling, ne?

{00:09:51} - Leon sagt: Labeln und gibst ihm quasi die Koordinaten des Hundes und die Bilder rein und dann versucht er daraus so eine Abhängigkeit zu ziehen. Das wäre jetzt zum Beispiel eine Geschichte. Dann gibt es ja das unüberwachtes Lernen, was aus allen, wo Daten mit einem Modell gelernt werden. Was machst du da? Beispiele dafür wären zum Beispiel Clustering, wo du die Einteilung in Mengen ähnlicher Daten hast oder Lernen von wesentlichen Merkmalen.

{00:10:20} - Felix sagt: Wenn ich jetzt so ein unüberwachtes Lernen habe und du sagst, das andere war, das Überwachtes Lernen. Also ich würde mir jetzt mal grob raten, unüberwachtes Lernen, da gebe ich dem nicht so viele Vorgaben, wodurch er wahrscheinlich länger braucht, um ein präziseres Ergebnis zu erreichen, als ich dem schon sage, worauf ich ihn auswille, schätze ich mal.

{00:10:35} - Leon sagt: Naja, beim überwachten Lernen hast du ja das Labeln. Beim unüberwachten Lernen gibst du ihm einfach die Daten rein und er findet da irgendwelche interessanten Strukturen drin,

{00:10:55} - Felix sagt: Also im Prinzip, wenn ich jetzt mal angenommen, ich habe eine Webseite, ich habe da Klicks, die bei allen Dingen ähnlich sind und lernt dann auf gut Glück irgendwelche Dinge da drin zu erkennen. Verweildauer und ähnliche Daten und würde ihm das alles reinschmeißen, würde er mir interessante Faktoren anhand dieser Daten geben. Also im Prinzip so eine blinde Datenanalyse, um daraus gegebenenfalls Erkenntnisse ziehen zu können.

{00:11:29} - Leon sagt: Ja, kann man so beschreiben. Dann gibt es das Halb überwachtes Lernen. Das ist so eine Mischung aus beidem. Da wird ein Teil der Beispieldaten mit den gewünschten Ausgabedaten bekannt gegeben, aber auch für ein Teil einfach nicht. Das aktive Lernen ist ähnlich zum halb überwachtes Lernen. Da gibt es Labels für Ausgabewerte, die können von der KI aktiv erfragt werden. Da wird der Entwickler dann regelmäßig rückgefragt. Dann gibt es dafür halt verschiedene Arten der Interaktion auf eine Frage, Bewältigungsfrage oder Auswahlfrage. Da wäre zum Beispiel ein Anwendungsfall das Erkennen von Personen auf Familienfotos. Zu guter Letzt das verstärkte Lernen. Da lernt jetzt zum Beispiel ein Agent durch den Versuch von Versuche und Irrtum sein Verhalten zu verbessern. Dabei erhält er dann Belohnung und Bestrafung von seiner Umwelt. Das hast du dann zum Beispiel in Spielen wie Schach, Go oder anderen Computerspielen und in der Robotik.

{00:12:22} - Felix sagt: Auf jeden Fall sehr spannend, was ich mich gerade so, also auf den ersten Blick frage, ich habe halt die verschiedenen Lernverfahren, jetzt habe ich ein überwachtes Lernen, ein teil überwachtes Lernen, ein überhaupt nicht überwachtes Lernen, oder wie heißt es nochmal richtig? Unüberwachtes Lernen. Mit welchem Verfahren, mit welchem Verfahren fängt man denn jetzt so an, wenn man mal eine erste KI bauen wollen, würde oder was ist da das einfachste, um zu starten?

{00:12:45} - Leon sagt: Das ist glaube ich immer anwendungsbezogen. Ich habe jetzt bei meinem Projekt mit dem Überwachten Lernen, das ist ja die Geschichte mit dem vorher Labeln und dann sowohl den gelabeltem Teil, also das was uns bekannt ist, als auch die Bilder der KI geben und dann lernt die halt daraus, ihre Schlüsse zu ziehen und begonnen. Was mir gerade einfällt, ist eine kleine Anekdote, sagt: die wir auch in der Vorlesung bekommen haben, ist Google ReCaptcha. Google ReCaptcha sind ja immer diese nervigen Dinge, die man beim Login anhaken muss. Und zumindest soll es wohl so sein, dass Google damit uns die KI trainieren lässt. Das heißt, die KI stellt uns damit quasi so eine kleine Rückfrage oder lässt uns das Ganze Vorlabeln und lernt daraus dann quasi Dinge besser zu erkennen.

{00:13:20} - Felix ruft rein: Und man nicht weiß, ob der Pfeil von der Ampel, der Pfeiler von der Ampel noch dazu gehört oder nicht und dann die ganze Zeit überlegt, nehme ich den jetzt dazu, nehme ich den jetzt dazu, was mache ich?

{00:13:36} - Felix sagt: Der Mensch vom Computer als billiger Arbeitskraft ohne das Er es weiß.

{00:13:46} - Leon sagt: Ja, als ich das gehört habe, war ich auch erst so, okay, ja, erschreckend.

{00:14:09} - Felix sagt: Wunderbare Welt, in der wir doch leben. Na ja, Daten verkaufen sich ja auch gut, also es lohnt sich schon. Jetzt hast du mir ja schon so ein paar Grundbegriffe erklärt zu dem ganzen Thema KI und zu den Lernverfahren, was ich mich gerade frage, wie starte ich denn dann, eine erste KI zu schreiben, sage ich mal.

{00:14:34} - Leon sagt: Es gibt ein Framework, das nennt sich TensorFlow und es gibt auch einen Rapper dazu, was ich Keras, es nennt man weiteren hilfreichen Funktionen. Und da würde ich dir dann ganz einfach mal die Guides auf der Seite von TensorFlow dafür empfehlen, weil das bietet dir halt so den vollen Rundumschlag, das Aufbauen der Architektur einer künstlichen Intelligenz mit den verschiedenen Schichten und aber auch dem Start des Trainings und der anschließenden Auswertung etc.

{00:15:05} - Felix sagt: Also das ist jetzt ja das, was ich damit machen kann.

{00:15:16} - Felix sagt: Intern ist dann TensorFlow ja eigentlich nichts anderes, außer dass es halt mathematische Funktionen ausgeführt werden, die halt aus meinem Input einen entsprechenden Output in einer gewissen Zeit entsprechend liefern.

{00:15:17} - Leon sagt: Naja, also mathematische Funktionen, ja, genau, daraus entsteht dann halt so ein neuronales Netz, wenn du das jetzt gerade damit abzielst und dieses neuronale Netz, das kannst du aber auch exportieren in verschiedene Output-Typen, wie jetzt zum Beispiel TensorFlow, TensorFlow Lite und was es da nicht noch alles so gibt.

{00:15:40} - Felix sagt: Und mit diesen, also mit diesen Dateien dann kann ich das Modell in anderen Programmiersprachen implementieren, die ich jetzt ausprobieren möchte.

{00:16:00} - Leon sagt: Genau, wenn du das Netz trainiert hast, dann kannst du es dir einfach exportieren auf das Format, was du halt brauchst und dann sagst du im Prinzip später eigentlich nur model.predict gibst dem den Input, den es halt bekommen soll rein. Sagen wir, wenn jetzt die Kamera irgendwas was aufnimmt und da irgendwas darauf erkannt werden soll, sagst du halt, ziehst du dir das erste Bild aus der Kamera und lässt es halt darauf erkennen und dann ziehst du dir das nächste Bild, lässt es wieder erkennen und so weiter und sofort.

{00:16:27} - Felix sagt: Du hast jetzt gerade schon beim Export irgendwie, wie lange dauert das dann überhaupt so ein Netz zu erstellen? Braucht man da viel Zeit für? Muss man da viel dann auch noch programmieren, sage ich mal, oder sind das relativ kurze Programme dann auch? Wie lange dauert das denn?

{00:16:28} - Leon sagt: Wenn man sich einmal reingefunden hat, würde ich sagen, ist das einfach das Programmieren für das neuronale Netz gar nicht so viel. Du musst halt erstmal die Daten vorbereiten, anschließend die Netzarchitektur machen. Ich kann das gleich alles noch mal an dem Beispiel von meinem Paper genauer erklären, aber vielleicht hier jetzt nochmal kurz der grobe Rundumschlag. Danach lässt du es trainieren und bekommst dann nach,...

{00:17:05} - Felix sagt: Wie lange dauert das Training so?

{00:17:10} - Leon sagt: von bis das kommt, ganz drauf an, was du trainierst für dieses Billo-Ding, was ich gemacht habe. Das hat eine halbe Stunde auf meinem M1 MacBook gedauert, aber wenn du das jetzt zum Beispiel mit Tesla Grafikkarten, entweder Tesla Grafikkarten trainieren lässt oder ähnlichem, kann das auch schneller gehen. Je nach Datensatz, den du da reinlätst, von 30 Minuten bis zu mehreren Tagen.

{00:17:35} - Felix sagt: Okay, das wäre jetzt ja bei dem, also dieses unüberwachtes Lernen und so weiter, macht man das dann immer vorher, hat man dann immer eine fertige Datei, mit der man dann weiter arbeitet, wo man das neuronale Netz einsetzt oder hat man das dann zum Beispiel bei dem halb überwachten Lernen, könnte ich mir jetzt vorstellen, dass das lernt und angewendet wird zur gleichen Zeit oder wie schaut sowas dann aus? Wenn ich jetzt zum Beispiel noch User-Inputs bekomme.

{00:18:06} - Leon sagt: Warte mal, das was ich jetzt aus deiner Frage verstanden habe ist, ob man eine künstliche Intelligenz während des Betriebes der KI noch weiter trainieren kann. Richtig?

{00:18:07} - Felix sagt: Ja, genau, genau.

{00:18:19} - Leon sagt: Ja, das geht, das geht. Du kannst eine KI weiter Sachen lernen lassen, während sie auch schon in der Anwendung ist.

{00:18:26} - Felix sagt: Okay.

{00:18:30} - Leon sagt: Habe ich selber auch noch nicht so umgesetzt. Also ich bin ja auch noch nicht allzu lange in dem Themenbereich drin. Ich mache das ja auf Embedded Machine Learning, also künstliche Intelligenz in eingebettetem System, so ein bisschen auf Hardware Ebene. Aber es ist ein super interessantes Ding und ich werde mich da sicherlich auch weiterhin noch mit beschäftigen. Ja, nee, nee sag du.

{00:18:34} - Felix sagt: Ist auf jeden Fall, ja, ist auf jeden Fall so sehr spannend. Das ist halt jetzt alles so im Gesamt noch so ein grobes Konzept für mich, weil ich halt am Anfang schon total krass fand, dass man schon 1940, wo man ja gerade mal so langsam dann angefangen hat, auch mit Programmierung so im Allgemeinen, dass man sich halt da über grundlegende Konzepte von sowas schon Gedanken gemacht hat, die dann auch irgendwie weiterführend genutzt wurden, schätze ich mal, wenn ich das richtig erst interpretiert habe.

{00:19:14} - Leon sagt: Genau, ja, da waren ja zu der Zeit gerade so Prädikatenlogik, Aussagenlogik, Gödel und Turing. Das fing da halt alles an. Lisp kam halt und erst danach noch.

{00:19:14} - Felix sagt: Aber Lisp ist ja eigentlich nur eine Programmiersprache, die relativ ähnlich zu JavaScript ist. sagt: Also JavaScript ist ja ein Dialekt letztendlich von Lisp, also natürlich weiterentwickelt.Aber du hattest jetzt Lisp eben schon mal reingeworfen. Hat das einen Grund, warum das so mit KI verbündelt war früher oder?

{00:19:21} - Leon sagt: Nein, nein, nein, das hat gar nichts mit KI zu tun. Das war einfach nur eine zeitliche Einordnung,

{00:19:47} - Felix sagt: Ach so, ach so, okay.

{00:19:50} - Leon sagt: weil Lisp ja schon relativ früh existierte. Dann danach kam er erst. Nee, ich habe hier so eine

{00:19:52} - Felix sagt: Ja, Lisp 1958. Ja, ja, ja, das stimmt. Okay, dann hatte ich das gerade falsch verstanden, weil du das immer irgendwie in einen Kontext gesetzt hattest.

{00:20:07} - Leon sagt: zeitliche über so eine Timeline gerade offen gehabt, auf der ich mich so ein bisschen orientiert habe. Ich habe mir doch so ein bisschen vorbereitet.

{00:20:12} - Felix sagt: Genau. Apropos vorbereitet, du hattest ja jetzt vorher schon als Uni-Projekt eine KI umgesetzt. Vielleicht kommen wir einfach mal dazu, dann haben wir ein praktisches Beispiel, dass man das Ganze vielleicht besser verstehen kann.

{00:20:29} - Leon sagt: Das Projekt, was wir in einem Smart Home meiner Hochschule umsetzen, beschäftigt sich mit einem Tresen, in dem ein Raspberry Pi steht, an dem eine Kamera angeschlossen ist und welche durch eine Glasplatte, die an der Oberseite befestigt ist, gewisse Dinge aufnehmen kann. Grundsätzlich wollen wir ein 3D gedrucktes Objekt erkennen, in unserem Fall ein Pacman. Und wenn wir den halt auf dem Tresen hin und her bewegen, sollen gewisse Dinge im Smart Home passieren, wie jetzt zum Beispiel das Licht wird heller, dunkler, die Farben ändern sich oder sonstiges. Dabei habe ich jetzt schon zwei Begriffe genannt, einmal Lokalisierung und einmal Objekterkennung. Und das sind halt so die Dinge, die unser neuronales Netz dann später können soll. Dafür haben wir zum Anfang ganz viele Bilder aufgenommen. Bilder mit Pacman, Bilder ohne Pacman und Bilder mit Pacman und ganz vielen anderen Dingen drauf. Genau, die haben wir dann einzeln gelabelt. Da haben wir jetzt ein Supervise.ly hergenommen. Man kann aber auch Label Image oder andere Labeling Tools hernehmen. Und das Labeln generiert einem eine JSON oder XML Datei.

{00:21:25} - Felix sagt: Das ist jetzt um die Testdaten aufzubauen, oder?

{00:21:26} - Leon sagt: Genau, also in dieser JSON Datei befinden sich dann halt die Koordinaten, die wir vorher gelabelt haben. Also zwei Punkte links oben und rechts unten des Rechteckes und die übergeben wir dann quasi später dem neuronalen Netz. Aber der Reihe nach. Wir speichern dann quasi später die Koordinaten jeweils in einem Array, wo wir dann halt auch quasi das Bild damit dazugeben. Aber als nächstes würde das das Bauen der Netzarchitektur kommen, bevor wir denn überhaupt Bilder irgendwo reinpacken können. Ich weiß nicht, ob das schon zu tief greifend ist, aber wir haben in der Netzarchitektur, wenn ich das nur ganz grob zusammenfassen wollen würde, die ganz vielen verschiedenen Schichten, die das neuronale Netz halt hat, niedergeschrieben. Da drin sind jetzt aber auch zum Beispiel Schichten wie eine Dropout Schicht, die verhindert, dass ein Overfitting stattfindet. Ich würde es als auswendig Lernen beschreiben KI kann zwar etwas lernen, aber wenn es zu viel von etwas gesehen hat oder gewisse andere Dinge oder gewisse andere Umstände eintreten, dann lernt es zwar diesen Datensatz auswendig, aber es kann in der Regel nichts in der realen Welt erkennen. Es lernt halt nur diese Struktur und nicht den Zusammenhang darunter.

{00:22:35} - Felix sagt: Also zum Beispiel jetzt mal blöd gesagt, dein Testdatensatz ist so mickrig, dass du jetzt mal so viele Epochen darüber laufen, dass der irgendwann genau weiß, was er erwarten muss, einfach nur anhand dessen, was er bereits kennt, ohne jetzt wirklich was Neues dazuzulernen.

{00:22:40} - Leon sagt: Ja, genau, perfekt, richtig. Das Dropout schmeißt jetzt quasi die Hälfte des Wissens oder eine gewisse Anzahl des Wissens von dem, was er jetzt gelernt hat, einfach weg und lässt ihn dann weiter lernen. Und so verhindert man, und das ist jetzt eine Schicht in unserem neuronalen Netz, da passiert auch noch ganz viel anderes, aber und so verhindere ich jetzt quasi bei uns das auswendig lernen. So, nachdem diese Netzarchitektur...

{00:23:42} - Felix sagt: Also diese Schichten, sorry, also diese Schichten kann ich mir dann vorstellen, im Prinzip jetzt mal ganz rudimentär gesagt, die einzelne Anweisungen, die in diesem Netz nacheinander ausgeführt werden. Und das ist ja eine gute Idee.

{00:23:57} - Leon sagt: Ja, genau, also jede Schicht mit den halt zugehörigen Neuronen fühlt halt irgendwas aus. So, und dann habe ich nachdem die Architektur quasi stand, den Datensatz in Trainings und Testdaten aufgesetzt. 90 Prozent Trainings und 10 Prozent Testdaten, damit man quasi immer irgendwie was zum evaluieren hat, ob das jetzt auswendig gelernt hat, ob es quasi auch fremde Daten erkennen kann. Nach dem Training bekommt man dann, wenn man sie sich anzeigen lässt, zwei Funktionen ausgegeben, einmal Accuracy und einmal die Loss Funktion. Accuracy sagt aus, es ist eine Metrik, die aussagt, wie groß der Anteil der korrekt vorgesagten Dinge ist und Loss ist eine Metrik, die dir sagt, wie gut Fehler optimiert wurden nach jeder Epoche des Trainings.

{00:24:52} - Felix sagt: Also würde man dann über die Epochen dann auch sagen, irgendwann ist man an einem Break-Even, sag ich mal, wobei es hier ein richtiger Break-Even ist, dass ab da die KI einfach nicht mehr besser werden kann, wSeil die Lerndaten nicht umfangreich genug dann sind, weil schon alles gelernt wurde im Prinzip.

{00:25:03} - Leon sagt: Nicht ganz, eine Epoche ist ein Trainingsdurchlauf, wo das neuronale Netz einen gehörigen Bereich des Trainingsdatensatzes kennenlernt und im Anschluss quasi wird dann auch noch mal dieser Testdatensatz dadurch geschoben, um zu gucken, wie gut es das dann halt kennen gelernt hat. Danach läuft halt die nächste Epoche los und du kannst festschreiben,

{00:25:36} - Leon sagt: wie viele Epochen das Ding trainieren soll. Aber du kannst auch so ein Early Stopping Feature einbinden, was dir quasi dann sagt, ja, hey, wenn das nach gewissen, noch mal gewissen Anzahl an Epochen, ich sag mal zehn Epochen jetzt zum Beispiel, sich da nicht wirklich was verändert hat an irgendeinem gewissen Wert Loss zum Beispiel, dann höre ich jetzt einfach auf zu trainieren und nehme halt das beste Ergebnis raus.

{00:25:59} - Felix sagt: Also im Prinzip, ich habe jede Epoche läuft einmal, also eine Epoche wird trainiert, dann wird einmal der Testdatensatz ausgeführt, um mal zu schauen, auf welchem Stand der gerade ist, und dann wird das eben immer so weiter ausgeführt, damit man dann halt dort die Möglichkeit hat, schon frühzeitig abzubrechen, wenn man jetzt sehr große Datenmengen hat und merkt, es wird einfach nicht mehr besser.

{00:26:26} - Leon sagt: Genau, ja, dabei wird halt trainiert. So und danach habe ich mir dann zum Beispiel noch einmal alle Bilder, die ich dem neuronalen Netz zum Trainieren geben habe, mit zugehöriger Erkennung ausgegeben. Das heißt, ich habe halt einfach gesagt, hey, bitte erkenne mir einmal all diese Bilder und zeig mir mal an, was du da drauf so erkannt hast. Gib mir mal diese Bounding Boxes, diese Rahmen, die ich halt vorher gelabelt habe. Mach mal selber, zeig mir mal an, was du da erkennst. Und anfangs war das halt alles noch Kraut und Rüben. Waren diese ganz viele Rechtecke auf den Bildern, aber alle nicht so richtig gesetzt. Und mit der Zeit, mit dem ich das neuronale Netz dann halt optimiert habe, das war dann ganz viel trial und error an verschiedenen Parametern, wurde das dann besser. Genau und so habe ich dann ein Paper noch dazu geschrieben über das Ganze. Das habe ich jetzt abgegeben. Dafür bekomme ich eine Note und bin ganz zufrieden, dass ich das Semester damit abschließen konnte.

{00:27:12} - Felix sagt: Jetzt hatten wir ja ein sehr schönes Beispiel jetzt von dir mit der Objekterkennung. Jetzt hatten wir ja bei dem Googlebot, wenn ich mir das jetzt so im Kopf richtig ordnen gehe, dann ging es ja beim Googlebot vor allem darum, für ein Menschen möglichst annähernd menschliches Verhalten zu erwarten von einem Bot, damit sich der Mensch dabei wohler fühlt, so die Intention von Google. Warum macht es denn dann jetzt keinen Sinn, dass das ganze System ein Bewusstsein entwickelt hat?

{00:27:52} - Leon sagt: Naja, im Grunde genommen haben wir jetzt ja gerade gehört, dass eine KI aufgrund von Inputs, gewisse Outputs, ein neuronales Netz aufgrund von gewissen Inputs, gewisse Outputs geben kann. Und ich bin ganz fest der Überzeugung, dass da dann kein komplettes Bewusstsein auf dem Niveau eines 7- bis 8-Jährigen hinterstecken kann. Das jetzt zu untermauern finde ich ein bisschen schwierig. Ich glaube, dafür müsste ich mir ein bisschen mehr Zeit nehmen und ein bisschen mehr in die Tiefe gehen. Aber ich glaube, vielleicht reicht das auch einfach schon als Aussage.

{00:28:20} - Felix sagt: Ja grundsätzlich ist es halt für mich halt so, jetzt von dem, was ich begriffen habe, einfach so, dass wir letztendlich mathematische Funktionen haben, die dem ganzen zu Grunde liegen, die aus einem Input und Output generieren und die KI auf Erfahrungen zurückgreifen kann, aber sie kann ja nicht, wie willst du über Daten, Gefühle, Erfahrungen oder sonstiges vermitteln?

{00:29:04} - Leon sagt: Richtig, genau.

{00:29:06} - Felix sagt: Was soll das für ein Datensatz sein? Punkt Gefühle, TXT? Du kannst natürlich annähernd vielleicht die Verhaltensweisen von Menschen nachempfinden, aber das ist ja dann auch wieder bewusst trainiert auf einem Ziel hin.

{00:29:20} - Leon sagt: Also das ist dann, dass Chatbot existiert und so, das streite ich ja gar nicht ab. Cleverbot ist ja auch ein super Chatbot.

{00:29:30} - Felix sagt: Ja, das war nochmal. Wie "clever" sagst mir gerade überhaupt nichts mehr?

{00:29:34} - Leon sagt: Aber Cleverbot ist so eine KI, mit der man im Internet chatten kann. Gehen wir einfach mal auf die Seite Cleverbot.com.de.

{00:29:40} - Felix sagt: Ich glaube ich erinnere mich dunkel, ist aber schon wieder ein paar Jahre her oder? Ah ok. Hast du noch was?

{00:29:44} - Leon sagt: Ja, doch, aber das war mal eine Zeit lang in.

{00:30:04} - Felix sagt: Ich habe eigentlich nichts mehr außer unseren Discord Server, wo ihr natürlich drauf kommen könnt und wir weiter darüber diskutieren können noch. Und natürlich auf der Webseite findet ihr neue Java Artikel, hatte ich aber auch am Anfang schon gesagt, hast du sonst noch was?

{00:30:23} - Leon sagt: Ja, genau, also auf dem Discord haben wir gar nicht so viel mit Machine Learning aktuell zu tun. Aber wenn, würde ich das so den Python-Kanal zuordnen, denke ich. Inhaltlich gesehen denke ich nichts. Vielleicht bist du jetzt ein bisschen, oder auch die Zuhörer, schlauer daraus geworden, was Deep Learning an sich ist, was eine KI-neuronales Netzwerk ist. Und man konnte sich ein bisschen aus dem, was ich erzählt habe, einen Umriss machen. Das Thema ist natürlich viel komplexer als das, was ich jetzt gerade erzählt habe. Und es dauert eine lange Zeit, sich da komplett eingelesen, eingearbeitet zu haben.

{00:30:42} - Felix sagt: Ich muss schon sagen, dass ich vom grundsätzlichen Ansatz her jetzt auf jeden Fall schon nochmal ein besseres Verständnis davon hatte. Ich hatte mich natürlich in Vorbereitung auf den Podcast auch minimal damit beschäftigt. Ich hatte mir auch mal ein bisschen was angeschaut, aber so wirklich die Bandbreite noch nicht so begriffen. Natürlich kannte ich KI aus dem Alltag aus bestimmten Situationen, wo ich bewusst damit arbeite bei bestimmten Tools, sei es SEO-Tools oder Sprachanalyse. Aber was da eigentlich alles noch mit möglich ist, was mir auch gerade an Gedanken gekommen ist, ist echt beeindruckend, was da noch machbar ist, aber ich glaube es braucht auch vieles Zeit.

{00:31:25} - Leon sagt: KI kannst du so ein bisschen vergleichen mit dem großen, also ich sag mal, KI, du hast Informatik, du hast einen riesen Werkzeugkasten, zum Beispiel auch im Bereich Programmieren, im Bereich Sensurik, etc., PP, Clustering und sonstige Verfahren. Und KI ist so dieses größte Werkzeug, mit dem halt ganz viele Leute Dinge versuchen jetzt umzusetzen. Aber es geht auch manchmal anders.

{00:31:52} - Felix sagt: Also dass dann auch dort viel Overloading zustande kommt, weil man sich einfach nur denkt, ach ich kann ja mit KI arbeiten, lass mal mit KI arbeiten.

{00:31:56} - Leon sagt: Richtig, ja.

{00:32:14} - Felix sagt: Also den Input, den du mir ja heute gegeben hast, war auf jeden Fall nochmal sehr spannend. Ich hatte mich ja auch im Vorhinein für die Podcast-Folge immer so ein bisschen vorbereitet, zumindest, dass ich nicht komplett blind in das Thema starte, aber was ich so gemerkt habe, als ich im Internet geschaut habe, gelesen habe, ich habe mir noch so einen groben Rahmen gegeben, den du mir gerade auch gegeben hast und ich kenne ja auch KI-Tools irgendwie jetzt, sei es von einem Spellchecker oder von SEO-Tools. Oder was ich mir letztens mal angeschaut habe, fand ich auch relativ spannend, ist Textgenerierung basierend auf KI. Du schmeißt dir im Prinzip ein paar Keywords hin und der schmeißt dir 600-700 Wörterlange Texte aus, wobei die Qualität auch in, also die Qualität war da noch nicht so gut, aber was man da alles machen kann einfach, ist schon enorm interessant. Ich werde mich damit auch definitiv noch mehr beschäftigen. Ja, mal schauen, was die Zuschauer in daraus mitnehmen. Könnt ihr ja gerne mal in die Kommentare schreiben. {00:33:11} - Leon sagt: oder auf unserem Discord-Server.

{00:33:12} - Felix sagt: Genau, oder auf dem Discord-Server. Ich glaube, dann sind wir, dann sind wir auch so ziemlich am Ende angekommen.

{00:33:22} - Leon sagt: Da können wir das ganze Thema noch mal ein bisschen weiter diskutieren.

{00:33:32} - Felix sagt: Ihr könnt natürlich auch auf der Webseite vorbeischauen. Dort haben wir ein wenig was zu Java inzwischen Neues und was vielleicht auch interessant ist, gerade in diesem Kontext, eine Sentiment-Analyse-API, wie man diese in eine Webseite integrieren kann. Auch ein sehr spannender Artikel.

{00:33:42} - Leon sagt: Den lese ich mir dann auch gleich mal durch.

{00:33:49} - Felix sagt: Genau. Willst du noch etwas los, Leon?

{00:33:57} - Leon sagt: Nein, alles gut. Ich bin, ganz zufrieden.

{00:34:01} - Felix sagt: Das ist doch wunderbar. Dann euch noch einen schönen Abend morgen oder was auch immer.

{00:34:02} - Leon sagt: Mittag?

{00:34:07} - Felix sagt: Ja, den habe ich vergessen. Natürlich. Gut, bis zum nächsten Mal.

{00:34:13} - Leon sagt: Ciao!

Bildquelle - Vielen Dank an die Ersteller:innen für dieses Bild
Kommentare zur Podcast Episode {03}

Es sind noch keine Kommentare vorhanden? Sei der/die Erste und verfasse einen Kommentar zur Podcast Episode {03}!

Kommentar schreiben

Neue Podcast Episoden

close