[PYTHON] Bedeutet Memo, wenn versucht wird, maschinelles Lernen mit 50 Bildern durchzuführen

Überblick

Ich bin ein super Anfänger im maschinellen Lernen, daher habe ich eine Webanwendung entwickelt, die Bilder verwendet. "Wenn du tiefes Lernen verwendest, kannst du etwas dagegen tun ~" Ich dachte, dass es nicht funktioniert, und beriet mich mit einem berühmten Senior für maschinelles Lernen in der Firma.

Was ich diesmal machen möchte

** Eine Website, auf der Sie antworten können, wenn Sie gefragt werden: "Wer ist Ihr Lieblingsunterhalter?" Auf einer Trinkparty **

Erforderliche UX

  1. Ein Benutzer besucht eine Website
  2. Es werden Bilder von ca. 50 Modellen angezeigt. Wählen Sie daher für jedes Modell eines aus: "Typ", "Leicht ähnlich", "Normal", "Leicht schwach" und "Sehr schwach".
  3. Aus dem Ergebnis werden das Gesichtsfoto des Entertainers angezeigt, das dem Benutzer gefallen wird, und die Worte "Das wird Ihnen gefallen".
  4. ** Auf der Trinkparty kannst du antworten "Mir wurde gesagt, dass Maki Horikita die Art künstlicher Intelligenz ist" **

Willst du es nicht wirklich? Diese Standardfrage auf einer Trinkparty war ziemlich problematisch, seit ich Mitglied der Gesellschaft geworden bin. Ich möchte wirklich, dass Sie in der Lage sind, eine solche Geschichte zu beantworten.

Vorabprüfung

Vorläufig hatte ich einige Kenntnisse über tiefes Lernen, also dachte ich darüber nach, um diese Anforderung zu realisieren

Damit

――Sie können vorhersagen, welche der fünf Ebenen für das "Image einer Berühmtheit" bewertet wird.

Es sollte ein solches Lernmodell erstellt werden. Wenn jedoch Zehntausende von Trainingsdatenblättern wie JINS BRAIN vorhanden sind, erhöht sich die Vorhersagegenauigkeit erneut, diesmal jedoch um 50 Blätter. Da es aus "dem Bild des Modells von" gelernt wird, war die Anzahl der Blätter zu gering und die Vorhersage konnte überhaupt nicht gemacht werden.

Und

Als ich im internen Tagesbericht kommentierte, dass "ich leide, dass ich die Lerngenauigkeit mit 50 Blättern nicht verbessern kann", erhielt ich Kommentare von leitenden Ingenieuren, die über Kenntnisse der KI im Unternehmen und der Synchronisation verfügen, und kombinierte die Inhalte mit meinen Eindrücken Ich möchte es zusammenfassen. Es ist nur ein Memo, also gibt es nichts Besonderes, aber ich hoffe, dass ähnliche Super-Anfänger des maschinellen Lernens es sehen und die Tiefe dieser Welt erkennen können.

Bildauffüllung

Erstens, obwohl dies keine grundlegende Lösung für diesen Fall ist, besteht die Standardtechnik bei einer geringen Anzahl von Blättern darin, ähnliche Bilder auf programmierbare Weise zu erzeugen und sie aufzublasen. http://qiita.com/bohemian916/items/9630661cd5292240f8c7 Sie können lernen, indem Sie den Kontrast ändern, indem Sie auf diesen Artikel verweisen. Wenn Sie sich jedoch zu sehr auf Polsterung verlassen, kann dies leicht zu Überlernen führen und sollte nicht zu selbstsicher sein.

Hinzufügen von Funktionen

Ich habe auch einen solchen Kommentar erhalten.

Wenn dies durch eine einfache DNN-Implementierung bestimmt wird, sind 50 Blatt nicht möglich. Die Genauigkeit kann jedoch auch bei kleinen Datenmengen verbessert werden, indem nicht nur Bilder, sondern auch Funktionen hinzugefügt werden, die einfach als Trainingsdaten eingefügt werden können. Wenn Sie beispielsweise anhand eines Bilds von der Außenseite des Gebäudes bestimmen möchten, ob es sich um eine Wohnung, eine Wohnung oder ein Einfamilienhaus handelt, aber nur 50 Bilddaten erfasst werden können, können die Bilddaten sowie die Anzahl der Stockwerke und die Menge des Gebäudes separat erfasst werden. Wenn Sie mehr hinzufügen, erhalten Sie mehr Genauigkeit.

Ich sehe in diesem Beispiel, dass die Merkmalsmenge schwarze Haare oder große Augen sind.

Ich denke, es gibt eine Möglichkeit, Feature-Punkte aus einem Bild zu extrahieren und zu verarbeiten (in einen Klassifikator wie SVM einfügen).

Hmmm, neben DNN gibt es noch andere Methoden zur Bildklassifizierung. Natürlich hatte ich nach SVM gefragt, aber ich persönlich dachte, dass dies in der Entwicklung der künstlichen Intelligenz liegt und dass es ein Erbe der Vergangenheit geworden ist.

Verwenden Sie andere Bildklassifizierungstechniken als maschinelles Lernen

Wenn es zum Beispiel so etwas wie "Wenn ein bestimmtes Logo enthalten ist, wird es eindeutig sein" ist, denke ich, dass die Menge der gesiebten Surffunktionen verwendet werden kann. Persönlich habe ich das Gefühl, dass "Bilderkennung = maschinelles Lernen" aufgehört hat zu denken.

Korrekt. Es gibt auch die Ansicht, dass maschinelles Lernen nicht notwendig ist, wenn Sie in Worten erklären können, welche Eigenschaften ein menschliches Gesicht hat. Ich hatte noch nie von Sirf- und Surf-Features gehört. Referenz: https://www.slideshare.net/lawmn/siftsurf

Kooperative Filterung

Da wir diesmal versuchen, Menschen, die es in Zukunft mögen werden, auf der Grundlage früherer Eingaben auszugeben, haben wir die Meinung erhalten, dass es den Empfehlungen sinnlich nahe kommt. ▼ Referenz http://qiita.com/ynakayama/items/59beb40b7c3829cc0bf2

Wenn es jedoch um die Co-Filterung geht, treffen wir Vorhersagen in Bezug auf die Eingabeinformationen anderer Personen. Daher haben wir festgestellt, dass diesmal die Serviceanforderungen nicht erfüllt wurden. In einer Musik-App sollten Benutzer, die diesen Song mögen, nach einiger Zeit seit ihrer Veröffentlichung im Allgemeinen auch diesen Song mögen.

Hauptkomponentenanalyse

Wenn es um diesen Bereich ging, bekam ich meinen Kopf nicht wirklich. Ich werde jedoch vorerst eine Notiz machen. http://blog.amedama.jp/entry/2017/04/02/130530 Ich habe keine Ahnung, aber ist es ein Mechanismus, der die Dimension mehrdimensionaler Daten reduzieren und den Bedeutungsverlust so weit wie möglich reduzieren kann? Wenn dies möglich ist, können die Merkmale des Bildes in zwei Dimensionen ausgedrückt werden ...?

Factorization Machines http://qiita.com/wwacky/items/b402a1f3770bee2dd13c ???? Es ist nicht mehr klar, ob es für irgendeinen Zweck verwendet wird. .. .. Ich werde dich noch einmal fragen. Ich kann es nicht einmal verstehen. .. ..

Clusteranalyse (K-Mittel-Methode)

http://pythondatascience.plavox.info/scikit-learn/%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E5%88%86%E6%9E%90-k-means Dies kam mir, als ich diesmal über die Service-Spezifikationen nachdachte. Es scheint, dass es als unbeaufsichtigtes Lernen eingestuft wird Es scheint möglich zu sein, die Modellbilder zu klassifizieren und im Voraus herauszufinden, welchem Bild das Bild des Prominenten nahe kommt. Mit anderen Worten, Sie können überlegen, welche der Klassen Ihrem Geschmack in dem vom Benutzer eingegebenen Bild am nächsten kommt, und sie ausgeben. Anstatt ein trainiertes Modell zu erstellen, fühlt es sich wie eine wirklich einfache Klassifizierung an.

Es unterscheidet sich von dem Bild, das ich ursprünglich gedacht habe, aber wenn die Technologie, mit der Bilder klassifiziert werden können, anders als Deep Learning realisiert werden kann, scheint es nicht erforderlich zu sein, Deep Learning zu verwenden.

Das Problem ist, wie man das klassifiziert, aber ... Ist es so, als würde man den Pixelwert des Bildes als Wert verwenden oder Hautfarbe, Haarfarbe, Augengröße usw. bewerten und quantifizieren, um sie zu klassifizieren?

Lernen stärken

http://qiita.com/PonDad/items/2410c55b2d21e7cad7bc Ich halte die Stärkung des Lernens auch für eine relativ mögliche Methode. Laden Sie das Bild, und wenn es "Typ" ist, geben Sie eine Belohnung, und wenn es "nicht gut" ist, geben Sie eine Strafe. Ich bin jedoch der Meinung, dass der Zweck anders ist, und bin daher zu dem Schluss gekommen, dass es keinen Grund gibt, dies anstelle einer Clusteranalyse zu übernehmen.

Naiver Bayes-Klassifikator

http://qiita.com/ynakayama/items/ca3f5e9d762bbd50ad1f Es scheint, dass Leute, die dieses Modell mögen, erfahren werden, dass es eine hohe Wahrscheinlichkeit gibt, dass sie dieses Modell auch mögen werden. Obwohl dies beim Erweitern des Dienstes verwendet werden kann, kann es meiner Meinung nach in der ersten Version nicht eingeführt werden. Es war ähnlich wie bei der kooperativen Filterung.

Bildklassifizierung

Als Erweiterung der Idee des Clustering wird sogar die Ähnlichkeit der Bilder berechnet, und die Ähnlichkeit zwischen dem Bild des Modells für die Stichprobe und dem Gesicht der Berühmtheit wird im Voraus berechnet und ist der Benutzereingabe am ähnlichsten. Es kam die Idee auf, dass wir eine Berühmtheit mit einem hohen Gesamtgrad wählen sollten. Ich habe das Gefühl, dass ich es schaffen kann, nachdem ich die folgenden Artikel gelesen habe.

――Lass uns mit AI "normal" anhand des Gesichtsbildes beurteilen! Future Tech Blog - Future Architect https://future-architect.github.io/articles/20170526/ #future_architect @future_techblog

--Berechnen Sie die Bildähnlichkeit mit Python + OpenCV von @best_not_best auf @Qiita http://qiita.com/best_not_best/items/c9497ffb5240622ede01

Insbesondere der Artikel, in dem Shiba-Hunde mit Python + OpenCV klassifiziert werden, scheint dem Anwendungsfall nahe zu kommen, einen Lieblingsunterhalter anhand eines menschlichen Gesichtsfotos zu finden.

Es fühlt sich wie eine schnelle Suche an, und die Artikel hier sind wahrscheinlich hilfreich.

Fazit

Ich dachte, es gäbe nur tiefes Lernen, aber als ich verschiedene Mittel hörte, schien es am realistischsten, einen Algorithmus zu verwenden, der die Ähnlichkeit von Bildern findet.

Impressionen

Ich war überrascht, dass es so viele Möglichkeiten gab, weil ich nicht genug Mittel hatte. Obwohl ich den Namen und die Umrisse einiger von ihnen kannte, entschied ich, dass es sich um eine versteinerte Technologie bei der Herstellung von KI handelt, aber ich werde bedenken, dass es auch die richtige Person am richtigen Ort ist. Ich tat.

Recommended Posts

Bedeutet Memo, wenn versucht wird, maschinelles Lernen mit 50 Bildern durchzuführen
Persönliche Best-Practice-Vorlage, die verwendet werden soll, wenn Sie MVP mit Flask erstellen möchten
Einstellungen, wenn Sie Python-Mecab mit Travis ausführen möchten
Wenn Sie mit dem Django REST-Framework filtern möchten
Der erste Schritt des maschinellen Lernens ~ Für diejenigen, die versuchen möchten, mit Python zu implementieren ~
[Django] Memorandum, wenn Sie asynchron kommunizieren möchten [Python3]
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
Für diejenigen, die mit TensorFlow2 maschinelles Lernen beginnen möchten
So erhöhen Sie die Anzahl der Datensatzbilder für maschinelles Lernen
Wenn Sie die Anfangsdaten von Django mit Relationen registrieren möchten
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Eine Website, auf der Sie sehen können, wann Sie ein Papier zum maschinellen Lernen lesen möchten, das jedoch schwierig zu sein scheint
[Einführung in Style GAN] Einzigartiges Lernen von Animation mit Ihrer eigenen Maschine ♬
Wenn Sie ein Objekt mit Anforderungen mithilfe der Flasche senden möchten
Wenn Sie das Intervall der Achsenskala mit APLpy anpassen möchten
Ich habe versucht, Othello AI mit Tensorflow zu machen, ohne die Theorie des maschinellen Lernens zu verstehen ~ Einführung ~
Ich habe versucht, Othello AI mit Tensorflow zu erstellen, ohne die Theorie des maschinellen Lernens zu verstehen ~ Implementierung ~
Memorandum für die Migration mit GORM
[Einführung in das maschinelle Lernen] Bis Sie den Beispielcode mit Chainer ausführen
Wenn Sie es so verwenden möchten, wie es ist, wenn Sie es mit Lambda-Memo verwenden
Ein Gist-Repository, das Sie verwenden können, wenn Sie es mit ansible ausprobieren möchten
Wenn Sie eine Spalte spaltenweise durch einen fehlenden Wert (NaN) ersetzen möchten
Python Hinweis: Wenn Sie die Attribute eines Objekts kennen möchten
Wenn Sie den HTTP-Header des Testclients von Flask ändern möchten
Ich möchte das Problem des Speicherverlusts bei der Ausgabe einer großen Anzahl von Bildern mit Matplotlib lösen
Ich habe versucht, Othello AI mit Tensorflow zu erstellen, ohne die Theorie des maschinellen Lernens zu verstehen ~ Battle Edition ~
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte ein Spiel mit Python machen
Wenn Sie den Chrome-Treiber aktualisieren möchten.
[OpenCV] Wenn Sie überprüfen möchten, ob es mit imread richtig gelesen wird
Ein Anfänger des maschinellen Lernens versuchte, mit Python ein Vorhersagemodell für Pferderennen zu erstellen
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Was Sie sich mit der grundlegenden Grammatik "String Manipulation" von Python merken möchten
Ein Liner, um Lena-Bilder mit scipy zu machen
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 2
Ich bin ein Amateur am 14. Tag von Python, aber ich möchte maschinelles Lernen mit Scicit-Learn ausprobieren
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Anordnung von selbst erwähnten Dingen im Zusammenhang mit maschinellem Lernen
Erstellen eines Gesichtsbilddatensatzes für maschinelles Lernen (2: Rahmenanalyse von Videos, um Kandidatenbilder zu erhalten)
Ich habe versucht, mit Python Machine Learning ein Echtzeit-Modell zur Trennung von Tonquellen zu erstellen
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
Wichtige Punkte von "Maschinelles Lernen mit Azure ML Studio"
Ich möchte Bilder von Katzen von Instagram erkennen
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Versuchen Sie, den Wechselkurs (FX) mit nicht tiefem maschinellem Lernen vorherzusagen
Links, um mit Sublime Text zu tun, was Sie wollen
Prognostizieren Sie das Geschlecht von Twitter-Nutzern durch maschinelles Lernen
Maschinelles Lernen mit Bildern der Kategorie Caffe -1 unter Verwendung eines Referenzmodells
Anfänger des maschinellen Lernens versuchen, einen Entscheidungsbaum zu erstellen
Site-Zusammenfassung zum Erlernen des maschinellen Lernens mit englischen Videos
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Aufzeichnung der ersten Herausforderung des maschinellen Lernens mit Keras