Ich habe in einer Woche eine Firma für künstliche Intelligenz im Wert von 500 Mio. USD zurückentwickelt. Hier ist die ganze Geschichte.

Und hier ist was ich brauchte. Nicht viel, richtig?

Warum ich das getan habe:

Viele der Artikel, Datensätze und Softwaretools, die sich auf Deep Learning beziehen, wurden offen bezogen. Dies hat demokratisierend gewirkt und es Einzelpersonen und kleinen Organisationen ermöglicht, leistungsstarke Anwendungen zu erstellen. WhatsApp war in der Lage, ein globales Messaging-System zu erstellen, das 900 Millionen Benutzern mit nur 50 Ingenieuren diente, verglichen mit Tausenden von Ingenieuren, die für frühere Generationen von Messaging-Systemen benötigt wurden.
Dieser „WhatsApp-Effekt“ findet jetzt in AI statt. Mithilfe von Softwaretools wie Theano und TensorFlow, Cloud-Rechenzentren für Schulungen und kostengünstigen GPUs für die Bereitstellung können kleine Ingenieurteams hochmoderne KI-Systeme erstellen.

Ich beende die Einführung der AI-Academy-Seminare immer mit einer Folie, die dieses Zitat von Chris Dixon enthält, und im Hintergrund ein Bild von George Hotz in seinem selbstgebauten selbstfahrenden Auto.

Die Botschaft ist einfach: Heutzutage kann jeder die künstliche Intelligenz nutzen, ohne Jahre und Tonnen von Geld in Forschung und Entwicklung zu investieren.

Ich bin der festen Überzeugung, dass dies sowohl funktioniert, wenn Sie die Grenzen der Technologie erweitern möchten (George Hotz 'Stil), als auch, wenn Sie einige gut etablierte KI-Methoden auf neue Probleme anwenden möchten.

Da einige Leute davon nicht zu 100% überzeugt waren, beschloss ich, es zu beweisen und einen Teil meiner Zeit dafür zu investieren. Wie mein Wirtschaftsprofessor an der Santa Clara University sagte: "Sie müssen das Futter Ihres Hundes probieren".

Außerdem muss ich ehrlich sein, dass es viel Spaß gemacht hat :)

Das richtige Experiment finden:

Ich habe mich für ein Unternehmen entschieden, das ich wirklich bewundere (als Energieingenieur): Opower.

Das, was Opower tut, ist einfach, aber sehr leistungsstark: Es verwendet Smart-Meter-Daten, um Versorgungsunternehmen bei der Kundenansprache zu unterstützen, indem es ihnen Einblicke in die Verbrauchsmuster gibt. Dies ist sehr wichtig für Energieversorger, die den Verbrauch ihrer Kunden während des Tages so stabil wie möglich halten müssen (die sogenannten „Spitzen“ und „Täler“ sind für einen Energieerzeuger aus Gründen, die wir nicht abdecken, schwierig und teuer zu handhaben Hier).

Sobald das Verbrauchsmuster eines Energieverbrauchers bekannt ist, kann er mit einem benutzerdefinierten Angebot gezielt darauf abgezielt werden, seinen Verbrauch in kritischen Momenten zu senken.

Opower ist dies wirklich gelungen: Laut Crunchbase wurde es 2007 gegründet, ging 2014 an die Börse und wurde 2016 von Oracle für 532 Mio. USD in bar übernommen.

Opower war der perfekte Fall, da ich diesen sehr coolen Datensatz gefunden habe, der aus ungefähr 15000 .csv-Dateien besteht, die die stündliche Belastung von 15000 Gebäuden in den USA enthalten und im Jahr 2004 gesammelt wurden.

Der Fall war perfekt und ich war bereit zu gehen;)

In die Daten schauen:

Das erste, was ich tat, war das Importieren einzelner CSV-Dateien und einige sehr schnelle und schmutzige Plots der Energieverbrauchsprofile, um zu überprüfen, was ich von ihnen abrufen konnte.

Ich habe einige „Hairball-Diagramme“ erstellt: Im Grunde genommen habe ich das Energieverbrauchsprofil mehrerer Tage in einem Diagramm mit einer schwarzen Linie von 0,1 Opazität aufgezeichnet. Das macht es einfach, die häufigsten Energieverbrauchsmuster in einem Gebäude zu erkennen.

Ich habe auch drei separate Diagramme für das ganze Jahr erstellt, Arbeitstage und Wochenenden, um nach verschiedenen Mustern zu suchen.

Hier sind zwei Beispiele:

Sie sehen auf den ersten Blick vielleicht nutzlos aus, aber wir können bereits einige coole Einsichten extrapolieren:

  • Das Restaurant ist zum Frühstück, Mittag- und Abendessen geöffnet (siehe die drei Gipfel).
  • Das Restaurant hat wahrscheinlich zwischen 5 und 6 Uhr morgens geöffnet (erster Anstieg des Verbrauchs aufgrund des Einstiegs der Arbeiter)
  • Das Restaurant schließt wahrscheinlich zwischen 1 Uhr morgens und 2 Uhr morgens
  • Das Restaurant ist an Wochenenden und Feiertagen geöffnet.
  • Die Menschen bleiben im Restaurant mehr Zeit zum Mittagessen als zum Abendessen / Frühstück.
  • Das Restaurant hat wahrscheinlich einige Kühlschränke, die während der Nacht eingeschaltet sind (der Verbrauch ist nie Null).
  • Die Schule öffnet gegen 6 Uhr und schließt gegen 22 Uhr.
  • Gegen 18 Uhr verlassen die meisten Leute die Schule, aber jemand bleibt in der Schule (Professoren? Aktivitäten nach der Schule?)
  • Die Schule hat ein Gerät, das niemals ausgeschaltet wird (Kühlschränke? IT-Geräte? Oder vielleicht machen sie das Licht nachts aus Sicherheitsgründen an?)
  • Es liegt ein Problem im Datensatz vor! An den Wochenenden sollten wir mit einem stabilen und nahezu Null-Verbrauch rechnen (horizontale Linien). Ist der Datensatz verschoben? Es stellt sich heraus, dass es JA ist. Indem Sie alles 3 Tage in der Vergangenheit verschieben, nähert sich die Situation dem, was wir erwarten, und die meisten Wochenenden und Feiertage weisen einen stabilen Verbrauch auf. :)

Sobald ich wusste, was ich in diesen Daten finden konnte, begann ich mit der Datenbereinigung und der Vorbereitung einiger Funktionen, um mein Modell zu erstellen. Wie üblich war dies der zeitaufwändigste Teil.

Maschinelle Lernzeit:

Was ich brauchte, um Muster im Energieverbrauch zu finden, war ein Datensatz mit einem „Modell“ jedes Gebäudes. Ich habe das Modell einfach erstellt, indem ich den Energieverbrauch des Gebäudes für jeden Tag des Jahres stundenweise gemittelt habe (und einige andere interessante Funktionen, wie Bundesstaat, Stadt usw.).

Um Gebäude miteinander vergleichen zu können, habe ich den Verbrauch jeder Stunde durch den höchsten registrierten Verbrauch geteilt, sodass er für jedes Gebäude zwischen 0 und 1 liegt.

Ich habe auch meine Funktion "make_building_model" erstellt, damit ich den Datensatz leicht ändern und nur die Arbeitstage oder nur die Feiertage berücksichtigen kann, um das Modell jedes einzelnen Gebäudes zu erstellen, wenn ich nach genaueren Mustern suchen möchte.

Ich beschloss, zunächst das ganze Jahr zu betrachten und mein Skript über alle ~ 15000 csv-Dateien auszuführen, die ich hatte. Am Ende hatte ich einen Datensatz von 15000 Zeilen und begann mit dem Clustering.

Ich habe einen sehr einfachen (aber leistungsstarken und effizienten) KMeans-Algorithmus verwendet und ihn mit den 15000 Stichproben gespeist, wobei ich als Eingabemöglichkeit eine Liste mit den 24 skalierten Stundenverbrauchswerten verwendet habe.

Ich habe mit der Anzahl der Cluster gespielt und mit 6 die wichtigsten Cluster ermittelt (dies war ein Versuch-und-Irrtum-Ansatz, der Kürze halber werde ich nur das Endergebnis angeben).

Um einige Einblicke zu erhalten, habe ich die Cluster-Zentren (im Grunde die 6 Hauptmuster, die vom Algorithmus erkannt werden) zusammen mit einem Haarball der Gebäude, die Teil dieses Clusters sind, aufgezeichnet, damit Sie die Ähnlichkeiten erkennen können (beachten Sie, dass es Tausende von Linien mit gibt 1% Deckkraft in diesen Diagrammen! Das ist der "geisterhafte" Effekt, den Sie sehen).

Cluster-Darstellung.

Sieht ziemlich cool aus, oder? Grundsätzlich wissen wir jetzt, dass:

  • Es gibt Benutzer mit einem stetig wachsenden Verbrauch, der gegen 16 Uhr ansteigt und dann sinkt (Cluster 1).
  • Einige Benutzer haben zwei tägliche Spitzen, um 7 Uhr und 21 Uhr (Cluster 2)
  • Einige Benutzer haben drei tägliche Spitzen um 8 Uhr, 13 Uhr und 18 Uhr (Cluster 3)
  • Einige Benutzer arbeiten in zwei Betriebsarten: hoher Verbrauch von 9 bis 17 Uhr und geringer Verbrauch im Rest (Cluster 4)
  • Einige Benutzer haben einen ähnlichen Verbrauch wie Cluster 4, aber mit einem bescheidenen (10% des Spitzenverbrauchs) und dennoch starken Abfall um 13:00 Uhr (Cluster 5).
  • Einige Benutzer haben einen eher stabilen Verbrauch mit einem Mindestverbrauch von 60% des Peaks (Cluster 6).

Können wir weiter gehen? Welchen Nutzen könnte ein Unternehmen daraus ziehen?

Dies erhalten wir, wenn wir die Beschreibung der Gebäude ausdrucken, die zu den einzelnen Clustern gehören:

CLUSTER 1
Gesamtbestandteile: 3042
n Stand-aloneRetailNew = 936 von 936
n StripMallNew = 936 von 936
n SecondarySchoolNew = 923 von 936
n PrimarySchoolNew = 235 von 936
n MediumOfficeNew = 4 von 936
n LargeOfficeNew = 8 von 936
CLUSTER 2
Gesamtbestandteile: 2808
n LargeHotelNew = 936 von 936
n MidriseApartmentNew = 936 von 936
n SmallHotelNew = 936 von 936
CLUSTER 3
Gesamtbestandteile: 1872
n FullServiceRestaurantNew = 936 von 936
n QuickServiceRestaurantNew = 936 von 936
CLUSTER 4
Gesamtbestandteile: 5381
n LargeOfficeNew = 928 von 936
n MediumOfficeNew = 932 von 936
n OutPatientNew = 935 von 936
n PrimarySchoolNew = 701 von 936
n SecondarySchoolNew = 13 von 936
n SmallOfficeNew = 936 von 936
n SuperMarketNew = 936 von 936
CLUSTER 5
Gesamtbestandteile: 936
n WarehouseNew = 936 von 936
CLUSTER 6
Gesamtbestandteile: 937
n Krankenhausneu = 936 von 936
n OutPatientNew = 1 von 936

Merkst du etwas cooles? Folgendes würde ich sagen:

  • Alle Einzelhändler, Einkaufszentren und fast alle weiterführenden Schulen gehören zu Cluster 1. Wenn wir ein Energieversorgungsunternehmen wären, das dieses Tool einsetzt, könnten wir bei der Unterzeichnung eines neuen Vertrags mit Kunden dieser Art Anreize vorschlagen, um ihren Verbrauch von zu entfernen dieser einzelne Peak.
  • Alle Hotels und „Midrise“ -Wohnungen gehören zu Cluster 2. Versorgungsunternehmen könnten Kunden mit Angeboten ansprechen, die sie dazu drängen, den Verbrauch um 7.00 Uhr und 21.00 Uhr (insbesondere um 21.00 Uhr) zu senken. Oder seien Sie sich zumindest bewusst, dass sie, wenn sie einen neuen Kunden, der eine große Hotelkette ist, abonnieren, mit diesen Spitzenwerten rechnen müssen.
  • Alle Restaurants gehören zu Cluster 3. Möglicherweise, weil im Datensatz kein Restaurant nur für zwei der drei Gänge (Frühstück, Mittagessen, Abendessen) geöffnet war. Die Versorgungsunternehmen sollten besonders auf die letzte Spitze dieser Nutzer achten, was ungefähr zur gleichen Zeit wie bei Nutzern aus Cluster 2 der Fall ist das macht aber geschäftlich viel Sinn).
  • Cluster 4 ist das am weitesten verbreitete Profil mit Büros jeder Größe, Supermärkten und den meisten Grundschulen. Wir haben das erwartet, da es sich um ein klassisches "9to5" -Profil handelt.
  • Cluster 5 ist typisch nur für Lagerhäuser. Der Rückgang des Verbrauchs um 13 Uhr ist wahrscheinlich eine Wendungsverschiebung. Wir könnten mit maßgeschneiderten Werbeaktionen den Energieverbrauch in den Nachtstunden anregen, sodass sich diese Spitzenwerte nicht zu denen der Cluster 4-Benutzer summieren.
  • Neue Krankenhäuser haben alle ein Profil wie Cluster 6. Dies rechtfertigt den hohen Nachtverbrauch und das konstante Profil, da sie wahrscheinlich über Maschinen verfügen, die nachts nicht ausgeschaltet werden können. Es gibt nicht viel, was wir einem Krankenhaus sagen können, um sein Verhalten zu ändern, und sie sind auch ziemlich ständige Benutzer, also werden wir sie ruhig halten :).

Schlussfolgerungen:

Ja, es ist möglich, mithilfe des maschinellen Lernens einige sehr interessante Schlussfolgerungen zu ziehen, auch wenn Sie kein 500-Millionen-Dollar-Unternehmen sind, sondern nur eine Person mit etwas Freizeit. Dies ist hauptsächlich auf die Verfügbarkeit offener Datensätze sowie auf Open Source-Software zurückzuführen, die es mir ermöglichte, ein grobes, aber funktionierendes Modell mit einer unglaublichen Geschwindigkeit zu erstellen.

Ich würde auch sagen, dass Clustering eine äußerst leistungsstarke und einfach anzuwendende Technik ist, die viel ungenutztes Potenzial bietet. Stellen Sie sich vor, was Sie mit demselben Ansatz im Marketing tun könnten.

Zukünftige Entwicklungen:

Ich habe gerade die Oberfläche von dem gekratzt, was aus diesem Datensatz möglich ist. Wir könnten weiterhin Unterschiede zwischen verschiedenen Klimazonen in den USA, Unterschiede in Arbeitstagen und Wochenenden untersuchen oder die gleiche Arbeit mit anderen Verbrauchsarten ausführen (der ursprüngliche Datensatz enthält auch Heizung und einige andere coole Dinge!).

Wenn jemand anfangen möchte zu graben, habe ich meine Arbeit auf Github veröffentlicht, wo Sie meine Funktionen verwenden können, um viel Zeit bei der Datenbereinigung zu sparen, und sofort damit beginnen, die lustigen ML-Sachen zu machen :).

BEARBEITEN:

Ben Packer, ein ehemaliger Opower Data Scientist, hat mich auf diesen sehr interessanten Artikel über die Arbeit von Opower hingewiesen (danke Ben!). Es ist sehr interessant, wie der Ansatz meinem sehr ähnlich ist (sogar die Graphendarstellung!). Da sie sich auf Privatkunden beziehen, unterscheiden sich die Formen der Cluster geringfügig. Beispielsweise gibt es niemanden mit drei Peaks in den Daten. Andererseits haben wir festgestellt, dass alle Restaurants dieses Verbrauchsmuster aufweisen.
Darüber hinaus geben sie einen Einblick in die Techniken, die sie verwendet haben: Natürlich sind sie ausgefeilter als das, was ich verwendet habe, da sie hunderte Male mehr Daten, mehr Geld, mehr Zeit, Ingenieure und… ein Unternehmen mit 500 Millionen US-Dollar sind (ich denke, das ist warum mein freiwillig provokativer Titel so viele Hacker News beleidigte).
Jedenfalls scheint es mir, dass die Schlussfolgerungen und der Wert (in Bezug auf Informationen, natürlich nicht $$$), die wir extrahiert haben, definitiv vergleichbar sind.

Wenn Ihnen meine Arbeit gefallen hat, ist ein Klick auf die Schaltfläche "Empfehlen" ebenso willkommen wie das Teilen. Teilen ist fürsorglich ❤

Wenn Sie interessante Daten haben, aus denen Sie einen Nutzen ziehen möchten, können Sie mich unter gianluca@ai-academy.com erreichen :)