[PYTHON] Maschinelles Lernen mit Nogisaka 46 und Keyakizaka 46 Teil 1 Einführung

Wenn ich mich vorstelle, bin ich ein Schüler der 4. Klasse, der eine naturwissenschaftliche Universität in Tokio besucht, und da ich die Schule abschließen werde, werde ich für die nächsten 2 Jahre ein Moratorium sein > < Ich suche einen Teilzeitjob in einem Unternehmen wie maschinelles Lernen lol. Wenn Sie eine Personalabteilung haben, kontaktieren Sie mich bitte lol Ich höre oft das Wort maschinelles Lernen / KI, das ich oft in der Welt höre, in meinem Labor, aber ich glaube, ich verstehe die Theorie ein wenig: "CNN? RNN? Falten? Boltzmann-Maschine? Normalisierung?" Ich habe es noch nie zuvor gemacht, daher denke ich, dass ich versuchen werde, eine KI basierend auf meinem Favoriten "Nogisaka 46 / Keyakizaka 46" zu erstellen. Mein Erfahrungswert ist fast 0, also hoffe ich, dass Sie ihn als Graffiti für Anfänger sehen können. Ich möchte am Ende tief über Idole schreiben lol

1. Was zu machen

Wenn Sie kein Ziel für das, was gemacht werden soll, festlegen, wird es nicht gestartet. Setzen Sie sich also ein Ziel. In meiner Interpretation ist maschinelles Lernen ein egoistisches Verständnis einer Funktion, die "eine probabilistische Kennzeichnung" aus einem "Datensatz" zurückgibt. Als ich darüber nachdachte, eine KI basierend auf Nogisaka und Keyakizaka zu erstellen, kam mir die Idee einer "KI, die die Mitglieder auf dem Foto des Mitglieds automatisch klassifiziert und speichert" lol Ich dachte, es wäre schön, eine KI zu haben, die bestimmt, wer in welchem Part singt, wenn ein Lied eingefügt wird, aber da ich die Spracherkennung noch nicht verstanden habe, würde ich es gerne versuchen, nachdem die Bildidentifikation abgeschlossen ist. Überlegen.

2. KI machen

Nachdem wir uns das Ziel gesetzt haben, eine "KI zu erstellen, die die Mitglieder auf dem Foto des Mitglieds automatisch klassifiziert und speichert", möchte ich die Mittel auswählen, um dieses Ziel zu erreichen. Es gibt viele Frameworks wie TensorFlow, Chainer, Caffe, die ich im Bereich des maschinellen Lernens oft höre, aber dieses Mal möchte ich eine ähnliche KI mit Tensorflow und Chainer erstellen und vergleichen. Ich habe gehört, dass Caffe als Dämon installiert ist, also habe ich Caffe lol vermieden

3. Umweltbau

Daher möchte ich Python, Tensorflow und Chainer auf meinem PC installieren. Viele Leute haben Artikel darüber gepostet, deshalb werde ich diesmal darauf verzichten. Wenn Sie diese als Referenz lesen, können Sie die oben genannten drei möglicherweise auf Ihrem eigenen PC installieren.

Ich konnte es so sicher installieren.

4. Versuchen Sie, Zahlen tatsächlich zu erkennen

Da ich TensorFlow und Chainer eingeführt habe, werde ich versuchen, dies zu demonstrieren, einschließlich der Bestätigung, dass es tatsächlich ordnungsgemäß mit numerischen MNIST-Daten funktioniert. MNIST ist fast immer das erste, was im Bereich des maschinellen Lernens auftaucht, und ist ein Datensatz handgeschriebener Zahlen. Werfen Sie diese in Frameworks wie TensorFlow und Chainer, um zu sehen, ob sie gelernt und identifiziert werden können. Es gibt fast keine schwierige Aufgabe wie Hello World, wenn man in anderen Sprachen lernt, also würde ich es gerne tun (es ist schwierig, die Theorie zu verstehen). Der eigentliche Code sieht folgendermaßen aus:

tf_mnist.py


import argparse
import sys

from tensorflow.examples.tutorials.mnist import input_data

import tensorflow as tf

FLAGS = None


def main(_):
  #Daten lesen
  mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)

  #Deklarieren Sie Eingaben, Gewichte, Verzerrungen und Ausgaben. 784=28*28, 1 Pixel 1 Bit Eingang
  x = tf.placeholder(tf.float32, [None, 784])
  W = tf.Variable(tf.zeros([784, 10]))
  b = tf.Variable(tf.zeros([10]))
  y = tf.matmul(x, W) + b

  #Variable y zur Eingabe der Antwort bei der Berechnung der Kreuzentropie_Erklären
  y_ = tf.placeholder(tf.float32, [None, 10])
  #Berechnen Sie die Kreuzentropie
  cross_entropy = tf.reduce_mean(
      tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))
  train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

  sess = tf.InteractiveSession()
  tf.global_variables_initializer().run()
  #Lernen
  for _ in range(1000):
    batch_xs, batch_ys = mnist.train.next_batch(100)
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

  #Berechnen Sie die richtige Antwortrate zwischen der tatsächlichen Antwort und dem Lernmodell
  correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
  accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
  print(sess.run(accuracy, feed_dict={x: mnist.test.images,
                                      y_: mnist.test.labels}))

if __name__ == '__main__':
  parser = argparse.ArgumentParser()
  parser.add_argument('--data_dir', type=str, default='/tmp/tensorflow/mnist/input_data',
                      help='Directory for storing input data')
  FLAGS, unparsed = parser.parse_known_args()
  tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)

ch_mnist.py


from __future__ import print_function

import argparse

import chainer
import chainer.functions as F
import chainer.links as L
from chainer import training
from chainer.training import extensions

#Definieren Sie ein neuronales Netzwerk
class MLP(chainer.Chain):

    def __init__(self, n_units, n_out):
        super(MLP, self).__init__()
        with self.init_scope():
            # the size of the inputs to each layer will be inferred
            self.l1 = L.Linear(None, n_units)  # n_in -> n_units
            self.l2 = L.Linear(None, n_units)  # n_units -> n_units
            self.l3 = L.Linear(None, n_out)  # n_units -> n_out

    def __call__(self, x):
        h1 = F.relu(self.l1(x))
        h2 = F.relu(self.l2(h1))
        return self.l3(h2)


def main():
    #Stellen Sie Einstellungen in der Befehlszeile vor
    parser = argparse.ArgumentParser(description='Chainer example: MNIST')
    parser.add_argument('--batchsize', '-b', type=int, default=100,
                        help='Number of images in each mini-batch')
    parser.add_argument('--epoch', '-e', type=int, default=20,
                        help='Number of sweeps over the dataset to train')
    parser.add_argument('--frequency', '-f', type=int, default=-1,
                        help='Frequency of taking a snapshot')
    parser.add_argument('--gpu', '-g', type=int, default=-1,
                        help='GPU ID (negative value indicates CPU)')
    parser.add_argument('--out', '-o', default='result',
                        help='Directory to output the result')
    parser.add_argument('--resume', '-r', default='',
                        help='Resume the training from snapshot')
    parser.add_argument('--unit', '-u', type=int, default=1000,
                        help='Number of units')
    args = parser.parse_args()

    print('GPU: {}'.format(args.gpu))
    print('# unit: {}'.format(args.unit))
    print('# Minibatch-size: {}'.format(args.batchsize))
    print('# epoch: {}'.format(args.epoch))
    print('')

    # Set up a neural network to train
    # Classifier reports softmax cross entropy loss and accuracy at every
    # iteration, which will be used by the PrintReport extension below.
    model = L.Classifier(MLP(args.unit, 10))
    if args.gpu >= 0:
        # Make a specified GPU current
        chainer.cuda.get_device_from_id(args.gpu).use()
        model.to_gpu()  # Copy the model to the GPU

    # Setup an optimizer
    optimizer = chainer.optimizers.Adam()
    optimizer.setup(model)

    #Dateninitialisierungszug und Testdaten werden vorbereitet
    train, test = chainer.datasets.get_mnist()

    #Wenn Sie hier Daten in den Iterator einfügen, wird mit dem Lernen fortgefahren
    train_iter = chainer.iterators.SerialIterator(train, args.batchsize)
    test_iter = chainer.iterators.SerialIterator(test, args.batchsize,
                                                 repeat=False, shuffle=False)

    # Set up a trainer
    updater = training.StandardUpdater(train_iter, optimizer, device=args.gpu)
    trainer = training.Trainer(updater, (args.epoch, 'epoch'), out=args.out)

    # Evaluate the model with the test dataset for each epoch
    trainer.extend(extensions.Evaluator(test_iter, model, device=args.gpu))

    # Dump a computational graph from 'loss' variable at the first iteration
    # The "main" refers to the target link of the "main" optimizer.
    trainer.extend(extensions.dump_graph('main/loss'))

    # Take a snapshot for each specified epoch
    frequency = args.epoch if args.frequency == -1 else max(1, args.frequency)
    trainer.extend(extensions.snapshot(), trigger=(frequency, 'epoch'))

    # Write a log of evaluation statistics for each epoch
    trainer.extend(extensions.LogReport())

    # Save two plot images to the result dir
    if extensions.PlotReport.available():
        trainer.extend(
            extensions.PlotReport(['main/loss', 'validation/main/loss'],
                                  'epoch', file_name='loss.png'))
        trainer.extend(
            extensions.PlotReport(
                ['main/accuracy', 'validation/main/accuracy'],
                'epoch', file_name='accuracy.png'))

    # Print selected entries of the log to stdout
    # Here "main" refers to the target link of the "main" optimizer again, and
    # "validation" refers to the default name of the Evaluator extension.
    # Entries other than 'epoch' are reported by the Classifier link, called by
    # either the updater or the evaluator.
    trainer.extend(extensions.PrintReport(
        ['epoch', 'main/loss', 'validation/main/loss',
         'main/accuracy', 'validation/main/accuracy', 'elapsed_time']))

    # Print a progress bar to stdout
    trainer.extend(extensions.ProgressBar())

    if args.resume:
        # Resume from a snapshot
        chainer.serializers.load_npz(args.resume, trainer)

    # Run the training
    trainer.run()


if __name__ == '__main__':
    main()

Dies ist die im TensorFlow, Chainer-Tutorial, und wenn Sie den Google-Lehrer fragen, wird sie sofort gelöscht, lol Das Ergebnis wurde wie folgt ausgegeben und es wurde bestätigt, dass sowohl TensorFlow als auch Chainer handschriftliche Zahlen fest lernen konnten.

nächstes Mal

Das nächste Mal möchte ich über das Sammeln von Datensätzen für die tatsächliche Bilderkennung berichten. Ich hoffe du kannst es lesen.

Schließlich

Es ist keine Übertreibung zu sagen, dass ich diesmal gepostet habe, weil ich dieses lol schreiben wollte Ich bin ein Dollar-Otaku, der Nogisaka 46 und Keyakizaka46 jagt, aber die empfohlenen Männer sind Mittsommer Akimoto, Miri Watanabe und __Fumiho Kato __ (1 empfohlen). Bitte kontaktieren Sie mich, wenn Sie die Möglichkeit haben, sich mit allen Live-Auftritten zu treffen lol ← Ich habe an ziemlich vielen Live-Auftritten teilgenommen, aber ich werde das nächste Mal mehr darüber schreiben, also werde ich es dieses Mal weglassen. Ich habe überhaupt nicht die Hand geschüttelt w Geht es um die Selbsteinführung über die Piste? .. .. Die Ereignisse, die für die Teilnahme am Krieg geplant sind, sind alle Tsu Niigata und Tokyo Dome (geplant). In letzter Zeit ist die Dynamik der Mitglieder der 3. Generation so groß, dass ich überhaupt kein Ticket bekommen kann. Ich habe AiiA, die dritte Amtszeit allein, und die Prinzessin, die mich getötet hat, entfernt. Bitte machen Sie verschiedene Dinge mit dem Management. (So nehme ich auch fest die 3. Amtszeit Einzelgriff lol) Ich habe vor, Kato Fumihos Handshake-Ticket am 5. Keyaki zu stapeln, danke an Toshi-chan. Qiitas Operation ist strenge Zensur, aber wenn dieser Artikel gelöscht wird, werde ich ihn erneut veröffentlichen lol

Recommended Posts

Maschinelles Lernen mit Nogisaka 46 und Keyakizaka 46 Teil 1 Einführung
Einführung in das maschinelle Lernen
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Eine Einführung in das maschinelle Lernen
Super Einführung in das maschinelle Lernen
Site-Zusammenfassung zum Erlernen des maschinellen Lernens mit englischen Videos
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 11 und 12 Einführung in Pandas Matplotlib
Einführung in das maschinelle Lernen Schreiben von Notizen
Einführung in das maschinelle Lernen mit scikit-learn-Von der Datenerfassung bis zur Parameteroptimierung
Einführung in die Bibliothek für maschinelles Lernen SHOGUN
[Einführung in Style GAN] Einzigartiges Lernen von Animation mit Ihrer eigenen Maschine ♬
Einführung in das maschinelle Lernen: Funktionsweise des Modells
Vorhersage des Strombedarfs durch maschinelles Lernen Teil 2
Einführung in Deep Learning ~ Falten und Pooling ~
Eine Einführung in OpenCV für maschinelles Lernen
Eine Einführung in Python für maschinelles Lernen
[Einführung in das maschinelle Lernen] Bis Sie den Beispielcode mit Chainer ausführen
Python-Anfänger veröffentlichen Web-Apps mit maschinellem Lernen [Teil 2] Einführung in explosives Python !!
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Feature Engineering für maschinelles Lernen Beginnend mit Teil 2 Google Colaboratory-Logistic Conversion und Box-Cox Conversion
Einführung in PyQt4 Teil 1
Lerne irgendwie maschinelles Lernen
Ich habe versucht, maschinelles Lernen (Objekterkennung) mit TouchDesigner zu verschieben
Einfaches maschinelles Lernen mit AutoAI (Teil 4) Jupyter Notebook
Maschinelles Lernen mit Raspberry Pi 4 und Coral USB Accelerator
Lernen Sie das kollaborative Filtern zusammen mit Coursera-Materialien für maschinelles Lernen
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Versuchen Sie, den Wechselkurs (FX) mit nicht tiefem maschinellem Lernen vorherzusagen
Künstliche Intelligenz, maschinelles Lernen, tiefes Lernen zu implementieren und zu verstehen
Praktisches maschinelles Lernen mit Scikit-Learn und TensorFlow-TensorFlow gab auf-
[How to!] Lerne und spiele Super Mario mit Tensorflow !!
Einführung in das maschinelle Lernen mit Simple Perceptron
[Maschinelles Lernen] Starten Sie Spark mit iPython Notebook und probieren Sie MLlib aus
MS Learn Recommended Learning Pass Februar-Ausgabe [Einführung in AI]
Einfache Einführung in Home Hack mit Raspberry Pi und discord.py
[Einführung in cx_Oracle] (Teil 6) Zuordnung von DB- und Python-Datentypen
Maschinelles Lernen mit Pokemon gelernt
[Lernmemorandum] Einführung in vim
Erstellen einer virtuellen Anaconda-Umgebung für die Verwendung mit Azure Machine Learning und Verknüpfen mit Jupyter
Lernen Sie nicht mit der TensorFlow ~ Fibonacci-Sequenz der Bibliothek für maschinelles Lernen
Erstellen Sie mit VirtualBox und Ubuntu eine Scikit-Lernumgebung für maschinelles Lernen
[Einführung in cx_Oracle] (Teil 4) Abrufen und Scrollen der Ergebnismenge
Python-Anfänger veröffentlichen Web-Apps mithilfe von maschinellem Lernen [Teil 1] Einführung
So zeichnen Sie interaktiv eine Pipeline für maschinelles Lernen mit scikit-learn und speichern sie in HTML
Maschinelles Lernen mit Python! Vorbereitung
Einführung in RDB mit sqlalchemy Ⅰ
Persönliche Memos und Links zum maschinellen Lernen BI (BI / Visualisierung)
Für diejenigen, die mit TensorFlow2 maschinelles Lernen beginnen möchten
Supereinführung des maschinellen Lernens Probabilistisches Modell und wahrscheinlichste Schätzung
Maschinelles Lernen Minesweeper mit PyTorch
Einführung in Deep Learning ~ Lernregeln ~
Maschinelles Lernen und mathematische Optimierung
Feature Engineering für maschinelles Lernen ab Teil 3 Google Colaboratory-Scale