# Gradientenabstiegsverfahren/Gradient - lineares Funktional
## Einleitung

Diese Seite zum Thema Gradientenabstiegsverfahren/Gradient - lineares Funktional 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) Ausgangspunkt ist eine lineare Abbildung $f:\mathbb {R} ^{n}\to \mathbb {R} ^{m}$ die in $m$ Komponentenfunktionen zerlegt wird.
* (2) auf die Komponentenfunktionen wird ein erweitertes Gradientenabstiegsverfahren angewendet

## Zielsetzung

Diese Lernressource wird Gradient eines lineares Funktional adressiert und diesen auf ein Gradientenabstiegsverfahren anzuwenden. Dabei erweitert man das Standardverfahren, um eine Minimierung in Gradientenrichtung. Dieses wertet die Fehlerfunktion in Richtung des normierten Gradienten an endlich vielen Stellen aus und wählt den nächsten Schritt in Abhängigkeit von dem Minimum der Fehlerfunktion.

## Lernvoraussetzungen

Die Lernressource zum Thema Gradientenabstiegsverfahren/Gradient - lineares Funktional hat die folgenden Lernvoraussetzungen, die zum Verständnis der nachfolgenden Ausführungen hilfreich bzw. notwendig sind.
* Zerlegung einer lineare Funktionen in Komponentenfunktionen
* Gradient und partielle Ableitungen

## Gradientenabstieg für lineares Funktional

Wendet man das Gradientenabstiegsverfahren auf ein lineares Funktional $f_{a}:\mathbb {R} ^{n}\to \mathbb {R}$ wird bei der aktuellen Position der Gradient der Fehlerfunktion berechnet und der aktuelle Vektor $a^{(t)}\in \mathbb {R} ^{3}$ in Richtung des negativen Gradient zu $a^{(t+1)}\in \mathbb {R} ^{3}$ verändert, um den Gesamtfehler zu verkleinern.

### Definition des linearen Funktionals

Das lineare Funktional sei über das Skalarprodukt wie folgt definiert:
    ${\begin{array}{rrcl}f_{a}:&\mathbb {R} ^{n}&\rightarrow &\mathbb {R} \\&x&\mapsto &f_{a}(x)=\langle a,x\rangle \end{array}}$

### Partielle Ableitung eines linearen Funktionals

Mit $f_{a}(x)=\langle a,x\rangle =\sum _{k=1}^{n}a_{k}\cdot x_{k}$ gilt:
    ${\frac {\partial f_{a}}{\partial a_{k}}}(x)={\frac {\partial \left(\displaystyle \sum _{k=1}^{n}a_{k}\cdot x_{k}\right)}{\partial a_{k}}}=x_{k}$
Diese partielle Ableitung tritt bei der Ableitung der Fehlerfunktion mit quadratischem Fehler als innere Ableitung auf.

### Daten für die Regression

Die Daten $\mathbb {D}$ für die mehrdimensionale lineare Regression bestehen aus Datenpunkten der Form $(x^{(i)},y^{(i)})\in \mathbb {R} ^{n}\times \mathbb {R}$:
    $\mathbb {D} :=\left\{(x^{(i)},y^{(i)})\in \mathbb {R} ^{n}\times \mathbb {R} \ \colon \ i\in \{1,\ldots ,d\}\right\}$

### Fehler für Datenpunkt

Für einen einzelnen Datenpunkt $(x,y)=(x_{1},\ldots ,x_{n},y)\in \mathbb {R} ^{n+1}$ kann man mit $f_{a}(x)=\langle a,x\rangle$ jeweils den Fehler wie folgt angeben:
    $e_{_{LR}}(a,x,y):=f_{a}(x)-y=\langle a,x\rangle -y$

### Bemerkung - Fehler

Der Fehler ist reellwertig und kann auch negativ sein. Das bedeutet, dass der durch $f_{a}(x)=\langle a,x\rangle$ geliefert Wert zu klein im Vergleich zu $y\in \mathbb {R}$ ist. Bei der Aggregation von reellwertigen Fehlern $e_{_{LR}}(a,x,y)\in \mathbb {R}$ können sich positive Fehler und negative Fehler bei der Aggregation ausgleichen und ein Gesamtfehler von 0 kann dann nicht als fehlerfrei Regression interpretiert werden.

### Aggregation von Einzelfehlern zu Fehlerfunktion

Die obige Fehlerfunktion $e_{_{LR}}$ berechnet den reellwertigen Fehler von einem Datenvektor $x^{(k)}\in \mathbb {R} ^{n}$ bzgl. einem Sollwert $y^{(k)}\in \mathbb {R}$. Der quadratische Fehler $e_{_{LR}}^{2}$ ist nicht negativ und der Gesamtfehler wird für alle $d\in \mathbb {N}$ Datenpunkte aufsummiert.
    ${\begin{array}{rcl}E_{_{LR}}(a,x_{\mathbb {D} },y_{\mathbb {D} })&:=&\displaystyle \sum _{k=1}^{d}\underbrace {(f_{a}(x^{(k)})-y^{(k)})^{2}} _{\geq 0}\\&=&\underbrace {\displaystyle \sum _{k=1}^{d}\left(\left\langle a,x^{(k)}\right\rangle -y^{(k)}\right)^{2}} _{\geq 0}\\\end{array}}$

### Fehlerfunktion für Datenvektoren

Die quadratische Fehlerfunktion $E_{_{LR}}(a,x_{\mathbb {D} },y_{\mathbb {D} })=\sum _{k=1}^{d}(f_{a}(x^{(k)})-y^{(k)})^{2}$ hängt von den Daten (also den Vektoren $x^{(k)}\in \mathbb {R} ^{n}$ und reellen Sollwerten $y^{(k)}\in \mathbb {R}$ ab:
    $x_{\mathbb {D} }:=\left(x^{(1)},\ldots ,x^{(d)}\right)\quad y_{\mathbb {D} }:=\left(y^{(1)},\ldots ,y^{(d)}\right)$

### Bemerkung - Differenzierbarkeit - Betragsfunktion

Man könnte die Fehlerfunktion auch mit dem Betrag wie folgt definieren: $E(a,x_{\mathbb {D} },y_{\mathbb {D} }):=\sum _{k=1}^{d}|f_{a}(x^{(k)})-y^{(k)}|$. Die Betragsfunktion ist allerdings in 0 nicht differenzierbar. Daher wird der quadratische Fehler verwendet.

### Gradient des Gesamtfehlers

Mit der Anwendung der Summenregel für den Gradienten einer Summe man den Gradienten des Gesamtfehlers wie folgt berechnen.
    ${\begin{array}{rcl}\operatorname {Grad} _{a}(E_{_{LR}})(a,x_{\mathbb {D} },y_{\mathbb {D} })&=&\displaystyle \sum _{k=1}^{d}\operatorname {Grad} _{a}(e_{_{LR}}^{2})\left(a,x^{(i)},y^{(i)}\right)\\&=&\displaystyle \sum _{k=1}^{d}\underbrace {2\cdot (f_{a}(x^{(i)})-y^{(i)})\cdot x^{(i)}} _{=\operatorname {Grad} _{a}(e_{_{LR}}^{2})\left(a,x^{(i)},y^{(i)}\right)}\\&=&\displaystyle 2\cdot \sum _{k=1}^{d}(f_{a}(x^{(i)})-y^{(i)})\cdot x^{(i)}\\\end{array}}$

## Implementation in R

In GNU R als OpenSource-Software zur Datenanalyse kann man die mathematische Definition des Gradienten implementieren. Die Implementation in R findet man bei der linearen Regression für Komponentenfunktionen.