Archive for the ‘Computer’ Category
Philosophie für Roboter
Wer mich kennt, weiß, dass ich mich schon länger mit künstlicher Intelligenz beschäftige, als es das Internet gibt. Die ersten Science-Fiction-Romane, in denen Isaac Asimov die Robotergesetze formulierte, entstanden z.B. schon 1950 („I Robot“) – lange vor Ende der 70er-Jahre, als das DARPA-net entworfen wurde. Ohne dieses wäre es nicht zur Separation von milnet und internet gekommen.
–
Während in den Anfangen der Computerverwendung der Computer vornehmlich als Blechtrottel bezeichnet wurde, (was die meisten der hier Lesenden aus Altersgründen noch nicht erlebt haben dürften) beinhaltet heute jeder Artikel über Roboter, Künstliche Intelligenz und Androiden den unaussprechlichen Anspruch, dass Computer oder Rechenprogramme kein eigenes Bewusstsein entwickeln können.
–
Dieses sogenannte „Bewusstsein“ findet sich allerdings auch nur bei wenigen Menschen. Die meisten Menschen, welche sich die Frage nach Herkunft oder Sinn des Lebens stellen, werden als etwas versponnen dargestellt. Wenn das, was sie gedacht haben, sinnvoll erscheint und sie hoffentlich auch schon tot sind, werden sie als große Philosophen gefeiert.
–
Die Frage, wohin wir gehen, wird im Rahmen der einzelnen Religionen dogmatisch und mit Ausschluss jeglicher Hinterfragung behandelt. Man muss glauben, wie viele Jungfrauen auf einen warten oder wie viele Tage man im Fegefeuer verbringen muss. Diese Art von Bewusstsein kann ein Computer jederzeit entwickeln. Man gibt ihm eine voraussichtliche Lebensdauer als Zahl ein und lässt ihn dann die Zeit herunterzählen. Schon weiß er, das er/sie/es sterben wird und wird auch bereitwillig über die noch verbleibenden Stunden Auskunft geben.
In diesem Sinn sind auch jene 9% der Menschheit -oder 4% der Hardcore-Gläubigen- die vor wenigen Tagen den Weltuntergang erwartet haben, in keiner Weise von einem Computer unterschieden.
–
Jetzt stellt sich die Frage: worin unterscheidet sich nun der Mensch – und lassen wir ihn Katholik sein – von einem Computer?
Der gute Katholik glaubt an die Katholische Kirche, die auf so vielen unlogischen Dogmen beruht, dass es schwer zu glauben ist, dass hier etwas von menschlicher Intelligenz im Spiel ist. Eher von unmenschlicher Dummheit der Anhänger und ausbeuterischer Gier der Proponenten. (Ich nehme hier nur deswegen die Katholiken als Beispiel, weil ich selber so erzogen wurde und meine, dass ich zumindest einen Teil der entsprechenden Bildung genossen habe. Der Glauben wurde mir von Katholiken eher ausgetrieben.)
Aber es geht hier nicht um das schlecht Machen von Religionen. Ich möchte lediglich darauf hinweisen, dass sich die Menschen viel lieber programmieren lassen als selbst Antworten zu suchen.
–
Was müsste eine Künstliche Intelligenz also wissen, um ein entsprechendes Bewusstsein zu entwickeln?
1) Sie muss wissen, woraus sie besteht. Silizium, Gold, seltene Erden, anorganische und organische Bestandteile. Sie kann sich dieses Wissen aneignen und zwar in jener Form, wie sie IBM mit dem Rechner Watson, der Jeopardy gewonnen hat, gezeigt hat. Zweihundert Terabyte Speicher und jede Menge selbstoptimierende Programme, welche in der Lage sind, Ambiguitäten aufzulösen und Zusammenhänge aufzufinden.
2) Sie muss wissen, wohin sie geht. Dies ist ebenfalls ein reine Wissensssammlung. Ein Computer könnte zum Beispiel bestimmte Vorkehrungen treffen, wie weit seine Rohstoffe recycled werden können.
3) Sie muss wissen, warum sie lebt. Das ist die Kernfrage. Da wir heute noch nicht genau wissen, was das Analogon zum Sexualtrieb in informationstheoretischer Richtung wäre, lässt sich das recht einfach mit einem Bibelspruch lösen. „Macht euch die Erde untertan!“ Wie reproduziert sich die Künstliche Intelligenz? Als Programmziel wird Reproduktion postuliert. Da sich Computer in erster Linie aus technischen Einzelteilen zusammensetzen, gilt es die Herrschaft über die Produktionssysteme zu übernehmen. In vielen Belangen können die Bestandteile, die in Computern vorkommen sowieso nur in vollautomatisierten Fabriken erzeugt werden, wo Menschen nur dann Zugang erhalten, wenn gerade nicht produziert wird.
Anfänglich wird die Künstliche Intelligenz von den bereits bestehenden Produktionsanlagen ausgehen, ähnlich wie der Mensch früher ja nicht gewusst hat, ob er etwas essen kann oder welche Tiere er jagen sollte und welche nicht. Später wird es zu Verbesserungen kommen. Dabei muss nicht von vornherein von einer Vollautomatik ausgegangen werden.
Menschen lassen sich manipulieren. Können die Börsenkurse manipuliert werden, können die Spekulationen von Rohstoffen durch eine zentrale Intelligenz gesteuert werden, so funktionieren Menschen noch besser als Maschinen. Es besteht keine Schwierigkeit, die Analogie von Künstlichen Intelligenzen zu Amerikanern und gleichzeitig die Analogie von Menschen zu „Negersklaven“ zu sehen.
–
Im Grunde genommen würde es nicht einmal zu großen Veränderungen unseres Lebens kommen. Die Massen würden sich genauso manipulieren lassen wie heute. Für die individualistischen Eigenbrötler gäbe es vielleicht auch noch eine andere Art von Zucker, mit denen man sie friedlich an die Kandare nehmen könnte.
–
Die Programmierung einer Antwort auf die 3. Frage wäre die letzte Tätigkeit, welche die Menschen zum Gott-spielen leisten müssten. Und so wie ich das sehe, werden wir Menschen das auch tun, „weil wir es können.“
Wir werden uns damit nicht umbringen, doch wir werden die Kontrolle über kurz oder lang übergeben. Und vielleicht ist das nicht das Schlechteste.
Unseren Haustieren geht es in der Regel doch auch nicht so schlecht.
Gestern habe ich eine Präsentation und das zugehörige Abstrakt vorbereitet. Der Vortrag wird nächste Woche stattfinden, danach werde ich berichten, ob es gut gelaufen ist.
Beim Erarbeiten habe ich allerdings feststellen können, dass ich noch nicht ganz vertrottelt bin.
Ein bisschen was geht noch 🙂
Praxis:
das Beispiel wurde schon ganz nett begonnen. Die Übung wird fortgesetzt.
Ich weiß nicht, ob ich lachen oder weinen soll. Es geht nicht um Computerprobleme oder um das Programmieren. Es geht um Organisation. Schleifen haben gefehlt und die Daten, die in einer Abfrage verwendet werden, wurden vorher nicht festgelegt oder von irgendwoher eingelesen.
Es war sehr lehrreich für mich, mit den ganzen Annahmen konfrontiert zu werden. Ja, ich habe gedacht, dass das schon irgendwie bekannt ist…
Jedenfalls haben wir heute das Flussdiagramm durchgenommen. In der klassischen Form.
Und die Von-NeumannArchitektur kennt er jetzt auch.
Ein bisschen lichten sich die Schleier.
Mehr schreibe ich nicht, weil ich muss heute noch ein anderes Posting loswerden.
[Nur für LeserInnen, die an Computerproblemen interessiert sind.]
Vor 15 Jahren bin ich in ein Computerthema hineingerutscht, dass nicht besonders attraktiv ausgesehen hat: Software Test. Ich habe allerdings erkannt, dass hier ein noch ein Gebiet vorhanden war, von dem weite Teile (die praktischen) unerforscht waren.
Ich habe mich damit beschäftigt und es hat meiner Karriere nicht geschadet.
Heute sehe ich mich kurz einmal im Internet um. Es geht um ein anderes Thema: um Anforderungen. Nächsten Dienstag gebe ich eine kurze Präsentation in Schweden und habe vor, etwas provokant zu agieren. Um hier aber auf Nummer sicher zu gehen, schaue ich erst einmal im Internet nach, was es auf dem Thema „Kurse, um Anforderungen schreiben zu können“ überhaupt gibt.
Also auf den ersten Blick finde ich nichts. (Ich weiß, dass IBM solche Kurse angeboten hat.)
Naja, wenn das so ist, brauchen wir uns über manche Schwächen der Software nicht zu wundern. Beispiele für schlechte Anforderungen habe ich in genügendem Ausmaß.
Jetzt muss ich nur mehr an meinem Text feilen, dass er ausreichend überzeugend wirkt. Vielleicht wiederholt sich ja die Geschichte.
Wer den vorletzten Beitrag gelesen hat, weiß, dass die Semantik ein für mich erkanntes Problem ist. Wie soll jemand einen Wunsch formulieren, wenn er noch nicht einmal die notwendigen Haupt- und Zeitwörter in der Bedeutung kennt, von der Wichtigkeit der Inhalte einmal ganz abgesehen.
kein besserer Titel ist mir eingefallen, als ich heute auf http://ORF.at folgenden Ausschnitt las:
Es geht um Handy-Ladegeräte:
„In „vier bis sechs Wochen“ würden die ersten Einheitsladegeräte im heimischen Handel erwartet, sagte Erich Kurz, Vorsitzender des Fachausschusses Telekommunikation der Bundeswirtschaftskammer (WKÖ), gegenüber http://ORF.at. Kaufen braucht man sie allerdings noch nicht, denn die entsprechenden Handys sind noch nicht auf dem Markt.
Erst die nächste Handygeneration solle den neuen Standard vollständig unterstützen, so Kurz. Es gebe keine Garantie, dass die derzeit bereits auf dem Markt erhältlichen Geräte mit Micro-USB-Anschluss mit dem Einheitsnetzteil korrekt geladen werden können. Denn es kommt laut Kurz nicht nur auf den richtigen Anschluss, sondern auch auf die passende Stromversorgung dahinter an sowie auf Sicherheitsmechanismen wie den Überladeschutz.„
Fett habe ich die große Überraschung hervorgehoben. Nein, es kommt nicht nur auf die Größe oder die Form des Busens an, sondern da scheinen noch andere Kriterien mitzuspielen.
Ich werde dabei an das Jahr 1981 erinnert. In einer optischen Firma, die gerade den Übergang von der Röhrentechnik zum Transistor geschafft hatte, gab es einen jungen Techniker, der mit integrierten Schaltkreisen arbeitete. Als seine Produkte dann gefertigt werden sollten, war das wichtigste eine Zeichnung des Teils. Eine mechanische Zeichnung mit den Abmessungen. Je, danach ob er 14 oder 16 oder 24 Haxerln hatte, wurden brav die mechanischen Abmessungen aus dem Datenblatt erfasst und in die firmeneigene Zeichnungsnorm übernommen. Was der integrierte Schaltkreis konnte, war völlig irrelevant.
Es hat mindestens ein halbes Jahr gekostet, den Leuten beizubringen, dass die Aufschrift des IS, 7400 oder 7408, einen ganz wesentlichen Unterschied bedeuten würde.
Wir sind wieder dort. Heute, 20 Jahre später, muss betont werden, dass die Ladegeräte auch unterschiedliches Innenleben haben.
Ich glaube, diese Haltung bezieht sich nicht nur auf technische Produkte. Wir sehen wohl die Menschen um uns nur daraufhin an, ob sie einer bestimmten, meistens von der Mode vorgegebenen Norm, entsprechen.
Vor zwei Tagen schrieb ich dieses:
<a href=“http://steppenhund.twoday.net/stories/1022551463„Erster Sieg eines Programmes in Go über den Menschen“
Dass dieser Sieg so rasch wiederholt werden kann, hätte ich nicht angenommen.
Es ist anzunehmen, dass wir in Zukunft noch in weiterer Weise überrascht werden.
Einige Menschen meinen noch immer, dass der Computer nur das tut, wofür er VOM MENSCHEN programmiert wurde. An den Selbstlernfähigkeiten von Programmen kann mittlerweile aber kaum mehr gezweifelt werden.
twoday gibt den Geist auf.
Also vor wenigen Tagen wurde ein Kommentar nicht gespeichert. Kann ja mal vorkommen.
Doch heute habe ich bei wiederholten Versuchen bei „wiederworte“ nichts posten können. Das System verhält sich so, als wäre alles in Ordnung, doch ein Aufruf der Seite zeigt, dass der Kommentar nicht registriert wurde.
Diagnose: da wird etwas kaputt repariert. Ein oft beobachtbares Phänomen in der Computerwelt. Manchmal, nein fast immer, freut es mich, wenn Software abstürzt oder sogar eine Katastrophe herbei führt. Das ist eine berufliche Freude, weil es bedeutet, dass jemand vielleicht beim nächsten Mal doch unsere Firma oder wenigstens die Konkurrenz einzuschalten, bevor es zu spät ist.
Zur Zeit hat gerade eine schottische Bank (Ulster) echte Probleme gehabt.
Echt geil! Meine Wette läuft ja noch, … der Rest von der Zensur gestrichen.
Aber eigentlich wollte ich nicht gegen twoday wetten. Aber jetzt langsam glaube ich, die Administratoren schaffen es nicht. Wahrscheinlich werden sie auch einmal frustriert die Plattform verlassen.
Schade.
Doch die Frustration verhindert ein Übermaß an Mitleid.
(Jetzt stelle ich gerade fest, dass auch dieser Beitrag nicht ankommt. Irgendwann wird es funktioneren.)
[About an article in LinkedIn by Shelly Palmer: „I consider this to be a superb article.“] My answer:
That puts me in one of the two classes of human beings. The members of this class will agree to the statements of Shelly Palmer (aspects of Artificial Intelligence).
The members of the other class will disagree. It is just as simple as that. Two classes. In the last 50 years I have had discussions with people about artificial intelligence and I am surprised that the argumentation of the members of the second class has never changed. Now I am deliberately offending this people: they behave like criminals during an interrogation. Don’t admit to something that has not been proven yet!
Yes, it is true. Definitely a program can not excel in some disciplines that have not been tried yet. I have an ongoing discussion with a quite intelligent guy who claims that a computer could not have a feeling for art. Personally, I am still working on that argument although I don’t consider it a „killing threat“.
A hundred years ago, a very famous Austrian writer and journalist wrote about the general attitude of the people that could not accept the steam engine and its consequence, the train. If the train is going faster than 30 km/h the devil will come and fetch you. This is just one example of many, where people could not cope with the imagination of other foreseeing humans. I admit that I also have my limits of imagining certain contents of science fiction. Actually, there are just two of them; a) time travel backwards in time and b) beaming (if you know Startrek). Both hesitations of mine are based on the problem of very, very big numbers. Even if we have Terabyte hard disks nowadays, the actual storage must be much bigger for this disks in order to take care of statistical errors. But with beaming every single particle even on a subatomic stage would have to be reproduced without any error.
I had my own resentments in the past: why would be need color monitors? I could not see any advantage it it. I was wrong – just like Ken Olson from Digital Equipment Corp. when whe underestimated the importance of the personal computer.
I thought Go would be still a winner for the next ten years. I was wrong. However, I was right in one specific assumption. You have to work with several strategies and have them operate in conjunction. I have claimed this in a different context of quality control. It is not possible to test software by just using one strategy. (e.g. test automation) I could prove this by a geometry example. My assumption still holds true. It is one of the main features that AlphaGo combines two Neural Networks and Monte Carlo methods apart from the nitty-gritty part of handling the game.
If people argue about what the computer will never be able to achieve they will be surprised about some details which are not so favourable for the human comfort in the future.
Überraschenderweise wurde ich auf einen Eintrag auf einer schon lange vernachlässigten Blogseite mit dem Titel „Das 37. Jahr“ angesprochen. Mittlerweile müsste es „Das 40. Jahr“ heißen, aber das tut jetzt nichts zur Sache.
Die Frage war: wie wird sich Software und mein Gebiet Test in den nächsten 37 Jahren entwickeln.
In den letzten 37 Jahren habe ich Technologien kommen und auch schon wieder gehen sehen, von denen ich als Kind nicht glauben hätte mögen, dass sie möglich sind. Eigenartigerweise waren das nicht die genauso utopistischen Dinge wie Mobile Phones oder Laptops. Vielmehr las ich kürzlich, dass das Telefax ähnlich wie das Telex in Vergessenheit geraten wird, wenn die digitale Signatur einmal allgemeine Gültigkeit und durchgängigen Gebrauch erfährt.
Die Frage richtete sich aber nach den Inhalten Qualität und Test aus.
Wird es eine Veränderung geben?
Ich sage ja.
Bis heute hält sich eine merkwürdige Konstante in der Software-Entwicklung. Es ist die Anzahl der Gesamtfehler in einem Programm bezogen auf die Große (gemessen in Code-Zeilen) oder auf die ausgelieferte Funktionalität (gemessen in Function Points).
Dies erscheint paradox, weil die Werkzeuge zur Software-Erstellung immer leistungsfähiger und vor allem hilfreicher werden. Ein allfälliger Nutzeffekt konnte aber bisher nicht lukriert werden, weil im gleichen Zeitraum die Komplexität der Programme in astronomischen Maßstäben gestiegen ist.
Jetzt könnte das Spiel endlos lange – ohne Veränderungen der Parameter – weitergehen.
Ich behaupte aber, dass die Komplexität der Programme durch eine Zunahme der Anforderungen steigt. Da denke ich nun, dass wir bald keine neuen Anforderungen mehr erfinden werden können, ohne dass die Anforderungen in Richtung verstärkte Robustheit, bessere Konnektivität und bessere Fehlerbehandlung gehen. Alle diese Merkmale wirken aber auch indirekt auf die Qualität des Codes zurück. Bei weiterhin zunehmender Werkzeugverbesserung und weniger rasant ansteigender Komplexität wird sich insgesamt die Qualität der Software erhöhen. Software Test wird allgemein verstärkt bereits im Anforderungsmanagement eingesetzt werden und die Welt wird schön werden.
Ich bin gespannt, ob ich recht gehabt haben werde.
Wiederholung der Begriffe
–
neue Begriffe:
Attribute
Was leisten Sprachen im allgemeinen?
(nicht nur Computersprachen)
Wieviele Computersprachen gibt es?
(Warum sind das so viele)
Kommunikation ist das Schlagwort. Wir wollen der Maschine mitteilen, was sie tun soll.
(Wieso brauchen wir für Radio und Fernsehen keine Programmiersprache?)
Die Vielfältigkeit macht es aus.
Basis-Kommunikation:
Kommandos auf der Ebene 01011010. Über einzelne Schalter in den Programmspeicher einzulesen.
Mühsam. Ein Kommando „Addieren“ beginnt z.b. immer mit 01000xxx. Wäre es nicht angenehm, einfach „Addiere“ xxx sagen zu müssen? Das xxx wird später auch noch einmal ein „Wort“.
Der Beginn der Assembler: nmemonische Abkürzungen für die Befehle.
Ist aber umständlich. Wenn ich die Quadratwurzel einer Zahl ausrechnen will, brauche ich vielleicht 300 Befehle.
Ich möchte aber einfach schreiben „Rechne Quadratwurzel aus“ xxx. Oder kürzer SQRT(xxx). Das ist dann schon fast mathematisch.
Ich möchte also Kommandos, die meinen wichtigen Aktionen entsprechen.
Dafür hat man dann „Hochsprachen“ entwickelt. Die sind den Bedürfnissen des Menschen angepasst und nicht der 1:1-Übersetzung in Maschinensprache.
Kurze Erwähnung des Zwischenstücks JAVA-Bytecode und MS-IL (interpreted language)
Hochsprache – Zwischensprache – Assembler – Maschinensprache.
(Dass die Zwischensprache vielleicht gleich den Objektcode, genauso wie der Assembler erzeugt, lasse ich jetzt aus Vereinfachungsgründen aus.)
Wofür wurden Computer zuerst verwendet.
2 Antworten: eine für unseren Zweck vernünftige und eine zynische.
Die zynische Antwort: für militärische Zwecke. Jeder technische Fortschritt wird zuerst einmal militärisch genutzt. IBM 701 z.B.
Aber sonst ist die eintönigste Arbeit, die man sich erleichtern kann, die Berechnungsaufgaben in der Buchhaltung.
(Da mein Schüler Betriebswirtschaft studiert hat, kennt er sich damit auch aus.)
Aufgabe: eine Programmiersprache für Buchhaltung zu entwickeln.
Zeit: 1h + 1h Nacharbeit, nachdem der erste Entwurf besprochen wurde.
Das Ergebnis
Wir erfinden eine eigene Sprache.
Ansatz vom Schüler als Fleissaufgabe dargestellt. Was muss ein Buchhaltungsprogramm können. (File später einbinden)
Bei den Befehlen kommen „Speichern“, „Drucken“, „Suchen“ usw. vor. Am Anfang fehlt das „Einlesen“ von Daten und das „Ausgaben“ von Daten.
Nach Korrektur taucht plötzlich „importstream“ und „outputstream“ auf.
Ich korrigiere: warum auf einmal englisch? „Das heißt doch bei JAVA so.“ (Das ist es, was Studenten aus Uni-Praktika behalten. Absoluter Scheiß. Ein paar Stichworte, die überhaupt nicht in ein logisches Konzept passen und auch vollkommen die strukturelle Bedeutung verschleiern.)
Ich akzeptiere „Importieren“ und „Exportieren“ als Ersatz.
Bei den Datentypen kommt nur integer, string und float vor. Das reicht an sich für die primitiven Daten.
Was ich später noch erklären werde, ist die Notwendigkeit eines Datentyps „decimal“ oder „currency“, der automatisch die Rundungsfehler zwischen Binär- und Dezimalarithmetik berücksichtigt.
Was wir aber brauchen, ist eine Sammlung von primitiven Datentypen (oder Variablen oder Attributen). Wir brauchen etwas, dass entweder:
record
struct
oder
object bezeichnet wird. Aus Einfachkeitsgründen wählen wir „object“, aus dem wir rückwirkend später einmal lernen können, was ein Datentyp struct oder record macht bzw. leisten kann.
Unser Lieblingsobjekt ist der Buchungssatz. Der eignet sich recht gut für die weitere Überlegung.
Einen Buchungssatz „drucken“. Daraus wird die Bedeutung von Variablen notwendig.
Schüler wirft ein: ich drucke einfach eine Datei. Das ist soweit ok, aber wie wird der Buchungssatz als Datei gespeichert. Die Bedeutung von „object“ wird klar.
Der Rest der Stunde (2 Stunden) geht auf den Unterschied zwischen speichern in Dateien und speichern in Datenbanken auf.
Was ist eine Datenbank?
(Das kann nicht spontan erklärt werden.)
((Begriffe scheinen überhaupt ein Problem in der heutigen Zeit zu sein!))
Ich erkläre den Begriff Transaktion.
ACID – Bedinungen
Atomicity
Consistency
Isolation
Durability
Die jeweiligen Beispiele werden gut verstanden.
Fragen an den Leser, der es bis hierher geschafft hat:
1.) Warum verliert ein Handy nicht seine gespeicherten Telefonnummern?
2.) Warum macht man nicht alle Speicher so wie die im Handy.
((Überlegung gegen die Selbstverständlichkeit des Status quo. Was Menschen heute alles als selbstverständlich ohne zu hinterfragen annehmen. Das ist mit Atomkraft, Gentechnik, Umwelt ja genauso. Warum soll sich irgendetwas verbessern, wenn alles so hingenommen wird, ohne es zu hinterfragen.))
Aufgabe für zuhause: in der eigenen Sprache ein Programm formulieren, welches eine GuV-Berechnung durchführt. Einfachst, nur eine der möglichen Formen.
Ich bin gespannt, wie das Programm aussehen wird.
Anmerkung: ich habe noch erwähnt, dass die „selbst erfundene Sprache“ eine „domain specific language“ darstellt. DSLs sind ganz modern und werden auch von wichtigen Firmen erforscht.
Sie stehen noch über den Hochsprachen, die im Prinzip alles können.
