[PYTHON] Ein Amateur hat Deep Learning mit Caffe ausprobiert (Übersicht)

Einführung

Dieser Beitrag

  1. Was ist Deep Learning? Übersicht (dieser Beitrag)
  2. Installieren Sie Caffe, eine der Deep Learning-Bibliotheken Einführung.
  3. Machen wir ein einfaches Lernen mit Caffe Übung Es besteht aus drei

Obwohl es auch im Titel enthalten ist, handelt es sich um einen Beitrag über eine Aufzeichnung, die von einem Amateur hinterlassen wurde, der weder ein Deep Learning-Forscher noch irgendetwas ist. Bitte verzeihen Sie mir etwaige Fehler und lesen Sie sie. (Wenn etwas nicht stimmt, würde ich es begrüßen, wenn Sie in den Kommentaren darauf hinweisen könnten)

Was ist Deep Learning überhaupt?

Um es grob auszudrücken, es gibt verschiedene Gesichtspunkte, aber Deep Learning macht das Neuronale Netzwerk, das als eine Art maschinelles Lernen bekannt ist, überraschend vielschichtig (Deep) und eine große Datenmenge (Bilder usw.), die bis dahin nicht allgemein bekannt sein kann. Es ist eine der Methoden des maschinellen Lernens, die es ermöglicht, Konzepte höherer Ordnung wie Merkmale und Bedeutungen, die in den Daten enthalten sind, mithilfe von Sprache zu lernen.

Warum Deep Learning Aufmerksamkeit erregt

Deep Learning entstand 2006 in Paper, veröffentlicht von Geoffrey Hinton et al. Von der University of Toronto, Kanada Im Laufe des Jahres war es beim [berühmten Wettbewerb] der Bilderkennung (http://www.image-net.org/) eine schrittweise Entwicklung, die die Leistung um 1-2% pro Jahr verbesserte, aber an zweiter oder niedrigerer Stelle stand. Dies wurde durch den Gewinn der Meisterschaft mit einem überwältigenden Unterschied in der Anerkennungsleistung von 10% oder mehr bemerkt.

Vor kurzem hat Google gesagt, dass Computer Katzen erkennen können. Es wurde berichtet, dass das UC Berkley-Team gelernt hat, Deep Learning zu verwenden, um Robotern dabei zu helfen, einfache Aufgaben automatisch auszuführen. UC Berkley BRETT

Auf diese Weise wird es auch auf Lernroboter usw. angewendet und ist vielseitig einsetzbar, da es eine extrem hohe Leistung aufweist und die Maschine automatisch handwerkliche Teile wie Bildmerkmale erlernen kann, die bisher von Menschen entworfen wurden. Es zieht aufgrund seiner hohen Sexualität Aufmerksamkeit auf sich und die Forschung wird auf der ganzen Welt gefördert.

3 Dinge, die Sie wissen müssen, um mit Deep Learning with Caffe zu beginnen

Natürlich hatte ich keine Schwierigkeiten, verschiedene Dinge zu verstehen (ich bin es überhaupt noch), aber vorerst werden Amateure mit Deep Learning beginnen! Vorher werde ich kurz nur drei Dinge schreiben, die Sie wissen müssen Neural Network Deep Learning ist eine Art neuronales Netzwerk. Sie müssen also über Neural Network Bescheid wissen. Was genau ist das Neuronale Netz?

Das Neuronale Netz ist ein vereinfachtes Modell des elektrischen Signalaustauschs, den Neuronen im Gehirn durchführen.

In Neural Network werden Neuronen als solche modelliert, die ein Signal ausgeben, wenn die gewichtete Eingabe einen bestimmten Schwellenwert überschreitet, und mehrere von ihnen werden vorbereitet und verbunden.

Neural Network Image Zitiert aus Wikipedia

In diesem Beispiel befinden sich 3 Neuronen in Input, 4 in Hidden und 2 in Output, Input ist mit Hidden verbunden und Hidden ist in einer Richtung mit Output verbunden (es gibt auch ein neuronales Netzwerk, das miteinander verbunden ist, aber ich werde es nicht erklären. ) Obwohl in der Abbildung nicht dargestellt, ist das Gewicht oben auf jedem Pfeil angegeben. Dann machen Sie folgendes:

  1. Geben Sie jedem Neuron der Eingabe einen Ausgabewert (numerischen Wert)
  2. Berechnen Sie für jeden Input- und Hidden-Pfeil das Gewicht des Input * -Pfeils und geben Sie es den verbundenen Hidden-Neuronen.
  3. Jedes versteckte Neuron addiert ein Geta, das als Bias-Wert bezeichnet wird, zur Summe der in 2. eingegebenen Werte und gibt es aus, wenn es den Schwellenwert überschreitet.
  4. Lesen Sie Input als Hidden und Hidden als Output und machen Sie einige.
  5. Holen Sie sich die Ausgabe von Output

Ich werde die Details der Formeln weglassen, aber diese werden schließlich als Matrixoperationen ausgedrückt und berechnet. Vorerst denke ich, dass es gut wäre, das Bild zu haben, dass jedes Neuron Eingaben von anderen Neuronen empfängt und es an das nächste Neuron ausgibt, das über einem bestimmten Niveau liegt. Auf diese Weise konnten wir den Austausch elektrischer Signale modellieren, die sich im Gehirn nacheinander ausbreiten.

Erhöhen Sie in Deep Learning die Anzahl der Ebenen (deep = Deep), sodass dies zu Input → Hidden → Hidden → many ・ ・ (viele) ・ ・ ・ → Hidden → Output wird.

Fügen Sie dann beispielsweise das Bild, dh den Wert jedes Pixels, in die Eingabe ein und passen Sie den Gewichtswert so an, dass das oberste Neuron der Ausgabe 1 ist, wenn das Bild eine Katze ist, und andernfalls 0. Dies ist Lernen im Neuronalen Netz Dann wird (hoffentlich) dieses Neuron ausgelöst, wenn es sich um eine Katze handelt, dies wird ausgelöst, wenn es sich um einen Menschen handelt, und so weiter. Die Ausgabe reagiert entsprechend dem Eingabebild, und das Netzwerk erstellt aus dem Bild eine Katze oder einen Menschen mit höherem Konzept. Sie werden erkennen können

GPU Schließlich wiederholt das Neuronale Netz Matrixoperationen, um mit dem Lernen fortzufahren. Natürlich wird die Berechnung mit einem Computer durchgeführt, aber beim Deep Learning wird, wie der Name "Deep" andeutet, die Matrixoperation während des Lernens häufig ausgeführt. Wenn die Berechnung lange dauert, kann es Tage dauern, bis das Lernergebnis angezeigt wird, was ein Problem darstellt.

Also benutzen wir GPU. Die GPU soll ursprünglich die Grafikverarbeitung beschleunigen, die die CPU nicht sehr gut kann. Die GPU verfügt jedoch über mehr Kerne als die CPU und erstellt Tausende von Threads, um diese parallel zu verarbeiten. Es hat die Eigenschaft, dass es gut darin ist, es ernsthaft zu tun. Andererseits wiederholen Matrixoperationen die Summe und das Produkt von Zeilen und Spalten, können jedoch unabhängig berechnet werden (die Berechnung von Zeilen 2 und Spalten 2 muss auf die Multiplikation von Zeilen 1 und Spalten 1 gewartet werden). Es ist nicht so, dass du es nicht kannst), also ist es sehr gut für die Verarbeitung auf einer GPU geeignet. Die Verwendung von GPUs anstelle von CPUs reduziert die für das endgültige Lernen erforderliche Zeit. Daher wird im Deep Learning-Bereich häufig GPUs für Berechnungen verwendet. Es wird empfohlen, GPUs in den unten beschriebenen Bibliotheken zu verwenden.

Insbesondere wird häufig die von nVidia herausgegebene Bibliothek zur Verwendung der GPU CUDA verwendet. Überprüfen Sie in der Bedienungsanleitung der Grafikkarte mit dem nVidia-Chip, ob es sich um eine CUDA-kompatible GPU handelt. Liste der CUDA-kompatiblen Chips (Es tut mir leid, wenn es überhaupt nicht nVidia ist. Wenn die CUDA-kompatible Grafikkarte billig ist, können Sie sie ab etwa 20.000 Yen kaufen!)

Ich habe übrigens keine solche GPU! Ich habe keine Pläne, es zu kaufen! Selbst wenn Sie das sagen, kann Caffe, das später beschrieben wird, das Lernen ausführen (obwohl es langsamer sein wird), selbst wenn Sie die CPU verwenden. Wenn die Daten klein sind, kann das Lernen auch mit der CPU in zehn Sekunden bis Minuten abgeschlossen werden.

Ich denke, Sie sollten sich vorerst daran erinnern, dass das Lernen schneller als die CPU endet, wenn Sie GPU in Deep Learning verwenden.

Deep Learning Bibliothek

Um mit Deep Leaning zu beginnen, können Sie von Grund auf neu programmieren, um Neuron zu modellieren und Lernmechanismen aufzubauen. Deep Learning verfügt jedoch über eine praktische Bibliothek, die das Lernen erleichtert. Viele sind für die Öffentlichkeit zugänglich Hier werden wir Deep Learning mit Caffe durchführen, einer der Bibliotheken darin.

Neben Caffe gibt es Bibliotheken wie Theano und Torch.

Es gibt keinen klaren Grund, aber die Information, dass es einfacher (wahrscheinlich) als Theano ist und die Bibliothek in C ++ geschrieben ist und von Python aus verwendet werden kann, so dass es scheint, dass die Schwelle des Lernens in Bezug auf die Programmiersprache niedrig ist, also hier Caffe Fortfahren mit

Was ich sagen möchte ist, dass es eine Bibliothek gibt, so dass Sie es ohne Wissen tun können.

schließlich

Jetzt können Sie mit Deep Learning beginnen Im nächsten Artikel möchte ich das Verfahren zur Installation von Caffe unter Ubuntu erläutern.

Referenzmaterial

Deep Learning Caffe Video des Deep Learning Lecture an der Nara Advanced University (Englisch) Einführung in die CUDA-Programmierung

Recommended Posts

Ein Amateur hat Deep Learning mit Caffe ausprobiert (Übersicht)
Ein Amateur versuchte Deep Learning mit Caffe (Einführung)
Ein Amateur versuchte Deep Learning mit Caffe (Übung)
Ich habe versucht, mit Theano tief zu lernen
Ich habe versucht, tief zu lernen
Ich habe versucht, das Objekterkennungs-Tutorial mit dem neuesten Deep-Learning-Algorithmus auszuführen
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 2
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 3
Ich habe versucht, ein Deep-Learning-Modell von TensorFlow mit TensorFlow Serving zu hosten
Ein Amateur stolperte in Deep Learning von Grund auf neu. Hinweis: Kapitel 7
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 5
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 1
Ein Amateur stolperte über Deep Learning ❷ von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 4
Ein Amateur stolperte in Deep Learning von Grund auf neu Hinweis: Kapitel 2
Ich habe versucht, mit PyBrain verstärkt zu lernen
Bilderkennungsmodell mit Deep Learning im Jahr 2016
Aktienkursprognose mit Deep Learning (TensorFlow)
[Kaggle] Ich habe versucht, Ensemble mit LightGBM zu lernen
[Python] Wenn ein Amateur mit dem maschinellen Lernen beginnt
Ich habe versucht, Pytorchs Deep-Learning-Modell mit TorchServe auf Amazon SageMaker zu hosten
Tiefes Lernen
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Deep Learning-Anfänger versuchten die Wettervorhersage aus meteorologischen Satellitenbildern mit Keras
Ich habe die gängige Geschichte der Vorhersage des Nikkei-Durchschnitts mithilfe von Deep Learning (Backtest) ausprobiert.
[Python] Deep Learning: Ich habe versucht, Deep Learning (DBN, SDA) ohne Verwendung einer Bibliothek zu implementieren.
Ich habe versucht, PyEZ und JSNAPy zu verwenden. Teil 1: Übersicht
Aktienkursprognose mit Deep Learning (TensorFlow) -Teil 2-
[Kausalsuche / Kausalinferenz] Führen Sie mit Deep Learning eine Kausalsuche (SAM) durch
Aktienkursprognose mit Deep Learning [Datenerfassung]
Deep Learning Memorandum
Starten Sie Deep Learning
Python Deep Learning
Deep Learning × Python
[Pokemon-Schwertschild] Ich habe versucht, die Urteilsgrundlage des tiefen Lernens anhand der Drei-Familien-Klassifikation als Beispiel zu visualisieren
Denken Sie über Party-Attack-ähnliche Wachstumstaktiken mit Deep Learning nach
Ich habe versucht, meinen eigenen Datensatz mit Chainer Trainer zu lernen
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
Ich habe versucht, mit OpenCV Ann Man zu werden
Maschinelles Lernen mit Bildern der Kategorie Caffe -1 unter Verwendung eines Referenzmodells
Ich habe versucht, Dropout zu erklären
Lassen Sie uns tief lernen! Unter Windows (VS2013 + caffe + CUDA7.5 + cudnn5.1)
Sammlung und Automatisierung erotischer Bilder durch Deep Learning
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
[Deep Learning von Grund auf neu] Ich habe versucht, die Gradientenbestätigung auf leicht verständliche Weise zu erklären.