[PYTHON] Versuchen Sie, eine lineare Regression mit Pytorch mit Google Colaboratory zu implementieren

Für Anfänger! Es wird davon ausgegangen, dass Sie über Grundkenntnisse in Deep Learning verfügen. Implementieren wir die lineare Regression mit Pytorch, einer Bibliothek für maschinelles Lernen. Es ist einfach und daher eine großartige Einführung in das maschinelle Lernen.

Was ist Pytorch?

Eine Open-Source-Bibliothek für maschinelles Lernen für Python, die ursprünglich von der Facebook-Forschungsgruppe für künstliche Intelligenz entwickelt wurde. Die Lesung ist Kuchenfackel.

Es ist in den letzten Jahren unter den Deep Learning-Bibliotheken populär geworden. Es wird empfohlen, da es sehr einfach zu beschreiben ist.

Was ist Google Colaboratory?

Es handelt sich um eine Python-Ausführungsumgebung, die von Google kostenlos zur Verfügung gestellt werden kann.

Die GPU kann ebenfalls verwendet werden und die für das maschinelle Lernen erforderlichen Bibliotheken sind vorinstalliert. Es ist schwierig, eine maschinelle Lernumgebung lokal zu erstellen, daher werde ich dieses Mal Google Colaboratory verwenden.

Weiter unten finden Sie Informationen zur Verwendung. Sie können es in ca. 1 Minute verwenden. https://qiita.com/shoji9x9/items/0ff0f6f603df18d631ab

Versuchen Sie, eine lineare Regression zu implementieren

Installieren Sie die erforderlichen Bibliotheken.

import torch
from torch import nn
import matplotlib.pyplot as plt
import numpy as np

Erstellen wir ein zufälliges Verteilungsmodell und zeichnen es auf. Lineare Regression auf dieser Figur.

x = torch.randn(100, 1) * 10
y = x + torch.randn(100, 1) * 3
plt.plot(x.numpy(), y.numpy(), "o")
plt.ylabel("y")
plt.xlabel("x")

Wenn ich es starte, denke ich, dass die folgende Abbildung ausgegeben wird. pytorch-liniear-regression01.png

Definiert ein Modell für die lineare Regression. Es erbt von nn.Module und definiert in init ein Modell, das die Größe der Ein- und Ausgänge angibt.

class LR(nn.Module):
  def __init__(self, input_size, output_size):
    super().__init__()
    self.linear = nn.Linear(input_size, output_size)
  def forward(self, x):
    pred = self.linear(x)
    return pred

Korrigieren Sie den Startwert der Zufallszahl. Erstellen Sie eine Instanz des linearen Regressionsmodells.

torch.manual_seed(1)
model = LR(1, 1)

Definieren Sie eine Funktion, die Modellparameter abruft.

[w, b] = model.parameters()
def get_params():
  return (w[0][0].item(), b[0].item())

Definieren Sie die zu zeichnende Funktion. Das Extrahieren von Parametern aus dem Modell definiert y1.

def plot_fit(title):
  plt_title = title
  w1, b1 = get_params()
  x1 = np.array([-30, 30])
  y1 = w1*x1 + b1
  plt.plot(x1, y1, "r")
  plt.scatter(x, y)
  plt.show()

Lassen Sie uns die Figur zeichnen, bevor wir lernen. Sie können sehen, dass die rote Linie ausgeschaltet ist, weil es vor dem Lernen ist.

plot_fit("initial Model")

pytorch-liniear-regression02.png

Jetzt ist es Zeit, sich auf das Lernen vorzubereiten. Die Verlustfunktion ist als quadratischer mittlerer Fehler definiert, und die Lernmethode ist als stochastische Gradientenabstiegsmethode definiert. Die Lernrate beträgt 0,01.

criterion = nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr = 0.01)

Lass uns lernen! Die Epoche ist auf 100 eingestellt. Notieren Sie den Verlust.

epochs = 100
losses = []
for i in range(epochs):
  y_pred = model.forward(x)
  loss = criterion(y_pred, y)
  print("epoch:", i, "loss:", loss.item())
  
  losses.append(loss)
  optimizer.zero_grad()
  loss.backward()
  optimizer.step()

Werfen wir einen Blick auf den Lernprozess.

plt.plot(range(epochs), losses)
plt.ylabel("Loss")
plt.xlabel("epoch")

pytorch-liniear-regression03.png

Sie können sehen, dass Sie lernen. Lassen Sie uns die Figur nach dem Training zeichnen.

plot_fit("Trained Model")

pytorch-liniear-regression04.png

Sie können sehen, dass Sie richtig lernen.

das ist alles. Danke für deine harte Arbeit!

Ich habe versucht, lineare Regression mit Pytorch zu lernen. Pytorch und Google Colaboratory machen es ziemlich einfach, maschinelles Lernen zu erleben. Probieren Sie es aus! !!

Recommended Posts

Versuchen Sie, eine lineare Regression mit Pytorch mit Google Colaboratory zu implementieren
Versuchen Sie mit einem linearen Regressionsmodell auf Android [PyTorch Mobile] zu schließen
Analysieren mit Google Colaboratory mithilfe der Kaggle-API
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
So suchen Sie in Google Colaboratory nach Google Drive
Ich habe versucht, CVAE mit PyTorch zu implementieren
Verwendung des Jupyter-Kernels von Java mit Google Colaboratory
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Laden Sie Dateien direkt auf Google Drive herunter (mithilfe von Google Colaboratory).
Lineare Regression mit Statistikmodellen
Versuchen Sie, yolact zu implementieren
Regression mit einem linearen Modell
Versuchen Sie eine Regression mit TensorFlow
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
So laden Sie Dateien in Google Drive mit Google Colaboratory
Versuchen Sie, mit MVC eine RESTful-API mit Flask 1.0.2 zu erstellen
Ich habe versucht, SSD jetzt mit PyTorch zu implementieren (Dataset)
Erstellen einer Umgebung für die Verwendung von CaboCha mit Google Colaboratory
Analysieren mit Google Colaboratory mithilfe der Kaggle-API
Optimieren der Django-Administrationsseite
Versuchen Sie, den Boden durch Rekursion herauszufordern
Versuchen Sie, PythonTex mit Texpad zu verwenden.
Versuchen Sie Google Mock mit C.
Probieren Sie StyleGAN mit Google Colaboratory aus
Versuchen Sie es mit matplotlib mit PyCharm
Versuchen Sie Auto Encoder mit Pytorch
Lernen Sie Python mit Google Colaboratory
Versuchen Sie, XOR mit PyTorch zu implementieren
Implementieren Sie PyTorch + GPU mit Docker
Lineare Regressionsmethode mit Numpy
Versuchen Sie, Lebensmittelfotos mithilfe der Google Cloud Vision-API zu beurteilen
[Python] Lineare Regression mit Scicit-Learn
Ich habe versucht, SSD jetzt mit PyTorch zu implementieren (Modellversion)
So verwenden Sie Google Colaboratory
Robuste lineare Regression mit Scikit-Learn
So zeigen Sie Formeln in Latex an, wenn Sie sympy (> = 1.4) in Google Colaboratory verwenden
Verwendung von Google Colaboratory und Verwendungsbeispiel (PyTorch × DCGAN)
Ich habe versucht, die Satzklassifizierung durch Self Attention mit PyTorch zu implementieren
Versuchen Sie, Google Map und Geography Map mit Python anzuzeigen
Einführung in die Bayes'sche statistische Modellierung mit Python ~ Versuch einer linearen Regression mit MCMC ~
Einführung in Deep Learning (2) - Versuchen Sie Ihre eigene nichtlineare Regression mit Chainer-
Selbststudien-Memo "Deep Learning from Grund" (Nr. 13) Verwenden Sie Google Colaboratory
[Statistik] [R] Versuchen Sie, die Teilungspunktregression zu verwenden.
Anfänger des maschinellen Lernens versuchen eine lineare Regression
Versuchen Sie, sich mit ONNX Runtime zu profilieren
Versuchen Sie, Nagios mit pynag zu konfigurieren
Lineare Regression mit Student's t-Verteilung
Aufblasen von Daten (Datenerweiterung) mit PyTorch
Versuchen Sie, Statistiken mit e-Stat abzurufen
OpenCV-Funktionserkennung mit Google Colaboratory
Versuchen Sie, Audio mit M5 STACK auszugeben
Versuchen Sie, Pythons networkx mit AtCoder zu verwenden
Sinuswellenvorhersage (Rückkehr) mit Pytorch
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
(Maschinelles Lernen) Ich habe versucht, die Bayes'sche lineare Regression bei der Implementierung sorgfältig zu verstehen
Vorhersage von Effekten mit LSTM mithilfe von Keras + Tensorflow Teil 2 (Berechnung mit GPU)
Versuchen Sie, die Datenbank unter IBM i mit Python + JDBC mithilfe von JayDeBeApi zu starten
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
[Anfänger] Leicht verständliches Python-Web-Scraping mit Google Colaboratory