[PYTHON] Eine Geschichte über maschinelles Lernen mit Kyasuket

Bei der PeerCast-Kreativveranstaltung "Kyasuket" wurden die Teilnehmer gebeten, eine große Anzahl von Bildern zu zeichnen. Auf dieser Grundlage wurde eine Identifikations-KI erstellt.

Kyasuket ist wie ein Online-Comic, ein relatives Ereignis, bei dem die Teilnehmer ihre Arbeit veröffentlichen und die Arbeit anderer genießen können. Die Hauptinhalte sind Bilder, Spiele und Werkzeuge. Es findet alle sechs Monate statt.

In diesem Kyasuket (Herbst 2016) haben wir sie gebeten, Bilder von mehreren Arten von Sutatsu-san zu zeichnen (Abbildung unten, ein Beispiel), und basierend auf diesen Daten haben wir identifiziert, welche Art von Sutatsu-san. Erstellt eine KI zu tun. stamp1.png

UI Wir haben vier Seiten vorbereitet: eine Seite zum Schreiben von Bildern als Daten, eine Seite zum Verwenden von AI, eine Seite zum Informationen darüber, wie viele Beiträge veröffentlicht wurden, und eine Seite zum Schreiben kurzer Erklärungen.

Post Seite how_to_post.png AI Seite how_to_use_AI.png Ich habe es so gemacht.

Zeichne zufällig 9 Arten von Bildern und fordere sie auf, sie zu imitieren. Im Gegenteil, AI entschied sich, mit einer Wahrscheinlichkeit zu antworten, welchem Bild es nahe kam.

Ich glaube nicht, dass ich es im alten IE einer Firma sehen würde, also habe ich es in ES2015 geschrieben und platziert, ohne es mit babel zu kompilieren, haha.

Server

Ich schob es in Herokus freie Stufe. Ich habe Flask mit Python3 verwendet. Wenn die ursprüngliche Größe der Bilddaten unverändert bleibt, ist die Datengröße groß. Daher habe ich das Bild 32 x 32 erstellt und es zusammen mit Informationen darüber, um welches Bild es sich handelt, in Herokus PostgreSQL eingefügt.

Ich habe mich für Python entschieden, weil ich TensorFlow für maschinelles Lernen verwendet habe und nicht beabsichtigte, es als Web-App zu komplizieren, also habe ich Flask verwendet. Ich habe Flask-SQL Alchemy verwendet, um mit der Datenbank zu arbeiten.

Es wäre sehr schmerzhaft, ein Bild zeichnen und die Seite aktualisieren zu müssen. Deshalb habe ich die Leinwand nach dem Senden der Daten mit Ajax gerade ausgerichtet. Daher ist die Seite selbst fast statisch und der Server wird hauptsächlich von der json-API betrieben.

AI KI-Herausforderungen sind auf dem gleichen Niveau wie Mnist, daher habe ich es mit ein wenig Arbeit am TensorFlow-Tutorial verständlich gemacht. Der Grund, warum ich es sicher gemacht habe, ohne meine Grenzen zu überschreiten, ist, dass ich innerhalb des Zeitraums Anpassungen vornehmen werde.

Das Modell verwendete Softmax-Regression, mehrschichtiges Perzeptron und CNN, wie im TensorFlow-Lernprogramm gezeigt, damit der Benutzer das Modell auswählen und die Ergebnisse der einzelnen Modelle anzeigen konnte.

Ergebnis

Derzeit werden mehr als 4.500 Daten gesammelt. (Davon schrieb ich ungefähr 1000) Viele Leute schrieben mit mir, als ich den Status des Schreibens von Daten mit PeerCast verteilte, und die meisten Beiträge waren zu dieser Zeit. .. Ich denke, dass die Veranstaltung mit der Reaktion wie PeerCast lebhaft war, die eine Kultur der Freude an sich wiederholenden Arbeiten wie dieser Art von Training hat. (Es wäre schmerzhaft gewesen, den gesamten Zeitplan drei Tage lang weiter zu schreiben, aber es war hilfreich, weil ich erst am ersten Tag genügend Daten gesammelt habe, um genügend Lernergebnisse zu erzielen.) Es war einfach, mit einem Stift zu schreiben, aber es ist mit Smartphones kompatibel. Es wurde nicht gemacht, also haben es vielleicht einige Leute auf ihren Smartphones geschrieben.

Im Gegenteil, wie erwartet gab es einen Story-Beitrag, der das Lernen hätte behindern sollen. Ich würde gerne versuchen, materielle Beiträge zu erkennen, aber das ist eine zukünftige Geschichte. Vorerst habe ich die materialähnlichen Dinge auf Twitter gezeigt, als ich sie mit eigenen Augen sah. Auf dem Bild von Udon gibt es Leute, die gebratenen Reis schreiben, Dinge, die auf jeden Fall Mädchen sind, verschiedene Charaktere usw.

Die Genauigkeit der KI beträgt etwa 70% für Softmax-Regression und mehrschichtiges Perzeptron und 86% für CNN. Im Vergleich zu mnist ist die Gesamtzahl der Daten für die große Datenmenge gering, daher denke ich, dass es darum geht. Im Gegensatz zum Tutorial kam die Genauigkeit erst heraus, wenn ich die Abmessungen und Parameter selbst manipuliert hatte und verschiedene Versuche und Fehler machen musste. Ich habe es bei der Lieferung nicht gemacht, weil ich mich gefragt habe, ob es nach dem Lernen um Mitternacht zu Ergebnissen führen würde, aber ich bedauere, dass einige Leute es erwartet haben könnten. Es braucht jedoch Zeit, um CNN zu lernen ...

Der Umgang mit Daten und Quellcode wird in Zukunft berücksichtigt. Ich bin es leid zu zeichnen.

Reaktion

Ich hatte keine Funktion, um das gepostete Bild anzuzeigen, aber es gab schließlich einige Leute, die es sehen wollten. Ich war besorgt darüber, wie ich es zeigen sollte, aber ich hatte einen Plan, einen anzuzeigen, als ich ihn veröffentlichte.

Einige Leute wollten es von außen mit einem Smartphone versuchen, aber was soll ich tun, weil ich kein Smartphone habe?

Es gibt auch einen Kommentar, dass es ein Dienst war, bei dem Menschen gelernt haben, Sutatsu statt KI zu schreiben. Tatsächlich habe ich in wenigen Sekunden einen geschrieben.

von jetzt an

Was tun mit den Daten? Was tun mit der Öffentlichkeit? Beim nächsten Mal werde ich aus denselben Daten an einem anderen Problem arbeiten. Organisieren Sie, um den Quellcode zu veröffentlichen.

Ich denke, wenn ich eine Pause machen und meine Gedanken zurücksetzen kann.

Recommended Posts

Eine Geschichte über maschinelles Lernen mit Kyasuket
Eine Geschichte über einfaches maschinelles Lernen mit TensorFlow
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Eine Geschichte über die Automatisierung von Online-Mahjong (Jakutama) mit OpenCV und maschinellem Lernen
Eine Geschichte über die Vorhersage des Wechselkurses mit Deep Learning
Eine Geschichte, die mit der Installation der maschinellen Lernbibliothek JAX zusammenhängt
Maschinelles Lernen Eine Geschichte über Menschen, die mit GBDT in GBDT in Python nicht vertraut sind
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
Erstellen Sie eine Python-Umgebung für maschinelles Lernen mit Containern
Geschichte der Verwendung von Resonas Software-Token mit 1Password
Führen Sie eine Pipeline für maschinelles Lernen mit Cloud Dataflow (Python) aus.
Über das Lernen mit Google Colab
Maschinelles Lernen mit Python! Vorbereitung
Eine Geschichte über das Erreichen einer Wiederherstellungsrate von Pferderennen von über 100% durch maschinelles Lernen
Die Geschichte, mit Python eine Hanon-ähnliche Partitur zu machen
Fühlen wir uns wie ein Materialforscher mit maschinellem Lernen
Eine Geschichte über das Ausprobieren eines (Golang +) Python-Monorepo mit Bazel
Über maschinelles Lernen gemischte Matrix
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
Maschinelles Lernen Minesweeper mit PyTorch
Erstellen Sie eine maschinelle Lernumgebung
Die Geschichte, wie theano mit TSUBAME 2.0 verwaltet wurde
Beginnend mit maschinellem Python-Lernen
Versuchen Sie es mit Kaggle leicht maschinell
Erstellen Sie mit Winsows 10 eine maschinelle Lernumgebung von Grund auf neu
Sprechen Sie mit Cython über die Verbesserung des Engpasses bei Algorithmen für maschinelles Lernen
Erstellen Sie mit VirtualBox und Ubuntu eine Scikit-Lernumgebung für maschinelles Lernen
Erstellen Sie eine App für maschinelles Lernen mit ABEJA Platform + LINE Bot
Eine Geschichte über den Wettbewerb mit einem Freund in Othello AI Preparation
Eine Geschichte über die Installation von matplotlib mit pip mit einem Fehler
Eine Geschichte über einen Amateur, der mit Python (Kivy) einen Blockbruch macht ②
Eine Geschichte über den Umgang mit dem CORS-Problem
Eine Geschichte über einen Amateur, der mit Python (Kivy) einen Blockbruch macht ①
Eine Geschichte über das zufällige Erstellen eines kurzen Songs mit Sudachi Py
Eine Geschichte über einen 40-jährigen Ingenieurmanager, der "Deep Learning for ENGINEER" bestanden hat
Eine Geschichte über einen Python-Anfänger, der mit dem No-Modul'http.server 'feststeckt.
Eine erfrischende Geschichte über Slice in Python
Ich habe maschinelles Lernen mit liblinear versucht
Maschinelles Lernen mit Python (1) Gesamtklassifizierung
Eine launische Geschichte über Slice in Python
SVM versucht maschinelles Lernen mit Scikit-Learn
Inverse Analyse des maschinellen Lernmodells
Die Geschichte der Verwendung von Python reduziert
Quanteninspiriertes maschinelles Lernen mit Tensornetzwerken
Beginnen Sie mit dem maschinellen Lernen mit SageMaker
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
Maschinelles Lernen
Eine Geschichte über die Entwicklung eines weichen Typs mit Firestore + Python + OpenAPI + Typescript
So erstellen Sie mit AWS Lambda eine serverlose API für maschinelles Lernen
Vorhersage des Strombedarfs durch maschinelles Lernen Teil 2
Eine Geschichte über einen magischen Umbau, der Lubuntu in ein Chromebook bringt
Verstärken Sie Bilder für maschinelles Lernen mit Python
Unausgeglichenes Datenlernen mit maschinellem Lernen k-NN
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
[Shakyo] Begegnung mit Python zum maschinellen Lernen
Persönliche Notizen und Links zum maschinellen Lernen ① (Maschinelles Lernen)