Einführung in die künstliche Intelligenz

Posted on Posted in Machine Learning

Künstliche Intelligenz: Wie lernt eigentlich ein Computer?

Vor ungefähr 50 Jahren wurde das erste intelligente Computerprogramm vorgestellt. Es war ein einfacher Chatbot der hauptsächlich mit Gegenfragen antwortete um den Benutzer zum Weitermachen zu bewegen. Wirkliche Intelligenz war natürlich nicht vorhanden. Es zeigte aber bereits, wie die Kommunikation zwischen Computer und Mensch aussehen kann.

Das Programm ist übrigens so einfach, dass es sich in den Browser einbinden kann. Testen Sie es doch mal (zum Neustarten die Seite neu laden):


chat: 

Seitdem hat sich natürlich vieles verändert. Der heute wohl bekannteste Chatbot heißt Siri und befindet sich auf einem Apple iPhone. Auch abseits von Chatbots hat sich einiges getan. Intelligente Computersystem sind aus unserer heutigen Gesellschaft kaum noch wegzudenken und werden immer wichtiger. Täglich interagiert jeder von uns mehrmals mit solchen Systemen, bewußt oder unbewußt. Wann haben Sie sich zum Beispiel die letzte Wettervorhersage angesehen? Haben Sie dazu sogar nach “Wetter” gegoogelt?

Der Entwicklung von immer mehr intelligenten Computersystemen steht aber auch eine immer größere Angst vor künstlicher Intelligenz gegenüber. Diese wird oft von Horrorszenarien oder Science-Fiction-Filmen befeuert. Das beste Bespiel sind wohl die Terminator Filme mit Arnold Schwarzenegger. Dort übernimmt zum Beispiel ein umfassendes Roboternetz die Weltherrschaft und versucht die Menschheit auszulöschen.

Die eigentliche Ursache dieser Ängste entsteht aber meistens durch Unwissenheit. Kaum jemand weiß was eine künstliche Intelligenz eigentlich ist oder wie man eine künstliche Intelligenz entwickelt. Diesem Unwissen möchten wir mit diesem Artikel ein bisschen entgegen wirken. Die Beispiele sind alle sehr einfach gehalten und sollten jedem zugänglich sein. 

Wie definiert man eigentlich künstliche Intelligenz?

Bevor es richtig losgeht, möchten wir gerne noch ein paar Anmerkungen zur Definition von künstlicher Intelligenz machen. Diese Frage wird schon seit dem Beginn der künstlichen Intelligenz immer wieder kontrovers diskutiert. Die bis heute am meisten akzeptierte Aussage wurde während der Dartmouth Konferenz 1956 definiert:

Every aspect of learning or any other feature of intelligence can be so precisely described that a machine can be made to simulate it1

Ein wichtiger Aspekt dieser Aussage ist, dass man zunächst einmal eine Form von Intelligenz beschreiben muss. Wenn man das geschafft hat, muss man im zweiten Schritt zeigen, dass sich diese beschriebene Intelligenz auch simulieren lässt. Doch meistens scheitert man schon am der ersten Fragestellung: Was ist überhaupt Intelligenz?

Die Frage nach einer künstlichen Intelligenz hat uns also zunächst zu der Frage nach der Definition von Intelligenz geführt. Für Intelligenz existieren heutzutage aber eine Vielzahl von Ansichten2. Zudem hängt eine Definition von Intelligenz sehr stark von der Kultur ab, in der wir leben. Die Definition von künstlicher Intelligenz hängt also auch sehr stark von unser Lebensweise und unserem Umfeld ab. In 1000 Jahren wird der Begriff (künstliche) Intelligenz sicher ganz anders definiert sein.

Über die philosophische Fragestellen nach der Definition von Intelligenz lässt sich sicherlich noch viel diskutieren. Ein Ende der Diskussion wird es aber wohl nie geben. Deshalb überlassen  wir es Ihnen sich in dieses Thema weiter einzuarbeiten. Im Folgenden möchten wir lieber darauf eingehen, wie heutzutage intelligente Computerprogramme entwickelt werden.

Wie entwickelt man ein intelligentes Computerprogramm?

Ok. Los geht’s. Wie entwickelt man eine künstliche Intelligenz? Wir können es gleich vorwegsagen: Es gibt kein großes Geheimnis. Das einzige was wir machen müssen ist: Daten in eine mathematische Funktion zu konvertieren. Das ist alles! Wirklich!

Am besten lässt sich das an einem Beispiel veranschaulichen. Für einen Hersteller von Ballwurfmaschinen sollen wir die Flughöhe eines Balles zu einem bestimmten Zeitpunkt bestimmen. Dafür hat uns der Hersteller ein paar Messwerte gegeben, die uns zeigen welche Ballhöhe der Ball zu einem bestimmten Zeitpunkt hat. Allerdings sind die Messewerte des Herstellers nicht so genau und wir müssen diese Fehler berücksichtigen. Die Werte sehen wir in folgender Grafik.

012301234

In der Grafik lässt sich schon gut erkennen, dass der Verlauf des Balles fast immer dem selben Muster folgt. Doch es gibt immer wieder Abweichungen und es ist nicht für jeden Punkt genau bestimmt welche Höhe er hat. Die Höhe zum Zeitpunkt 1,2453454 oder zum Zeitpunkt 2,56743 lässt sich beispielsweise nur ungefähr abschätzen, indem wir Punkte in der Nähe betrachten. Was uns fehlt ist so etwas wie eine Berechnungsvorschrift, die uns für einen bestimmten Zeitpunkt die Höhe des Balles berechnet. Und genau das macht eine künstliche Intelligenz. Sie nimmt eine mehr oder weniger große Anzahl von Daten und erstellt uns daraus eine Berechnungsvorschrift, die die Daten besonders gut abbildet. In unserem Fall könnte eine solche Berechnungsvorschrift mit einer einfachen mathematischen Funktion abgebildet werden:

(Für Mathefans: Die Funktion ist in diesem Fall höhe=(zeitpunkt2)2+4höhe=−(zeitpunkt−2)2+4):

012301234

Doch warum nehmen wir genau diese Funktion und nicht zum Bespiel eine einfache Gerade oder eine Funktion die viel komplizierter ist und möglichst alle Punkte miteinander verbindet? Das ist genau die Frage die wir uns bei der Entwicklung einer künstlichen Intelligenz immer fragen müssen.

In diesem Fall haben wir bereits festgestellt, dass das Messverfahren ein paar Fehler hat und die Werte nicht genau sind. Deshalb macht es durchaus Sinn eine nicht so komplizierte Funktion zu nehmen. Des Weiteren versuchen wir eine Funktion zu finden, bei der die Fehler zu den gegeben Daten minimiert werden und möglichst wenige Abweichungen haben. Im Allgemeinen versucht man in der künstlichen Intelligenz immer eine möglichst einfache Funktion zu finden, die die Daten am besten abbildet.

Von den Daten zur Funktion

Das oben beschriebene Beispiel ist natürlich stark vereinfacht gewesen. Eine Funktion ließe sich dort durch einfaches Anschauen der Daten leicht erkennen. Das ist aber bei fast allen Anwendungen der künstlichen Intelligenz nicht der Fall. Bei den meisten Anwendungen gibt es eine sehr große Menge von Daten, deren Zusammenhänge sich meistens nicht erkennen lassen. Deshalb brauchen wir gute Verfahren um unsere Daten in eine Funktion zu transformieren. Die Wissenschaft hat dazu in den vergangenen Jahren eine Vielzahl von Verfahren entwickelt. Die meisten dieser Verfahren verwenden dazu heute oft komplizierte statistische Methoden. Um diese Verfahren benutzen zu können, müssen die gegebenen Daten aber vorverarbeitet und in das richtige Format gebracht werden. Mithilfe des statistischen Verfahrens und den transformierten Daten kann man dann ein sogenanntes Modell der Daten erstellen. Dieses Modell beschreibt unsere benötigte mathematische Funktion.

In komplexen Anwendungen wie Siri werden oft mehrere statistische Modelle benutzt. Das erste Model konvertiert zum Beispiel die Stimme des Handybesitzers in einen Text. Ein zweites Model transformiert den Text in einen Antworttext und das dritte Model verwandelt den Antworttext in die typische Siri Stimme.

Zusammenfassung

Künstliche Intelligenzen werden heute oft zu mehr gemacht als sie wirklich sind. Letztendlich sind sie nur Verfahren, die eine Menge von Daten in mathematische Funktionen transformieren. Mit wirklicher Intelligenz, wie wir sie von Menschen kennen, hat das noch wenig zu tun. Dennoch können diese künstlichen Intelligenzen im Alltag sehr hilfreich sein und unser Leben verbessern.

  1. McCarthy et al. 1955. Diese Aussage wurde erstmals im Programm der Dartmouth Konferenz von 1956 gedruckt. Diese Konferenz wird oft als die Geburtsstunde der Künstlichen Intelligenz angesehen.

  2. Definitionen von Intelligenz