[PYTHON] Ich habe versucht, Human In The Loop zu implementieren - Teil ① Dashboard -

Einführung

Human in the Loop (HITL) soll menschliche Operationen in die Beurteilung und Kontrolle von KI eingreifen und wird als eines der Mittel zur sozialen Umsetzung von KI angesehen, wenn die Qualitätskontrolle schwierig ist. [Referenz 1] In diesem Artikel möchte ich ein Modell für maschinelles Lernen, ein Dashboard für die Überwachung und ein Verifizierungswerkzeug mit einer einfachen WEB-Anwendung implementieren, damit ich das Bild von HITL erfassen kann. (Insgesamt dreimal geplant) In HITL ist ein Dashboard, mit dem Sie die tatsächlichen Daten und das KI-Verhalten gleichzeitig überprüfen können, für die Überwachung wirksam. In Teil 1 werden wir Ziele festlegen, Nutzungsdaten einführen und ein Überwachungs-Dashboard implementieren.


Inhaltsverzeichnis der HITL-Implementierung
Teil ① Dashboard ← Diesmal Teil② Überprüfungstool Teil ③ HITL (① und ② + Modell-Wiederlernmechanismus)

■ Implementierungsergebnis simpledashboard.gif ■ Umgebung

Python 3.7.7 dash 1.16.1 dash-bootstrap-components 0.10.7 dash-core-components 1.12.1 dash-html-components 1.1.1 dash-renderer 1.8.1 dash-table 4.10.1 plotly 4.10.0 Flask 1.1.2 lightgbm 3.0.0

Zielsetzung

Abhängig von der Aufgabe werden verschiedene Konstruktionen von HITL erwartet, aber in dieser Serie werden wir diejenige übernehmen, die auf der Erkennung von Anomalien basiert.

■ Implementieren Sie Folgendes in der WEB-Anwendung

--Überwachung --Dashboard (Diagramm) --Maschinenlernmodell

HITL_1.png

Nutzungsdaten

Bei der Implementierung wurden Daten aus der Erkennung von Kreditkartenbetrug von Kaggle verwendet. [Referenz 2]

Diese Daten sind unausgeglichene Daten mit der objektiven Variablen der betrügerischen Verwendung von Kreditkarten und werden häufig zum Ausprobieren von Anomalieerkennungsmodellen verwendet.

Die Originaldaten enthalten PCA-Daten von V1 bis V28. Da der Zweck dieser Zeit eine Demonstration zum Erfassen des Bildes ist, wird die Menge der Eingabefunktionen auf 2 Variablen (V4, V14) * eingestellt, damit sie bei der Visualisierung leicht verständlich sind.

In der Demo werden wir die oben genannten Daten sowie unbekannte normale Daten künstlich überwachen, verifizieren und neu lernen. Unbekannte normale Daten, die künstlich erstellt wurden, müssen im Szenario die folgenden Anforderungen erfüllen.

① Das überwachte Modell erkennt fälschlicherweise (stellt fälschlicherweise fest, dass es abnormal ist) (2) Das Erkennungsmodell kann erkannt werden (dh die künstlichen Daten unterscheiden sich deutlich von den ursprünglichen Lerndaten). ③ Auch beim erneuten Lernen kann das überwachte Modell das vorhandene Abnormalitätsurteil beibehalten

Basierend auf dem oben Gesagten haben wir die Demo-Daten erstellt. (Weniger als) (1 bis 8 s: bekannt (abnormal bei 3 s), 9 bis 11 s: unbekannt, zweimal wiederholt)

HITL_2.png

Technologie verwendet

Beschreibt das Framework und das Modell für die Implementierung.

■ Visualisierungsteil

■ Modell des maschinellen Lernens, Erkennungsmodell

--Maschinenlernmodell - LightGBM

Implementierung

Wir werden es unten separat implementieren.

    1. Dashboard ← diesmal
  1. Überprüfungstool
    1. HITL ((1) und (2) + Modell-Wiederlernmechanismus)

1. 1. Instrumententafel

■ Implementierungsdetails

■ Implementierungsimage HITL_3.png

■ Implementierungsergebnis simpledashboard.gif

Zusammenfassung

Dieses Mal haben wir ein Dashboard implementiert, das für die Überwachung in Human In The Loop verwendet werden kann. Das Dashboard visualisiert die tatsächlichen Dateninformationen und die KI-Punktzahl in Echtzeit, sodass leichter zu verstehen ist, wo sich die KI auf die tatsächlichen Daten konzentriert. (In diesen Daten scheint AI zu beurteilen, dass es ungültig ist, wenn V4 positiv und V14 negativ ist.) Durch die Verwendung von Dash und Plotly war es für mich relativ einfach, die HTML- und CSS-Teile zu codieren. Vor allem möchte ich, dass Sie das Gefühl haben, dass Sie eine solche WEB-Anwendung, die in Echtzeit ausgeführt wird, problemlos implementieren können.

Wenn Sie Verbesserungen oder Fragen haben, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten.

Referenz

  1. Human-in-the-Loop-KI, die ein besseres Geschäft, eine bessere Gesellschaft und eine bessere Zukunft schafft https://note.com/masayamori/n/n2764e3cecc05

  2. Kaggle - Credit Card Fraud Detection https://www.kaggle.com/mlg-ulb/creditcardfraud

  3. Erstellen Sie eine Webanwendung, die maschinelles Lernen mit Dash ermöglicht [Schritt 1] https://wimper-1996.hatenablog.com/entry/2019/10/28/dash_machine_learning1

  1. Code veröffentlicht http://github.com/utmoto

  2. Dash https://dash.plotly.com/

  3. plotly https://plotly.com/

Recommended Posts

Ich habe versucht, Human In The Loop zu implementieren - Teil ① Dashboard -
Ich habe versucht, die inverse Gammafunktion in Python zu implementieren
Ich habe N-Queen in verschiedenen Sprachen implementiert und die Geschwindigkeit gemessen
Ich habe mich im Labyrinth verlaufen
Ich habe an der ISUCON10-Qualifikationsrunde teilgenommen!
Ich habe die Warteschlange in Python geschrieben
Ich habe den Stack in Python geschrieben
Erleben Sie Teil I "Multinationale Währung" des Buches "Test Driven Development" mit Python
Ich möchte mit dem Reim Teil1 umgehen
Implementieren Sie einen Teil des Prozesses in C ++
Ich möchte mit dem Reim part3 umgehen
Ich habe versucht, die verkratzten Daten in CSV zu speichern!
Ich habe versucht, Couseras logistische Regression in Python zu implementieren
Schriftliche Auswahlsortierung in C.
Ich kann das Element in Selen nicht bekommen!
Ich habe den Gleitflügel in der Schöpfung geschrieben.
Ich habe das VGG16-Modell mit Keras implementiert und versucht, CIFAR10 zu identifizieren
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
DQN mit TensorFlow implementiert (ich wollte ...)
Ich habe versucht, Robinsons Bayesian Spam Filter mit Python zu implementieren
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich möchte mit dem Reim part7 (BOW) umgehen
Ich kann keine Zeichen in den Textbereich eingeben! ?? !! ?? !! !! ??
Schleifen Sie gleichzeitig Variablen in der Vorlage
Ich habe den im Qiita Adventskalender 2016 gelöschten Kalender überprüft
Ich möchte den Fortschritt in Python anzeigen!
Ich habe CycleGAN (1) implementiert.
Ich habe ResNet implementiert!
Ich habe versucht, die Suche nach Breitenpriorität mit Python zu implementieren (Warteschlange, selbst erstelltes Zeichnen).
[Deep Learning von Grund auf neu] Ich habe die Affine-Ebene implementiert
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Suchen Sie den Teil 575 aus Wikipedia in Python
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Implementierte den Algorithmus von "Algorithm Picture Book" in Python3 (Heap Sort Edition)
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich möchte mit dem Reim part6 umgehen (einmal organisieren)
Was ich durch die Teilnahme am ISUCON10-Qualifying gelernt habe
Ich kann den Darknet-Befehl in Google Colaboratory nicht verwenden!
Ich möchte mit dem Reim part8 umgehen (einmal fertig)
Ich habe einen Vim-ähnlichen Ersetzungsbefehl in Slackbot #Python implementiert
"Deep Learning from Grund" Memo zum Selbststudium (Teil 8) Ich habe die Grafik in Kapitel 6 mit matplotlib gezeichnet