Mehrdimensionale lineare Regression/Fehlerminimierung und Lernrate

Einleitung

Bearbeiten

Diese Seite zum Thema Fehlerminimierung und Lernrate kann als Wiki2Reveal Folien angezeigt werden. Einzelne Abschnitte werden als Folien betrachtet und Änderungen an den Folien wirken sich sofort auf den Inhalt der Folien aus. Dabei werden die folgenden Teilaspekte im Detail behandelt:

  • (1) Wie kann man den Fehler in Gradientenrichtung auswerten?
  • (2) Wie verwendet man eine Lernrate, wenn sich der Fehler in einem Iterationsschritt vergrößert.

Zielsetzung

Bearbeiten

Diese Lernressource behandelt im Kontext der Mehrdimensionale lineare Regression die Fehlerminimierung und die Anpassung der Lernrate. Dabei soll die Fehlerminimierung und Anpassung der Lernrate in R und KnitR implementiert werden.

Zielgruppe

Bearbeiten

Die Zielgruppe der Lernressource zum Thema Fehlerminimierung und Lernrate für eine mehrdimensionale lineare Regression sind Lehramtstudierende, die die mehrdimensionale lineare Regression für die Klassifizierung in digitalen Lernumgebungen einsetzen möchten.

Aufgaben für Lernende / Studierende

Bearbeiten

Mit den folgenden Aufgaben zum Thema Mehrdimensionale lineare Regression Fehlerminimierung und Lernrate werden:

  • Erläutern Sie, wie man einen Gradienten einer Fehlerfunktion einsetzen kann, um die Fehlerfunktion zu minimieren!
  • Wie berechnet man eine Fehlerfunktion und den Gradienten einer Fehlerfunktion bei einer mehrdimensionalen linearen Regression?

Fehlerminimierung in Gradientenrichtung

Bearbeiten

Die folgende Funktion wertet die Funktion in Gradientenrichtung an evalcount=100 Stellen aus liefert den Vektor   zurück an dem die Fehlerfunktion den kleinsten Fehler hat. Die Funktion find_min4error(...) wird dabei für einen Iterationsschritt in Gradientenrichtung verwendet.

Parameter der Fehlerminimierungsfunktion

Bearbeiten

Die folgende Fehlerminimierungsfunktion besitzt die folgenden Parameter:

  • pError ist die Fehlerfunktion, mit der der Fehler berechnet werden soll
  • pGrad ist der Gradient der Fehlerfunktion,
  • pa ist der aktuelle Vektor  , für den ein Minimium der Fehlerfunktion gesucht wird.
  • alpha ist die Lernrate  

Funktionsdefinition

Bearbeiten
find_min4error <- function (pError, pGrad, pa, px_D, py_D, alpha=1, evalcount=100) {
  ## Parameter pError: Fehlerfunktion   pGrad:  Gradient der Fehlerfunktion
  ## px_D,py_D: x- bzw. y-Vektoren der Daten
  return <- rep(0,2) ### return <- c(0,0); 
  ## erste Komponente von return Skalar lambda für den Gradienten
  ## zweite Komponente von return ist der minimale Fehler in Gradientenrichtung
  s4a <- (-evalcount:evalcount)/evalcount
  #s4a <- 2*runif(2*evalcount+1,-1,1)
  E4a <-  rep(0,2*evalcount+1) ## +1 wegen x4a=0
  ## smin - Skalar für Gradient für das Minimum der berechneten Fehler 
  scalar4min <- s4a[1] ### ersten smin-Wert setzen - hier -1
  ### Fehler in pa berechnen als Startwert
  error4min <- pError( pa, px_D, py_D )   
  grad4a      <- alpha * pGrad( pa, px_D, py_D )   
  ## in Gradientenrichtung auswerten zwischen -1*pGrad und +1*Grad 
  ## die Fehlerfunktion auswerten und über die x4a-Liste iterieren
  for (k in 1:length(s4a)) {
    ## Fehler für den um x4a[k] skalierten Gradienten pGrad 
    ## und die Daten px_D, py_D berechnen
    E4a[k] <- pError(pa + s4a[k]*grad4a, px_D, py_D)
    ## Überprüfen, ob der Fehler kleiner ist als der 
    ## bisher berechnete minimale Fehler errormin
    if (E4a[k] < error4min) {
      error4min  <-E4a[k]
      scalar4min <-s4a[k]
    }
  }
  # plot(s4a,E4a)
  return <- c(scalar4min,error4min)
  ## Rückgabewert des Skalars für den Gradienten und dem minimalen Fehler
  return
}

Normierte Gradient

Bearbeiten
normGradE_LR <- function (pa,px_D,py_D) {
 g_LR <- GradE_LR(pa,px_D,py_D)
 norm4g <- norm(g_LR,"2")
 return <- g_LR
 if (norm4g > 0) {
    return <- g_LR / norm4g   
 } else {
   print("Gradient ist Nullvektor")
 }
 ## Rückgabewert: normierter Gradient, wenn kein Nullvektor 
 ##               Sonst Nullvektor als Rückgabewert
 return
}

Literatur/Quellennachweise

Bearbeiten


Siehe auch

Bearbeiten

Seiteninformation

Bearbeiten

Diese Lernresource können Sie als Wiki2Reveal-Foliensatz darstellen.

Wiki2Reveal

Bearbeiten

Dieser Wiki2Reveal Foliensatz wurde für den Lerneinheit Mehrdimensionale lineare Regression' erstellt der Link für die Wiki2Reveal-Folien wurde mit dem Wiki2Reveal-Linkgenerator erstellt.