• IT Specialist
  • Who I am
  • Blog

Kopfknacker

~ breaking my head...

Category Archives: Artificial Intelligence

Neural Network – really easy explained – I mean: really!

26 Samstag Mrz 2016

Posted by Christoph Diefenthal in Artificial Intelligence, Technologie

≈ Leave a Comment

Tags

AI, artificial intelligence, deeplearning, machinelearning, neural network, software

There is a lot talking going on about neural networks, deep learning, artifical intelligence. When people talk about neural networks I sometimes get the impression, that they think it’s

  1. either some almost lifelike thing : „it’s like the brain!“
  2. or that it’s really complicated math stuff, which no „normal“ person can understand.

Well first things first: it’s nothing lifelike at all.

It is actually just math: just adding and multiplying numbers. And it really looks complicated. But if you bite through all this math formulas, some books and some online video tutorials you get the impression, that the basics are not some kind of „higher math“ – it’s just complicated because you have a lot of numbers to calculate with.

 

If you have a bunch of numbers on a page, you can get really confused, what to multiply and add with what and where. To learn this stuff and to understand it sustainably(!) I needed some simple examples with which I can repeat this stuff again and again. And I learn best, if I explain it to someone else – therefore I wanted to create a presentation about neural networks.

A couple of month ago I stumbled over Trask’s article in which he wrote a neural network in just 11 lines of code.1 That really helped me a lot in doing my slides. I reused his code to calculate the numbers you find in this article. I plan to publish my IPython notebook corresponding to this article as well. It’s just not ready yet :-)

So, have fun!

 

And yeah it reeeeally looks complicated in math :-)

Andrew Ng explains Neural Network Backpropagation in the coursera machine learning MOOC

Andrew Ng explains neural network backpropagation in the coursera machine learning MOOC

But do not get me wrong: Andrew Ng is a really good and really pleasant teacher and I really like his course. I still look at it form time to time, if something is unclear to me (again :-). If you had a view at my slides and still want to know more about neural networks, I highly recommend his course. The math formulas do really have their rights here, because there is no better language to encapsulate the whole calculation process in just some tiny symbols. Understanding the formulas makes it much easier to talk about changes in the calculations in different implementations of neural networks. And in the course there is more stuff about neural networks. For example how to avoid errors like the one on my last screens.

  1. In case you wonder, how you can calculate so many numbers in just 11 lines of code: That’s another story about matrix multiplication, which is just like a „writing simplification“ of doing all the equations manually – if you need to refresh your school knowledge about matrix multiplication, I highly recommend the Khan-Academy. [↩]

Analysing DATA2 – Star Trek and Predict Who Said What via Multinomial Naive Bayes

24 Sonntag Jan 2016

Posted by Christoph Diefenthal in Artificial Intelligence, Data Analytics, Technologie

≈ Leave a Comment

Tags

AI, artificial intelligence, machinelearning, multinomial naive bayes, naive bayes, nlp, picard, star trek, stng, tfidf

In Part 1 of analysing the „Star Trek: The Next Generation“ transcripts, I performed some statistical analysis of the characters and episodes: who has the most lines and appears in which episodes, etc.

In my new Ipython notebook I concentrated on the text itself. This was actually my first motivation to work with the Star Trek: The Next Generation transcripts from chakoteya.net: I wanted to try out some machine learning algorithms. I came up with the idea to predict which STNG character is the speaker of a text-line or just any word.

Predicting Who Said What

I would say the results are pretty convincing if you look at some phrases:

  • „My calculations are correct“ is ascribed to Data with 78% probability.  
  • Who would not have thought, that it is Troi uttered a sentence like „Captain, I’m sensing a powerful mind.“ with 73% probability
  • And who would use the word „Mom“? Obviously Wesley with 88% probability.
  • Where instead „Mother“ is a word used by Deanna Troi with 60% probability.
  • But „Deanna!“ is used by Riker, not that exclusively (just 48% probability)
  • And he is called „Number One“ by no other than Picard with almost 100% probability

Some more examples:

some_predictions

Also, the characters most used words are very descriptive for the characters, as we know them:

most_used_words

But have a look for yourself.

How to get there

To do all this, there where some steps included, which have been a real good practice in python, numpy, pandas and sklearn.

  1. I had to download and clean the data, which was a good practice in startrekng-episodes-analysis_01.ipynb.
  2. I did some statistical analysis of dataset with python, numpy and pandas in startrekng-episodes-analysis_02.ipynb.
  3. Finally we arrived in startrekng-episodes-analysis_03.ipynb, where I concentrate on predicting the speakers with the use of 2 algorithms: the „Term Frequency – Inverse Document Frequency“  and „Multinomial Naive Bayes“ („sklearn.feature_extraction.text.TfidfVectorizer“ and „sklearn.naive_bayes.MultinomialNB“)

Practical Background

To do all this, I learned a lot from the „pandas“-book and from the scikit-learn-examples like the MLComp-text-classification. And obviously almost nothing could have been done without stackoverflow.

Theoretical Background

If anyone is interested in the foundation of the algorithms, I recommend the coursera MOOC „Probabilistic Graphical Models“ by Stanford Professor Daphne Koller and the „Natural Language Processing“ course by Dan Jurafsky and Christopher Manning. Also the udacity course about Machine Learning is pretty helpful.

Automatisches Planen und künstlichen Intelligenz

26 Donnerstag Feb 2015

Posted by Christoph Diefenthal in Artificial Intelligence, Technologie

≈ Leave a Comment

Tags

AI, intelligenz, ki, machinelearning, planning, programmieren

Planen ist ein wichtiges Teilgebiet der künstlichen Intelligenz. Zum einen aus theoretischen Gründen: wir möchten besser verstehen, wie menschliches Planen funktioniert, zum anderen aus ganz praktischen Gründen: wir möchten unsere Ressourcen effizient verplanen.

Im Alltag werden Pläne fast ausschließlich von Menschen erstellt. Sicherlich unterstützen uns Computer dabei: sie berechnen Dauern, überwachen den Bedarf an Mitteln und helfen uns beim Visualisieren von Plänen. Die  Kernfunktionen, die Entscheidung, was beim Planen beachtet werden muss und ob der Plan wirklich funktioniert, treffen wir in der Regel selbst.

Sind alle Bestandteile klar, die für den Plan benötigt werden, können Computer die Planung komplett autonom übernehmen. Eines der bekanntesten Beispiele aus dem Alltag dazu sind Navigations-Systeme. Das Finden einer optimalen oder zumindest einer sehr guten Route, sind Beispiele von automatischem Planen, wie es beim Problem des Handlungsreisenden auftritt (kam in diesem Artikel vor).

Viel schwieriger wird es im Umgang mit realen Objekten. Das klassische Beispiel aus dem Automated Planning ist ein Roboter-Kran, der Container von einer Palette auf eine andere Palette und auf einen LKW verladen kann.

Ein Kran verläd Container auf einen LKW

Ein Kran verlädt einen Container auf einen Roboter-LKW – aus Artificial Intelligence Planning

Hier wird, ähnlich wie bei der Navigation, ein Ziel-Zustand gesucht: Der Container liegt am Ende des Plans auf dem LKW.  Dazu hat das System verschiedene Aktionen wie take(Container von Palette), move(Roboter-LKW), load(Container auf LKW). Diese Aktionen müssen nun nur noch in der richtigen Reihenfolge kombiniert werden und schon hat das System seinen Plan.

Um nun zu wissen, welche Aktionen im Plan hintereinander passieren müssen, muss das System wissen, wann welche Aktionen ausgeführt werden können: Man muss modellieren, welche Aktionen welche Auswirkungen haben, und welche Vorbedingungen erfüllt sein müssen, damit eine Aktion ausgeführt werden kann.

Beispielsweise:

  • take:
    • Vorbedingung: Container liegt auf Palette,
    • Effekt: Container hängt im Kran
  • load:
    • Vorbedingung: Container hängt an Kran,
    • Effekt: Container liegt auf LKW

Der findige Leser merkt aber schnell, dass das an Bedingungen nicht ausreicht. Für take muss bspw. der Kran auch leer sein. Für load muss auch der LKW leer sein und er muss an der richtigen Stelle stehen. Um von einem Start-Zustand zu einem Ziel-Zustand zu kommen, müssen die Zustände genau beschrieben sein.

Was weißt du eigentlich?!?…

Je mehr Möglichkeiten es gibt, desto mehr muss beschrieben werden, denn in der Planungs-Phase kann das System ja nicht einfach beobachten was passiert: Stehen Container in einem Stapel, dann muss der Container ganz oben sein, damit der Kran ihn nehmen kann. Habe ich zwei Paletten, dann muss der Container auf der richtigen Palette sein und so weiter und so fort.

Hier ist die Beschreibung eines solchen Zustandes. Für jeden Container ist einzeln angegeben, wo er sich gerade befindet, auf welcher Palette (in), welcher Container auf welchem steht (on) und welcher Container ganz oben steht (top).

Je mehr Container, desto mehr Schreibarbeit – aus Artificial Intelligence Planning

Bei einer Aktion muss exakt beschrieben werden, was sich alles dadurch ändert. Beispielsweise muss bei put auch festgelegt werden, welcher Container jetzt oben liegt. Das System kann in der Planungsphase ja nicht einfach beobachten, welche Container nach eine Aktion oben liegt – es muss es irgendwie „wissen“.

put-container-operation

Was liegt jetzt oben? – aus Artificial Intelligence Planning

Man sieht schon, dass es relativ aufwändig werden kann, einen Zustand exakt genug zu beschreiben und auch die Effekt einer Aktion richtig festzulegen. Vergisst man beispielsweise bei der Operation put festzulegen, welcher Container jetzt oben liegt, dann entwirft das System einen völlig falschen Plan – oder findet gar keine Lösung.

Dass das sehr komplex werden kann, merkt man, wenn man sich überlegt, dass auf dem Container nochmal kleine Pakete liegen: Verschiebt man den Container, dann verschiebt man auch die Pakete. Das „weiß“ das System aber nicht einfach so. Für jedes einzelne Paket müsste dem System gesagt werden, wo es sich nach dem Verschieben des Containers befindet.

Man könnte sich Vereinfachungen dazu überlegen. Nach einem put könnte man automatisch berechnen, welche „Seiteneffekte“ die Aktion auf andere Objekte hat. D.h. man benötigt eine Art „Welt-Modell“, wie man es aus Computer-Spielen kennt. Bewege ich Objekt x, dann stößt es an Objekt y und bewegt dieses auch.

Hat man ein solches Welt-Modell, dann wird es einfacher. Aber das Welt-Modell muss man eben erst einmal haben. Es muss exakt genug sein, um die Werte aller Prädikate eines Welt-Zustands herauszubekommen, wie:

Zustand x =

  • „Container1 ist in Stapel1“
  • „Container1 liegt auf der Palette2“
  • „Container2 ist auch in Stapel1“
  • „Container2 liegt auf Container1“
  • „Container2 ist ganz oben in Stapel1“
  • usw…

Auch in Computerspielen entsprechen solche 3D-Welt-Modelle nie exakt der Wirklichkeit: manche Dinge kann man nicht bewegen, manchmal kann ein Spieler durch einen graphischen Fehler scheinbar in eine Wand laufen, usw.

"Alle Modelle sind falsch - aber einige sind nützlich"

„Alle Modelle sind falsch – aber einige sind nützlich“ – aus Scott Page’s MOOC „Model Thinking“

Ob man nun jedes Prädikat von Hand angibt oder von einem Welt-Modell berechnen lässt – es gibt weitere wichtige Herausforderungen:

  • Effekte – nicht alles wird durch Aktionen des Systems hervorgerufen. Vieles passiert von ganz alleine! In einer Umgebung, in der es spontane Bewegung gibt, kann es recht kompliziert sein. Wie berücksichtige ich in meinem Plan beispielsweise, ob ein Hindernis vor meinen Roboter auftaucht?
  • Replanning – wenn ein Plan nicht funktioniert – also einer der geplanten Zustände nicht erreicht wird – muss der Plan angepasst werden.
  • Zeitliche Abläufe – wartet der Plan darauf, dass ein Zustand erreicht wird, oder kann eine Aktion bereits parallel ausgeführt werden.
  • Wiederverwendbarkeit – muss berücksichtigt werden, dass Ressourcen nur einmal verwendet werden können? Wenn ein Koch-Plan das Salzen der Suppe einplant, dann muss auch Salz da sein.
  • etc.

Einfach ausprobieren?

Im letzten Artikel ging es um Reinforcement Learning. Ein System kann dort durch Ausprobieren lernen, in welchem Zustand welche Aktion am besten ist. Wenn man es oft durchlaufen lässt, dann könnte ein System doch einfach lernen, wie es seine Aktionen planen kann?

Mal abgesehen vom zeitlichen Aufwand kann man ein Programm nicht in 1000 Durchläufen versuchen lassen Container ins Leere zu stapeln oder LKWs zu beladen, die nicht da sind, bis ein passender Algorithmus gefunden ist. Das ist vielleicht doch ein wenig zu kostspielig… Dagegen kann es lohnend sein, den Lernprozess erstmal nur in einem Welt-Modell zu simulieren und nur das, was dort funktioniert, auf die Welt loszulassen. Solche Hybrid Systeme zwischen Reinforcement Learning und Automated Planning werden erforscht.

Was machen eigentlich Menschen?

Auch wir lernen durch Ausprobieren. Im Gegensatz zur „Reinforcement Learning“-Technologie probieren wir aber in einer Situation nicht erstmal alle Möglichkeiten aus. Wir nutzen interne Modelle. In unserem Kopfe drehen und wenden wir Gegenstände und setzen sie zusammen.

Menschen verbessen ihr Welt-Modell (oder eher: ihre Welt-Modelle) ständig und sind auch zu Generalisierungen und Übertragungen von (Teil-) Modellen auf andere Situationen fähig. Wir orientieren uns dabei an unserer Erfahrung, probieren Bewegungen aus, und lernen aus neuen Beobachtungen an.

Wie funktioniert das mit den Modellen beim Menschen?

Das wüssten wir gerne. Dieses konzeptionelle, übertragungs- und anpassungsfähige Lernen wird eifrig erforscht und ist noch ein großes Rätsel. Alle bisher entwickelten Systeme sind Lösungen für spezielle Probleme und Situationen. Es gibt kein System das in einer Vielzahl von Situationen oder gar im Alltag plan- und handlungsfähig wäre.

Bei meinen Recherchen bin ich bisher auf verschiedene Ansätze gestoßen und bin gespannt was da noch kommt. Mein Bild setzt sich gerade aus drei Bestandteilen zusammen:

  1. Logik und Planung –  Inferenz, Induktion, Suche: der klassische Ansatz, bei dem kognitive Fähigkeiten vor allem als Symbolmanipulationen angesehen werden: Das Welt-Modell liegt in seiner kompletten Beschreibung vor, wie oben diskutiert. Daraus lassen sich nun durch Kombination der Regeln und Suche in den Kombinationsmöglichkeiten alle Schlüsse ziehen und Regeln für die Handlungen ableiten.
  2. Wahrscheinlichkeit und Unsicherheit – Markov, POMDP, Hidden Markov, Particle Filter, Bayes Netze: Mittels Beobachtungen und modellierter Abhängigkeiten lassen sich Rückschlüsse über den aktuellen Zustand der Welt ziehen und welche Handlungen oder Urteile wahrscheinlich am besten wären.
  3. Feedback-Schleifen und Machine Learning –  Reinforcement Learning, Clustering, Support Vector Machines, Neurale Netze, Backpropagation: nach Bewertung eigener Aktionen oder durch Feedback eines Lehrers ändern sich die Werte der internen Variablen, die zur Beurteilung einer Situation genutzt werden. Man nutzt sie um Cluster und Muster in Daten zu finden, im Lernprozess von Bildererkennungssystemen oder eben Handlungsplanung.

In Anwendungen finden sich natürlich Mischformen. In der Spracherkennung (Natural Language Processing) beispielsweise, bei der Laute mit Wahrscheinlichkeiten auf Worte überführt werden und diese dann anhand von logischen Modellen in Sätzen gruppiert werden. Das Zusammenspiel der verschiedenen Ansätze kann sich gegenseitig korrigieren. So können Laute im Kontext eines Satzes neu bewertet und als andere Worte erkannt werden. Auch in der Bilderkennung werden nicht nur Neurale Netze eingesetzt und im Reinforcement Learning werden auch Wahrscheinlichkeiten beurteilt (wie wahrscheinlich ist es, dass Aktion a zu Zustand s geführt hat)

Die drei Ansätze lassen aber ganz gut erkennen, zwischen welchen Polen die  Forschung der künstlichen Intelligenz hin und her schwingt – zwischen Intern und Extern: interne Modelle müssen zu den externen Beobachtungen passen und werden über Wahrscheinlichkeiten und Feedback zugeordnet.

Die Herausforderung ist: wie dynamisch machen wir die Modelle und über welche Feedback-Schleifen verbinden wir Internes und Externes. Es ist offensichtlich unmöglich mit beschreibenden Modellen die Wirklichkeit komplett und auch noch richtig darzustellen, wie oben am Beispiel des Automated Planning klar wurde. Modelle müssen offensichtlich immer unvollständig sein und sich erweitern und verändern können, wenn neues beobachtet wird. Wie kann das technologisch möglich sein?

Mehr dazu beim nächsten Mal…

Eine Einführung in Reinforcement Learning – Ein kleines Beispiel für künstliche Intelligenz

15 Donnerstag Jan 2015

Posted by Christoph Diefenthal in Artificial Intelligence, Technologie

≈ 1 Comment

Tags

AI, artificial intelligence, howto, java, ki, künstliche intelligenz, machinelearning, tutorial

Vor einem halben Jahr habe ich das erste Mal die KI-Technologie Reinforcement Learning erwähnt – auf Deutsch: Bestärkendes Lernen.

Mittlerweile habe ich mich ein wenig tiefer eingearbeitet und ein kleines Beispiel programmiert, um auch ein besseres Gefühl für die Technologie zu gewinnen. Anhand dieses Mini-Progamms möchte ich Reinforcement Learning vorstellen.

Worum gehts?

Bei RL geht es im einfachsten Fall um einen Agenten, der die beste Strategie (Policy) ermittelt, um in einer Umgebung (Environment) ein Ziel (Goal-State) zu erreichen. Dabei kann er durch festgelegte Aktionen (Action) von einem Zustand (State) in den anderen wechseln, bis er letztlich den Goal-State erreicht.

Klingt noch ein wenig abstrakt. Nehmen wir ein einfaches Beispiel:
Wir haben eine Schachbrett ähnliche Fläche, in der sich ganz unten rechts (Feld „10,10“) der Agent befindet. Der Agent kann immer einen Schritt nach oben, unten, rechts oder links gehen. Er soll die beste Kombination von Schritten zum leuchtenden Ziel-Zustand (+) finden und dabei vermeiden in die schwarzen Löcher (-) zu fallen.

grid_agens

1- The Grid and a smiling agent

Wie kann Software das bewerkstelligen?

 

 

Continue reading »

Maschinen verstehen … immer mehr – aktueller Stand im DeepLearning

12 Freitag Dez 2014

Posted by Christoph Diefenthal in Artificial Intelligence, Technologie

≈ 1 Comment

Tags

AI, deeplearning, Jeremy Howard, ki, machinelearning, tedtalk

Großartiger TEDx Talk in Brüssel über Maschinen Intelligenz.

Die Schlüsseltechnologie in diesem Vortrag ist Deep Learning. Die Technologie beruht auf großen Neuralen Netzen. In einem meiner letzten Artikel habe ich das ein wenig erläutert.

Das Erstaunliche an der Technologie ist, dass Deep Learning Systeme relativ einfach Features in einer Masse von Daten erkennen können. Beispielsweise erkennen sie in Bildern Kanten, Ausrichtungen, Formen und können die Bilder nach diesen Features gruppieren. Das machen sie je nach Art der Daten besser als viele bisherige Clustering-Algorithmen. Tatsächlich sind sie in einigen Wettbewerben, in denen es beispielsweise um das Erkennen von  Straßenschildern ging, sogar besser als Menschen.

Im Video sieht man aber auch schön, wo die Grenzen liegen. Das System erkennt recht gut, welche Auto-Bilder einander ähnlich sind. Es erkennt aber nicht von alleine, welche die Vorderseite oder die Rückseite abbilden, da diese sich – im Vergleich seitlichen Aufnahmen oder Aufnahmen von Rädern – sehr ähneln. Hier muss wieder der Mensch ran, um zu sagen was ihm wichtig ist – denn er hat ein Ziel und möchte Handeln. Das Deep Learning System hat kein Ziel.

Classify Front and Back Pictures

Das Deep Learning System hat die Vorder- und Rückseiten noch nicht voneinander getrennt – der Mensch hilft mit.

Doch glasklar ist, dass ein solches System eine unglaubliche Unterstützung beim Suchen und Sortieren von relevanten Informationen ist. Ich vermute, dass solche System in Zukunft an immer mehr Orten anzutreffen sind. Überlegen wir mal, wie einfach es wäre mit einem solchen System Kunden-Anfragen, Produkt-Informationen oder Produktbilder zu klassifizieren und zu verschlagworten. Ähnlichkeitssuchen, die heute in kommerziellen Produkten eingesetzt werden, sind da in den meisten Fällen eher rudimentär oder sie sind sehr kundenspezifisch entwickelt worden und kosten dementsprechend.

Wenn man aber ein Deep Learning System einfach mit Daten füttern und die Gruppierung so einfach verbessern kann, wie in dem Auto-Bilder-Beispiel aus dem Video; wenn wir also so etwas wie ein „Standardprodukt“ für Daten-Gruppierung hätten, dann werden die Systeme überall integriert werden.

Aber erstens glaube ich nicht, dass es ganz so plug&play-mäßig funktioniert, wie in dem Video zu sehen, und zum zweiten kosten die Integration und das User-Interface pro Daten-Typ nochmal extra. Ich glaube die Hype-Kurve ist noch nicht ganz an der Spitze – das Tal der Enttäuschungen wird noch kommen :-)

 

 

Maschinen verstehen

06 Mittwoch Aug 2014

Posted by Christoph Diefenthal in Artificial Intelligence, Learning, Technologie

≈ 4 Comments

Tags

AI, begreifen, deeplearning, intelligenz, ki, lernen, machineintelligence, machinelearning, software, wissen

In den letzten Monaten habe ich mich viel mit Künstlicher Intelligenz beschäftigt und bin nach wie vor fasziniert von dem Thema – bzw den Themen, denn es gibt so viele verschiedene Technologien und Ansätze.

  • Eine sehr gute Einführung, die einem die Geschichte, die Ansätze und Einsatzbereiche der KI nahe bringt: „Künstliche Intelligenz“ von Günter Görz und Bernhard Nebel.
  • Tiefgehender ist der „Grundkurs künstliche Intelligenz“ Wolfgang Ertel.
  • Data Mining und Maschinelles Lernen nutzen teilweise die gleichen Technologien – von daher fand ich den Quereinstieg über „Data Analysis with Open Source Tools“ von Philipp K. Janert auch interessant – auch wenn ich es noch nicht anwenden konnte, glaube ich dass das Hintergrundwissen mit noch zu Gute kommt.
  • Web Data Mining von Bing Liu bietet noch weitere Methoden wie Association Rules zur Wissens-Generierung aus Daten, die ich sicher noch verwenden kann.
  • Hat man die Grundlagen verstanden, lohnt sich der kostenlose Online-Kurs von Andrew Ng sehr! Hier wird das Verständnis für Neuronale Netze aus den mathematischen Grundlagen und anhand von Programmier-Beispielen in Octave aufgebaut. Danach wir einem klar, wie „einfach“ die Algorithmen letztlich sind. Mit einfach meine ich, dass sie gar nicht so kompliziert sind, wie sie anfangs erscheinen – einfach heißt nicht dumm. Sie sind extrem leistungsfähig, und die Menschen, die sie erdacht haben sind äußerst gewitzt vorgegangen. Mein Respekt – aber auch Verständnis – für Mathematiker ist in dem Kurs nochmal gewachsen.

Allerdings bin ich auch ein wenig enttäuscht. Sicherlich habe ich bisher nur an der Oberfläche gekratzt, kenne nur die Werkzeuge und ich lasse mich gerne noch überraschen. Mein erster Eindruck ist aber, dass wir noch weit, weit, weit von einer „echten“ künstlichen Intelligenz – einer „starken KI“ entfernt sind, die einen Menschen in seinen Problemlösungs-Fähigkeiten und mit Bewusstsein nachbilden soll. Auf einer Skala von „normaler“ Software(1) bis „menschlicher“ Intelligenz(10) liegt die KI bei maximal 3 würde ich behaupten. Dafür hole ich ein wenig aus – hoffe ihr habt ein paar Minuten – aber es wird interessant – versprochen :-) Continue reading »

Big Data, Big Mind, Big Thinking

18 Mittwoch Jun 2014

Posted by Christoph Diefenthal in Artificial Intelligence, Learning, Technologie

≈ 1 Comment

Tags

AI, begreifen, intelligenz, ki, lernen

Es ist immer wieder schön, wenn man die eigenen Gedanken wiederfindet.

In What Am I Thinking About You? beschreibt Neurowissenschaftlerin Rebecca Saxe, wie eine „Theorie des Mind“1, die eine Maschine von uns entwickelt, Ihre Möglichkeiten uns zu verstehen steigern kann.

Ziele in anderen zu erkennen, ist dabei ein wichtiges Feature.

Ein Zweig der künstlichen Intelligenz-Forschung ist das Verstehen von menschlicher Sprache. Sentiment Analysis versucht bspw. anhand von Facebook und Twitter Kommentaren zu erkennen, ob wir bestimmte Produkte mögen oder nicht. 80% kann man schnell erschlagen, aber wenn jemand ironisch wird oder sein Missfallen in Übertreibung ausdrückt, dann kann das eine Maschine nur sehr schwer erkennen.

Big Data hilft hier weiter – man kann anhand statistischer Vergleiche in großen Datenmengen feststellen, ob ein ähnliches Kommentar eher eine Übertreibung oder Ironie ist. Aber das ist kein „Verständnis“. Komplett Neues – bspw. ein neuer Slang-Begriff wie „voll fett“ – wird dabei schnell als Missfallen interpretiert, wenn man die Hintergründe nicht kennt.

Nicht umsonst sagt Rebecca Saxe:

We can recognize and think about and reason through a literally infinite set of situations and goals and human minds. And yet we have a very particular and finite machinery to do that. So what are the right ingredients? … the human brain devotes a lot of resources to so-called social cognition

Um Neues beurteilen zu können, braucht auch eine Maschine eine „Theorie of Mind“ von Ihrem Gegenüber.

What were her goals? What did she want? What changed her mind? There are all kinds of features of that story that you were able to extract in the moment. If a computer could extract [such] features, we could [improve its ability to do] sentiment analysis.

Die Maschine muss erkennen können, was HINTER den Handlungen steckt. Sie muss Annahmen treffen, die zu Ihren Wahrnehmungen des Gegenüber passen.

Nichts anderes machen wir bspw., wenn uns jemand begegnet, von dem wir dachten, dass er traurig sein sollte. Er lacht! Unsere Wahrnehmung passt nicht zu unseren Annahmen. Wir müssen unser Model korrigieren, bzw müssen etwas neues postulieren, dass sie zum Lachen bringt. Etwas, von dem wir nicht wussten, dass es da ist.

My colleague Josh Tenenbaum and I have been working for years just to build a kind of mathematical representation of what it means to think of somebody as having a plan or a goal, such that this model can predict human judgments about the person’s goal in a really simple context. What do you need to know about a goal? We’re trying to build models that describe that knowledge.

Big Data kann das nicht!

This is not big data; it’s trying to describe the structure of the knowledge.

aber…

That’s always been viewed as an opposition: the people who want bigger data sets and the people who want the right knowledge structures. […] What used to be viewed as opposite traditions in AI should now be viewed as complementary, where you try to figure out probabilistic representations that learn from data.

Da bin ich einer Meinung. Big Data hilft bei einer Sortierung der Wahrnehmungen und kann alle Ereignisse in (vorher) angefertigte Kategorien stecken. Was fehlt ist der Abgleich mit einem Modell.

Nur wenn ich Annahmen treffe, wie die Welt aussieht, kann ich überhaupt merken, wenn sie nicht so aussieht.

  1. der“…Fähigkeit, eine Annahme über Bewusstseinsvorgänge in anderen Personen vorzunehmen und diese in der eigenen Person zu erkennen“ (wiki) [↩]

Turning Point für Turing Test?

11 Mittwoch Jun 2014

Posted by Christoph Diefenthal in Artificial Intelligence, Learning, Philosophical, Technologie

≈ 2 Comments

Tags

AI, begreifen, denken, intelligenz, ki, lernen, turing, verstehen

Nachdem mal wieder fast alle Medien auf den Zug aufgesprungen sind, ohne groß zu hinterfragen (klar, es geht ja um Klicks!), rudern sie nach einem Tag Recherche wieder zurück:

  • zeit.de 9.6.: Computerprogramm gaukelt erfolgreich Menschsein vor
  • zeit.de 10.6.: Ein Trickser namens Eugene Goostman

Ich war gespannt, als ich den ersten Artikel anklickte, aber leider konnte der Artikel meine Sensationslust nicht befriedigen… Tatsächlich gibt es genug Kritikpunkte an diesem speziellen Test. Und es gibt einige Kritik an Turing-Test selbst.

Worum gings im Turing Test?

Vor 50 Jahren wagte Turing für das Jahr 2000 die Prognose, dass ein Computer:

  • nach einer 5 minütigen Unterhaltung mit Mensch und Maschine,
  • bei reinem Schriftverkehr –  kein Sehen, Zeigen, Sprechen, etc –
  • bereits in 30% der Tests als Mensch durchgeht.1

Ein netter Wettbewerb, ein erster Schritt und schon schwer genug, wie man feststellt. Mit der Realität hat das aber wenig zu tun.

Eine weitere wichtige <implizite> Einschränkung im Turing-Test ist: die Versuchsteilnehmer WISSEN alle, dass sie beim Turing-Test mitmachen. Von daher ist durchaus vorstellbar, dass Menschen, die damit nicht rechnen, und die daher keine investigativen Fragen stellen, in Chats-Foren – auch länger als 5 Minuten – getäuscht werden.

Aber es gibt Wege dagegen anzugehen:

Turing Test für Spam-Bots

Turing Test für Spam-Bots, (von xkcd.com)

Lustig.

Continue reading »

  1. http://mind.oxfordjournals.org/content/LIX/236/433, Seite 442 [↩]

Delegieren an Mensch oder Maschine – wem vertraue ich mehr?

19 Dienstag Nov 2013

Posted by Christoph Diefenthal in Artificial Intelligence, Learning, Philosophical, Technologie

≈ 4 Comments

Tags

AI, begreifen, delegieren, entscheidung, intelligenz, ki, konzepte, lernen, motivation, vertrauen, ziel

Im Rahmen des Artikels zum Internet der Dinge unternahm ich einen kleinen Exkurs in den Unterschied von Maschinen und Menschen. Das Übertragen von komplexen Entscheidungskompetenzen an Computerprogramme halte ich für problematisch. Unerwartete Empfehlungen von Google Now, Autos mit Autopiloten und Börsenprogramme, die so schnell Kaufentscheidungen durchführen, dass wir sie nicht stoppen könnten, selbst wenn wir wollten. Sie haben alle das gleiche Problem: Die Entscheidungen sind nicht nachvollziehbar.

Continue reading »

Categories

  • Artificial Intelligence
  • Data Analytics
  • Innovation
  • Leadership
  • Learning
  • Motivation
  • Organisation
  • Philosophical
  • Technologie
  • Uncategorized
  • User Interface

Tags

3D 3D Drucker AI anfänger artificial intelligence aufmerksamkeit begreifen biblionetz blog deeplearning delegieren denkfehler dueck early adopters erfindung erwartungen führung gedanken gelassenheit hüther innovation intelligenz ki konstruktivismus konzepte lernen machinelearning motivation multitouch organisieren programmieren real schreiben sinek software softwareentwicklung statistik thebrain triz vertrauen virtuell wahrheit wissen worte zukunft

Last Posts

  • Auf zu neuen Welten
  • Neural Network – really easy explained – I mean: really!
  • Analysing DATA2 – Star Trek and Predict Who Said What via Multinomial Naive Bayes
  • Analyzing DATA – Pandas, Python and Star Trek: The Next Generation
  • No one can tell you you can’t learn about yourself!

Archive

  • September 2018
  • März 2016
  • Januar 2016
  • Oktober 2015
  • August 2015
  • Juni 2015
  • Februar 2015
  • Januar 2015
  • Dezember 2014
  • November 2014
  • September 2014
  • August 2014
  • Juli 2014
  • Juni 2014
  • März 2014
  • Februar 2014
  • Januar 2014
  • November 2013
  • Oktober 2013
  • August 2013
  • Juli 2013
  • Juni 2013
  • Mai 2013

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org

Tweets

Meine Tweets

Proudly powered by WordPress Theme: Chateau by Ignacio Ricci.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.

Notwendig immer aktiv

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

Nicht notwendig

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.