In diesem Video werden wir Multiple Linear Regression in mehreren Dimensionen überprüfen und wie diese Modelle mit PyTorch zu bauen.
Linear ist vielleicht die am häufigsten verwendete Funktion in PyTorch und ist der Schlüssel zum Aufbau neuronaler Netzwerke.
In diesem Video werden wir überprüfen: Lineare Regression in Mehrere Dimensionen Das Problem der Vorhersage, in
Bezug auf PyTorch wird die Klasse Linear überprüfen und wie benutzerdefinierte Module mit NN.modules zu bauen.
In Multiple lineare Regression haben wir mehrere Prädiktorvariablen, in diesem Beispiel haben wir 4 Prädiktorvariablen
, dann: Wir haben die Bias, w1: Koeffizient oder das Gewicht __1_
w2: Koeffizient oder das Gewicht __2_ und so weiter.
Im Allgemeinen sind Gewicht und Vorspannung Parameter unseres Modells, die wir durch Training erhalten.
Die Tabelle enthält verschiedene Stichproben der Prädiktorvariablen __1_ und __2_.
Die Position jedes Punktes wird auf der 2D-Ebene platziert, farblich kodiert.
Jede Probe der Prädiktorvariablen __1_ und __2_ wird einem neuen Wert __ zugeordnet.
Die neuen Werte von __ (y-hat) werden in vertikaler Richtung abgebildet, wobei die Höhe proportional zu dem Wert ist, den y-hat annimmt.
Wir können die Operation als lineare Transformation ausdrücken, x ist ein 1 durch D Tensor oder Vektor
und wird manchmal als ein Merkmal bezeichnet, w ist ein D von 1 Tensor oder Vektor der Parameter
y-hat ist die abhängige Variable. Mit Punktprodukt können wir die Gleichung in Bezug auf Vektoroperationen zum Ausdruck bringen.
Betrachten Sie das folgende Beispiel mit der Verzerrung gleich eins. Wir führen das Punktprodukt von x und w.
Dies multipliziert die erste Komponente von x und w. Dann fügen wir das Produkt der zweiten Komponente von w und x hinzu.
Wir fügen dann die Verzerrung hinzu, das Ergebnis ist 9.
Die wichtigste Eigenschaft ist die Form. Die Anzahl der Spalten von x,
Muss die gleiche wie die Anzahl der Zeilen von w sein, wir fügen dann b
Wir führen die Punkt-Produkt-Operation, dann hinzufügen b, das Ergebnis ist y-hat.
Wir werden die Farbdarstellung verwenden, um die Beziehung zwischen der Form und den Parametern zu verstehen.
Die folgende gerichtete Grafik ist auch hilfreich, Punktprodukt zu verstehen.
Knoten stellen Features dar, und die Kanten stellen Parameter dar.
Diese Graphen werden später verwendet, um uns zu helfen, neuronale Netze zu verstehen. In diesem Fall haben wir 2 Dimensionen.
Wir können es auf D beliebige Dimensionen erweitern.
Wir können lineare Regression auf mehreren Proben von Tensoren oder Vektoren durchführen, in diesem Fall haben wir 4 Proben, jede Probe hat 4 Spalten.
Dies ist die Ausgabe eines Zuglader-Objekts mit 4 Samples
Wir haben den Tensor oder die Matrix mit einem Großbuchstaben X dargestellt. Das erste Beispiel entspricht der ersten Zeile in der Matrix.
Das zweite Beispiel entspricht der zweiten Zeile in der Matrix usw.
Wir können Farben verwenden, um die verschiedenen Muster darzustellen.
Bei mehreren Stichproben handelt es sich bei der Regressionsgleichung um eine lineare Transformation.
y und b sind Vektoren oder Zeilentensoren, eine Zeile für jede Stichprobe. Lassen Sie uns die Farbdarstellung des Punktprodukts verwenden, um eine bessere Vorstellung davon zu bekommen, was vor sich geht.
In der folgenden Abbildung wird jedes Muster in der Matrix X durch eine andere Farbe dargestellt,
im Wesentlichen einen anderen Farbton von Grün oder Blau. Der Parameter ist orange.
Beachten Sie, dass y-hat fett ist, da es sich um einen Vektor- oder mehrdimensionalen Tensor handelt.
Für das erste Beispiel führen wir Punktprodukt mit der ersten Zeile der Matrix und dem Parameter.
Wir fügen dann den Biasbegriff hinzu, wir erhalten dann die Vorhersage für die erste Stichprobe.
Für die zweite Probe nehmen wir das Punktprodukt des Parametervektors, dann fügen wir den Bias-Termin hinzu.
Wir erhalten dann die Vorhersage für die zweite Stichprobe. Wir wiederholen den Vorgang für die dritte und vierte Stichprobe,
nehmen das Punktprodukt und fügen den
Bias-Termin hinzu, jede Probe erzeugt eine neue Vorhersage. Zusammenfassend müssen die Anzahl der Spalten von X und die Anzahl der Gewichte in diesem Fall auch gleich sein.
Obwohl es nur eine Verzerrung gibt, fügen wir jedem Punktprodukt den Biasbegriff mithilfe eines grünen Vektors hinzu.
Und es gibt so viele Vorhersagen wie Samples oder Spalten in X.
Lassen Sie uns die nützliche Klasse linear verwenden, um lineare Regression in mehreren Dimensionen durchzuführen.
Wir importieren linear aus dem n-Paket. Die Gewichte und Verzerrungen werden zufällig initialisiert,
um jedes Mal, wenn wir den Code ausführen, die gleichen Ergebnisse zu erhalten, verwenden wir den zufälligen Samen.
Wir werden lernen, wie Parameter im nächsten Abschnitt erhalten werden.
Wir erstellen ein Modellobjekt mit dem Konstrukter linear, der Parameter „in — Features“
ist die Größe jedes Eingabesample oder die Anzahl der Spalten, „out features“ ist Größe jedes Ausgabesample,
es erstellt im Wesentlichen eine lineare Funktion. Die lineare erzeugt die folgende Funktion. Lassen Sie uns das folgende Diagramm verwenden, um die Form darzustellen
Der Parameter „in Features“ stellt die Anzahl der Spalten von x und die Anzahl der Modellgewichte dar,
„Out-Features“ ist die Größe der Ausgänge in diesem Fall eins.
Die Methodenparameter, dies gibt uns die Modellparameter; die erste ist die Neigung,
die zweite die Bias, wir müssen die Python-Funktionsliste anwenden, um eine Ausgabe zu erhalten, da die Methode faul ausgewertet wird.
Wir können die linearen Gewichte und die Verzerrung sehen. Im Labor können Sie auch die Methode „state dict“ verwenden.
Wir können einen Eingabetensor erstellen, dies ist ein Zeilenvektor oder Tensor mit zwei Spalten.
Wir wenden das lineare Objekt an, das Ergebnis ist ein 1x1 Tensor, der der Vorhersage entspricht.
Wir können lineare Regression auf mehrere Samples anwenden, wir erstellen einen Tensor, bei dem jede Zeile eine andere Probe ist.
Wie zuvor verwenden wir verschiedene Farben, um die verschiedenen Samples darzustellen
Wir wenden das Modellobjekt an, da wir drei Eingänge haben, ist die Ausgabe drei Zeilen.
Die tatsächliche Ausgabe ist ein Tensor mit drei Reihen und einer Spalte, entsprechend den folgenden Farben.
In PyTorch ist es üblich, ein benutzerdefiniertes Modul zu erstellen, im Kontext der Regression verhält es sich fast identisch mit dem linearen Objekt.
Dies mag ein wenig redundant erscheinen, aber dies wird später erforderlich sein, wenn Neuronale Netzwerke aufgebaut werden.
Benutzerdefinierte Module sind Klassen; diese Klassen sind die Unterklasse oder untergeordnete Elemente des Pakets „NN.modules“.
In diesem Fall nennen wir unser kundenspezifisches Modul LR. Wir machen die Klasse zu einem Kind von „NN.modules“.
Infolgedessen erbt es alle Methoden und Attribute.
Im Objektkonstruktor ist das Argument die Größe der Eingabe und Ausgabe, x bzw. y.
Wir nennen das „super“ im Konstruktor, dies ermöglicht es uns, Objekte aus dem Paket NNN.module innerhalb des Objekts zu erstellen, ohne es explizit zu initialisieren.
Wir können jetzt ein Objekt vom Typ linear erstellen, die Argumente werden über den Objektkonstruktor gesetzt
Wir weisen es self.linear zu, wir können jetzt das Objekt des Typs linear überall in der Klasse aufrufen.
Wir verwenden die Funktion vorwärts, um eine Vorhersage zu erzeugen. Wir müssen die Forward-Methode nicht explizit aufrufen,
verwenden Sie einfach Klammer, da sie sich wie die Aufrufmethode in Python verhält.
Wir erstellen unser benutzerdefiniertes Modul oder eine benutzerdefinierte Klasse. Dies verhält sich wie das lineare Objekt, die Parameter „in-Features“ sind zwei und „Out-Features“ ist eins.
Dieses Objekt verhält sich wie linear, wir können eine Vorhersage für eine Probe machen.
Oder wir können Vorhersagen für mehrere Proben machen.