An sich finde ich euer Projekt sehr interessant, doch die Umsetzung gefällt mir ehrlich gesagt nicht ganz so gut. Ich programmiere nun seit einigen Jahren in C++, bin bei weitem kein Experte, aber für die alltäglichen Aufgaben reichts. Trotz dieses Wissens ist Python natürlich eine Umstellung, auch wenn mir das ein oder andere bekannt vor kommt. Die Art und Weise wie die Videos bisher entstanden sind finde ich gut, auch das 1:1 gezeigt wird, was sache ist. Doch stößt mir das "es ist so, weil es so ist" sauer auf. Man lernt so effektiv nur eine Kopie zu erstellen, da so ein tieferes Einsteigen nur schwer möglich ist. Als Beispiel: Es werden an einer Stelle 128 Neuronen zum Training erzeugt, wieso genau 128? Mir würde es daher besser gefallen, wenn auch auf die Hintergründe eingegangen wird und man somit vom klassischen "Frontalunterricht" oder den trockenen Uni Vorlesungen etwas weg kommt.
Ich versteh was du meinst. Allerdings kann man bei drei 20 Minütigen Videos nicht sonderlich viel fachliche Tiefe erwarten. Ich hab mir zu MachineLearning vor ein paar Wochen ein Handbuch gekauft, was deutlich mehr Informationen beinhaltet, aber trotzdem nur einen Überblick verschafft. Tieferes Verständnis benötigt nun mal ganze Jahre bei einem solch komplexen Thema.
Stimme dem Kommentar zu! Ich bereite gerade eine Python Serie vor und werde dann am Ende auch auf Machine Learning, Deep Learning bzw. Reinforcement Learning näher eingehen. Ich finde die Videos schon gut aber für einen Anfänger sind die glaube ich nicht so mega.
Wie viele Neuronen man benutzt ist erstmal egal, denn egal wie viele, alles liefert ein Ergebnis. Jedoch bekommt man mit unterschiedlichen Anzahlen der Neuronen auch unterschiedliche Ergebnisse. Man möchte natürlich die Anzahl der Neuronen, die das beste Ergebnis liefern. Die Anzahl der Neuronen rein durch Intuition herauszufinden ist nicht leicht/unmöglich (Aktives Forschungsgebiet) aber eine Potenz von 2 ist oft beliebt. Es gibt auch spezielle Algorithmen, welche intern selber wieder Neuronale Netze benutzen, die die optimale Anzahl an Neuronen, sowie andere Variablen, approximiert. Auf den Punkt gebracht, er hat wahrscheinlich ein paar Anzahlen an Neuronen ausprobiert und 128 hat ganz gut funktioniert, weswegen er das genommen hat.
Habt ihr noch Fragen zu Thema KI programmieren oder ist euch alles klar? Freitag kommt der letzte Teil unseres Tutorials und wir wollen möglichst viele davon beantworten!
Ich würde ja mal gerne wissen wie eine KI sich etwas selber etwas beibringt. Zum Beispiel bei Super Mario gibt es eine KI die alle tasten einmal ausprobiert und mit einem hiscore den lauf bewertet. Soweit kann ich den ja auch noch folgen aber wie funktioniert das bei einem Komplexen Spiel das nicht so Linear mit Festen Bedingungen für gewinn oder Niederlage sondern s.B. Fortnite (mal ganz vom Trend etc. abgesehen )da ist die Umgebung zwar immer gleich aber nicht das was passiert. Das währe so als wenn bei Super Mario die Gumbals (ich glaube die heißen so ) und Schildkröten sich jedes Mal anders verhalten. Ich würde mich echt freuen wenn ihr "uns" das erklärt. Macht weiter so.👍👍👍
Ja ich hätte da noch eine Frage ich habe die schon Kommentiert und auch in dem letzten Video schon Mal Angesprochen also Meine Frage bezieht sich zwar auf das letzte Video aber ich hoffe das ist okay und ihr könnt mir weiter helfen danke :. Ich gebe dem Programm (KI) Ja als Input zwei "Zahlen Folgen" Mit der zweier Mahl Folge, könnte ich da noch eine dritte "einbauen". Ich habe es schon so Probiert das ich das ganze einfach fortsetzte und diese Folge Dan "zs" genannt habe. Doch wo ich das Dan unten zu den anderen in die Klammer geschrieben habe kam beim Ausführen dann immer eine Fehler Meldung. Ich hoffe ich habe es einigermaßen verständlich erklärt und das ihr mir Helfen könnt. Leider habe ich bisher immer nur kleine Sachen auf "bat" (Windows batch Datei) Programmiert und so auf diesem Gebiet keine weitere Erfahrung. PS.: Ich entschuldige mich schon mal im voraus für meine wahrscheinlich miserabel RS. 🙄
Meine Frage bezieht sich darauf, ob ihr Vorschläge zu Literatur für Anfänger und Fortgeschrittene habt. Ich finde das weit interessanter als mich nur mit Oberflächlichem Wissen zufrieden zu geben, und Phil hat sicher das ein oder andere super Buch gefunden während seiner Doktorarbeit.
@Matze D. Hast recht. Hätte ich machen können. Dennoch ist das nicht ganz das, was ich mir vorgestellt hatte. ^^ Wobei der YTer recht interessant ist. Ich wollte eher Fachliteratur und möglichst zum greifen. Mit dem Handy in der Hand rum sitzen und PDFs lesen kann ich immer nicht. Ich weiß auch nicht warum, aber da bin ich immer froh, wenn ich das wieder geschlossen habe. Mit einem Buch komme ich deutlich besser klar.
Vielen Dank, dass ihr auf das Feedback eurer Community hört! Ich habe als absoluter Laie zwar nicht alles 100%ig verstanden, es war aber auf jeden Fall schon viel, viel besser als die letzte Folge. Da habe ich gar nichts gecheckt. Also Danke und macht weiter so. P.S. Freue mich schon auf den 30.!
02:17 Es wäre vlt. einfacher "Pointer Variable" gar nicht erst zu erwähnen, da das Konzept der Pointer-Arithmetik nur Devs nützt, die auch eine dafür geeignete Sprache benutzen(C/++, Assembly, C# mit unsafe Blöcken etc). Unter Python ist es schon völlig Korrekt zu sagen, dass es eine "Variable" ist. Ansonsten müsste man meiner Meinung nach noch auf Referenzen etc. eingehen, was diese Serie aber wahrscheinlich sprengt.
@@---ev9ru Müsste ich noch mal angucken, aber im Generellen ist Keras sehr nützlich soweit ich es mitbekommen habe. Da es sowieso verwendet wird in dieser Reihe, ist es aber nicht so schlimm, wenn es importiert wurde, obwohl unnötig - wenn auch man das nicht übertreiben sollte bei größeren Code.
@@---ev9ru Ich bin leider kein Python Dev, weswegen ich nicht genau sagen kann, ob man das bei Python benötigt, wenn etwas ein Teil eines anderen Packages/Modules(kp wie das bei Python heißt) ist. Bzgl der 8: Ich war erst verwirrt, aber dann is mir eingefallen, dass ich das noch nicht fertiggeguckt hatte. Mach ich kurz. //EDIT: Weird... Wenn das Label 9 sein müsste und er 8 raus hat, is das schon relativ komisch, weil die Labels bereits bei 0 beginnend nummeriert wurden. Ich könnte mir lediglich vorstellen, dass er auch -1 raus bekommen könnte und das aber dann 0 wäre, weshalb er noch + 1 rechnen muss/will. Das wäre aber ziemlich komisch, weil ich bei Deepl4J die labels auch random nummerieren konnte, insofern das Netz mit macht. Vlt gucke ich später mal den Source an, vlt missverstehe ich ihn da irgendwie.
@@---ev9ru Naja, es gibt halt Alternativen. Für TensorFlow gibt es Bindings für Java beispielsweise, aber die sind glaube nicht wirklich gut... also für bereits trainierte Models (angeblich) gut, aber mehr auch nicht. Ansonsten gabs glaube Coffe Bindings und Deepl4J
@@---ev9ru Im ersten Teil war es unnötig keras nochmal aus tensorflow zu ziehen da wir mit "tf" bereits tensorflow in der Hand haben. Ich hab mich im ersten Teil schon gewundert aber da ich Python nie programmiere dachte ich das die Sprache vielleicht einfach etwas umständlich sei. Die Frage ist auch : "Weiß der Mann vor der Kamera auch was er tut oder arbeitet er nur nach Anweisung?"
Finde das Video genau richtig und qualitativ überragend. Es ist weder zu lang noch zu kurz ,nicht zu oberflächlich aber auch nicht übergenau. Deshalb denke ich das es die beste Mischung ist da Leute die schon Grunderfahrung mit programmieren haben allem problemlos folgen können und Leute die Neulinge sind aber Interesse daran haben ein paar Sachen nebenbei nachschlagen können (wenn nötig). Also kurz und knapp gefällt mir richtig gut . Mal so als Idee am Rande könntet ihr ja mal eine Videoreihe zu z.b. Python Grundlagen usw. machen könnte mir vorstellen das viele daran Interessiert währen
@Breaking Lab Ich hätte eine kleine Frage. Und zwar wollte ich eine KI programmieren, die lernt aus mehrstellige Zahlen die Quersumme zu bilden. Also eigentlich so eine ähnliche KI wie im ersten Video, nur ein kleines bisschen komplexer. Ich habe mir dazu ein Programm geschrieben, was 1- bis 6-stellige Zahlen generiert und jeweils so oft die Quersumme bildet, bis eine Ziffer übrig bleibt. Ein Beispiel: *789* --> 24 --> *6* oder *123456* --> 21 --> *3* xs=[789, 123456, 12, ...] ys=[6, 3, 3, ...] Ich habe dann 10 mehrstellige Zahlen mit ihren jeweiligen Lösungen eingegeben in euer Programm und habe es lernen lassen. Allerdings steigt mein Loss-Wert bis ins unendliche und die KI findet keine Lösung[NaN]. Am Programm selber ist nichts falsch geschrieben, weil ich euren Code kopiert habe. Kann es sein, dass dafür 1 Neuron nicht ausreicht? Könnt ihr mir bitte helfen, wie ich das Programm optimieren muss, damit die KI auch mit größeren Zahlen und einer größeren Datenmenge arbeiten kann?
Ist zwar schon etwas her, aber vielleicht stößt ja wer anderes auf die Frage. Am einfachsten wäre es entsprechend der Länge der eingegebenen Zahl Input Neuronen zu haben. Musst dich am besten auf eine Zahlenlänge festlegen und bei kürzeren zahlen Nullen davor stellen. Also beispielweise 00005, 12345, 00592 und dann je Ziffer splitten und an die einzelnen Neuronen geben. So kann es das Netz am einfachsten lernen. Alternativ kann es auch mit einem Inputneuron funktionieren, dann brauchst du aber dennoch ein Layer mit der Anzahl Neuronen entsprechend der maximal Länge deiner Zahlen und womöglich andere Aktivierungsfunktionen. Es könnte auch mit deinem Model funktionieren aber dann braucht es vermutlich wesentlich mehr Trainingsdaten.
12:27 wie hast du das Bild von dem schuh einzeln aus den Datensatz heraus bekommen um es hochzuladen ?? ich bräuchte nämlich am besten von allen 10 klassen je ein kleidungsstück
128 Neuronen ist einfach nur eine Zahl. Da kannst du einfach mal mit rum spielen wie das die Fähigkeiten von deinem Netzwerk ändert. Es ist üblich Potenzen von 2 zu nehmen ( in dem Fall 2^7) aber man muss das nicht machen. Das ganze sind rein experimentelle Werte. Wenn man zu wenig Neuronen hat, kann das Netzwerk die Aufgabe nicht richtig lernen und wenn man zu viele Neuronen hat lernt das Netzwerk die Trainingsdaten einfach auswendig. Deswegen lohnt es sich mal zu schauen was passiert :) Das ganze nennt man dann Underfitting oder Overfitting. Bei dem teilen mit 255 handelt es sich um eine sogenannte Skalierung. In Schwarz-Weiß Bildern kann ein Pixel einen Zahlen wert zwischen 0 und 255 haben. Ein Wert von 0 wäre hierbei aus (Schwarz) und 255 an (weiß) und alles andere sind entsprechende Abstufungen welche in Grautönen resultieren. Da viele aktivierungsfunktionen Probleme haben wenn werte viel höher sind als anders (hier 255 zu 0) kann sich das negativ auf das lernen auswirken. Das ist der Grund warum man Werte skaliert. Hier im Video wurde eine 0-1 Skalierung genommen. Das heißt dass der niedrigste Wert eine 0 sein soll und der höchste Wert eine 1. Alles andere soll entsprechend irgend wo dazwischen liegen. Die 0 ist bereits der niedrigste Wert und um den Wert 255 auf 1 zu skalieren muss man halt eben durch 255 teilen. Eine allgemeine Formel wäre wert_skaliert = (wert_alt - min(wert_alt))/(max(wert_alt)-min(wert_alt)). Also hier wert_skaliert = (wert_alt-0)/(255-0) = wert_alt/255
Welche Modellstruktur eignet sich am besten für eine Produktionsmaschine? Sprich Eingäge= Ventilstellung etc. Ausgang: Leistung etc. ? Logistische Funktion, Tangens Hyperbolicus? Wieviele hidden layer? Habt ihr ein link wo dokumentiert wird wie die Modelle aufgebaut werden können und welche Aktivierungsfunktionen man verwenden kann? Evtl. auch ein Tutorial wie man Daten einlesen kann und diese dann für die Inputs und Outputs verwendet und zusätzlich davon die Trainings sowie Test Daten generiert?
SteFÖN Ich bin mir einigermaßen sicher, dass dies einfach ein Fehler ist. Du hast recht dass es bei 0 los geht und der Befehl um die Klasse auszulesen (np.argmax()) berücksichtigt diese Stelle auch. Der Befehl würde, falls an der Stelle 0 der Liste die höchste Aktivierung vorliegt, auch eine 0 zurück geben. Wenn du dir auch mal die Ausgabe in Zahlenwerten anschaust, siehst du dass im der Prediction die Aktivierung nicht an der letzten Stelle am höchsten ist sondern tatsächlich an der vorletzten. Da aber die „Anker Boots“ klasse eigentlich die letzte sein sollte, glaube ich, dass das Netzwerk die tatsächlich falsch klassifiziert hat (kann ja passieren ein Netzwerk ist ja immer nur eine approximative Lösung). Das ganze wurde dann wahrscheinlich leider falsch interpretiert. Man kommt halt eben leider schnell damit durcheinander wann jetzt ab 0 und wann ab 1 gezählt wird und kann passieren, gut dass es dir aufgefallen ist!
Tripton hat recht. Das mit dem -1 war leider ein Fehler. Kam darauf, da das mit den eingeladenen Bildern genau passte. Phil hat den Code nochmal etwas überarbeitet und jetzt sollte das auch besser funktionieren
Karl Deck Das hat keinen genauen Grund. Das ist einfach eine „Design“ Entscheidung und kommt sehr auf das Problem an. Wenn man zu wenig Neuronen hat, lernt das Netzwerk nicht so gut zu generalisieren, wenn man zu viele hat kann es passieren, dass es einfach die Trainingsdaten auswendig lernt. Das erste ist als Underfitting in der Literatur bekannt und das auswendig lernen als Overfitting. Falls du noch mehr dazu wissen willst, such mal nach „Bias-Varianz-Tradeoff“. Oft werden neuronen zahlen in 2^x genommen so wie hier die 128 auch. 256 neuronen oder 512 sind aber z.B. auch häufig verbreitet. Wenn du magst kannst du ja einfach mal testen was passiert wenn du die Neuronen Zahl änderst und das Netzwerk neu trainierst.
Man nimmt da gerne Zweierpotenzen, aber ansonsten gibt es da keine Regel. Manches funktioniert einfach besser und manches schlechter, muss man ausprobieren.
Cooles video aber ich habe nicht verstanden warum wir genau 128 Neuronen benutzten. Warum nicht mehr oder weniger ? Können wir das mit dem Aktienkurs trotzdem danach machen ? 🤑
Wie viele Neuronen man benutzt ist erstmal egal, denn egal wie viele, alles liefert ein Ergebnis. Jedoch bekommt man mit unterschiedlichen Anzahlen der Neuronen auch unterschiedliche Ergebnisse. Man möchte natürlich die Anzahl der Neuronen, die das beste Ergebnis liefern. Die Anzahl der Neuronen rein durch Intuition herauszufinden ist nicht leicht/unmöglich (Aktives Forschungsgebiet) aber eine Potenz von 2 ist oft beliebt. Es gibt auch spezielle Algorithmen, welche intern selber wieder Neuronale Netze benutzen, die die optimale Anzahl an Neuronen, sowie andere Variablen, approximiert. Auf den Punkt gebracht, er hat wahrscheinlich ein paar Anzahlen an Neuronen ausprobiert und 128 hat ganz gut funktioniert, weswegen er das genommen hat.
Am Anfang fehlt mir total der Einstieg. Da werden irgendwelche Daten geladen. Wo kommen diese denn her und in welcher Form sind sie dort hinterlegt? Eigentlich interessantes Thema...
Das ist natürlich schwer, Python Laien zu erklären, die nie programmiert haben. Ich studiere Informatik und hatte keine Probleme, Dir zu folgen :D Was ich dir vielleicht empfehle, ist, die Videos etwas kürzer zu machen, z.B. hätte man Phil’s Part in einem extra Video machen können, dann sind die beiden Videoteile in sich abgeschlossener. Bin auf jeden Fall gespannt auf die kommenden Videos!
Falls du die Syntax oder die Methoden meinst: Das kommt mit der Zeit. Irgendwann merkt man sich die meisten Bezeichnungen durch die ständige Wiederholung und die Assoziationen zu anderen Libs und Frameworks
Wie kann ich jetz statt bags, shirts..... Auch zb. Ein Baum hinzufügen. Sprich die KI sollte mir dann sagen es ist ein baum im Balkendiagramm.. Wie kann ich das ändern?
Hey, super Video! Ich setze mich aktuell auch gerade mit mnist auseinander, jedoch mit dem digit dataset, die vorgehensweise ist ja die gleiche. Jedoch habe ich ein Problem: Wenn ich nach dem Training des NN Tests mit Zahlen aus dem Datensatz mache, bekomme ich eine zu 99% korrekte Vorhersage - logisch soweit. Wenn ich jedoch meine eigene Ziffer predicten lasse (ja, auch in SW und 28x28, das array hat auch die gleiche shape), kommt nicht nur eine falsche Vorhersage, sondern auch eine komplett diffuse. Bsp: Ich gebe eine 5 als input, bekomme als prediction: "Zu 13% eine 1, zu 27% eine 8, zu 43% eine 7, usw." Ich habe unter Verdacht, dass das mit dem reshape des Trainings- und Testdatensatzes von mnist zutun hat. Konkret mit der (hier) 60000. Kann das sein? Wenn ich andere meiner eigenen Zahlen test, kommt auch Gemüse raus. Danke für's Durchlesen und schon mal vorab für eventuelle Hilfe! Kann auch gerne den Code posten.
Das nennt man overfitting. Das heißt dass das netzwerk so oft (in so vielen epochen, etc.) trainiert wird, dass es sich langsam anfängt zu 'merken' was die einzelnen Bilder bedeuten, und nicht mehr das generalisierte lernen von mustern, strichen, formen sondern das einfache abspeichern von bild -> label in den Vordergrund gestellt wird. Um das zu beheben kann man zum Beispiel das modell kleiner machen (größer ist nicht immer besser) oder die anzahl der epochen reduzieren (hier gilt dasselbe). In tensorflow kannst du auch mit einem seperaten 'validation-set' trainieren, wobei das modell an bildern, die nicht im trainingsset enthalten sind, geprüft wird.
Ich würde jetzt mal behaupten das es einfacher ist, das Dinospiel nachzubauen oder die den Quellcode zu kopieren, als irgendwelche Screenshots zu machen und diese zu analysieren.
Ich glaube, Tetris ist wahnsinnig schwer umzusetzen. Es gibt einen TH-camr, der das mit einer 2D-Spiele-KI probiert hat, und diese hat es nie herausgefunden. Die erfolgreichste Strategie der KI war, das Spiel für immer zu pausieren :D Vielleicht wäre das eher als Projekt Nummer 2 gut.
@@glumpfi Ja ich sehe ein, dass es nicht das leichteste Spiel ist, aber etwas Herausforderung muss es ja auch geben. Aber das Dino Spiel ist am Anfang super!
Hi Leute ich finde es gut was ihr da versucht zu machen, allerdings erklärt ihr viele Sachen nicht die wichtig sind zu wissen z.b. die Schreibweise und die Befehle, und wie genau die FX Funktion schleifen Wiederholungen , Operatoren deren Funktion ist wie man die einsetzt und wie man es genau umsetzt , unter anderem auch wie Variablen funktionierenvariablen, jemanden zu sagen einfach und Code zu schreiben und mit den dich zu beschäftigen und weiterzuentwickeln ist in eurem Fall nicht möglich, wenn ihr vorhabt sowas nachvollziehbar zu übermitteln dann müsst ihr wirklich jede einzelne Einheit genau erklären was sie macht wie sie es macht warum sie es macht.
Dino Bianco Ich vermute einfach dass die im Video gezeigte Netzwerkstruktur nicht genügend freie Parameter (Neuronen) hat und es das Problem nicht genügend „verstehen“ konnte. Hier im Video ist es auch so dass eigentlich eine 9 ausgegeben werden müsste, jedoch eine 8 kommt. Die Zahl 8 spiegelt hier auch nicht wirklich den Stiefel da sondern die Klasse davor (soweit ich das richtig sehe, sollte es nen Fehler im Video sein)
habt ihr nicht einfach das Tutorial von TensorFlow genommen was man sich auch einfach durchlesen kann? Weil ich finde man fersteht es so oder so nicht. Ihr könntet wenigstens die Befehle erklären sagen was sie machen und wofür sie allgemein verwendet werden. Weil ich raf hier garnichts
Mega geniales Video. Vielen Dank. Ich hätte auch mal Lust ein neuronales Netz zu entwickeln. Für meine Idee hätte ich wahrscheinlich unterschiedlich große Bilder. Ist das großartig kompliziert?
Wie viele Neuronen man benutzt ist erstmal egal, denn egal wie viele, alles liefert ein Ergebnis. Jedoch bekommt man mit unterschiedlichen Anzahlen der Neuronen auch unterschiedliche Ergebnisse. Man möchte natürlich die Anzahl der Neuronen, die das beste Ergebnis liefern. Die Anzahl der Neuronen rein durch Intuition herauszufinden ist nicht leicht/unmöglich (Aktives Forschungsgebiet) aber eine Potenz von 2 ist oft beliebt. Es gibt auch spezielle Algorithmen, welche intern selber wieder Neuronale Netze benutzen, die die optimale Anzahl an Neuronen, sowie andere Variablen, approximiert. Auf den Punkt gebracht, er hat wahrscheinlich ein paar Anzahlen an Neuronen ausprobiert und 128 hat ganz gut funktioniert, weswegen er das genommen hat.
CreepnEnderman Datensätze kannst du im Prinzip erstellen wie dir dannach ist. Klassifikationsprobleme (wie hier im Video), haben meist ein anderes Layout als z.B. Detektionsprobleme wo Objekte im Bildern gesucht werden sollen. Diese Datensätze die hier in Keras verwendet werden gibt es auch so zum herunterladen, da kannst du ja mal anschauen wie dort die Datenstrukturen gehandhabt werden. Wenn du die direkt über Keras lädst, werden die einfach nur schonmal (wie man die Daten üblich benötigt) in eine Variable geladen. Bei eigenen Datensätzen musst du das selber machen, wobei das häufig auch nicht so schwer ist.
Im Prinzip ist model.predict so einfach ja. Du musst nur bedenken dass dein Bild wenn du es geladen hast das Format 28x28x1 hat und dein Netzwerk ist in 1x28x28x1 benötigt. Deswegen wird hier ein np.expand_dims ausgeführt um die Dimension hinzuzufügen. Danach kannst du einfach model.predict(Image) machen um eine Vorhersage zu erhalten
Bin derzeit 19 Jahre und beschäftige mich seit einigen Jahren allgemein rund ums Thema Programmieren. Programmiere gerne an einem Arduino und auch Webanwendungen, weswegen ich eine Ausbildung zum FIAE mache. Nun würde ich mich aber sehr sehr gerne mit dem Thema KI auseinander setzten, habe ein grobes Verständnis von der Thematik, aber null Ahnung, wie ich sowas programmatisch angehe. Dieses Kopieren von TF-Tutorials und bisschen dazu was „erklären“ hilft mir nicht wirklich. Hätte jemand (der Erfahrung hat) einen Tipp, wie man sowas als newbie angehen sollte?
Sehr cool was ihr da so macht! Speziel KI für Gaming interessiert mich, da ich ja Games mit der Unreal Engine entwickle. Ich habe auch ein AI content pack entwickelt, jedoch sind die AI dort sehr dümlich und können nur nach einem ganz spezifischen Schema reagieren. Villeicht helfen mir eure Videos etwas auf die Beine, um meinen AI's im Game etwas mehr inteligenz zu geben. :) Macht weiter so! Hab euch abboniert. Es ist mir allerdings ein Rätzel, wie ich euer system mit Python in der Unreal Engine zum laufen bringen könnte.
moin ich bekomme in dieser zeile : test_images = test_images.reshape(10000, 28, 28, 1) folgende fehlermeldung : ValueError: cannot reshape array of size 10000 into shape (10000,28,28,1) kannst du mir sagen wo der hase im pfeffer liegt bitte ich seh den fehler nicht training images weiter oben sind auf 60k 28 28 1
Hallo. Ich habe deinen Code abgeschrieben, jedoch bekommen ich immer einen Fehler. Das Bild kann ich hochladen, doch dann ist der Fehler da. Ich habe nun mal deinen Code geöffnet und probiert. Dort ist es das selbe Problem: AttributeError Traceback (most recent call last) in () 16 img = cv2.resize(img,(28,28)) 17 img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ---> 18 x = image.img_to_array(img, dtype=np.float32) 19 print("top left pixel value:", x[0,0]) 20 if x[0,0] > 250: AttributeError: module 'keras.preprocessing.image' has no attribute 'img_to_array' Kannst du mir hier helfen? hat Colab irgend ein Update gemacht und jetzt geht dieser code nicht mehr? Wie kann ich das fixen? Vielen Dank & Freundliche Grüsse
Ich habe etwas Kritik an deiner Erklärung von der Softmax Funktion. Du erklärst es so, als ob mit der Ausgabe der Funktion eine tatsächliche Wahrscheinlichkeit verbunden wäre, also wenn ein Neuron mit ner Aktivierung von 0.9 hat dies bedeuten würde, dass es sich zu 90% sicher über die Aussage ist. Das stimmt aber nicht. Es ist lediglich eine Aktivierung, die eher bedeutet: „Dieses Bild was du mir zeigst hat meinem Parametern nach eine sehr hohe Ähnlichkeit mit z.B. einer Hose“. Man sollte sich natürlich trotzdem nach der höchsten Aktivierung richten, bei der Auswertung, es sind aber halt keine Wahrscheinlichkeiten. Es ist nur eine Funktion die die Aktivierungen der Ausgabe in Summe auf 1 legt. Diese Aktivierung wird jedoch von den Schichten davor beeinflusst und hängt nur von den gelernten Parametern ab. Um so besser das Netzwerk gelernt hat um so aussagekräftiger ist natürlich die Ausgabe aber sie ist keine Wahrscheinlichkeit. Trainier mal das Netzwerk auf z.B. nur Bilder von Hosen (halte trotzdem an den 10 Ausgabe neuronen fest) und predicte dann auf einem Bild von einem Schuh. Das Netzwerk wird dir eine sehr hohe Aktivierung auf der Klasse Hose geben obwohl es ein Schuh ist. Nach deiner Erklärung wäre es aber so dass es ne sehr hohe Wahrscheinlichkeit hat, dass es sich um einen Hose handelt, obwohl es nur eine Ausgabe der Aktivierung ist.
Hey, vielen Dank für die Kritik. Ich hätte wahrscheinlich deutlicher machen sollen, dass das nur ein Vergleich ist, der helfen sollte, sich vorzustellen, was diese Funktion macht (sie ist ja dann doch auch deutlich komplizierter, als dass sie nur normalisiert)
Klar da hast du absolut recht! Deine Erklärung warum man ReLu benutzt ist sehr gut gewesen! Softmax macht ja deutlich mehr wie du schon gesagt hast :) In Kombinat wird daraus natürlich deutlich dass ReLu easy zu berechnen ist aber dir keine schöne Ausgabe gibt. Softmax ist halt im Verhältnis sehr kompliziert zu berechnen weswegen man es nur am Ausgang nimmt. Die Aktivierung tut natürlich noch deutlich mehr aber das wichtigstes ist dass die Ausgabe der Aktivierungen in Summe eins ergibt. Es gibt aber wie du gesagt hast noch andere Vorteile! Trotzdem nen gutes Video und toll dass du/ihr euch die Mühe macht das Thema zu erklären! Dafür ein dickes Lob!
np.argmax macht einfach folgendes. Stell dir vor du hast eine Liste von Zahlen [5, 4, 3, 2, 1] wenn du darauf np.argmax anwendest, wird geschaut an welcher Stelle die höchste Zahl in der Liste steht. Hier ist die höchste Zahl die 5, welche aber an der Stelle 0 der Liste steht. Damit gibt der np.argmax einfach die 0 zurück. Hier konkret wurde es dazu verwendet die Liste der Ausgabe Aktivierungen auszuwerten. Uns interessiert hier nicht die eigentliche Zahl in der Liste, sondern lediglich die Stelle wo die höchste Zahl steht um die der Klasse zuzuordnen :)
np.expand_dims wird aus folgendem Grund benutzt: Das Bild was wir hier laden ist ein Graues Bild mit den Maßen 28x28 Pixeln. Wenn man dieses Bild in ein Array läd hat dieses Array die Maße 28x28x1. Die x1 kommt dazu weil Schwarz Weiß Bilder genau einen Farbkanal haben. Bei Farbbildern im RGB Format gibt es einmal den R-Kanal, G-Kanal und B-Kanal, somit wäre dort die Größe z.B. 28x28x3. Beim Training gibst du jedoch nicht nur ein Bild rein sondern kannst einen sogenannten Batch reingeben, welcher aus mehreren Bildern (Ich nenne die Anzahl mal N) besteht. Somit geben wir unserem Neuronalen Netzwerk nicht nur die Dimension 28x28x1 als Eingabe sondern direkt die N Bilder also eine Eingabegröße von Nx28x28x1. Wenn wir jetzt über model.predict() eine Vorhersage treffen wollen und einfach nur das Bild von 28x28x1 in das Netzwerk geben, hat das ja aber nicht das Format Nx28x28x1. Deshalb müssen wir das Bild in ein Array der Größe 1x28x28x1 erweitern, bevor wir es in das Netzwerk geben können. Mit dem Befehlt np.expand_dims(bild, axis=0) sagen wir einfach: Füge an der 0.Stelle der Arrays Bild (also ganz am Anfang) noch eine axe hinzu. So wird aus dem 28x28x1 Bild ein 1x28x28x1 Bild welches wir in das Netzwerk geben können.
also ich hab ja ein wenig weniger Erfahrung mit Programierung, aber wäre es nicht simple, sagen wir einfach ein Handy über UsB zb mit anderen auf einer Plattform zu verbinden und ich sag einfach 1nes, als CPU und 4, als Grafik mit Flash Anbindung und diese einfach an ein Display mit touchpad Funktion, zu einem vollwertigen Rechner umzumogeln ? dafür benötigt es jedoch auch so was wie ne intelligente App. und einen Intelligenten Akku der nicht unbedingt Lädt wenn saft Drauf ist und es direkt einspießt
Nur mal so nebenbei. Eine KI die alle Spiele spielen kann, würde die intelligenteste AI sein die es gibt. Also wird schwer was ihr euch da zum Teil vorgenommen "hattet" :D
also das vorherige Projekt läuft mittlerweile.. auf collab hochgeladen (aus irgendeinem Grund ist das bei mir auf Japanisch xD) super interessant, erstes neuronales Netz programmiert!
@@BreakingLab was mehr als crasy wäre wäre eine ki die mmos spielen kann aber ich denke mal das sowas seeeehr kompliziert ist um zu setzten selbst für ein Doktor auf diesen Bereich
Ja :) und mit dem ersten Teil des Tutorials könntest du das sogar schon machen. Statt der Zahlenreihe müsstest du die Benzinpreise und das Datum (oder auch den Wochentag, da gibt es ja tatsächlich systematische Schwankungen) nehmen
Ich kann mich mit ihrem Lernkurs nicht so richtig anfreunden, er ist zu spartanisch und auch zu oberflächlich. Sie täten gut daran, wenn sie statt der Kleiderbilder eine Datenbank, die natürlich auch entsprechende Daten enthalten muss, dahinter legen oder die eben auslesen lassen, oder besser noch eine Kamera Verbindung, die eben einfach hinaus in die Welt zeigt, und wo die KI selbst erkennen muss, was ist das, wer läuft darum, was für Kleider hat er an und sieht ja schick aus oder nicht. Aber das sind natürlich Detailfragen und sehr schwer zu programmieren, wir haben das an der Harvard eben anders gemacht, und zu uns gehört ja das MIT Massachusetts Institute of Technology, und da geht man Lehrgänge völlig anders an, natürlich auch mit den von Ihnen verwendeten Werkzeugen, aber sie haben ja hier als Zuschauer Kunden ganz normale kleine User, und ich würde es für besser halten, wenn den gleich das große Tablett gezeigt wird, denn die KI steckt ja derzeit noch total in den Kinderschuhen und wird sich in den nächsten zwei Jahren ganz erheblich modifizieren. Und noch was zu ihrem sogenannten Philipp, der schon vor zwei Jahren von seiner angeblichen Doktorarbeit im Internet geprahlt hat, wo ist denn die Doktorarbeit, kommt die zu Fuß oder weshalb es sie so lang unterwegs? Das was er da von sich gegeben hat, zeugt nicht unbedingt von Fachwissen, das muss ich ganz offen sagen.
Hi :) erstmal vielen Dank für die ausführliche Nachricht. Tatsächlich ist das hier nicht als klassisches Lernvideo gedacht, sondern es geht darum Leute, die noch keine Ahnung von KI haben, an das Thema heranzuführen, etwas die Angst zu nehmen und damit vielleicht den ein oder anderen zu motivieren mal einen Kurs zu dem Thema zu machen. Deshalb haben wir auch versucht alles so simpel wie möglich zu halten. Der Philipp hat seinen Doktor erfolgreich abgeschlossen. In dem Video zu seiner Doktorarbeit ist die Arbeit auch verlinkt
An sich finde ich euer Projekt sehr interessant, doch die Umsetzung gefällt mir ehrlich gesagt nicht ganz so gut.
Ich programmiere nun seit einigen Jahren in C++, bin bei weitem kein Experte, aber für die alltäglichen Aufgaben reichts. Trotz dieses Wissens ist Python natürlich eine Umstellung, auch wenn mir das ein oder andere bekannt vor kommt.
Die Art und Weise wie die Videos bisher entstanden sind finde ich gut, auch das 1:1 gezeigt wird, was sache ist. Doch stößt mir das "es ist so, weil es so ist" sauer auf. Man lernt so effektiv nur eine Kopie zu erstellen, da so ein tieferes Einsteigen nur schwer möglich ist.
Als Beispiel: Es werden an einer Stelle 128 Neuronen zum Training erzeugt, wieso genau 128?
Mir würde es daher besser gefallen, wenn auch auf die Hintergründe eingegangen wird und man somit vom klassischen "Frontalunterricht" oder den trockenen Uni Vorlesungen etwas weg kommt.
Ich versteh was du meinst. Allerdings kann man bei drei 20 Minütigen Videos nicht sonderlich viel fachliche Tiefe erwarten. Ich hab mir zu MachineLearning vor ein paar Wochen ein Handbuch gekauft, was deutlich mehr Informationen beinhaltet, aber trotzdem nur einen Überblick verschafft. Tieferes Verständnis benötigt nun mal ganze Jahre bei einem solch komplexen Thema.
Geht mir genauso von OOP zu Scriptsprachen und wenige Erklärungen fällt es einem echt schwer zu lernen. Ich will es gerne lernen und nicht kopieren😉
Stimme dem Kommentar zu! Ich bereite gerade eine Python Serie vor und werde dann am Ende auch auf Machine Learning, Deep Learning bzw. Reinforcement Learning näher eingehen. Ich finde die Videos schon gut aber für einen Anfänger sind die glaube ich nicht so mega.
Wie viele Neuronen man benutzt ist erstmal egal, denn egal wie viele, alles liefert ein Ergebnis. Jedoch bekommt man mit unterschiedlichen Anzahlen der Neuronen auch unterschiedliche Ergebnisse. Man möchte natürlich die Anzahl der Neuronen, die das beste Ergebnis liefern. Die Anzahl der Neuronen rein durch Intuition herauszufinden ist nicht leicht/unmöglich (Aktives Forschungsgebiet) aber eine Potenz von 2 ist oft beliebt. Es gibt auch spezielle Algorithmen, welche intern selber wieder Neuronale Netze benutzen, die die optimale Anzahl an Neuronen, sowie andere Variablen, approximiert. Auf den Punkt gebracht, er hat wahrscheinlich ein paar Anzahlen an Neuronen ausprobiert und 128 hat ganz gut funktioniert, weswegen er das genommen hat.
Genau! Er hat nicht einamal erklärt was natürliche ganze Zahlen sind obwohl er sie benutzt!!! -.-
Habt ihr noch Fragen zu Thema KI programmieren oder ist euch alles klar? Freitag kommt der letzte Teil unseres Tutorials und wir wollen möglichst viele davon beantworten!
Ich würde ja mal gerne wissen wie eine KI sich etwas selber etwas beibringt. Zum Beispiel bei Super Mario gibt es eine KI die alle tasten einmal ausprobiert und mit einem hiscore den lauf bewertet. Soweit kann ich den ja auch noch folgen aber wie funktioniert das bei einem Komplexen Spiel das nicht so Linear mit Festen Bedingungen für gewinn oder Niederlage sondern s.B. Fortnite (mal ganz vom Trend etc. abgesehen )da ist die Umgebung zwar immer gleich aber nicht das was passiert. Das währe so als wenn bei Super Mario die Gumbals (ich glaube die heißen so ) und Schildkröten sich jedes Mal anders verhalten.
Ich würde mich echt freuen wenn ihr "uns" das erklärt.
Macht weiter so.👍👍👍
Ja ich hätte da noch eine Frage ich habe die schon Kommentiert und auch in dem letzten Video schon Mal Angesprochen also
Meine Frage bezieht sich zwar auf das letzte Video aber ich hoffe das ist okay und ihr könnt mir weiter helfen danke :. Ich gebe dem Programm (KI)
Ja als Input zwei "Zahlen Folgen"
Mit der zweier Mahl Folge, könnte ich da noch eine dritte "einbauen". Ich habe es schon so Probiert das ich das ganze einfach fortsetzte und diese Folge Dan "zs" genannt habe. Doch wo ich das Dan unten zu den anderen in die Klammer geschrieben habe kam beim Ausführen dann immer eine Fehler Meldung. Ich hoffe ich habe es einigermaßen verständlich erklärt und das ihr mir Helfen könnt.
Leider habe ich bisher immer nur kleine Sachen auf "bat" (Windows batch Datei) Programmiert und so auf diesem Gebiet keine weitere Erfahrung.
PS.: Ich entschuldige mich schon mal im voraus für meine wahrscheinlich miserabel RS. 🙄
Meine Frage bezieht sich darauf, ob ihr Vorschläge zu Literatur für Anfänger und Fortgeschrittene habt. Ich finde das weit interessanter als mich nur mit Oberflächlichem Wissen zufrieden zu geben, und Phil hat sicher das ein oder andere super Buch gefunden während seiner Doktorarbeit.
@Matze D. Hast recht. Hätte ich machen können. Dennoch ist das nicht ganz das, was ich mir vorgestellt hatte. ^^ Wobei der YTer recht interessant ist.
Ich wollte eher Fachliteratur und möglichst zum greifen. Mit dem Handy in der Hand rum sitzen und PDFs lesen kann ich immer nicht. Ich weiß auch nicht warum, aber da bin ich immer froh, wenn ich das wieder geschlossen habe. Mit einem Buch komme ich deutlich besser klar.
Wäre Cool wenn ihr immer wieder verschiedene Projekte mit colab uns zeigen könntet weil, Ihr das am Besten erklärt.Liebe Grüsse
Vielen Dank, dass ihr auf das Feedback eurer Community hört! Ich habe als absoluter Laie zwar nicht alles 100%ig verstanden, es war aber auf jeden Fall schon viel, viel besser als die letzte Folge. Da habe ich gar nichts gecheckt.
Also Danke und macht weiter so.
P.S. Freue mich schon auf den 30.!
I loved your videos. Du hast sehr gut, einfach und verständlich alles erklärt. Danke sehr
Bin echt begeistert! Selbst ich als ADS'ler verstehe diese Erklärungen sehr gut und kann auch dran bleiben. Einfach genial!
@Breaking Lab Super Video!! Versuche gerade anhand deiner Videos ins Thema zu kommen :D
02:17 Es wäre vlt. einfacher "Pointer Variable" gar nicht erst zu erwähnen, da das Konzept der Pointer-Arithmetik nur Devs nützt, die auch eine dafür geeignete Sprache benutzen(C/++, Assembly, C# mit unsafe Blöcken etc). Unter Python ist es schon völlig Korrekt zu sagen, dass es eine "Variable" ist. Ansonsten müsste man meiner Meinung nach noch auf Referenzen etc. eingehen, was diese Serie aber wahrscheinlich sprengt.
@@---ev9ru Müsste ich noch mal angucken, aber im Generellen ist Keras sehr nützlich soweit ich es mitbekommen habe.
Da es sowieso verwendet wird in dieser Reihe, ist es aber nicht so schlimm, wenn es importiert wurde, obwohl unnötig - wenn auch man das nicht übertreiben sollte bei größeren Code.
@@---ev9ru Ich bin leider kein Python Dev, weswegen ich nicht genau sagen kann, ob man das bei Python benötigt, wenn etwas ein Teil eines anderen Packages/Modules(kp wie das bei Python heißt) ist.
Bzgl der 8: Ich war erst verwirrt, aber dann is mir eingefallen, dass ich das noch nicht fertiggeguckt hatte. Mach ich kurz.
//EDIT: Weird... Wenn das Label 9 sein müsste und er 8 raus hat, is das schon relativ komisch, weil die Labels bereits bei 0 beginnend nummeriert wurden. Ich könnte mir lediglich vorstellen, dass er auch -1 raus bekommen könnte und das aber dann 0 wäre, weshalb er noch + 1 rechnen muss/will. Das wäre aber ziemlich komisch, weil ich bei Deepl4J die labels auch random nummerieren konnte, insofern das Netz mit macht.
Vlt gucke ich später mal den Source an, vlt missverstehe ich ihn da irgendwie.
@@---ev9ru Naja, es gibt halt Alternativen. Für TensorFlow gibt es Bindings für Java beispielsweise, aber die sind glaube nicht wirklich gut... also für bereits trainierte Models (angeblich) gut, aber mehr auch nicht. Ansonsten gabs glaube Coffe Bindings und Deepl4J
@@---ev9ru Mit was programmierst du denn sonst so?
@@---ev9ru Im ersten Teil war es unnötig keras nochmal aus tensorflow zu ziehen da wir mit "tf" bereits tensorflow in der Hand haben.
Ich hab mich im ersten Teil schon gewundert aber da ich Python nie programmiere dachte ich das die Sprache vielleicht einfach etwas umständlich sei. Die Frage ist auch : "Weiß der Mann vor der Kamera auch was er tut oder arbeitet er nur nach Anweisung?"
Ich würde mich freuen wenn ihr noch ein Video zur Aktien ki machen würdet
Freue mich schon drauf!
Finde das Video genau richtig und qualitativ überragend. Es ist weder zu lang noch zu kurz ,nicht zu oberflächlich aber auch nicht übergenau. Deshalb denke ich das es die beste Mischung ist da Leute die schon Grunderfahrung mit programmieren haben allem problemlos folgen können und Leute die Neulinge sind aber Interesse daran haben ein paar Sachen nebenbei nachschlagen können (wenn nötig). Also kurz und knapp gefällt mir richtig gut . Mal so als Idee am Rande könntet ihr ja mal eine Videoreihe zu z.b. Python Grundlagen usw. machen könnte mir vorstellen das viele daran Interessiert währen
@Breaking Lab
Ich hätte eine kleine Frage.
Und zwar wollte ich eine KI programmieren, die lernt aus mehrstellige Zahlen die Quersumme zu bilden.
Also eigentlich so eine ähnliche KI wie im ersten Video, nur ein kleines bisschen komplexer.
Ich habe mir dazu ein Programm geschrieben, was 1- bis 6-stellige Zahlen generiert und jeweils so oft die Quersumme bildet, bis eine Ziffer übrig bleibt. Ein Beispiel:
*789* --> 24 --> *6* oder *123456* --> 21 --> *3*
xs=[789, 123456, 12, ...]
ys=[6, 3, 3, ...]
Ich habe dann 10 mehrstellige Zahlen mit ihren jeweiligen Lösungen eingegeben in euer Programm und habe es lernen lassen.
Allerdings steigt mein Loss-Wert bis ins unendliche und die KI findet keine Lösung[NaN].
Am Programm selber ist nichts falsch geschrieben, weil ich euren Code kopiert habe. Kann es sein, dass dafür 1 Neuron nicht ausreicht?
Könnt ihr mir bitte helfen, wie ich das Programm optimieren muss, damit die KI auch mit größeren Zahlen und einer größeren Datenmenge arbeiten kann?
Ist zwar schon etwas her, aber vielleicht stößt ja wer anderes auf die Frage. Am einfachsten wäre es entsprechend der Länge der eingegebenen Zahl Input Neuronen zu haben. Musst dich am besten auf eine Zahlenlänge festlegen und bei kürzeren zahlen Nullen davor stellen. Also beispielweise 00005, 12345, 00592 und dann je Ziffer splitten und an die einzelnen Neuronen geben. So kann es das Netz am einfachsten lernen.
Alternativ kann es auch mit einem Inputneuron funktionieren, dann brauchst du aber dennoch ein Layer mit der Anzahl Neuronen entsprechend der maximal Länge deiner Zahlen und womöglich andere Aktivierungsfunktionen. Es könnte auch mit deinem Model funktionieren aber dann braucht es vermutlich wesentlich mehr Trainingsdaten.
Wiso ist die Qualität nur bei 360p und nicht bei den üblichen 760p60H?
Das Video ist noch zu neu, die gute Quali kommt gleich😊
Exakt. Sorry, alles in der letzten Minute
12:27 wie hast du das Bild von dem schuh einzeln aus den Datensatz heraus bekommen um es hochzuladen ?? ich bräuchte nämlich am besten von allen 10 klassen je ein kleidungsstück
Der zweite Teil kommt bei mir deutlich besser an, hört sich auch viel angenehmer an.
Wie kommst du auf genau 128 Neuronen/ darauf das du durch 255 teilen musst etc.?
128 Neuronen ist einfach nur eine Zahl. Da kannst du einfach mal mit rum spielen wie das die Fähigkeiten von deinem Netzwerk ändert. Es ist üblich Potenzen von 2 zu nehmen ( in dem Fall 2^7) aber man muss das nicht machen. Das ganze sind rein experimentelle Werte. Wenn man zu wenig Neuronen hat, kann das Netzwerk die Aufgabe nicht richtig lernen und wenn man zu viele Neuronen hat lernt das Netzwerk die Trainingsdaten einfach auswendig. Deswegen lohnt es sich mal zu schauen was passiert :) Das ganze nennt man dann Underfitting oder Overfitting.
Bei dem teilen mit 255 handelt es sich um eine sogenannte Skalierung.
In Schwarz-Weiß Bildern kann ein Pixel einen Zahlen wert zwischen 0 und 255 haben. Ein Wert von 0 wäre hierbei aus (Schwarz) und 255 an (weiß) und alles andere sind entsprechende Abstufungen welche in Grautönen resultieren.
Da viele aktivierungsfunktionen Probleme haben wenn werte viel höher sind als anders (hier 255 zu 0) kann sich das negativ auf das lernen auswirken. Das ist der Grund warum man Werte skaliert. Hier im Video wurde eine 0-1 Skalierung genommen. Das heißt dass der niedrigste Wert eine 0 sein soll und der höchste Wert eine 1. Alles andere soll entsprechend irgend wo dazwischen liegen. Die 0 ist bereits der niedrigste Wert und um den Wert 255 auf 1 zu skalieren muss man halt eben durch 255 teilen.
Eine allgemeine Formel wäre wert_skaliert = (wert_alt - min(wert_alt))/(max(wert_alt)-min(wert_alt)). Also hier wert_skaliert = (wert_alt-0)/(255-0) = wert_alt/255
Die Erklärung von @Tripton ist sehr gut. Hat das bei deinem Verständnis geholfen? Wenn noch Fragen sind, gerne schreiben
@@Tripton_ Danke
@@BreakingLab Habs Verstanden😀. Danke, dass ihr so ein interessantes Projekt macht
Welche Modellstruktur eignet sich am besten für eine Produktionsmaschine? Sprich Eingäge= Ventilstellung etc. Ausgang: Leistung etc. ? Logistische Funktion, Tangens Hyperbolicus? Wieviele hidden layer? Habt ihr ein link wo dokumentiert wird wie die Modelle aufgebaut werden können und welche Aktivierungsfunktionen man verwenden kann? Evtl. auch ein Tutorial wie man Daten einlesen kann und diese dann für die Inputs und Outputs verwendet und zusätzlich davon die Trainings sowie Test Daten generiert?
Moin, mich würde mal interessieren, wie man selber ein Datenset zum trainieren erstellt. Könnt ihr das vielleicht zeigen?
Die Liste mit den Kleidungsstücken geht doch auch bei 0 los. 0 sind T-Shirts/Tops. Heißt, das Netz müsste dafür eine -1 ausgeben?
SteFÖN Ich bin mir einigermaßen sicher, dass dies einfach ein Fehler ist. Du hast recht dass es bei 0 los geht und der Befehl um die Klasse auszulesen (np.argmax()) berücksichtigt diese Stelle auch. Der Befehl würde, falls an der Stelle 0 der Liste die höchste Aktivierung vorliegt, auch eine 0 zurück geben. Wenn du dir auch mal die Ausgabe in Zahlenwerten anschaust, siehst du dass im der Prediction die Aktivierung nicht an der letzten Stelle am höchsten ist sondern tatsächlich an der vorletzten. Da aber die „Anker Boots“ klasse eigentlich die letzte sein sollte, glaube ich, dass das Netzwerk die tatsächlich falsch klassifiziert hat (kann ja passieren ein Netzwerk ist ja immer nur eine approximative Lösung). Das ganze wurde dann wahrscheinlich leider falsch interpretiert. Man kommt halt eben leider schnell damit durcheinander wann jetzt ab 0 und wann ab 1 gezählt wird und kann passieren, gut dass es dir aufgefallen ist!
Tripton hat recht. Das mit dem -1 war leider ein Fehler. Kam darauf, da das mit den eingeladenen Bildern genau passte. Phil hat den Code nochmal etwas überarbeitet und jetzt sollte das auch besser funktionieren
Bei mir kommt dieser Fehler:
File "", line 14
tf.keras.layers.Dense(10, activation='softmax')
^
SyntaxError: invalid syntax
Kann mir jmd helfen?
Leider nicht.
Auch wenn die Inhalte hochinteressant sind: ehrlich gesagt gehen mir diese ganzen Anglizismen von Informatikern bisschen auf die Nerven :D
Warum hast du beim ersten dense genau 128 Neuronen genommen ? Hat das einen genauen Grund
Karl Deck Das hat keinen genauen Grund. Das ist einfach eine „Design“ Entscheidung und kommt sehr auf das Problem an. Wenn man zu wenig Neuronen hat, lernt das Netzwerk nicht so gut zu generalisieren, wenn man zu viele hat kann es passieren, dass es einfach die Trainingsdaten auswendig lernt. Das erste ist als Underfitting in der Literatur bekannt und das auswendig lernen als Overfitting.
Falls du noch mehr dazu wissen willst, such mal nach „Bias-Varianz-Tradeoff“.
Oft werden neuronen zahlen in 2^x genommen so wie hier die 128 auch. 256 neuronen oder 512 sind aber z.B. auch häufig verbreitet. Wenn du magst kannst du ja einfach mal testen was passiert wenn du die Neuronen Zahl änderst und das Netzwerk neu trainierst.
Man nimmt da gerne Zweierpotenzen, aber ansonsten gibt es da keine Regel. Manches funktioniert einfach besser und manches schlechter, muss man ausprobieren.
@@Tripton_ danke für die Antwort jetzt versteh ich das ganze auch
In welcher Programmiersprache wurde das erstellt ? In Python ?
Wie gut muß eigentlich der laptop/PC dafür sein und wieviel kostet das program
Sehr gute Erklärung!
Cooles video aber ich habe nicht verstanden warum wir genau 128 Neuronen benutzten. Warum nicht mehr oder weniger ?
Können wir das mit dem Aktienkurs trotzdem danach machen ? 🤑
Wie viele Neuronen man benutzt ist erstmal egal, denn egal wie viele, alles liefert ein Ergebnis. Jedoch bekommt man mit unterschiedlichen Anzahlen der Neuronen auch unterschiedliche Ergebnisse. Man möchte natürlich die Anzahl der Neuronen, die das beste Ergebnis liefern. Die Anzahl der Neuronen rein durch Intuition herauszufinden ist nicht leicht/unmöglich (Aktives Forschungsgebiet) aber eine Potenz von 2 ist oft beliebt. Es gibt auch spezielle Algorithmen, welche intern selber wieder Neuronale Netze benutzen, die die optimale Anzahl an Neuronen, sowie andere Variablen, approximiert. Auf den Punkt gebracht, er hat wahrscheinlich ein paar Anzahlen an Neuronen ausprobiert und 128 hat ganz gut funktioniert, weswegen er das genommen hat.
Dein Code mit dem Upload funktioniert leider nicht wirklich bei mir.. :D Egal was ich eingebe ich erhalten immer Ankle Boots.
Am Anfang fehlt mir total der Einstieg. Da werden irgendwelche Daten geladen. Wo kommen diese denn her und in welcher Form sind sie dort hinterlegt? Eigentlich interessantes Thema...
Das ist natürlich schwer, Python Laien zu erklären, die nie programmiert haben. Ich studiere Informatik und hatte keine Probleme, Dir zu folgen :D
Was ich dir vielleicht empfehle, ist, die Videos etwas kürzer zu machen, z.B. hätte man Phil’s Part in einem extra Video machen können, dann sind die beiden Videoteile in sich abgeschlossener.
Bin auf jeden Fall gespannt auf die kommenden Videos!
Dino Game KI das habe ich doch schon ein mal gesehen...
'code bullet'
Der hat ja schon zu fast allem ne ki gemacht!
Naja, bloß weil Code Bullet es schon gemacht hat heißt es nicht, dass man sich nicht daran probieren sollte. Aber cool sind seine Videos definitiv :D
der hat aber ein ganz eigenes spiel programmiert und nicht das im Browser benutzt.
Wo hast du den Zettel mit den Codes
Die sind schwer möglich sich zu merken
Falls du die Syntax oder die Methoden meinst: Das kommt mit der Zeit. Irgendwann merkt man sich die meisten Bezeichnungen durch die ständige Wiederholung und die Assoziationen zu anderen Libs und Frameworks
@@skythe7839 danke
Hat jemand eine Idee warum bei mir diese Zeile rot unterstrichen wird und nicht geht "uploaded = files.upload()"? Vielen Dank im Voraus:)
Mega video cool
Wie kann ich jetz statt bags, shirts..... Auch zb. Ein Baum hinzufügen. Sprich die KI sollte mir dann sagen es ist ein baum im Balkendiagramm.. Wie kann ich das ändern?
Da brauchst du ein anderes Datenset, wo Bäume drin sind (am besten im Vergleich zu anderen Pflanzen)
Zu komplex für mich 😂 aber ultra interessant 👍
Wann spricht man von Bild- und wann von Objekterkennung?
Ich will das mit schreiben und ständig ist der Code weg
Hi, kann man auch die Programme mit IDLE ausführen lasse?
Wenn ja, erkläre es mal bitte in einem Video
joa, code eins zu eins abgeschrieben und läuft in einen Fehler rein :/
Hey, super Video! Ich setze mich aktuell auch gerade mit mnist auseinander, jedoch mit dem digit dataset, die vorgehensweise ist ja die gleiche. Jedoch habe ich ein Problem:
Wenn ich nach dem Training des NN Tests mit Zahlen aus dem Datensatz mache, bekomme ich eine zu 99% korrekte Vorhersage - logisch soweit.
Wenn ich jedoch meine eigene Ziffer predicten lasse (ja, auch in SW und 28x28, das array hat auch die gleiche shape), kommt nicht nur eine falsche Vorhersage, sondern auch eine komplett diffuse.
Bsp: Ich gebe eine 5 als input, bekomme als prediction: "Zu 13% eine 1, zu 27% eine 8, zu 43% eine 7, usw."
Ich habe unter Verdacht, dass das mit dem reshape des Trainings- und Testdatensatzes von mnist zutun hat. Konkret mit der (hier) 60000.
Kann das sein? Wenn ich andere meiner eigenen Zahlen test, kommt auch Gemüse raus.
Danke für's Durchlesen und schon mal vorab für eventuelle Hilfe! Kann auch gerne den Code posten.
Das nennt man overfitting. Das heißt dass das netzwerk so oft (in so vielen epochen, etc.) trainiert wird, dass es sich langsam anfängt zu 'merken' was die einzelnen Bilder bedeuten, und nicht mehr das generalisierte lernen von mustern, strichen, formen sondern das einfache abspeichern von bild -> label in den Vordergrund gestellt wird. Um das zu beheben kann man zum Beispiel das modell kleiner machen (größer ist nicht immer besser) oder die anzahl der epochen reduzieren (hier gilt dasselbe). In tensorflow kannst du auch mit einem seperaten 'validation-set' trainieren, wobei das modell an bildern, die nicht im trainingsset enthalten sind, geprüft wird.
@@leonhma danke für die Antwort
Ich arbeite gerade an einer Handschrifterkennungssoftware weiß da jemand wie viele bilder ich ungefähr por Buchstabe brauche?
Kann jemand erklären, warum beim Training-Bildern 60000 und Test-Bildern 10000 gegeben worden sind?
Wo ist der Link zu Phils Erklärung bezüglich neuronaler Netze?
Sorry, jetzt in der Beschreibung. Aber für dich hier die Lieferung frei Haus: th-cam.com/video/o3RDCSJH2oo/w-d-xo.html
@@BreakingLab perfekt, vielen Dank ❤️ Eine sehr interessante Video-Reihe, gefällt mir mega✌🏼
RELU (Rectified Linear Unit) ist mathematisch: f(x) = max(0, x)
Ich würde jetzt mal behaupten das es einfacher ist, das Dinospiel nachzubauen oder die den Quellcode zu kopieren, als irgendwelche Screenshots zu machen und diese zu analysieren.
Denke ich auch. Hab ich sogar schonmal mit relativ wenig Aufwand gemacht
Wie wäre es mit Tetris ?
Ich glaube, Tetris ist wahnsinnig schwer umzusetzen. Es gibt einen TH-camr, der das mit einer 2D-Spiele-KI probiert hat, und diese hat es nie herausgefunden. Die erfolgreichste Strategie der KI war, das Spiel für immer zu pausieren :D Vielleicht wäre das eher als Projekt Nummer 2 gut.
@@glumpfi Ja ich sehe ein, dass es nicht das leichteste Spiel ist, aber etwas Herausforderung muss es ja auch geben. Aber das Dino Spiel ist am Anfang super!
Und beim teil 1 könnte ich es nicht ausführen nur wegen compile.. ich hoffe jemand kann mit weiter helfen
Hi Leute ich finde es gut was ihr da versucht zu machen, allerdings erklärt ihr viele Sachen nicht die wichtig sind zu wissen z.b. die Schreibweise und die Befehle, und wie genau die FX Funktion schleifen Wiederholungen , Operatoren deren Funktion ist wie man die einsetzt und wie man es genau umsetzt , unter anderem auch wie Variablen funktionierenvariablen, jemanden zu sagen einfach und Code zu schreiben und mit den dich zu beschäftigen und weiterzuentwickeln ist in eurem Fall nicht möglich, wenn ihr vorhabt sowas nachvollziehbar zu übermitteln dann müsst ihr wirklich jede einzelne Einheit genau erklären was sie macht wie sie es macht warum sie es macht.
Interessant. Tolle Möglichkeiten tuen sich da auf. Wie wäre ein Projekt mit dem Erkennen heimischer Vögel?
Warum Gitlab, nicht GitHub?
Microsoft?, Dezentralität?
Und GitHub wird auch genannt
Hat jmd eine ahnung wiso bei mir immer die zahl 8 also Stiefel ausgegeben wird?
Auch wen och ein bild einer hose oder eines kleides hochlade
Dino Bianco Ich vermute einfach dass die im Video gezeigte Netzwerkstruktur nicht genügend freie Parameter (Neuronen) hat und es das Problem nicht genügend „verstehen“ konnte. Hier im Video ist es auch so dass eigentlich eine 9 ausgegeben werden müsste, jedoch eine 8 kommt. Die Zahl 8 spiegelt hier auch nicht wirklich den Stiefel da sondern die Klasse davor (soweit ich das richtig sehe, sollte es nen Fehler im Video sein)
Ich würde mich freuen, mit euch an einem Projekt zu arbeiten!
habt ihr nicht einfach das Tutorial von TensorFlow genommen was man sich auch einfach durchlesen kann? Weil ich finde man fersteht es so oder so nicht. Ihr könntet wenigstens die Befehle erklären sagen was sie machen und wofür sie allgemein verwendet werden. Weil ich raf hier garnichts
Er erklärt nicht einmal was eine natürliche ganze Zahl ist obwohl er sie benutzt!.....-.-
An so einem projekt zusammen zu arbeiten wäre auf jeden fall mega nice👌 p.s. werde nach dem abi Data science studieren
Mega nice! Werde ne Python Serie bald raushauen und Data Science kommt danach ;-)
Ich hab ein problem immer wenn ich compile schreibe färbt sich es
Mega geniales Video. Vielen Dank. Ich hätte auch mal Lust ein neuronales Netz zu entwickeln. Für meine Idee hätte ich wahrscheinlich unterschiedlich große Bilder. Ist das großartig kompliziert?
Moin.
Löst mal welches Pferd in gta 5 online als nächstes im Casino gewinnt 😂🙊. Ihr seit toll alles sehr verständlich und gut erklärt. 👍
kann mir jemand erklären warum genau 128 neuronen?
Wie viele Neuronen man benutzt ist erstmal egal, denn egal wie viele, alles liefert ein Ergebnis. Jedoch bekommt man mit unterschiedlichen Anzahlen der Neuronen auch unterschiedliche Ergebnisse. Man möchte natürlich die Anzahl der Neuronen, die das beste Ergebnis liefern. Die Anzahl der Neuronen rein durch Intuition herauszufinden ist nicht leicht/unmöglich (Aktives Forschungsgebiet) aber eine Potenz von 2 ist oft beliebt. Es gibt auch spezielle Algorithmen, welche intern selber wieder Neuronale Netze benutzen, die die optimale Anzahl an Neuronen, sowie andere Variablen, approximiert. Auf den Punkt gebracht, er hat wahrscheinlich ein paar Anzahlen an Neuronen ausprobiert und 128 hat ganz gut funktioniert, weswegen er das genommen hat.
Jonas Stepanik dankö🙏
Wie erstellt man Datensätze und lädt diese hoch?
PS: muss man einfach model.predict(image)
schreiben um eine Vorhersage zu erhalten?
CreepnEnderman Datensätze kannst du im Prinzip erstellen wie dir dannach ist. Klassifikationsprobleme (wie hier im Video), haben meist ein anderes Layout als z.B. Detektionsprobleme wo Objekte im Bildern gesucht werden sollen. Diese Datensätze die hier in Keras verwendet werden gibt es auch so zum herunterladen, da kannst du ja mal anschauen wie dort die Datenstrukturen gehandhabt werden. Wenn du die direkt über Keras lädst, werden die einfach nur schonmal (wie man die Daten üblich benötigt) in eine Variable geladen. Bei eigenen Datensätzen musst du das selber machen, wobei das häufig auch nicht so schwer ist.
Im Prinzip ist model.predict so einfach ja. Du musst nur bedenken dass dein Bild wenn du es geladen hast das Format 28x28x1 hat und dein Netzwerk ist in 1x28x28x1 benötigt. Deswegen wird hier ein np.expand_dims ausgeführt um die Dimension hinzuzufügen. Danach kannst du einfach model.predict(Image) machen um eine Vorhersage zu erhalten
Bin derzeit 19 Jahre und beschäftige mich seit einigen Jahren allgemein rund ums Thema Programmieren. Programmiere gerne an einem Arduino und auch Webanwendungen, weswegen ich eine Ausbildung zum FIAE mache.
Nun würde ich mich aber sehr sehr gerne mit dem Thema KI auseinander setzten, habe ein grobes Verständnis von der Thematik, aber null Ahnung, wie ich sowas programmatisch angehe. Dieses Kopieren von TF-Tutorials und bisschen dazu was „erklären“ hilft mir nicht wirklich.
Hätte jemand (der Erfahrung hat) einen Tipp, wie man sowas als newbie angehen sollte?
Bei mir kommt immer "Schuh" raus, egal welches Bild ich eingeben ;-) Witzig.
Sehr cool was ihr da so macht! Speziel KI für Gaming interessiert mich, da ich ja Games mit der Unreal Engine entwickle. Ich habe auch ein AI content pack entwickelt, jedoch sind die AI dort sehr dümlich und können nur nach einem ganz spezifischen Schema reagieren. Villeicht helfen mir eure Videos etwas auf die Beine, um meinen AI's im Game etwas mehr inteligenz zu geben. :) Macht weiter so! Hab euch abboniert.
Es ist mir allerdings ein Rätzel, wie ich euer system mit Python in der Unreal Engine zum laufen bringen könnte.
moin ich bekomme in dieser zeile : test_images = test_images.reshape(10000, 28, 28, 1) folgende fehlermeldung : ValueError: cannot reshape array of size 10000 into shape (10000,28,28,1) kannst du mir sagen wo der hase im pfeffer liegt bitte ich seh den fehler nicht training images weiter oben sind auf 60k 28 28 1
beim google jump bin ich dabei, spannend!
Hallo. Ich habe deinen Code abgeschrieben, jedoch bekommen ich immer einen Fehler. Das Bild kann ich hochladen, doch dann ist der Fehler da. Ich habe nun mal deinen Code geöffnet und probiert. Dort ist es das selbe Problem:
AttributeError Traceback (most recent call last)
in ()
16 img = cv2.resize(img,(28,28))
17 img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
---> 18 x = image.img_to_array(img, dtype=np.float32)
19 print("top left pixel value:", x[0,0])
20 if x[0,0] > 250:
AttributeError: module 'keras.preprocessing.image' has no attribute 'img_to_array'
Kannst du mir hier helfen? hat Colab irgend ein Update gemacht und jetzt geht dieser code nicht mehr? Wie kann ich das fixen?
Vielen Dank & Freundliche Grüsse
Ich habe etwas Kritik an deiner Erklärung von der Softmax Funktion. Du erklärst es so, als ob mit der Ausgabe der Funktion eine tatsächliche Wahrscheinlichkeit verbunden wäre, also wenn ein Neuron mit ner Aktivierung von 0.9 hat dies bedeuten würde, dass es sich zu 90% sicher über die Aussage ist. Das stimmt aber nicht. Es ist lediglich eine Aktivierung, die eher bedeutet: „Dieses Bild was du mir zeigst hat meinem Parametern nach eine sehr hohe Ähnlichkeit mit z.B. einer Hose“. Man sollte sich natürlich trotzdem nach der höchsten Aktivierung richten, bei der Auswertung, es sind aber halt keine Wahrscheinlichkeiten. Es ist nur eine Funktion die die Aktivierungen der Ausgabe in Summe auf 1 legt. Diese Aktivierung wird jedoch von den Schichten davor beeinflusst und hängt nur von den gelernten Parametern ab. Um so besser das Netzwerk gelernt hat um so aussagekräftiger ist natürlich die Ausgabe aber sie ist keine Wahrscheinlichkeit. Trainier mal das Netzwerk auf z.B. nur Bilder von Hosen (halte trotzdem an den 10 Ausgabe neuronen fest) und predicte dann auf einem Bild von einem Schuh. Das Netzwerk wird dir eine sehr hohe Aktivierung auf der Klasse Hose geben obwohl es ein Schuh ist. Nach deiner Erklärung wäre es aber so dass es ne sehr hohe Wahrscheinlichkeit hat, dass es sich um einen Hose handelt, obwohl es nur eine Ausgabe der Aktivierung ist.
Hey, vielen Dank für die Kritik. Ich hätte wahrscheinlich deutlicher machen sollen, dass das nur ein Vergleich ist, der helfen sollte, sich vorzustellen, was diese Funktion macht (sie ist ja dann doch auch deutlich komplizierter, als dass sie nur normalisiert)
Klar da hast du absolut recht! Deine Erklärung warum man ReLu benutzt ist sehr gut gewesen! Softmax macht ja deutlich mehr wie du schon gesagt hast :) In Kombinat wird daraus natürlich deutlich dass ReLu easy zu berechnen ist aber dir keine schöne Ausgabe gibt. Softmax ist halt im Verhältnis sehr kompliziert zu berechnen weswegen man es nur am Ausgang nimmt. Die Aktivierung tut natürlich noch deutlich mehr aber das wichtigstes ist dass die Ausgabe der Aktivierungen in Summe eins ergibt. Es gibt aber wie du gesagt hast noch andere Vorteile!
Trotzdem nen gutes Video und toll dass du/ihr euch die Mühe macht das Thema zu erklären! Dafür ein dickes Lob!
Alles verstannden bis auf np.argmax und np.expand_dims
np.argmax macht einfach folgendes. Stell dir vor du hast eine Liste von Zahlen [5, 4, 3, 2, 1] wenn du darauf np.argmax anwendest, wird geschaut an welcher Stelle die höchste Zahl in der Liste steht. Hier ist die höchste Zahl die 5, welche aber an der Stelle 0 der Liste steht. Damit gibt der np.argmax einfach die 0 zurück.
Hier konkret wurde es dazu verwendet die Liste der Ausgabe Aktivierungen auszuwerten. Uns interessiert hier nicht die eigentliche Zahl in der Liste, sondern lediglich die Stelle wo die höchste Zahl steht um die der Klasse zuzuordnen :)
np.expand_dims wird aus folgendem Grund benutzt:
Das Bild was wir hier laden ist ein Graues Bild mit den Maßen 28x28 Pixeln. Wenn man dieses Bild in ein Array läd hat dieses Array die Maße 28x28x1. Die x1 kommt dazu weil Schwarz Weiß Bilder genau einen Farbkanal haben. Bei Farbbildern im RGB Format gibt es einmal den R-Kanal, G-Kanal und B-Kanal, somit wäre dort die Größe z.B. 28x28x3.
Beim Training gibst du jedoch nicht nur ein Bild rein sondern kannst einen sogenannten Batch reingeben, welcher aus mehreren Bildern (Ich nenne die Anzahl mal N) besteht.
Somit geben wir unserem Neuronalen Netzwerk nicht nur die Dimension 28x28x1 als Eingabe sondern direkt die N Bilder also eine Eingabegröße von Nx28x28x1.
Wenn wir jetzt über model.predict() eine Vorhersage treffen wollen und einfach nur das Bild von 28x28x1 in das Netzwerk geben, hat das ja aber nicht das Format Nx28x28x1. Deshalb müssen wir das Bild in ein Array der Größe 1x28x28x1 erweitern, bevor wir es in das Netzwerk geben können. Mit dem Befehlt np.expand_dims(bild, axis=0) sagen wir einfach: Füge an der 0.Stelle der Arrays Bild (also ganz am Anfang) noch eine axe hinzu. So wird aus dem 28x28x1 Bild ein 1x28x28x1 Bild welches wir in das Netzwerk geben können.
Tripton danke 🙏
Warum nehmt 128 Neuronen?
Muss man sich das Video zweimal angucken ums zu verstehen
Ich hoffe nicht. Wo fing es dann an schwierig zu werden?
@@BreakingLab vielleicht gucke ich das Video einfach auch nur zu spät
Ich habe nichts gegen Dein Bild, aber wenn Du den Code erklärst, wäre es echt von Vorteil wenn man den Code sieht und nicht Dein Gesicht.
Die Idee mit dem Browsergame erinnert mich an Code Bullet. Der hat das auch mal gemacht.
Wäre es nicht sinnvoller als Reward einfach die Überlebensdauer zu definieren. Also je länger er lebt desto höher der Reward
also ich hab ja ein wenig weniger Erfahrung mit Programierung, aber wäre es nicht simple, sagen wir einfach ein Handy über UsB zb mit anderen auf einer Plattform zu verbinden und ich sag einfach 1nes, als CPU und 4, als Grafik mit Flash Anbindung und diese einfach an ein Display mit touchpad Funktion, zu einem vollwertigen Rechner umzumogeln ? dafür benötigt es jedoch auch so was wie ne intelligente App. und einen Intelligenten Akku der nicht unbedingt Lädt wenn saft Drauf ist und es direkt einspießt
das Chrome Dinosaurier Spiel kann man wenn man will auch online spielen. einfach den Link chrome://dino mit dem Google Chrome Browser aufrufen.
Hmm, das kommt hier so als wenn Du Windows installierst und dann behauptest Du hättest Dein eigenes Btriebssytem programmiert...
Nur mal so nebenbei.
Eine KI die alle Spiele spielen kann, würde die intelligenteste AI sein die es gibt.
Also wird schwer was ihr euch da zum Teil vorgenommen "hattet" :D
also das vorherige Projekt läuft mittlerweile.. auf collab hochgeladen (aus irgendeinem Grund ist das bei mir auf Japanisch xD) super interessant, erstes neuronales Netz programmiert!
7:33 Fuuuuuhl bridge rectifier!
Hahahah! :D Electroboom ftw!
booom!
Yey
Habe es leider nicht umgesetzt sorry hatte keine Lust und habe überhaupt keine Ahnung davon
Kein Ding, ich hoffe, es war trotzdem interessant
Ja definitiv interessant wann kommt eigentlich wieder ein Experiment?
@@LostiLama Nächste Woche Freitag :)
@@BreakingLab ok danke kanst du mich am Freitag grüßen i love you
Ich weiß ist bissi spät
aber du solltest darauf noch genauer eingehen
Auch hier schreibe ich es, ich brauche eine Augen Erkennungssoftware bitte
Tetris wäre auch interessant
Ich fände sowas wie lol oder dota cool, dafür gibt es ja schon KIs
Wenn man so früh ist, das es nur 380p gibt🙄
@@Element_115 😂😂😂
👍👍👍👍👍👍👍👏👏👏👏
360p Gang
Sorry, wird gleich besser. Gerade frisch aus dem Ofen... äh ich meine Premiere Pro
@@BreakingLab ist einfach durch YT, wird noch verarbeitet. Jetzt ist es schon auf 1080p
@@BreakingLab Weiß ich doch und hab ich auch Verständnis für. TH-cam lässt sich heute halt mal nen bisschen Zeit ^^
funktioniert nicht.
Schade das ihr das spiel nimmt sowas gibt es schon bei yt nix neues
Wir können uns ja auch langfristig noch den anderen Themen widmen :) aber da war halt erstmal die Mehrheit
@@BreakingLab ja eine ki die spiele spielt ist auch cool aber für das Spiel gibt es schon Videos auf yt genau so wie für flappybird
@@BreakingLab was mehr als crasy wäre wäre eine ki die mmos spielen kann aber ich denke mal das sowas seeeehr kompliziert ist um zu setzten selbst für ein Doktor auf diesen Bereich
Sehr schlecht erklärt
Programmier mal ne KI ohne Bibliotheken
leider sehr schlecht erklärt
Wieso so viele dislikes?
Eine KI, die die Benzinpreisentwicklung prognostiziert wäre doch auch cool!
Ja :) und mit dem ersten Teil des Tutorials könntest du das sogar schon machen. Statt der Zahlenreihe müsstest du die Benzinpreise und das Datum (oder auch den Wochentag, da gibt es ja tatsächlich systematische Schwankungen) nehmen
Meine Güte wie die Leute abgestimmt haben.
"Projekt 2: Aktienkurse voraussagen"
wäre doch tausend mal interessanter.
Schade.
Ich kann mich mit ihrem Lernkurs nicht so richtig anfreunden, er ist zu spartanisch und auch zu oberflächlich. Sie täten gut daran, wenn sie statt der Kleiderbilder eine Datenbank, die natürlich auch entsprechende Daten enthalten muss, dahinter legen oder die eben auslesen lassen, oder besser noch eine Kamera Verbindung, die eben einfach hinaus in die Welt zeigt, und wo die KI selbst erkennen muss, was ist das, wer läuft darum, was für Kleider hat er an und sieht ja schick aus oder nicht. Aber das sind natürlich Detailfragen und sehr schwer zu programmieren, wir haben das an der Harvard eben anders gemacht, und zu uns gehört ja das MIT Massachusetts Institute of Technology, und da geht man Lehrgänge völlig anders an, natürlich auch mit den von Ihnen verwendeten Werkzeugen, aber sie haben ja hier als Zuschauer Kunden ganz normale kleine User, und ich würde es für besser halten, wenn den gleich das große Tablett gezeigt wird, denn die KI steckt ja derzeit noch total in den Kinderschuhen und wird sich in den nächsten zwei Jahren ganz erheblich modifizieren.
Und noch was zu ihrem sogenannten Philipp, der schon vor zwei Jahren von seiner angeblichen Doktorarbeit im Internet geprahlt hat, wo ist denn die Doktorarbeit, kommt die zu Fuß oder weshalb es sie so lang unterwegs? Das was er da von sich gegeben hat, zeugt nicht unbedingt von Fachwissen, das muss ich ganz offen sagen.
Hi :) erstmal vielen Dank für die ausführliche Nachricht. Tatsächlich ist das hier nicht als klassisches Lernvideo gedacht, sondern es geht darum Leute, die noch keine Ahnung von KI haben, an das Thema heranzuführen, etwas die Angst zu nehmen und damit vielleicht den ein oder anderen zu motivieren mal einen Kurs zu dem Thema zu machen. Deshalb haben wir auch versucht alles so simpel wie möglich zu halten.
Der Philipp hat seinen Doktor erfolgreich abgeschlossen. In dem Video zu seiner Doktorarbeit ist die Arbeit auch verlinkt
nein
fortnite bitte
versucht doch erstmal euren biocomputer perfekt zu programmieren , eine lebensaufgabe.