Interviews mit unseren Autoren sind (fast) immer ein Vergnügen. Besonders viel Freude bereiten sie mir allerdings, wenn ich mit so auskunftsfreudigen und vielseitig interessierten Menschen wie Tariq Rashid sprechen kann. Anlässlich der deutschsprachigen Erstveröffentlichung seines Buchs Neuronale Netze selbst programmieren habe ich mit dem britischen Physiker und Machine-Learning-Experten eine ganze Menge Themen beackert: Die magische Welt smarter Software und künstlicher Intelligenz, die Notwendigkeit digitaler Kompetenz und digitaler Menschenrechte, das törichte Verhalten vieler Lehrer und Politiker, den Brexit und das Potenzial der internationalen Tech-Zivilgesellschaft.
Das Interview ist recht lang, aber sicher nicht langweilig ausgefallen:
Tariq, künstliche neuronale Netze (KNN) sind in letzter Zeit schwer in Mode. Allerdings scheint es immer noch viele Menschen zu geben, die nicht wissen, was genau dahintersteckt. Kannst du uns die grundlegenden Konzepte möglichst verständlich erklären?
Ja, neuronale Netze sind total angesagt. Was übrigens nicht immer so war. Zu ihrer Funktionsweise: Wir wollten Rechner ja schon immer dazu bringen, mehr Aufgaben für uns zu übernehmen. Vom Abakus zur einfachen Berechnung von Schulden bis hin zum elektronischen Computer, der Flugbahnen im Weltraum voraussagt. Nun hat sich schnell herausgestellt, dass einige Aufgaben für Computer eher schwierig sind. Zum Beispiel, wenn es darum geht, Gesichter auf Fotos oder Handschrift zu erkennen. Das Interessante ist nun, dass Tiere (da sind wir Menschen eingeschlossen) mit scheinbar langsamen und beschränkten Gehirnen ziemlich gut darin sind, sehr komplexe Aufgaben zu erledigen: Wir hören und sehen und verstehen, was um uns herum passiert, wir können kommunizieren, wir können nach Nahrung suchen. Unsere Tiergehirne kommen außerdem gut mit Schäden oder kognitiven Beeinträchtigungen zurecht. Trotz ihrer Beschränkungen tun sie also viel schlauere Dinge als unsere traditionellen Computerprogramme.
Neuronale Netze sind nun – zumindest teilweise – durch den Versuch entstanden, den unglaublichen Erfolg unserer Tiergehirne zu replizieren. Deswegen bestehen neuronale Netze aus verschalteten Knotenpunkten, die Signale übermitteln – genau wie Tiergehirne mit vernetzten Neuronen elektrische Signale weiterleiten.
Eine Problemlösung bringen wir neuronalen Netzen bei, indem wir sie mit zig Beispielen von Fragen und (korrekten) Antworten „trainieren“ – so wie ich anhand vieler Beispiele Spanisch lerne. Das Konzept, eine Maschine zu optimieren und zu verbessern, indem man während des Trainings beobachtet, wie weit sie danebenliegt, ist ein intuitives Konzept – und eines der wichtigsten im Bereich Machine Learning. Indem wir daran festhalten und die Stärke von Verbindungen zwischen einzelnen Netzknotenpunkten justieren, schulen wir unser neuronales Netz.
Dass neuronale Netze und sogenanntes „Deep Learning“ in letzter Zeit so beliebt sind, beruht nicht auf neuen Ideen. Die Ideen sind sogar schon ziemlich alt. Jetzt haben wir nur die Rechen-Power, den Netzwerken schnell und kostengünstig etwas beizubringen. Einige der Ergebnisse sind aber trotzdem beeindruckend. Ich liebe es zum Beispiel, neuronale Netze einzusetzen, um digitale Kunst zu kreieren.
Dein Buch verspricht eine „sanfte Reise durch die Mathematik neuronaler Netzwerke“, und du betonst häufig, dass sich eigentlich jeder mit moderner Machine-Learning-Technologie beschäftigen kann – und soll. Was sind denn so die Minimalanforderungen, wenn man erfolgreich mit deinem Buch arbeiten und ein neuronales Netz zur Handschrifterkennung bauen möchte?
Ich bin zutiefst davon überzeugt, dass die Urheber vieler Kurse und Lehrbücher keine Zeit oder Lust dazu haben, wirklich coole Ideen an mehr Menschen zu vermitteln, vor allem an Einsteiger.
Das ist aus zwei Gründen eine Schande: Zum einen lassen sich Informatik, Mathematik und andere Naturwissenschaften so einige der klügsten Köpfe und frischsten Ideen entgehen. Zum anderen entwickeln viele Menschen kein Verständnis für die wirklich aufregenden, manchmal wunderschönen Konzepte der MINT-Fächer.
Ich glaube nicht, dass man mehr als die auf einer weiterführenden Schule vermittelten Mathekenntnisse braucht, um zu verstehen, wie ein einfaches (aber nützliches!) neuronales Netz funktioniert. Stell dir mal vor, wie viele Schüler man zu großen Dingen inspirieren könnte, wenn man mit ihnen im Unterricht neuronale Netze bauen würde!
Mein Buch versucht, alles ganz leicht zu machen. Da gibt’s sogar einen Analysis-Auffrischungskurs (nur die einfachen Grundlagen, mehr braucht man nicht) und ein Python-Tutorial. Man muss kein Programmier-Profi sein, um sein eigenes neuronales Netz zu bauen. Ich bin auch keiner! Viele Leser werden sich wundern, mit wie wenig Python-Code man ein neuronales Netz bauen kann, das Handschrift erkennt. Und zwar mit einer Genauigkeit, die einen IT-Profi stolz machen würde!
Alles, was du im Buch beschreibst, wird in einfachem Python auf einem supergünstigen Raspberry Pi realisiert. Ist dieses Maschinchen tatsächlich ausreichend, um die Kunst der neuronalen Netze zu lernen und zu meistern? Oder sollte da doch möglichst schnell ein Upgrade her?
Ich benutze tatsächlich einen ganz normalen Laptop für meine Programme. Der Grund, warum ich ein Kapitel über neuronale Netze auf dem Raspberry Pi Zero ins Buch gepackt habe, ist ganz einfach: Ich wollte zeigen, dass man keine teure Hardware braucht, um Spaß mit Machine Learning und neuronalen Netzen zu haben. Natürlich läuft das alles ein bisschen langsamer, aber es ist immer noch beeindruckend. Der Raspberry Pi ist wirklich wichtig, wenn es um die Demokratisierung von Digitalmedienkompetenz geht. Er hat Open Computing für sehr viele Leute erschwinglich gemacht. Vor allem für Kinder.
Ende 2015 hat Google seine hochmoderne Machine-Learning-Library TensorFlow als Open-Source-Software veröffentlicht. Hier geht’s rund in Sachen Muster- und Korrelationserkennung à la menschliches Gehirn. Kannst du das Potenzial von TensorFlow erläutern und Anwendungsfälle nennen? Und wie sieht’s aus mit anderen interessanten Technologien zu neuronalen Netzen?
Also. Bei Null anzufangen und eigene neuronale Netze zu bauen ist eine großartige Übung und prima für kleine Projekte. Im Geschäftsleben werden natürlich andere Dinge wichtig, zum Beispiel Community-Support. Es ist toll, dass Technologien wie TensorFlow das Konfigurieren neuronaler Netze und die Automatisierung ihrer Trainings und Tests ganz einfach gestalten können. Aber um das Beste herauszuholen, sollte man halt schon ungefähr wissen, was man automatisiert und vereinfacht. Sonst wundert man sich nachher darüber, dass die magischen Ergebnisse nicht ganz so magisch ausfallen.
Dabei gibt’s übrigens auch einen ethischen Aspekt. Die blinde und naive Anwendung immer komplexerer Methoden und Techniken auf Entscheidungsprozesse, die später Menschen betreffen, birgt immer mehr Risiken.
Eine Sache, die man nicht so leicht selbst bauen kann, ist ein neuronales Netz, das einen GPU ausnutzt, um den sogenannten embarrassingly parallel code innerhalb von Machine-Learning-Aufgaben zu beschleunigen. Frameworks wie Tensorflow können einem da wirklich die Arbeit erleichtern.
Ich persönlich experimentiere noch mit PyTorch, einer relativ neuen, sehr ambitionierten und „pythonesken“ Technologie. Hier müssen die Tutorials aber noch besser – das heißt: einsteigerfreundlicher – werden, um die Chance größerer Verbreitung zu erhöhen.
Ein großes Problem auf dem Machine-Learning-Markt ist ansonsten, dass quasi alles auf GPUs von NVIDIA läuft. Es gibt keine ausgereifte, beliebte Open-Source-Technologie, mit der man auf einfache Art andere Prozessoren ansteuern könnte. Vielleicht liefert OpenCL eine Lösung. Das ist ein offenes, ursprünglich von Apple gestartetes Framework, dem inzwischen viele große Hardware-Produzenten via AMD, ARM, Intel, Nvidia, Qualcoom und Samsung zugeneigt sind.
Lass uns kurz das Thema „Die Angst des Menschen vor der Machine“ diskutieren. Wenn man über neuronale Netze spricht, die ja zum Forschungsfeld der künstlichen Intelligenz (KI) gehören, kommen oft bedrohliche Bilder hoch: Von Rechner und Robotern, die die Menschen austricksen und später die Weltherrschaft übernehmen. Allerdings gibt es einen großen Unterschied zwischen einer Maschine, die Großmeister im Go wird und dem Skynet-Singleton bei Terminator. Wie mächtig sind neuronale Netze im Jahr 2017 – und was prophezeist du für die Zukunft?
Das ist eine sehr gute Frage – und Gegenstand ernsthafter, akademischer Debatte. Schauen wir mal, was wir aus der Geschichte lernen können:
Zu jedem Zeitpunkt der Geschichte wären Menschen völlig beeindruckt gewesen von dem, was 50, 100, 200 Jahre später tatsächlich möglich war. Einige hätten fortgeschrittene Wissenschaft gar als Magie bezeichnet. Das Gleiche wird in unserer Zukunft passieren: Technologie wird sich weiterentwickeln und erstaunliche Dinge ermöglichen. Stimmen erkennen. Fragen interpretieren und Antworten finden. Eine Reiseroute planen und in Echtzeit aktualisieren, wenn’s unterwegs Probleme gibt. Zwischen Dutzenden von Sprachen hin- und herübersetzen. Bilder erkennen. Äh.. Sekunde! Das können wir ja alles schon. Das, was kommt, wird noch erstaunlicher sein und uns nachhaltig überraschen!
Wird KI ein Bewusstsein entwickeln, die Welt übernehmen und die Menschheit versklaven? Analysieren wir das kurz: Die Qualität von KI-Algorithmen nimmt nahezu exponentiell zu. Die Qualität von Hardware und Robotern nimmt nahezu exponentiell zu. Bringt man beide zusammen, hat man ein KI-System, das sich selbst verbessern oder bessere neue KI-Systeme bauen kann. Berücksichtigt man noch die exponentielle Systemverbesserungsrate… peng! Man erreicht einen Punkt, an dem es kein Zurück mehr gibt. Einige Leute nennen das KI-Singularität.
Glaube ich daran? Ich sehe jedenfalls keinen Argumentationsfehler.
Aber es braucht keine KI mit Bewusstsein oder menschenähnlicher Generalintelligenz, um den Planeten zu übernehmen und uns zu versklaven. Da reicht schon viel weniger. Schau dir die ganzen Schäden an, die Cyber-Angriffe und Viren hinterlassen – und die sind nicht besonders intelligent. Und für die globale Erwärmung und den Klimawandel ist nicht HAL 9000 verantwortlich, sondern eine allzu primitive, schmutzige Industrie. Aus diesen Gründen brauchen wir in den sich noch entwickelten Wirtschaftsbereichen KI- und Tech-Politiker, die sich schlau machen und vernünftige Konzepte entwickeln, um potenziell gefährliche, rapide fortschreitende Technologien zu regulieren.
Uff, das ist eine ziemlich düstere Prognose. Sogar noch radikaler als das, was Nick Bostrom in Superintelligenz schreibt. Lass uns in der Gegenwart bleiben und noch ein wenig mehr über Technik und Politik sprechen. Ein Problem bei fortgeschrittenen neuronalen Netze ist ja, dass sie nahezu perfekt dazu geeignet sind, Überwachung zu erleichtern und auszuweiten. Ich denke jetzt zum Beispiel an bestimmte Institutionen, die kommende Dienste wie Google Lens missbrauchen. Deine Gedanken dazu?
Ich glaube ernsthaft, dass Technologie und alles, was wir damit anstellen können – Überwachung, Cyber-Angriffe etc. – längst über die Grenzen unserer gesetzlichen Rahmenordnung hinweggeprescht ist. Politiker müssen wirklich damit aufhören, ihre technische Inkompetenz zu verharmlosen, und erwachsen werden. Das ist ein großes, ernstes Thema. Wir reden über etwas, das nahezu alle Menschen auf dem Planeten verbindet, das unser Leben und Privatleben kennt. Etwas, das die Wirtschaft der Zukunft antreibt und die Quelle gewaltiger politischer Macht ist. Das Potential für Missbrauch und digitale Bedrohung ist monumental. Wenn also Politiker Witze darüber machen, dass sie nicht wissen, wie Ihre Fernbedienung funktioniert und es ihren Enkeln überlassen, ihren Rechner zu reparieren – dann ist das echt nicht cool.
Wir brauchen: Ein neues Rahmenwerk, das unsere Menschenrechte im digitalen Zeitalter fest verankert und die Nutzung komplexer Algorithmen, die dich, mich, uns alle beeinflussen, vernünftig reguliert.
Das ist ein sehr gutes und wichtiges Statement. Aber nun zu einem ganz anderen Thema: Hier kommt eine Verlegerfrage. „Neuronale Netze selbst programmieren“ war ursprünglich eine DIY-Produktion und als „Make Your Own Neural Network“ nur bei Amazon erhältlich. Du hast dann später mit meinen Kollegen Michael Barabas und Alexandra Follenius einen Deal gemacht und ein „richtiges“ Buch bei dpunkt/ O’Reilly Deutschland herausgebracht. Was sind die Vorteile von Self-Publishing? Und was sind die Vorteile, wenn man mit einem Verlag arbeitet?
Ja, das Buch war zunächst ein spaßiges Hobby und ist dann irgendwie gewachsen. Internationales Self-Publishing hat große Vorteile. Man kann zum Beispiel den Inhalt des Buchs oder den Preis (Print und Ebook) innerhalb von 24 Stunden aktualisieren. Das geht mit einem regulären Verlag nicht. Self-Publishing ist auch prima für unentdeckte Talente – eine ordentliche Anzahl der Top-Seller im Tech-Bereich sind zur Zeit Eigenproduktionen.
Aber traditionelles Publizieren hat auch Vorteile. Die professionelle Anleitung und Kontrolle eines Lektors kriegt man zuhause kaum hin. Typographie und Satz ist auch nicht gerade etwas, was alle können. Größere Verlage können außerdem Risiken eingehen, die selbstpublizierende Autoren nicht eingehen können. Dazu gehört auch die Option, größere Auflagen zu drucken und das Buch so günstiger anzubieten.
Grundsätzlich glaube ich, dass wir gerade eine interessante Zeit voller Herausforderungen für die Verlagsindustrie erleben. Vor allem im Tech-Bereich, wo Self-Publishing und kostenloses, hochwertiges Online-Material die Verleger zwingen, über zukünftige Geschäftsmodelle und Leserwünsche nachzudenken. Ich denke, dass Menschen immer bereit sein werden, für geprüfte Qualität mehr zu zahlen.
Noch eine politische Frage. Sie ist auch ein bisschen persönlich. Du lebst in Großbritannien, und du bist einer der Organisatoren des London Python Meetup. Das ist eine lebendige, internationale Community mit mehr als 3000 Mitgliedern. Was denkst du: Welche Auswirkungen wird der Brexit auf diese Gruppe haben? Und hast du schon mal überlegt, London zu verlassen und in eine andere europäische Hauptstadt zu gehen, da ja nun viele IT-Projekte umziehen?
Hm. Der Brexit ist eine kontroverse Angelegenheit in Großbritannien – mit festen Überzeugungen auf beiden Seiten der Entscheidung.
Lass mich ein paar Beobachtungen machen:
Wenn man Kommunikation und Zusammenarbeit erleichtert, ist das gut für Innovation. Es ist gut, um neue Ideen zu generieren, neue Produkte zu entwerfen, voneinander zu lernen und die Beziehungen zwischen verschiedenen Gruppen zu stärken, egal ob auf individueller Ebene oder zwischen Ländern. Ich sehe das ganz deutlich im Technologiebereich: Wenn ich über Grenzen hinweg reise und mit Menschen zusammenarbeite, mit einem neuen Startup in Berlin rede, ein Tutorial bei Europython in Spanien gebe und mich mit jemandem in den USA kurzschließe, der einen Github-Pull-Request gestellt hat.
Aber eine ausreichende Zahl von Menschen in Großbritannien hatte das Gefühl, dass der Status Quo für sie nicht funktionierte. Ich werde jetzt keinen Kommentar dazu abgeben, ob das alles ein echtes Problem oder nur Schwarzmalerei war – betrieben von Politikern, die es einfacher finden, „Außenseiter“ für ihr eigenes Versagen verantwortlich zu machen.
Ich weiß, dass das Leben in London ganz anders ist als das Leben außerhalb der Stadt, und dass ich in einer Blase lebe. Das wird mir klar, wenn ich meine Familie besuche – oder mit anderen Techies spreche, die’s echt schwer haben, eine Community oder ein geschäftliches Ökosystem außerhalb von London aufzubauen.
Langfristig bin ich optimistisch. Technologie wird weiter dazu beitragen, Hindernisse abzubauen. Und unser Wunsch über kulturelle und nationale Grenzen hinweg zusammenzuarbeiten, wird sich noch weiter verstärken, nicht abschwächen.
Tariq, gibt es sonst noch etwas, dass du loswerden möchtest?
Ich denke, dass noch immer zu viele Menschen von aufregenden, schönen Ideen in Wissenschaft und Technik ausgeschlossen werden, weil wir uns nicht genau darum kümmern, diese Ideen zugänglich zu machen. Aber es ändert sich gerade etwas. Wir sehen den Aufstieg von Produkt-Design, das Nutzer in den Mittelpunkt stellt, den Aufstieg von User-Research als Beruf und Design Thinking als Philosophie im breiten Politik- und Kunstspektrum, nicht nur in der Technologie.
Ich denke, dass in der Zukunft Leser und Studenten Kurse und Fachbücher einfordern werden, die speziell für sie designt wurden – mit allen Implikationen des Design-Begriffs. Neulich war ich bei einem Kurs, der Kindern die Grundlagen von Python vermitteln sollte. Er war grauenhaft. Warum ist ein „import“ der erste Code-Schnipsel, den ein Siebenjähriger sieht? Warum nutzen die Tutoren Begriffe wie „instanziieren“? Dinge einfach zu machen heißt nicht, das Niveau herunterzuschrauben. Es ist harte Arbeit, und eine befriedigende Herausforderung. Deswegen mache ich auch weiter mit meinen Programmierkursen für Anfänger, zum Beispiel mit Künstlern, die vorher nie etwas Digitales kreiert haben (mein anderes Meetup ist übrigens: https://www.meetup.com/Algorithmic-Art/). Ich arbeite außerdem schon an meinem nächsten Buch. Da wird’s um Text-Mining gehen, ein weiteres spannendes Thema.
Also wenn du einen Verlag suchst: Du weißt, wo du uns findest. Lieber Tariq, besten Dank für deine Zeit!
Tariq Rashid ist Physiker mit Master in Datenwissenschaft, Open-Source-Aktivist und Reformer in Sachen Technik sowie Technikvermittlung. Außerdem mag er Algorithmische Kunst, Tango, Flamenco und Fotografie. „Neuronale Netze selbst programmieren“ ist sein erstes Buch für O’Reilly.
Pingback: E-Book-Deals im Oktober: Drei Fachbücher mit hoher KI- und Coding-Kompetenz - oreillyblog
Pingback: Nur heute: "Neuronale Netze" zum Aktionspreis - oreillyblog
Pingback: Einer neuer Rashid: GANs mit PyTorch (und ein E-Book-Deal) - oreillyblog
Pingback: Komische Maschinen, seltsame Abkürzungen: Ein anderes Buch über Künstliche Intelligenz - oreillyblog