Habt ihr schonmal mit genetischen Algorithmen professionell gearbeitet?



  • Thilo87 schrieb:

    Eine intelligente Maschine bräuchte also auch die Fähigkeit, aufgeben zu können, um nicht in Endlosschleifen zu landen.

    Was unterscheidet Endlosschleifen von sehr sehr langsamen Algorithmen?

    Edit:
    Das war ein wenig unglücklich formuliert. Für langsame aber definitiv lösbare / entscheidbare Probleme lässt sich oft eine obere Schranke angeben. Gemeint war eher so etwas was gleich einen Post weiter unten erwähnt wurde:

    intelligenterpost schrieb:

    Beweis mal, ob das Programm richtig ist, das die Riemannvermutung wiederlegt, d.h. ob es terminiert oder nicht.

    Eine bessere Artikulation wäre demnach zu fragen, was Endlosschleifen von semi-entscheidbaren Algorithmen (ein Algorithmus selbst kann nicht semi-entscheidbar sein, oder? Lediglich die Definitionsmenge...) unterscheidet (so beispielsweise der Miller-Rabin-Primzahltest).



  • Arcoth schrieb:

    Thilo87 schrieb:

    Eine intelligente Maschine bräuchte also auch die Fähigkeit, aufgeben zu können, um nicht in Endlosschleifen zu landen.

    Nein.

    Ich würde eine solche Maschine durchaus als intelligent bezeichnen, wenn sie es gut macht.

    Arcoth schrieb:

    Eine Maschine tut exakt das was der Programmcode vorgibt.

    Vielleicht bei klassischen Programmen. Es gibt auch Programmcode, der sich verändern kann. Technisch lässt sich nicht ausschliessen, dass ein Programm nicht auch so flexibel ist, wie das menschliche Gehirn.

    Der Programmierer braucht die Fähigkeit, richtigen Code zu schreiben und falschen zu erkennen.

    Beweis mal, ob das Programm richtig ist, das die Riemannvermutung wiederlegt, d.h. ob es terminiert oder nicht.

    Wenn die Maschine schon falschen Code selber erkennen muss, läuft irgendwas schief.

    Wer sagt, dass sie es muss?

    Seltsamer Post von dir.


  • Mod

    asfdlol schrieb:

    Thilo87 schrieb:

    Eine intelligente Maschine bräuchte also auch die Fähigkeit, aufgeben zu können, um nicht in Endlosschleifen zu landen.

    Was unterscheidet Endlosschleifen von sehr sehr langsamen Algorithmen?

    Gewisse Typen von Endlosschleifen kann man durchaus erkennen. Wenn ein interner Zustand sich exakt wiederholt, ist man in einer Endlosschleife gefangen.

    intelligenterpost schrieb:

    Arcoth schrieb:

    Eine Maschine tut exakt das was der Programmcode vorgibt.

    Vielleicht bei klassischen Programmen. Es gibt auch Programmcode, der sich verändern kann. Technisch lässt sich nicht ausschliessen, dass ein Programm nicht auch so flexibel ist, wie das menschliche Gehirn.

    Wer sagt, dass das Gehirn sich nicht auch im Rahmen eines sehr komplexen Programms beschreiben ließe? Das muss ja sogar so sein, wenn du nicht metaphysisch argumentieren willst. Bloß kommen bei der Beschreibung des Programms, wie du schon selber feststellst, eben häufiger Konstrukte vor, die sich verändern können. Aber das ist doch immer noch Teil des Gesamtprogramms. Das "Programm" ist dann das Gesamtpaket, inklusive dem Teil der beschreibt, wie diese Änderungen des Teilprogramms passieren.



  • Ich würde eine solche Maschine durchaus als intelligent bezeichnen, wenn sie es gut macht.

    Gut, aber sie bräuchte es nicht. Schließlich ist es nicht Teil der Definition von intelligenten Maschinen (falls diese überhaupt eindeutig existiert) dass diese ihren eigenen Programmcode missachtet.
    Falls der Programmierer das Überprüfen des Programmcodes aber (bewusst) einprogrammiert hat, dann macht es doch nicht die Maschine, sondern dann macht es das Programm, und die Maschine ist wiederum nur Medium der Programmausführung.

    Wer sagt, dass sie es muss?

    Niemand. 🙂

    Es gibt auch Programmcode, der sich verändern kann.

    Ja, aber wie? So wie es anderer Programmcode vorgibt. Am Ende tanzt doch alles nach der Pfeife des Programm(ierer)s?

    Edit:

    Das "Programm" ist dann das Gesamtpaket, inklusive dem Teil der beschreibt, wie diese Änderungen des Teilprogramms passieren.

    👍



  • Arcoth schrieb:

    Niemand. 🙂

    Es gibt auch Programmcode, der sich verändern kann.

    Ja, aber wie? So wie es anderer Programmcode vorgibt. Am Ende tanzt doch alles nach der Pfeife des Programm(ierer)s?

    Was ist, wenn der Veränderungscode auf echtem Zufall beruht?



  • Was ist, wenn der Veränderungscode auf echtem Zufall beruht?

    Dann wird er in vielen Fällen zu einem Absturz führen, weil ein nicht erkannter Opcode o.ä. gelesen wird. Daran ist doch nichts intelligent, aber vielleicht übersehe ich etwas?

    Oder meinst du, es werden zufällige Opcodes und Operanden ausgewählt? Inwiefern ist der Code zufällig?


  • Mod

    otze schrieb:

    Arcoth schrieb:

    Niemand. 🙂

    Es gibt auch Programmcode, der sich verändern kann.

    Ja, aber wie? So wie es anderer Programmcode vorgibt. Am Ende tanzt doch alles nach der Pfeife des Programm(ierer)s?

    Was ist, wenn der Veränderungscode auf echtem Zufall beruht?

    Und? Das ändert doch nichts. Es ist kein deterministisches Programm mehr, aber das ändert doch nichts da dran, dass das Gesamtprogramm vorgegebenen Regeln gehorcht. Diese sind dann eben statistischer Natur.



  • SeppJ schrieb:

    Was ist, wenn der Veränderungscode auf echtem Zufall beruht?

    Und? Das ändert doch nichts. Es ist kein deterministisches Programm mehr, aber das ändert doch nichts da dran, dass das Gesamtprogramm vorgegebenen Regeln gehorcht. Diese sind dann eben statistischer Natur.[/quote]

    Klar ändert das was. Überleg dir mal folgendes Programm:

    Input: Q : A problem to solve
    forever{
        P=createRandomProgram;
        if(P is better strategy to solve Q){
            run(P);
            exit;
        }
    }
    

    Zur Vereinfachung können wir erstmal annehmen, dass wir ein Problem haben, für welches die if-Bedingung entscheidbar ist.



  • Edit: Ich les' mir nochmal in Ruhe was durch.

    Was unterscheidet Endlosschleifen von sehr sehr langsamen Algorithmen?

    Mittlerweile kann ich ja ganz entspannt auf den beschäftigen Bieber verweisen.



  • Arcoth schrieb:

    Mittlerweile kann ich ja ganz entspannt auf den beschäftigen Bieber verweisen.

    Dich wird Herkules mit der Schlange auch unterhalten.



  • otze schrieb:

    SeppJ schrieb:

    Was ist, wenn der Veränderungscode auf echtem Zufall beruht?

    Und? Das ändert doch nichts. Es ist kein deterministisches Programm mehr, aber das ändert doch nichts da dran, dass das Gesamtprogramm vorgegebenen Regeln gehorcht. Diese sind dann eben statistischer Natur.

    Klar ändert das was. Überleg dir mal folgendes Programm:

    Input: Q : A problem to solve
    forever{
        P=createRandomProgram;
        if(P is better strategy to solve Q){
            run(P);
            exit;
        }
    }
    

    Zur Vereinfachung können wir erstmal annehmen, dass wir ein Problem haben, für welches die if-Bedingung entscheidbar ist.[/quote]
    Ähm. Supi Vereinfachung.

    Zur Vereinfachung können wir erstmal annehmen, daß 2+2=5. ex falso quod libet.



  • Thilo87 schrieb:

    Eine intelligente Maschine bräuchte also auch die Fähigkeit, aufgeben zu können, um nicht in Endlosschleifen zu landen. Ihre Intelligenz erkennt man dann daran, inwiefern sie beurteilen kann, ob ein Algorithmus wahrscheinlich funktionieren wird.

    Da sie mit dieser Einschätzung hin und wieder falsch liegen wird, ist das Arbeitsverweigerung. Das ist nicht das, was ich von einer Maschine erwarte.



  • Bashar schrieb:

    Thilo87 schrieb:

    Eine intelligente Maschine bräuchte also auch die Fähigkeit, aufgeben zu können, um nicht in Endlosschleifen zu landen. Ihre Intelligenz erkennt man dann daran, inwiefern sie beurteilen kann, ob ein Algorithmus wahrscheinlich funktionieren wird.

    Da sie mit dieser Einschätzung hin und wieder falsch liegen wird, ist das Arbeitsverweigerung. Das ist nicht das, was ich von einer Maschine erwarte.

    Ist das nicht eigentlich recht nah an einem Anytime Algorithmus dran? Ich meine, so etwas nutzt man doch. Man fuehrt eben Abbruchbedingungen ein, bei denen man aber auch schon ein "suboptimales" Ergebnis kriegt. Ausgehend von so etwas halte ich es nicht unbedingt fuer problematisch, einen Algorithmus zu bauen, bei dem der Computer selbst entscheidet, wann er mit etwas abbricht und vielleicht etwas anderes ausprobiert. Das ist unter Umstaenden auch sehr erwuenscht, aber natuerlich muss einem dann klar sein, dass das Ergebnis eben nicht optimal ist.



  • Bashar schrieb:

    Thilo87 schrieb:

    Eine intelligente Maschine bräuchte also auch die Fähigkeit, aufgeben zu können, um nicht in Endlosschleifen zu landen. Ihre Intelligenz erkennt man dann daran, inwiefern sie beurteilen kann, ob ein Algorithmus wahrscheinlich funktionieren wird.

    Da sie mit dieser Einschätzung hin und wieder falsch liegen wird, ist das Arbeitsverweigerung. Das ist nicht das, was ich von einer Maschine erwarte.

    Eine intelligente Maschine ist auch keine Maschine im ursprünglichen Sinne mehr, sondern ein Lebewesen.



  • oenone schrieb:

    Eine intelligente Maschine ist auch keine Maschine im ursprünglichen Sinne mehr, sondern ein Lebewesen.

    Jo. Oder ums auf den Punkt zu bringen: Intelligenz wird an die Maschinen angepaßt, es gibt per Definition keine intelligenten Maschinen. Neulich sind Multiplizieren langer Zahlen, symbolisch Integrieren und Schachspielen zum Beispiel aus dem Intelligenzbegriff rausgefallen, weil Maschinen es jetzt können und sie nicht intelligent sein dürfen.



  • Ich hab mich auch schon paar mal gefragt, wann ein Mensch eine Maschine als intelligent akzeptieren würde. Es ist eigentlich egal, was die Maschine alles kann, sobald wir verstehen, wie das funktioniert, würden wir sagen, das ist nicht intelligent, nur ein dummer Algorithmus, der genau das macht, was der Entwickler vorgesehen hat.



  • Die logische Konsequenz daraus wäre, dass, wenn wir irgendwann verstehen sollten, wie der menschliche Verstand funktioniert, auch diesen nicht mehr als intelligent bezeichnen werden. Das ist jedoch absurd, schließlich ist er die alleinige Messlatte für die Definition der Intelligenz, also muss es vorher einen Denkfehler geben, bloß wo? Vielleicht werden wie ihn nie verstehen, oder wir werden irgendwann Maschinenintelligenz einer Komplexität erschaffen, die wir selbst nicht mehr verstehen, vielleicht weil sie sich plötzlich bildet oder selbst weiterentwickelt.</spinnerei>



  • Bashar schrieb:

    Die logische Konsequenz daraus wäre, dass, wenn wir irgendwann verstehen sollten, wie der menschliche Verstand funktioniert, auch diesen nicht mehr als intelligent bezeichnen werden. Das ist jedoch absurd

    Nein, so absurd finde ich das nicht. Ich könnte mir gut vorstellen, dass wir auch das menschliche Gehirn nicht mehr als so wirklich intelligent ansehen würden, wenn wir genau verstehen würden, wie es funktioniert.
    Oder das Prinzip ist überschaubar einfach, aber die Umsetzung so komplex, dass wir einfach akzeptieren, dass sowas "intelligent" ist. Und der Unterschied zu einer intelligenten Software wäre, dass man diese leichter manipulieren kann. Angenommen, man schreibt eine künstliche Intelligenz als KNN mit 100 Mrd Neuronen, dass dann praktisch alles kann, was auch ein Mensch kann und sich selbständig weiterentwickelt. Die Gewichtungen der Verbindungen müssten aber irgendwo gespeichert werden. Man könnte die Software anhalten, untersuchen, weiterlaufen lassen. Man könnte die gespeichertern Verbindungen beliebig manipulieren. Mit Hilfe anderer Software hätte man das alles wahrscheinlich irgendwann mehr oder weniger im Griff und könnte die high level "Gedanken" dieser Maschine relativ einfach manipulieren. Das alles geht beim Menschen nicht so einfach, deswegen würden wir hier vielleicht wieder ansetzen und sagen, so intelligent ist die Maschine auch wieder nicht...



  • Wieso sollte eine Maschine nicht intelligent sein dürfen?

    Für mich ist ein Faktor der für "Intelligenz" erfüllt sein muss, dass sich das Ding selbständig anpassen kann. Dazulernen. Aufgaben in neuen Domänen lösen.

    Ein Schachcomputer gilt für mich also nicht deswegen als "nicht intelligent" weil schachspielen keine Intelligenz erfordert, sondern weil er ganz speziell als Schachcomputer programmiert wurde.

    Wenn mal die Staubichsauger anfangen Schach zu spielen wenn ihnen langweilig ist, dann hab' ich vermutlich kein Problem damit denen auch Intelligenz zuzubilligen.



  • hustbaer schrieb:

    Dazulernen. Aufgaben in neuen Domänen lösen.

    Es wird Menschen denke ich trotzdem schwer fallen, das als intelligent zu akzeptieren (wenn das jemals realisiert wird). Weil man (wahrscheinlich) die Metaebene verstehen wird, die das erlaubt und dann ist es wieder nicht intelligent, sondern funktioniert nach gewissen festdefinierten Regeln, die einfach nur eine Ebene abstrakter sind. So wie diese generischen Brettspielengines. Da gibts glaub ich auch irgendwelche Meisternschaften, bei denen verschiedene Engines die Spielregeln on the fly lernen müssen und dann gegeneinander antreten. Trotzdem meint keiner, dass sie intelligent wären.

    hustbaer schrieb:

    Wenn mal die Staubichsauger anfangen Schach zu spielen wenn ihnen langweilig ist, dann hab' ich vermutlich kein Problem damit denen auch Intelligenz zuzubilligen.

    Außer es ist ein Gag von Google.


Anmelden zum Antworten