Information Retrieval, Neuronale Netze und anderes Zeug

Werbung
Information Retrieval, Neuronale Netze und anderes Zeug
Wie im Vortrag zu BAIM bzw. BAIM plus gezeigt wurde, ist ein grundlegendes Problem dieses
Projekts, die Informationserhebung. Die beim BAIM Projekt vorhandenen ÖV-Informations- und
Routingdiensten benötigen für einen akzeptablem Betrieb eine hohe Anzahl von Informationen. So
wird z.B. der Status von Fahrstühlen benötigt oder die Distanz zwischen Bahn und Bahnsteig. Aber
auch Informationen über eventuelle Behinderungen im Straßenverkehr sind erforderlich um eine
mögliche Route von A nach B zu bestimmen. Hier wird sehr schnell deutlich, dass eine nicht
unerhebliche Datenmenge notwendig ist. Zusätzlich müssen die Daten auch nach einer ersten
Erfassung aktuell gehalten werden, was sowohl finanzielle als auch personelle Ressourcen
erfordert.
Aus diesem Mangel ist die Idee entstanden, sich die Hilfe einer künstlichen Intelligenz zu holen.
Ausgehend davon, dass viele Informationen, welche für eine System wie BAIM benötigt werden,
bereits in irgendeiner Form vorliegen, kann der “menschliche Erfassungsprozess” mit einer
künstlichen Intelligenz ergänzt und teilweise ersetzt werden. Als Referenzbeispiel wird in den
folgenden Abschnitten das Internet als Informationsquelle verwendet. Dieses bietet ein praktisch
unerschöpfliche Quelle für jegliche Informationen. Warum also nicht diese Informationen nutzen
und daraus die benötigten Informationen extrahieren? Beispielsweise kann man so auf aktuelle
Verkehrsinformationen zugreifen.
Das Problem liegt allerdings im “Format” in welchem die Informationen vorliegen. Die meisten
Informationen existieren lediglich in geschriebener Sprache, welche für ein Informationssystem
nicht oder nur schwer zu analysieren ist. Und genau hier setzt die künstliche Intelligenz an. Diese
soll vorliegende Texte analysieren und die wichtigen Informationen extrahieren. Da natürliche
Sprachen (Deutsch, Englisch, usw.) eine sehr hohe Dynamik in ihrer Syntax und Semantik
aufweisen, ist es sehr schwer die gewünschten Informationen zuverlässig zu extrahieren. Die
einzige auf Dauer sinnvolle Lösung wäre es, der Maschine das “Lesen beizubringen”. Die heutige
Informationsextraktion aus geschriebener Sprache ist dahingehend sehr rudimentär und kann nicht
annähernd als eine “künstliche Intelligenz die Lesen kann”, bezeichnet werden. Das hängt zum
einen mit der bereits erwähnten Dynamik in natürlichen Sprachen zusammen, aber auch damit, dass
die Intelligenz, welche dem Menschen angeboren ist, bis heute nicht oder nur teilweise auf eine
Maschine übertragen werden konnte. Nur damit wäre es möglich geschriebene Sprache auf eine
sinnvolle Art und Weise zu analysieren und die gewünschten Informationen zu extrahieren.
Einige Methoden für künstliche Intelligenzen
Auch heute existieren schon Methoden, welche versuchen die menschliche Intelligenz auf eine
Maschine zu projizieren. Die folgenden Abschnitt werden nur einen kurzen Einblick in wenige
dieser Methoden zeigen, aber dennoch einen Ausblick ermöglichen, in welche Richtung (oder in
welche Richtung nicht) die Entwicklung einer künstlichen Intelligenz, welche es ermöglicht
geschriebene Sprache auf menschenähnliche Weise zu analysieren, gehen kann.
Informationen Retrieval
Eine weniger intelligente, aber dennoch nicht zu unterschätzende Methode zur
Informationsextraktion aus geschriebener Sprache, stellt das so genannte Informationen Retrieval
dar. Hierbei handelt es sich um eine reine Analyse anhand der Syntax einer Sprache bzw. des
vorliegenden Textes. Mit Informationen Retrieval kann z.B. die Satzstellung analysiert werden und
so die Satzelement (Verben, Nomen, usw.) bestimmten werden.
Künstliche Neuronale Netze
Eine weitere Methode, welche sehr häufig mit dem Begriff “künstliche Intelligenz” verbunden wird,
ist das Lernen mit so genannten künstlichen neuronalen Netzen. Dazu muss an dieser Stelle ein
kurzer Exkurs in die Neurowissenschaften stattfinden.
Das menschliche Gehirn ist die “CPU” des Menschen. Als solche hat sie die Aufgabe eingehende
Daten zu verarbeiten, mit bereits gespeicherten Informationen (eigentlich müsste man an dieser
Stelle das Wort “Wissen” verwenden) zu vergleichen und einen (mehr oder weniger) sinnvollen
Output zu generieren. Diese Aufgabe wird mit den so genannten Neuronen bewältigt. Das
menschliche Gehirn verfügt über eine beachtliche Anzahl dieser Neuronen (100 Milliarden bis zu
einer Billionen Nervenzellen) und ist somit in der Lage sehr viele Informationen zu verarbeiten. Die
wichtigste Aufgabe der Neuronen ist dabei vermutlich das Lernen. Neuronen verändern je nach
“Benutzung” ihren Output. Dadurch sind sie in der Lage sich an neue Daten anzupassen und somit
zu lernen. Ein Neuron alleine würde man allerdings noch nicht als “intelligent” bezeichnen,
weshalb die Neuronen untereinander verschaltet sind und sich somit komplexe Netze bilden, welche
durch die Verschaltung verschiedenste Daten verarbeiten können. Ein Beispiel wäre z.B. das
Erkennen von Gesichtern. Menschen sind in der Lage verschiedene Menschen anhand der Struktur
des Gesichtes zu unterscheiden. Diese Fähigkeit ist nicht angeboren, sondern entwickelt sich im
Kindesalter. Für diese Fähigkeit ist eine große Anzahl von Neuronen verantwortlich, welche die
Eingangssignale, die vom Auge übermittelt werden, analysiert und mit bekannten Gesichtern
vergleicht. So sind auch andere Primaten in der Lage die Mitglieder ihrer Spezies zu unterscheiden.
Dieses Konzept des Lernens analysiert und stellt die Basis für künstliche neuronale Netze dar. Diese
versuchen das Prinzip der Neuronen zu kopieren bzw. zu simulieren und somit der Maschine das
Lernen zu ermöglichen. Die meisten künstlichen neuronalen Netze stellen allerdings eine
Vereinfachung des biologischen Podons dar und basieren auf mathematischen Modellen, welche für
Maschinen zum Lernen verwendet werden können.
In Zusammenhang mit der gewünschten künstlichen Intelligenz ist das neuronale Netz ein erster
Schritt in die richtige Richtung. Hier muss allerdings ganz klar gesagt werden, dass künstliche
neuronale Netze einige Schwachstellen aufweisen, welche den Einsatz in einer Intelligenz, welche
geschriebene Sprache “versteht”, erschweren oder vielleicht sogar unmöglich machen.
Semantische Netze
Auch wenn man die Möglichkeit hat zu Lernen, wie im letzten Unterabschnitt beschrieben, bringt
das noch keinen Vorteil, wenn man die gewonnen Informationen nicht auch in irgendeiner Art und
Weise speichern kann. Ein Modell zur Repräsentation von Informationen und deren Beziehungen
untereinander stellen die so genannten semantischen Netze dar. Das Netz speichert Informationen in
einem Graph, welcher die Informationen in den Knoten dieses Graphen speichert und die
Beziehungen zwischen den Informationen in den Kanten des Graphen codiert werden. So könnte
man beispielsweise eine Beziehung zwischen den beiden Worten “Auto” und “Reifen” herstellen.
Die meisten Autos verfügen über vier Reifen und stehen somit in einer Beziehung zueinander. Diese
Beziehung kann mit Hilfe von semantischen Netzen spezifiziert werden.
Ein künstliche Intelligenz wäre mit Hilfe dieser Netze in der Lage Wissen abzubinden. Für die
“lesende künstliche Intelligenz” wäre dieser Vorgang interessant, um die Semantik von Texten zu
erfassen und zu analysieren. Das kann sowohl für die Informationsextraktion sinnvoll sein, als auch
für die Validierung bzw. Verifizieren der gesammelten Informationen. Es könnte somit überprüft
werden, ob die extrahierten Informationen in einem gewissen Kontext zueinander stehen und nicht wie heute noch oft üblich – keinen logischen Sinn ergeben.
Ausblick
In diesem Unterabschnitt soll noch mal der Zusammenhang zum restlichen Projekt gegeben werden
und auf die weitere Vorgehensweise eingegangen werden.
Da sich das Projekt nicht mit dem BAIM Projekt beschäftigen wird, sondern sich auf die
Entwicklung eines “Barrierometer” konzentriert, würde die Ursprüngliche Idee leicht modifiziert.
Das Barrierometer soll es ermöglichen anhand von verschiedenen Eingabequellen zu überprüfen, ob
die Barrierefreiheit nach verschiedenen DIN-Normen gewährleistet ist. Eingabequelle kann
beispielsweise ein Gebäudeplan sein. An dieser Stelle sei auf das “Barrierometerkapitel” verwiesen.
Wichtiger sind in Zusammenhang mit der künstlichen Intelligenz die DIN-Normen. Diese enthalten
die Informationen, welche für die Validierung und Verifizierung benötigt werden. Beispielsweise
enthalten diese die geforderten Stufenhöhe für Treppen. Solche Informationen liegen in den Texten
der DIN-Normen vor. Um diese Informationen maschinell extrahieren zu können, bietet sich auch
hier die Entwicklung einer künstlichen Intelligenz an, welche in Lage ist geschriebene Sprache auf
menschenähnliche Art und Weise zu analysieren.
Wie man schnell erkennen kann, unterscheidet sich die Extraktion der Informationen für BAIM
prinzipiell nur unwesentlich von der im “Barrierometer”. Für beide Systeme ist ein gewisser
Grundwissensschatz erforderlich. So muss die künstliche Intelligenz beispielsweise die Grundlagen
der natürlichen Sprachen beherrschen. Aber viel wichtiger ist es Beziehungen zwischen den
Informationen zu erkennen. Nur so ist die Intelligenz in der Lage Informationen intelligent zu
verarbeiten, den Kontext von Informationen zu erfassen und zu lernen.
Die Informationsextraktion aus geschriebener Sprache ist somit eine sehr komplexe Sache.
Trotzdem sollen im Rahmen des Projekts die Möglichkeiten eine solche Intelligenz zu erzeugen
untersucht werden. Klar ist auch, dass es in der verbleibenden Zeit nicht möglich sein wird, eine
solche Intelligenz zu entwickelt, sondern nur die ersten Schritte in diese Richtung zu wagen. Die
Entwicklung einer “lesenden Intelligenz“ stellt gleichzeitig auch den ersten Schritt in Richtung
“allgemeiner künstlichen Intelligenz” dar und ist damit ein lohnendes, wenn auch sehr schwer zu
erfüllendes Ziel.
Herunterladen