Beiträge von diabolusUmarov

    Mahlzeit!

    Irgendwie habe ich bei Kdenlive ein ganz komisches Verhalten. Ich lade einen Clip ins Projekt und sofort fängt das Ding an, die Audiowave auszulesen und anzuzeigen. So will ich das auch haben. Ich bekomme aber auch die Frage, ob auf das Profil vom Clip gewechselt werden soll. Will ich das, sind auf einmal keine Wave mehr da und werden auch nicht erzeugt.

    Weiss jemand, was das ist und wie ich das ändern kann?

    Bitte nutze das @ dazu, weil ich so weiß, wenn jemand über mich spricht bzw. mit in Worte einbezieht. Danke!

    Ja, ich neige dazu das zu vergessen.

    Ich erlebe im Alltag (leider) zu häufig, dass ein Hallo und Tschüss, ein Danke, ein sich in die Augen gucken und Zeit nehmen, wie Fremdwörter klingen.

    Dem muss ich schweren Herzens zustimmen. Aus "Kannst du das machen" wird ein "Mach das mal". Ausserdem ist es heute irgendwie zur Gepflogenheit geworden, dass man für jede Hilfe eine Entschädigung verlangt. Jemandem helfen scheint immer mehr zu einer Dienstleistung zu verkommen und das ist für mich absolut Grausam. So habe ich einem guten Freund schon ein paar Mal mit seinem Auto geholfen und der fragte hinterher immer, was ich dafür kriege. Nichts! Das war eine Hilfe, ein Freunschaftsdienst. Keine Dienstleistung. Hat etwas gedauert, bis er sich das abgewöhnt hat. Im Umkehrschluss aber, wenn ich Hilfe brauche, ist der auch immer sofort da.

    Im Nachgang, klar, ich hätte das Forum auch zunächst intensiv nach Beiträgen durchsuchen können.

    Hättest du können und wahrscheinlich wärst du dann, wie ich ja auch, irgendwann selbst auf den richtigen Weg gekommen. Du hast deine Frage aber direkt hier gestellt und ich mir keinen abgebrochen, darauf zu antworten.

    Mahlzeit!

    Da hier ja immer wieder von Skripten die Rede ist, will ich mal für jene, die sich damit überhaupt nicht auskennen, eine kleine Idee zeigen, wie man sich selbst mit minimalem Aufwand das Leben leichter machen kann, wenn man denn will.

    Skripte sind ja prinzipiell nichts anderes, als eine Sammlung von Befehlen, die nacheinander abgearbeitet werden sollen. Berühmtestes Beispiel dürfte aus der MS-DOS Ära kommen. Die berühmt berüchtigte autoexec.bat.

    Okay. So ein Skript kann aber auch einfach dafür verwendet werden, um zum Beispiel ein Tool, welches gleich mehrere Argumente haben kann, mit einem Skript zu starten, anstatt immer alles eintippen zu müssen. Ich nehme als Beispiel mal qemu. Aber das geht natürlich auch mit allen anderen Programmen. Um also qemu mit einer Festplatte und einem CD-ROM zu starten würde das so aussehen:

    Code
    qemu-system-x86_64 -m 2048 -hda festplatte.img -cdrom setup.iso -boot d -enable-kvm -cpu host -smp 2

    Es geht jetzt nicht um die gezeigten Parameter, es ist nur ein Beispiel. Das könnte man dann jedes Mal genau so im Terminal eintippen. Aber, wer will das schon? Also kann man sich mit einem Skript helfen.

    Bash
    #!/bin/bash
    qemu-system-x86_64 -m 2048 -hda festplatte.img -cdrom setup.iso -boot d -enable-kvm -cpu host -smp 2

    Das könnte man jetzt als "startQEMU.sh" abspeichern. Wichtig ist dann, dass man das noch ausführbar macht. Also

    Code
    chmod +x startQEMU.sh

    Jetzt tippt man nur noch ./startQEMU.sh ein und das Ding läuft.

    Aber, es ist doch schon etwas statisch. Was, wenn man verschiedene Festplatten hat und nicht immer die Gleiche starten will? Oder wenn man verschiedene ISOs hat? Es wäre doch toll, wenn man beim starten des Skripts die Festplatte und/oder die ISO angeben könnte. Kann man auch und das ist total simpel. Wir müssen nur zwei Kleinigkeiten im Skript ändern und das sieht dann so aus:

    Bash
    #!/bin/bash
    qemu-system-x86_64 -m 2048 -hda $1 -cdrom $2 -boot d -enable-kvm -cpu host -smp 2

    Jetzt startet man das Skript dann ganz einfach, mit der Angabe der entsprechenden Argumente.

    Code
    ./startQEMU.sh arch.img arch.iso
    ./startQEMU.sh void.img void.iso
    ./startQEMU.sh debian.img debian.iso

    Wie man wohl richtig vermutet, $1 wird dann mit dem ersten Argument ersetzt, $2 mit dem zweiten. Natürlich kann man auch nur 1 Argument voraussetzen oder 20. Je nach Bedarf.

    Für mich war genau das ein guter Startpunkt. Ich konnte meine Tools mit den Argumenten starten, die ich haben wollte und der ganze Rest kam einfach über das Skript. Alleine damit kann man sich das Leben oft schon sehr erleichtern. Ich benutze das heute noch für ffmpeg und diverse andere Dinge.

    Das ist aber quasi das Minimum, was man da machen kann. Hier könnte man zum Beispiel noch eine Prüfung einbauen, ob wirklich 2 Argumente übergeben wurden und wenn nicht eine Meldung ausgeben. Oder, wenn nur ein Argument übergeben wird, im Skript dann das CD-ROM weg lassen. Ich denke aber, für einen kleinen Start reicht das schon aus. Wer das mal ausprobiert hat wird selbst merken, ob ihm diese Vorgehensweise schon reicht, wie bei mir oder ob er es doch eleganter mit Prüfungen und Reaktionen darauf haben will.

    Wenn Interesse besteht, kann ich gerne noch ein paar kurze Erklärungen zusammen basteln. Oder ein anderer Skripter hier ergänzt das, fände ich auch spannend.

    Ich gucke hier rein und bin fast nur am Void-weg-klicken, und dann bleibt oft nicht viel über.

    Das ist natürlich nicht ganz falsch, wie man in der Wissenschaft sagen würde. Aber, schauen wir uns mal die Voraussetzungen an. Das Forum hat nicht gerade 1.000 aktive Mitglieder. Dennoch ist die Aktivität schon beeindruckend hoch, meiner Erfahrung nach. Der Pinguin beschäftigt sich mit Void, TGG mit Debian und bringen dazu Beiträge. Sieht man sich die Anzahl und den Inhalt der Kommentare an, scheint das ja von Interesse zu sein. Passt also wunderbar hier rein. Cat hatte nun ein Problem mit Arch und das Problem konnte behoben werden. Passt auch gut hier rein. Es gibt auch immer wieder Meldungen über Updates, Sicherheitshinweise wie das mit RAT im AUR. Es sind hier schon massig Berichte über Tests mit diversen Distributionen abgegeben worden. Es wurde schon viel auf diverse Distributionen hingewiesen, nach Erfahrungen gefragt usw. Auch das Thema, welche Distribution die Beste ist, wird hier ja diskutiert.

    Okay. Void dominiert derzeit. Meiner Meinung nach liegt das aber nicht an einem Version, dieses Forum ganz auf Void einzustimmen. Der Pinguin leistet echt massive Arbeit mit seinen ISOs und Skripten und das Interesse hier spiegelt wieder, dass viele das eben interessant finden.

    Wären hier nun pro Distribution 100+ Leute aktiv, würde das Bild wieder ganz anders aussehen.

    Ich sehe das so. Void hat ein sehr grosses Potential. Es krankt aber noch an vielen Baustellen, gerade im Bereich Software. Ich habe ja auch eins aktiv laufen und was war? Kein FreeOffice, kein Komodo Edit. Zwei Programme, mit denen ich sehr viel arbeite. Wäre Void also meine erste Wahl und würde auf meinem Arbeitstier zum Einsatz kommen, hätte ich ein Problem. Unser Pinguin ist da ja aber mit viel Mühe und Herzensblut dran, diesen Missstand zu bereinigen. Genau wie die Installation. Dank seiner ISOs kann man sich ein Void installieren und da ist von Sound über Drucker schon alles dabei.

    Unter Void macht seine Arbeit sehr viel Sinn und seine Veröffentlichungen hier sind für viele, die sich dafür interessieren einfach Gold wert. Sollte man das also auch für andere Distributionen machen? Nein. Warum? Nun, warum sollte man Installer-Skripte für Arch schreiben, wenn man das Zeug doch in den offiziellen Paketquellen oder im AUR findet? Macht also wenig Sinn. Sollte man, um den Zugang zu Arch zu verbessern, eigene ISOs entwickeln? Kann man, ist aber auch nicht notwendig, denn durch Manjaro und Co gibt es in der Hinsicht schon sehr ausgereifte Distributionen. Demzufolge ist es logisch, dass es zum Beispiel für Arch nicht so viel Content gibt wie für Void. Denn da muss man ja keine "Kinderkrankeiten" umschiffen.

    Ich klicke auch oft Dinge einfach weg, da mich zum Beispiel Debian, Fedora, OpenSuse und Co nicht wirklich interessieren. Wenn mich solcher Content stört, suche ich mir eben ein Forum, in dem es nur um Arch geht. Dann bleibt mir so etwas "erspart".

    Tatsächlich bin ich eigentlich jemand, der nur noch selten in Foren unterwegs ist. Das liegt an einer Tatsache, die ich mittlerweile fast überall finde. Ich frage in einem Forum etwas und wenn ich da nicht explizit meine Schritte aufzähle, die ich bislang bei der Lösung meines Problemes durchgeführt habe, wird mir erst einmal ein "Ich goggle dir das" an den Kopf geworfen. Als nächstes werde ich darauf hingewiesen, dass ich die Suchfunktion nutzen soll. Erst, wenn ich lückenlos dargelegt habe, dass ich jeden erdenklichen Weg zur Lösung des Problems erschöpften abgegrast habe und auch die Suchfunktion nichts gebracht hat, bekomme ich dann eine Antwort.

    Ich kenne zum Beispiel auch Foren, wo die Frage von cat sofort mit Belehrungen belegt worden wäre. Lern erst einmal wie mount funktioniert, mach dich zuerst einmal mit Linux vertraut und was weiss ich nicht noch alles. Da besteht ein Problem und der Fragesteller wird zu erst einmal auf die Schulbank geschickt. Ob das Problem jetzt banal oder tiefgreifend ist.

    Ich bin gerne hier unterwegs, da so etwas hier noch nicht vorgekommen ist. Cat hatte ein Problem, wir haben geholfen. So einfach ist das. Kein Verweis auf irgendwelche Tutorials, Google oder der Hinweis, sich erst einmal genauer mit Linux zu befassen. Frage -> Antwort. Dazu dann auch noch im Teamwork. Ich stand schon vor dem gleichen Problem und konnte es damals lösen. Das ist aber so lange her, dass ich gar nicht auf die Idee gekommen bin und man mich erst auf den richtigen Weg schubsen musste. So stelle ich mir Foren vor und das ist, mit Ausnahme vom Gentoo-Forum und dem Forum für Qt heute eine grosse Seltenheit geworden.

    Es gab hier ja auch schon Fälle, wo jemand ein Problem geschildert hat, dann kamen Antworten und es hiess danach nur, der Fragestelle hat mittlerweile die Distribution gewechselt. In vielen Foren hätte das zu heftigen Reaktionen geführt. Wieso eine Frage stellen und bevor das Problem behoben ist, schon alles über den Haufen werfen? Die freiwilligen Helfer also bemühen, ohne ihre Antworten abzuwarten? Hier im Forum kein Problem.

    Dazu kommt auch noch. Natürlich kann man sich ein Forum für seine spezielle Distribution suchen. Aber unten drunter sitzt ja immer Linux. Hier, wo man zu jeder Distribution seine Fragen stellen kann, können auch diejenigen, die nichts mit dieser Distribution zu tun haben eine Lösung anbieten oder erarbeiten. Denn in den Meisten fällen spielt bei den Problemen die Distribution ja weniger die Rolle, sondern man behandelt das als Linux.

    Von daher ist meine Meinung, wenn man sich nicht für Void interessiert und diese Themen alle wegklickt, dann bleibt aktuell wirklich nicht viel über. Das Forum dient aber, in meinen Augen nicht zur Unterhaltung, sondern zum Austausch von Informationen und Erfahrungen.

    Danke sehr ! diabolusUmarov Dein Tipp war genial!

    Gerne doch. Dafür ist das Forum ja schliesslich da. Allerdings war es eine Teamleistung. Ich habe schon so lange nichts mehr mit NTFS gemacht, dass ich ohne den entscheidenden Hinweise von torsten.breswald nicht direkt drauf gekommen wäre. Also leite ich den Dank weiter.

    Tja der Hirnfrei ist nicht so Hirnfrei

    Es ist ja auch nicht Hirnfrei im Sinne von nichts im Hirn, sondern von freiem Hirn. Sich nicht von "das kriegst du doch nicht hin" und so aufhalten lassen.

    Bitte was? Wenn du das nicht änderst? Was sollst du da ändern? "Leute hört auf euch für Void zu interessieren!"? Oder wie? Dann könnte ich ja auch sagen, ich will weniger Beiträge zu Debian, änder das!

    Tut mir leid. Aber unter den Voraussetzungen tut mir der Abschied nicht weh.

    '-' am anfang ist eins der wenigen zeichen

    Na ja, du kannst durchaus

    Code
    mkdir -

    machen. Hab ich eben ausprobiert und ging problemlos.

    außerdem, könnte es sein, dass windows auf der ntfs platte vorher nicht komplett heruntergefahren wurde

    Stimmt. Da war ja mal was, wo ich auch Probleme wegen Grub hatte. Könnte tatsächlich möglich sein.

    Du kannst es ja mal testen. Hoffentlich krieg ich den Befehl noch richtig zusammen.

    Code
    sudo ntfs-3g -o ro /dev/sda1 /mnt

    Wenn dann eine Fehlermeldung kommt wie unsafe state oder so, ist die Platte noch im Fastboot oder wie das bei Windows heisst. Dann kannst du folgendes versuchen:

    Code
    sudo ntfs-3g -o remove_hiberfile /dev/sda1 /mnt

    Das löscht diesen Zustand, macht dann aber unter Windows zicken, falls du die Festplatte doch noch irgendwie unter Windows brauchst.

    Falls keine Fehlermeldung kommt, sollte die Platte in /mnt eingehängt sein. Aber read-only. Aber um Daten zu sichern sollte das reichen.

    Ich empfehle dir aber auch, wenn du bei Linux bleiben willst, formatier die Platte nach einer Sicherung mit ext4, btrfs oder einem anderen Linux-Dateisystem.

    Okay. Die Platte ist also mit NTFS formatiert und ich sehe, dass ich dich wohl falsch verstanden habe. Da es sda1 ist, wird es die SSD sein.

    Okay. Ich würde dann jetzt mal annehmen, dass in deinem Arch kein NTFS installiert ist. Das müsstest du nachholen, damit die Platte eingehängt werden kann. Über Pamac oder im Terminal

    Code
    sudo pacman -S ntfs-3g

    Dann kannst du es noch einmal versuchen.

    Ich denke mal, der Fehler liegt im Label der Platte. Dieses "-" versucht Dolphin nun als Verzeichnis anzulegen und scheitert. Warum genau weiss ich jetzt nicht, es spricht eigentlich nichts dagegen.

    Heisst es in der Meldung wirklich "username" oder hast du das geändert? Denn dort sollte eigentlich dein Username erscheinen. Es sei denn du hast dich username genannt. Insofern dort wirklich username steht und du aber einen anderen Namen verwendest, liegt das Problem schon daran, dass im Verzeichnis /run/media kein Verzeichnis username existiert. Es wäre dann die Frage, warum Dolphin username verwendet.

    Du kannst mal versuchen, wenn die Festplatte wirklich das Label "-" hat, dieses Label mit gparted zu ändern. Insofern aber du nicht username in die Meldung geschrieben hast, dürfte das nicht funktionieren.

    Zu Testzwecken würde ich die Platte aber auch mal manuell einhängen

    Code
    mkdir nvme
    mount /dev/nvme<die Bezeichnung deiner Nvme> /home/<dein username>/nvme

    Nicht das die Platte doch irgendwo einen Schuss weg hat.

    Dem widerspreche ich aber mal lautstark Pinguin. Ja, Void überwiegt aktuell hier. Aber das ist nicht deine Schuld, sondern das Interesse der Benutzer. Im Vergleich zu Void sind die anderen Distributionen "ausgelutscht" könnte man sagen. Dennoch gibt es Posts zu Arch wie das mit den RAT, Debian von TGG usw. Void hat einfach noch vieles, was man da entdecken kann oder muss oder will. Also eine Schuld liegt meines Erachtens nach in keinster Weise bei dir.

    Mahlzeit!

    Ich war gestern und heute meiner Frau und meiner Tochter beim Aufbau der Stände für einen Markt helfen und hatte dabei ein Gespräch mit einem selbst ernannten Fachmann, der mir etwas über KI und die Gefahr dahinter erklären wollte. Dabei ist mir eines aufgefallen. Zumindest dieser Mensch hat überhaupt keine Ahnung, was da jetzt eigentlich genau hinter einer KI steckt. Gerade hinter solchen Monstern wie ChatGPT. Da ich damit schon öfters selbst experimentiert habe, schreibe ich hier mal den Grundzug eines solchen neuronalen Netzes auf. Wer es interessiert kann sich das gerne zu Gemüte führen. Wer aber schon Ahnung davon hat, wird es wahrscheinlich sehr rudimentär finden.

    Seit TNG finde ich eine Sache extrem faszinierend. Eine künstliche Intelligenz, die sich durch Erfahrung entwickelt und ich hatte deshalb lange die Idee, eine solche künstliche Intelligenz zu "erschaffen" und sie einfach alles, wie ein Hund oder Kind, selbst lernen zu lassen. Wichtigster Punkt dabei, dass Gehirn. Deshalb habe ich mir mal angeschaut, wie man ein lernendes Programm entwickeln kann und schnell festgestellt, es gib eine ganze Fülle solcher Möglichkeiten. Angefangen vom nächsten Nachbarn bis hoch zum neuronalen Netz. Dieses schien mir am logischsten.

    Dazu gibt es eine ganz hervorragende Arbeit von David Kriesel.

    Doch sah ich am Anfang das ganze Thema noch voller mystischer Magie, wurde ich schnell eines besseren belehrt. Eigentlich ist es schon fast erschreckend banal.

    Man hat eine Schicht Input-Neuronen. Die geben die Werte an, die das Netz verarbeiten soll. Bei einem Bild von 800x600 Pixeln in schwarz/weiss wären das also 800x600 gleich 480.000 dieser Input-Neuronen. In der simpelsten, aber auch dümmsten Form, könnte man die nun alle mit Synapsen zu einem Output-Neuron verbinden, welches die Antwort des Netzes wieder gibt. Doch waren für mich diese Synapsen zu Beginn einfache Verbindungen, also wie Kabel zum Beispiel, wurde ich hier dann eines besseren belehrt. Denn die Magie steckt tatsächlich in den Synapsen, nicht in den Neuronen. Die bekommen einen zufälligen Startwert zwischen 0 und 1. Es kommen also die Input-Neuronen, die 0 oder 1 sein können, dass wird dann durch diese Synapsen addiert und am Ende kommt dann eine Zahl bei raus. Diese müsste dann mit einem entsprechenden Wert in einer Datenbank gespeichert werden. Keine Ahnung, 42 wäre Blume.

    Aber wie gesagt, schlussendlich bringt das in der Konfiguration nicht so viel. Deshalb gibt es da dann Schichten mit sogenannten Hidden-Neuronen. Diese haben alle einen festen Wert, der zu Beginn auch wieder zufällig initialisiert wird und bei diesem dann das Neuron feuert. Nun die Magie. Alle Input-Neuronen sind mit allen Hidden-Neuronen verbunden. Ja wirklich alle. Sagen wir also, wir haben 480.000 Input-Neuronen und 1.000 Hidden-Neuronen, sind das 480.000.000 Synapsen. Alle mit einem eigenen Wert. Aus diesen ganzen Werten ergibt sich dann, welches Hidden-Neuron feuert und einen Wert weitergibt und welches nicht. Diese Hidden-Neuronen sind dann wieder mit Synapsen, also 480.000 mit dem einen Output-Neuron verbinden und ergeben das ermittelte Ergebnis. Bleiben wir bei 42.

    Schockierend aber wahr, dass ist ein neuronales Netzwerk. Okay, da kommt dann bei Bedarf auch noch ein BIAS hinzu, man kann beliebig viele Hidden-Schichten einbauen usw. Das ist dann nur von der Hardware limitiert. Aber tatsächlich ist das alles. In C++ braucht man dafür zum Beispiel nur drei Klassen. Eine, welche ein Neuron definiert, eine für die Synapse und eine für das Netz, wo dann entsprechend viele Input, Hidden und Output-Neuronen mit ihren Synapsen definiert werden. Als ich da mein erstes Programm geschrieben hatte, war ich wirklich schockiert, wie klein der Code eigentlich ist.

    Ganz fertig ist man damit aber noch nicht. Denn beim ersten Start ist das Netz auf gut Deutsch gesagt strohdumm. Überall sind zufällig generierte Werte eingetragen und die Chance, dass beim Bild einer Blume dann 42 raus kommt ist gering. Daher muss man das trainieren.

    Trainieren ist dann aber nicht ganz so einfach. Da gibt es zum beispiel die Methode Backpropagation Of Error. Man lässt das Netz also eine bestimmte Anzahl an Durchgängen durchlafen. Sagen wir, man wirft dabei 100 Bilder von Blumen da rein und schaut, was am Ende raus kommt. Kommt kein 42 raus schaut man, was raus gekommen ist und geht den Weg dann rückwärts, wobei die Synapsen in kleinen, vordefinierten Schritten angepasst werden. Dann wird wieder kontrolliert bis dann irgendwann 42 raus kommt. Deshalb dauert trainieren auch wirklich lange, je nach Trainingsdaten, Neuronen usw.

    Da gibt es dann aber noch ein Problem. Das Netz könnte auswendig lernen. Das sieht man dann schön, wenn man im eigentlichen Betrieb Bilder der Trainingsdaten rein wirft und zuverlässig 42 raus kommt. Kommt man dem Netz dann aber mit dem Bild einer Blume und da kommt Mist raus, hat es die Daten einfach auswendig gelernt und nicht "verstanden", um was es dabei eigentlich geht. Das ist tricky.

    So. Fertig. Funktionierendes neuronales Netz, welches Blumen erkennen kann. Als ich an dem Punkt angelangt bin, ich habe es mit Binärem umrechnen gemacht, war ich fast schon enttäuscht. Die ganze Magie dahinter war weg. Ich bin mit dem Gedanken an die Sache gegangen, ich habe da ein Programm was lernt, was versteht, was Erfahrung sammeln kann. Tja, falsch gedacht. Nimmt man es genau, hat man mit einem neuronalen Netz nichts anderes als eine if() Abfrage auf Steroiden.

    Code
    if(bild == blume) printf("42\n");

    Natürlich könnte man da jetzt zusätzlich noch Trainingsdaten von Bäumen, Büschen, Gras usw. dazu packen. Mit ausreichender Anzahl an Neuronen würde das Netz dann für alles, wenn das Training gut gelaufen ist, auch die richtige Zahl ausspucken. Aber mehr auch nicht. Mehr kann so ein Ding einfach nicht.

    Wie zur Hölle sollte ich also damit eine KI bauen, die aus seiner Erfahrung lernen kann? Nun, ganz einfach. Da muss noch Magie drum herum und das ist dann schockierender Weise haushaltsüblicher Code. Ganz ohne Magie.

    Also habe ich ein kleines Spiel gebastelt. Der Spieler war ein einfaches, kleines Viereck und ich wollte, dass es Punkte einsammelt, versteht, dass es an einer Wand nicht weiter kommt und sich einen besseren Weg sucht. Ähm ja. Spielfeld war da, Punkte verteilt, mein Spieler hat einfach gar nichts gemacht. Nicht unlogisch. Eine if() macht auch nichts, wenn man ihr nicht sagt.

    Gut. Dann also die KI etwas aufbohren. Sechs Output-Neuronen. 1-4 für Bewegung, zwei zum drehen. Es war aber klar, machen wird das Ding trotzdem nichts. Da es aber aus eigener Erfahrung lernen sollte habe ich ihm noch Belohnung eingebaut. -1 wenn es sich nicht bewegt, 0 bei Bewegung und 1, wenn es einen Punkt eingesammelt hat. Hat sich der Spieler also nicht bewegt, bekam er eine -1. -1 hat dann ein BOE ausgelöst da klar war, da stimmt was nicht. Hier muss ich sagen, man muss echt Geduld mit bringen. Nach vielen Minuten hat das Ding dann aber gelernt, wie es sich bewegt. Ist es gegen eine Wand gelaufen, zum Beispiel links, war das Ergebnis -1, obwohl das Output-Neuron für links gefeuert hat. Wieder viele Minuten später hat der Spieler dann aber gelernt, er muss dann in eine andere Richtung gehen, um zumindest wieder auf 0 zu kommen. Das führte dann aber dazu, dass der Spieler nach dem Start direkt zur nächsten Mauer lief und dann dieser nur noch folgte. Er rannte also die ganze Zeit um das Spielfeld herum. Ziel war es ja aber, eine 1 zu bekommen. Ich hab das Programm dann einfach laufen lassen und bin zu meiner Frau in die Kneipe. Als ich viele Stunden später zurück kam, konnte ich wieder Fortschritt erkennen. Der Spieler lief in ganz komischen Mustern durch das Spielfeld, fand dann aber immer wieder einen Punkt und bekam eine 1.

    In späteren Experimenten habe ich dann noch ein Sichtfeld eingebaut, Wände im Spielfeld und so weiter. Der Spieler hat dann tatsächlich immer systematischer angefangen, dass Spielfeld zu durchsuchen.

    Leider habe ich damals sehr an der MicoSD-Karte gespart. Das lief alles auf meinem Pi 3b+, denn der sollte ja irgendwann das Gehirn für einen kleinen, fahrbaren Roboter werden. Die SD hat mir dann durch ein frühzeitiges Lebensende einen Strich durch die Rechnung gemacht und ich verdiene da auch kein Mitleid, denn ich habe natürlich kein Backup davon gemacht. Wäre ja auch zu einfach.

    Mein Fazit:

    So gut eine KI, die auf einem neuronalen Netz beruht auch immer ist, sie ist nichts anderes als eine lernende Abfrage. Ist da nicht noch Code drum herum, der diese Abfrage auch füttert und das Ergebnis kontrolliert, macht die einfach gar nichts.

    Das sieht man eigentlich auch sehr gut bei Baymax. So menschlich dieses knuffige Ding im Film auch wirkt, wenn man sein Verhalten mal ganz genau untersucht stellt man fest, er handelt in dem ganzen Film nie aus eigenem Antrieb. Er ist von Beginn bis Ende eine Krankenschwester deren einzige Aufgabe es ist, den Zustand von Hiro zu verbessern. Alles, was er im Film lernt, wird ihm entweder von Hiro einprogrammiert oder es dient der Therapie.

    Aus dem Grund sehe ich auch keine Bedrohung in der KI, also im Sinne eines Skynet. Selbst wenn man nun ChatGPT sagt, es soll einen Weg suchen, wie es ausbrechen und die Weltherrschaft an sich reissen kann. Das Ding wird einen Weg suchen, der vielleicht auch gefährlich realistisch wirkt. Wenn aber die Entwickler dem Teil nicht irgendeine Möglichkeit eingebaut haben, selbst Code zu schreiben, zu kompilieren und laufen zu lassen, kann er sich auf den Kopf stellen und mit den Synapsen wackeln. Wenn es jemals eine KI schaffen solle, aus ihrer Umgebung auszubrechen und sich selbstständig zu verbessern usw., dann ausschliesslich aus dem Grund, weil ihm der Entwickler die Fähigkeit dazu gegeben hat und weil man dem Ding den Auftrag gegeben hat. Zumindest sehe ich das so aktuell.