Stadionkarten-Stunts und die Kunst, ein Publikum zu programmieren


Da die College-Bowl-Saison vor der Tür steht, werden Football-Fans im ganzen Land nicht nur von der Action auf dem Spielfeld, sondern auch von den komplizierten „Karten-Stunts“, die das Stadionpublikum vorführt, begeistert sein. Die hochkoordinierte Crowd-Arbeit ist in der Lage, detaillierte Bilder zu erzeugen, die den verpixelten Bildern auf Computerbildschirmen ähneln – und die in etwa auf die gleiche Weise codiert sind.

Michael Littmans neues Buch, Code to Joy: Warum jeder ein wenig Programmieren lernen sollteist voller ähnlicher Beispiele dafür, wie die Maschinen um uns herum funktionieren und wie wir einer Zukunft voller Automaten nicht misstrauen müssen, solange wir lernen, ihre Sprache zu sprechen (zumindest bis sie mit dem Erlernen unserer Sprache fertig sind). Von Sequenzierungsbefehlen bis zum Speichern von Variablen, Code zur Freude bietet eine leicht verständliche und unterhaltsame Anleitung zu den Grundlagen des Programmierens für angehende Programmierer jeden Alters.

Code to Joy-CoverCode to Joy-Cover

MIT Press

Auszug aus Code to Joy: Warum jeder ein wenig Programmieren lernen sollte von Michael L. Littman. Herausgegeben von MIT Press. Copyright © 2023 Michael L Littman. Alle Rechte vorbehalten.


„Gib mir ein Blau!“

Kartenstunts, bei denen ein Stadionpublikum farbige Schilder hochhält, um daraus eine riesige, temporäre Werbetafel zu machen, ähneln Flashmobs, bei denen die Teilnehmer keine besonderen Fähigkeiten benötigen und nicht einmal vorher üben müssen. Sie müssen lediglich auftauchen und den Anweisungen in Form einer kurzen Befehlsfolge folgen. Die Anweisungen leiten ein Stadionpublikum an, die richtigen farbigen Karten in Postergröße zum richtigen Zeitpunkt hochzuhalten, wie von einem Stuntleiter angekündigt. Eine typische Anleitung für Karten-Stunts beginnt mit Anweisungen zum Befolgen der Anweisungen:

  • Hören Sie den Anweisungen aufmerksam zu

  • Halten Sie die Oberseite der Karte auf Augenhöhe (nicht über Ihren Kopf)

  • Halten Sie die angezeigte Farbe in Richtung Feld (nicht in Ihre Richtung)

  • Geben Sie die Karten nach Abschluss der Stunts an den Gang weiter (zerreißen Sie die Karten nicht)

Diese Anweisungen mögen offensichtlich klingen, aber wenn man sie nicht anwendet, führt das sicherlich zu einer Katastrophe. Trotzdem weißt du, dass es einen schlauen Alec geben muss, der hinterher fragt: „Tut mir leid, was war noch mal das Erste?“ Das würde ich auf jeden Fall tun.

Dann kommt das Hauptereignis, das für eine bestimmte Person in der Menge die Befehlssequenz sein könnte:

  1. Blau

  2. Blau

  3. Blau

Atemberaubend, nicht wahr? Nun, vielleicht müssen Sie das Gesamtbild sehen. Die ganze Idee von Karten-Stunts nutzt die Tatsache, dass die Mitglieder einer Stadionmenge auf in einem Raster angeordneten Sitzen sitzen. Indem sie farbige rechteckige Schilder hochhalten, verwandeln sie sich in so etwas wie einen großen Computerbildschirm. Jeder Teilnehmer fungiert als einzelnes Bildelement – ​​Personenpixel! Verschiebungen, bei denen Karten hochgehalten werden, verändern das Bild oder führen möglicherweise sogar dazu, dass es sich wie ein überlebensgroßes animiertes GIF verwandelt.

Kartenstunts begannen in den 1920er Jahren als Massenbeteiligungsaktivität im Hochschulsport. Sie wurden in den 1970er Jahren viel weniger populär, als man sich allgemein einig war, dass jeder sein eigenes Ding machen sollte, Mann. In den 1950er Jahren gab es jedoch einen echten Drang, immer aufwändigere Displays zu schaffen. Cheer-Trupps entwarfen die Stunts von Hand und bereiteten dann individuelle Anweisungen für jeden der tausend Sitzplätze vor. Man muss sein Team wirklich lieben, um diese Art von Energie einzusetzen. Einige Schulen dachten in den 1960er Jahren, dass diese neumodischen Computergeräte hilfreich sein könnten, um die mühsame Unterrichtsvorbereitung etwas zu vereinfachen, und entwickelten Programme, um Sequenzen handgezeichneter Bilder in individuelle Anweisungen für jeden Teilnehmer umzuwandeln. Mit Hilfe von Computern könnten Menschen viel detailliertere, individuelle Sequenzen für jedes Pixel einer Person erstellen, die sagen, wann sie eine Karte anheben, welche Farbe sie anheben und wann sie ablegen oder zu einer anderen Karte wechseln müssen. Während es im Fragebogenbeispiel aus dem vorherigen Abschnitt darum ging, dass Personen Befehlssequenzen erstellen, denen der Computer folgen soll, geht es in diesem Beispiel darum, dass der Computer Befehlssequenzen erstellt Menschen Folgen. Und die Computerunterstützung zur Automatisierung der Erstellung von Befehlssequenzen ermöglicht die Erstellung aufwändigerer Stunts. Das führte dazu, dass die Befehlsfolge eines Teilnehmers so aussah:

  • oben auf 001 weiß

  • 003 blau

  • 005 weiß

  • 006 rot

  • 008 weiß

  • 013 blau

  • 015 weiß

  • 021 runter

  • oben auf 022 weiß

  • 035 runter

  • oben auf 036 weiß

  • 043 blau

  • 044 runter

  • bis auf 045 weiß

  • 057 Metallic-Rot

  • 070 runter

Okay, es macht immer noch nicht so viel Spaß, die Anweisungen zu lesen, wie das Endprodukt zu sehen – in diesem tatsächlichen Beispiel ist es Teil eines animierten Stanford „S“. Um diese Befehle synchron auszuführen, ruft ein Ansager im Stadion die Schrittnummer („Einundvierzig!“) auf und jeder Teilnehmer kann anhand seiner Anweisungen sagen, was zu tun ist („Ich halte immer noch die weiße Karte hoch“) Ich habe bei 36 gehoben, aber ich bereite mich darauf vor, sie gegen eine blaue Karte einzutauschen, wenn der Zähler 43 Zoll erreicht.

Wie gesagt, es ist für Leute nicht so kompliziert, Teil eines Karten-Stunts zu sein, aber es ist ein ziemlich cooles Beispiel für das Erstellen und Befolgen von Befehlssequenzen, bei denen der Computer uns sagt, was wir tun sollen, und nicht umgekehrt. Und so einfach es auch sein mag, manchmal geht etwas schief. Auf dem Parteitag der Demokraten 2016 planten die Anhänger von Hillary Clinton einen flächendeckenden Karten-Stunt. Obwohl es als patriotische Demonstration der Einheit gedacht war, wollten einige Teilnehmer nicht teilnehmen. Das Ergebnis war ein unleserliches Durcheinander, das deprimierenderweise „Gemeinsam stärker“ bedeuten sollte.

Heutzutage ist es mit Computern ein Kinderspiel, aus einem Foto Anweisungen zu machen, welche Farben wo angebracht werden sollen. Im Wesentlichen ist jedes digitalisierte Bild bereits eine Reihe von Anweisungen, welche Mischung aus Rot, Blau und Grün an jeder Bildposition angezeigt werden soll. Eine interessante Herausforderung bei der Übersetzung eines Bildes in Karten-Stunt-Anweisungen besteht darin, dass typische Bilder aus Millionen farbiger Punkte (Megapixel) bestehen, während ein Karten-Stunt-Bereich eines Stadions vielleicht tausend Sitzplätze hat. Anstatt jede Person zu bitten, tausend kleine Karten hochzuhalten, ist es sinnvoller, einen Durchschnitt der Farben in diesem Teil des Bildes zu berechnen. Dann wählt der Computer aus der Sammlung verfügbarer Farben (z. B. den klassischen vierundsechzig Crayola-Optionen) einfach diejenige aus, die dem Durchschnitt am nächsten kommt.

Wenn Sie darüber nachdenken, ist nicht klar, wie ein Computer Farben mitteln kann. Sie könnten Grün und Gelb mischen und entscheiden, dass das Ergebnis wie der frühlingsgrüne Buntstift aussieht, aber wie bringt man einer Maschine das bei? Schauen wir uns diese Frage etwas genauer an. Es wird Ihnen helfen, ein Gefühl dafür zu bekommen, wie Computer uns dabei helfen können, sie besser zu unterrichten. Außerdem wird es unser Einstieg in die aufregende Welt des maschinellen Lernens sein.

Es gibt tatsächlich viele, viele Möglichkeiten, Farben zu mitteln. Eine einfache Möglichkeit besteht darin, die Tatsache auszunutzen, dass jeder Farbpunkt in einer Bilddatei als Anteil der darin enthaltenen roten, grünen und blauen Farbe gespeichert wird. Jede Komponentenfarbe wird als ganze Zahl zwischen 0 und 255 dargestellt, wobei 255 gewählt wurde, weil es der größte Wert ist, den man mit acht Binärziffern oder Bits erzeugen kann. Die Verwendung von Rot-Blau-Grün-Mengen funktioniert gut, da die Farbrezeptoren im menschlichen Auge reale Farben in dieselbe Darstellung umwandeln. Das heißt, obwohl Lila einer bestimmten Lichtwellenlänge entspricht, sehen unsere Augen es als eine bestimmte Mischung aus Grün, Blau und Rot. Zeigen Sie jemandem die gleiche Mischung, und er wird Lila sehen. Um also eine große Gruppe von Pixeln zusammenzufassen, mitteln Sie einfach den Blauanteil in diesen Pixeln, den Rotanteil in diesen Pixeln und den Grünanteil in diesen Pixeln. Das funktioniert grundsätzlich. Nun stellt sich heraus, dass Sie aus einer Kombination physikalischer, wahrnehmungsbezogener und technischer Gründe bessere Ergebnisse erzielen, wenn Sie die Werte vor der Mittelwertbildung quadrieren und nach der Mittelwertbildung eine Quadratwurzel aus den Werten bilden. Aber das ist im Moment nicht wichtig. Wichtig ist, dass es eine mechanische Möglichkeit gibt, eine Reihe farbiger Punkte zu mitteln, um einen einzelnen Punkt zu erhalten, dessen Farbe die Gruppe zusammenfasst.

Sobald diese durchschnittliche Farbe erstellt ist, muss der Computer die Farbe finden, die den verfügbaren Karten am nächsten kommt. Ist das eher ein gebranntes Siena oder ein Rot-Orange? Eine typische (wenn auch unvollkommene) Methode zur Schätzung der Ähnlichkeit zweier Farben anhand ihrer Rot-Blau-Grün-Werte ist die sogenannte euklidische Distanzformel. So sieht das als Befehlssequenz aus:

  • Bilden Sie die Differenz zwischen dem Rotanteil der beiden Farben und quadrieren Sie sie

  • Bilden Sie die Differenz zwischen dem Blauanteil der beiden Farben und quadrieren Sie sie

  • Nehmen Sie die Differenz zwischen dem Grünanteil in den beiden Farben und addieren Sie die drei Quadrate

  • Ziehe die Quadratwurzel

Um also herauszufinden, welche Karte gehalten werden sollte, um den Durchschnitt der Farben im entsprechenden Teil des Bildes am besten einzufangen, müssen Sie einfach herausfinden, welche der verfügbaren Farben (Blau, Gelbgrün, Aprikose, Timberwolf, Mahagoni, Immergrün usw.) ) hat an dieser Stelle den geringsten Abstand zu dieser Durchschnittsfarbe. Das ist die Farbe der Karte, die der Pixelperson gegeben werden sollte, die an dieser Stelle im Raster sitzt.

Die Ähnlichkeit zwischen dieser Abstandsberechnung und der Farbmittelung ist, da bin ich mir ziemlich sicher, nur ein Zufall. Manchmal ist eine Quadratwurzel einfach nur eine Quadratwurzel.

Wenn wir einen Schritt zurücktreten, können wir diese Vorgänge – Farbmittelung und Finden der Farbe, die dem Durchschnitt am nächsten kommt – nutzen, um einen Computer dazu zu bringen, uns bei der Erstellung der Befehlssequenz für einen Karten-Stunt zu helfen. Der Computer verwendet als Eingabe ein Zielbild, einen Sitzplan und einen Satz verfügbarer Farbkarten und erstellt dann eine Karte, die zeigt, welche Karte an jedem Sitz hochgehalten werden sollte, um das Bild am besten wiederzugeben. In diesem Beispiel kümmert sich der Computer hauptsächlich um die Buchhaltung und hat außer der Auswahl der nächstgelegenen Farbe nicht viel mit der Entscheidungsfindung zu tun. Das Ergebnis ist jedoch, dass der Computer einen Teil des Aufwands für das Schreiben von Befehlssequenzen übernimmt. Wir sind von der Notwendigkeit, in jedem Moment des Karten-Stunts jeden Befehl für jedes Personenpixel auszuwählen, zur Auswahl von Bildern und zur Generierung der erforderlichen Befehle durch den Computer übergegangen.

Dieser Perspektivwechsel eröffnet die Möglichkeit, der Maschine mehr Kontrolle über den Prozess der Befehlssequenzgenerierung zu übertragen. In Bezug auf unser 2 × 2-Raster aus Kapitel 1 können wir vom Erzählen (dem Bereitstellen expliziter Anweisungen) zum Erklären (dem Bereitstellen expliziter Anreize) übergehen. Beispielsweise gibt es eine Variante dieses Farbauswahlproblems, die viel schwieriger ist und dem Computer interessantere Aufgaben gibt. Stellen Sie sich vor, wir könnten Karten in jeder benötigten Farbe drucken, aber unsere Druckerei besteht darauf, dass wir die Karten in großen Mengen bestellen. Sie können uns nur acht verschiedene Kartenfarben zur Verfügung stellen, aber wir können jede beliebige Farbe auswählen, aus der wir diese acht zusammenstellen möchten. (Acht ist die Anzahl der verschiedenen Werte, die wir mit 3 Bits erzeugen können – Bits kommen in der Informatik häufig vor.) Wir könnten also zwischen Blau, Grün, Blaugrün, Blauviolett, Himmelblau, Indigo, Kadettenblau und Himmelblau wählen und rendern Sie eine wunderschöne Meereswelle in acht Blautönen. Großartig!

Aber dann gäbe es weder Rot noch Gelb, um andere Bilder zu machen. Die Beschränkung der Farbpalette auf acht mag wie eine bizarre Einschränkung klingen, aber es stellte sich heraus, dass die frühen Computermonitore genau so funktionierten. Sie könnten Millionen von Farben darstellen, aber jeweils nur acht verschiedene Farben auf dem Bildschirm.

Unter Berücksichtigung dieser Einschränkung wird das Rendern eines Bildes auf farbigen Karten viel schwieriger. Sie müssen nicht nur wie zuvor entscheiden, welche Farbe aus unseren Farboptionen Sie für jede Karte verwenden möchten, sondern Sie müssen auch auswählen, aus welchen acht Farben diese Farboptionen bestehen. Wenn wir ein Gesicht zeichnen, sind verschiedene Hauttöne viel nützlicher als die Unterscheidung zwischen Grün- und Blautönen. Wie kommen wir von einer Liste der Farben, die wir gerne verwenden würden, weil sie im Zielbild enthalten sind, zu der viel kürzeren Liste von Farben, aus denen sich unsere Farboptionen zusammensetzen?

Maschinelles Lernen und insbesondere ein Ansatz, der als Clustering oder unüberwachtes Lernen bekannt ist, können dieses Farbauswahlproblem für uns lösen. Ich werde Ihnen sagen, wie. Aber lassen Sie uns zunächst auf ein ähnliches Problem eingehen, das sich aus der Umwandlung eines Gesichts in ein Puzzle ergibt. Wie im Karten-Stunt-Beispiel lassen wir den Computer eine Befehlsfolge zum Rendern eines Bildes entwerfen. Aber es gibt eine Wendung: Die Puzzleteile, die für den Aufbau des Bildes zur Verfügung stehen, stehen im Voraus fest. Ähnlich wie beim Tanzschritt-Beispiel werden die gleichen Befehle verwendet und berücksichtigt, welche Sequenz das gewünschte Bild erzeugt.

source-115

Leave a Reply