Dieser Artikel beschäftigt sich mit der Vorlesung „Neuronale Netze“ am KIT. Er dient als Prüfungsvorbereitung. Ich habe die Vorlesungen bei Herrn Prof. Dr. Alexander Waibel im Sommersemester 2015 gehört.
When to use which objective function (cross entropy, MSE); Backpropagation; Weight initialization; Regularization (L2 weight decay, dropout); Time Delay NN; Recurrent Networks; Applications (Speech Recognition, Computer Vision)
NN01-Intro.pdf
Human Brain vs. Computer (Processing/Processors, Accuracy, Speed, Hardware, Design)
Aufbau eines biologischen Neurons (vgl. Wikipedia)
NN02-Classification.pdf
Rosenblatt-Perceptron which realizes logical or
McCulloch-Pitts Neuron (weights, bias, activation function is step function)
Given events $A_1$, $A_2$ and $B$, Bayes' rule states that the conditional odds of $A_1:A_2$ given $B$ are equal to the marginal odds of $A_1:A_2$ multiplied by the Bayes factor or likelihood ratio $\Lambda$:
$$O(A_1:A_2|B) = \Lambda(A_1:A_2|B) \cdot O(A_1:A_2) ,$$
where
$$\Lambda(A_1:A_2|B) = \frac{P(B|A_1)}{P(B|A_2)}.$$
Parametrischer Klassifizierer
Ein Klassifizierer heißt parametrisch, wenn er eine Wahrscheinlichkeitsverteilungsannahme macht.
Naiver Bayes-Klassifikator
Ein Klassifizierer heißt naiver Bayes-Klassifikator, wenn er den
Satz von Bayes unter der naiven Annahme der Unabhängigkeit der Features
benutzt.
Normalverteilung
Eine stetige Zufallsvariable $X$ mit der Wahrscheinlichkeitsdichte
$f\colon\mathbb{R}\to\mathbb{R}$, gegeben durch
$f(x) = \frac {1}{\sigma\sqrt{2\pi}} e^{-\frac {1}{2} \left(\frac{x-\mu}{\sigma}\right)^2}$
heißt $\mathcal N\left(\mu, \sigma^2\right)$-verteilt, normalverteilt
mit den Erwartungswert $\mu$ und Varianz $\sigma^2$.
Eine $p$-dimensionale reelle Zufallsvariable $X$ ist normalverteilt
mit Erwartungswertvektor $\mu$ und (positiv definiter) Kovarianzmatrix
$\Sigma$, wenn sie eine Dichtefunktion der Form
$$f_X(x)=\frac{1}{ \sqrt{(2\pi)^p \det(\Sigma)} } \exp \left( -\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu) \right)$$
besitzt. Man schreibt
$$X\sim \mathcal N_p(\mu, \Sigma).$$
Gauß'scher Klassifizierer
Ein (naiver) Bayes-Klassifikator, welcher von normalverteilten Daten
ausgeht heißt Gauß'scher Klassifizierer.
Die Hauptkomponentenanalyse ist ein Verfahren zur
Dimensionalitätsreduktion von ungelabelten Daten im $\mathbb{R}^n$.
Sie projeziert die Daten auf diejenige Hyperebene im
$\mathbb{R}^d$, die den durch die Projektion stattfindenden
Datenverlust minimal hält.
Dabei ist $d \in 1, \dots, n$ beliebig wählbar.
Die Transformation der Daten $X$ findet durch eine Matrixmultiplikation
$Y = P \cdot X$ statt. Die Matrix $P$ besteht aus den ersten $d$
Eigenvektoren der Kovarianzmatrix der Features $X$:
$P = (v_1, \dots, v_d)$ mit
$\lambda_j v_j = C_X v_j$ für $j=1,\dots,d$
Außerdem gilt: $C_X = \frac{1}{n-1} X X^T$
V03: LVQ
Slide name: V03_2015-04-21_LVQ.pdf
k-Means
Fuzzy k-Means
Vector Quantization (VQ) is an unsupervised clustering algorithm
Learning Vector Quantization is supervised.
V04: Perceptron
Slide name: V04_2015-04-28_Perceptron.pdf
McCulloch–Pitts (MCP) Neuron
Ein MLP-Neuron is ein Algorithmus zur binären Klassifizierung. Er hat
$m+1$, mit $m \in \mathbb{N}_{> 0}$ inputs $x_i \in \{0, 1\}$. Davon
ist der erste (nullte) Konstant gleich Eins und wird Bias genannt.
Jeder Input wird mit eingem Gewicht $w_i \in \mathbb{R}$ multipliziert,
alle gewichteten Inputs werden addiert und schließlich wird die
Stufenfunktion
$\varphi(x) = \begin{cases}1 &\text{falls } x > 0\\0 &\text{sonst} \end{cases}$
angewendet.
Man lernt mit MCP Neuronen, indem man
$$\Delta w = \eta \delta x$$
$$w \gets w + \Delta w$$
berechnet, wobei $\eta \in (0, 1)$ die Lernrate ist, $x$ ein Trainingsdatum
und $\delta = y_{\text{target}} - y$ die Abweichung vom gewünschten
Ergebnis ist. Diese Regel wird auch Perceptron Learning Rule genannt.
Rosenblatt-Perzeptron
Wie das McCulloch–Pitts (MCP) Neuron, nur ist $x_i \in \mathbb{R}$ und
ein Lernalgorithmus ist gegeben. Dieser addiert den
$\eta \in (0, 1)$ gewichteten, fehlklassifizierten Vektor auf die
Gewichte $w_i$. $\eta$ heißt die Lernrate.
Man lernt mit MCP Neuronen, indem man
$$\Delta w = \eta \delta x$$
$$w \gets w + \Delta w$$
berechnet, wobei $\eta \in (0, 1)$ die Lernrate ist, $x$ ein Trainingsdatum
und $\delta = - \frac{\partial E}{\partial w}$ der Gradient auf der
Fehleroberfläche in Abhängigkeit von den Gewichten ist. Es wird also
Gradient descent verwendet.
Pocket Perceptron Algorithm
Ein Lernalgorithmus für ein Rosenblatt-Perzeptron. Dieser konvergiert zu
Gewichten, welche die wenigsten Beispiele falsch klassifiziert.
Sigmoid-Funktion
$\varphi(x) = \frac{1}{1+e^{-x}}$
Softmax-Funktion
$\varphi(a_i) = \frac{e^{a_i}}{\sum_{k} e^{a_k}}$ wobei $a_i$ die
Aktivierung des $i$-ten Neurons der selben Schicht ist.
Perzeptron / Logistic Neuron
MSE + Sigmoid activation function
Fakten:
Das Rosenblatt-Perzeptron findet eine lineare Trenngrenze, wenn sie
existiert.
Probleme vom Rosenblatt-Perzeptron:
Nicht-linear trennbare Daten wie z.B. das XOR-Problem
Nicht-trennbare Daten
Wahl der Lernrate und der Startgewichte
Aufbau eines biologischen Neurons (Axon, Dendriten, Zellkörper, Ranviersche
Schnürringe, Synapsen)
Glia-Zellen
V05: Features
Slide name: V05_2015-04-29_Features.pdf
Rectified Linear Unit (ReLU)
$\varphi(x) = \max(0, x)$
Leaky ReLU
$\varphi(x) = \max(0.01x, x)$
Softplus
$\varphi(x) = \log(1 + e^x)$
Feed Forward Neural Network
A Feed Forward Neural Network is a learning algorithm which takes
a fixed-size input feature vector, applies varous matrix multiplications
and point-wise non-linear functions to obtain a fixed-size output
vector.
Multilayer Perceptron
A Multilayer Perceptron is a special type of Feed Forward Neural Network.
It consists of fully connected layers only.
Figure 1: Draft of multilayer Perceptron (MLP). The bias units are
grey, the input units are red, the hidden units are green
and the output unit is blue. The edges are directed from
input, to hidden, to output and from the bias to hidden / output.
Es seien $a, b$ Zeichenketten, $|a|$ die Länge der Zeichenkette $a$
und $\delta_{a_i \neq b_j}$ genau dann 1, wenn das $i$-te Zeichen von
$a$ und das $j$-te Zeichen von $b$ sich unterscheiden.
Dann heißt $d_L(a, b)$ die Levenshtein-Distanz:
$$d_L(a,b) := lev_{a,b}(|a|, |b|)$$
$$\text{lev}_{a,b}(i, j) = \begin{cases}\max(i,j) &\text{falls} \min(i,j) = 0,\\
\min \begin{cases}\text{lev}_{a,b}(i-1,j)+1\\
\text{lev}_{a,b}(i,j-1)+1\\
\text{lev}_{a,b}(i-1,j-1)+\delta_{(a_i \neq b_j)}\\\end{cases} &\text{sonst}\end{cases}$$
Fragen:
Welche Feed Forward Neuronalen Netze existieren, die keine Multilayer
Perceptronen sind?
→ CNNs, TDNNs, SOMs.
Welche Skalentypen gibt es für Merkmale (Features)?
Nominale Merkmale: Nur Gleichheit kann überprüft werden
Ordinale Merkmale: Es existiert eine "kleiner gleich"-Relation
Intervallskalierte Merkmale:
Die Differenz der Merkmale hat eine Semantik
Es existiert jedoch kein "wirklicher" Nullpunkt
Verhältnisskalierte Merkmale: Wie Intervallskaliert, aber mit absolutem
Nullpunkt.
$$E_{-x} = - \sum_{k}[t_k^x \log(o_k^x) + (1-t_k^x) \log (1- o_k^x)]$$
wobei $x$ der Feature-Vektor ist, $k$ ein Neuron des letzen
Layers, $t$ der wahre Wert (d.h. der gewünschte Output),
$o$ der tatsächliche Output ist.
Ein Autoencoder ist ein neuronales Netz, welches darauf trainiert wird
die Input-Daten am Output wieder zu replizieren.
Bottleneck Features
Unter Bottleneck-Features versteht man eine Schicht in einem
neuronalem Netz, welche wesentlich kleiner ist als die vorhergehende
und nachfolgende Schicht.
Die Kullback-Leibler-Divergenz ist ein Maß für die Unterschiedlichkeit
zweier Wahrscheinlichkeitsverteilungen $P, Q$. Für
diskrete Verteilungen ist sie definiert als:
$$KL(P||Q) := \sum_{x \in X} P(x) \cdot \log \frac{P(x)}{Q(x)}$$
Denoising Autoencoder
Ein Autoencoder, welcher trainiert wird rauschen zu entfernen.
Fakten:
Eine lineare Aktivierungsfunktion wird in einer Repräsentation im
Bottleneck-Feature resultieren, die PCA ähnelt.
Fehlerfunktion:
CE bei binären Ausgaben (d.h. Input-Features)
MSE bei reelen Ausgaben (d.h. Input-Features)
Fragen:
Wie muss man die Grafik zu Stacked Denoising Autoencodern verstehen?
V08: Deep Learning
Slide name: V08_2015-05-13_Deep_Learning.pdf
Deep Neural Networks
Neural Networks with at least two hidden layers with nonlinear
activation functions.
Hyperparameter
Hyperparameter $\theta$ eines neuronalen Netzes sind Parameter,
welche nicht gelernt werden.
Learning Rate Scheduling
Start with a learning rate $\eta$ and reduce it while training.
RProp is a learning rate scheduling method which is only based on the
sign of the gradient. It increases the learning rate when the sign of
the gradient doesn't change and decreases or resets it when the sign of the
gradient changes. Rprop has an own learning rate for every single
feature.
$$\eta_{tij} = \frac{\eta_0}{\sqrt{1 + \sum_k {(\frac{\partial E^{t-k}}{\partial w_{ij}})}^2}}$$
where $\eta_0$ is an initial learning rate, $t$ is the epoch, $i,j$ refer to neurons.
Newbob Scheduling
Newbob scheduling is a combination of exponential decay learning rate
scheduling and performance scheduling. It starts with a learning rate
$\eta_0$. When the validation error stops decreasing, switch to
exponentially decaying learning rate. Terminate when the validation
error stops decreasing again.
Cross Entropy Error function (CE)
$$E_{CE}(w) = - \sum_{x \in X} \sum_{k} [t_k^x \log(o_k^x) + (1-t_k^x) \log(1-o_k^x)]$$
where $w$ is the weight vector, $X$ is the set of training
examples (feature vectors),
$t_k^x = \begin{cases}1 &\text{if } x \text{ is of class }k\\0&\text{otherwise}\end{cases}$
and $o_k^x$ is the output at neuron $k$ of the network for the
feature vector $x$.
Mean Squared Error function (MSE)
$$E_{MSE}(w) = \frac{1}{2}\sum_{x \in X} \sum_{k} (t_k^x - o_k^x)^2$$
where $w$ is the weight vector, $X$ is the set of training
examples (feature vectors), $k$ is the range of output neurons,
$t_k^x = \begin{cases}1 &\text{if } x \text{ is of class }k\\0&\text{otherwise}\end{cases}$ and $o_k^x$ is the output
at neuron $k$ of the network for the feature vector $x$.
Convolutional Neural Networks (CNNs)
Feed-Forward Neuronale Netze, welche durch geteilte Gewichte (weight
sharing) grafische Filter lernen. CNNs sind aktuell in der Computer
Vission Stand der Technik.
Time-Delay Neural Networks (TDNNs)
TDNNs wenden wie CNNs weight sharing an um Filter zu lernen. Sie
werden in der ASR
verwendet und lernen auch Filter. Allerdings wird hier über die Zeit
hinweg gefaltet.
Eine optimale Strategie wird mit $\pi^*$ bezeichnet.
Fragen:
Was bedeutet es, wenn in einem MDP der Diskontierungsfaktor
$\gamma = 0$
ist?
→ Nur der aktuelle Reward ist wichtig. Effektiv nimmt der Agent immer
das nächste Feld, welche den höchsten Reward bietet (bzw. die Aktion, die
den größten 1-Aktion Erwartungswert liefert).
Was bedeutet es, wenn in einem MDP der Diskontierungsfaktor
$\gamma = 1$
ist?
→ Der Agent versucht die Summe der Belohnungen insgesamt zu maximieren.
SOMs sind eine Art von Neuronalen Netzen. Die neuronen von SOMs sind
auf einem Gitter angeordnet. Es gibt nur zwei Schichten: Die Input-Neuronen
und die Neuronen auf dem Gitter. Jedes Input-Neuron ist mit jedem Neuron
auf dem Gitter verbunden.
Figure 2: Draft of self-organizing map (SOM).
Training:
Initialisierung: Die Gewichte
$w_{ji}$ von dem
$i$-ten Input-Neuron zum Neuron ($i = 1, ..., n$)
$j$ auf dem Gitter werden zufällig
initialisiert.
Sampling: Nehme ein zufälliges Beispiel
$x$ der Trainingsdaten.
Matching: Finde das Neuron
$j_{\text{min}}$, für das die Gewichte
dem Input am ähnlichsten sind:
Ein Hopfield-Netz besteht nur aus einer Schicht von McCulloch-Pitts
Neuronen. Jedes Neuron ist mit jedem anderen Neuron (also nicht sich
selbst) und allen Inputs verbunden. Die Schicht funktioniert
gleichzeitig als Ein- und Ausgabeschicht.
Hopfield-Netze werden in einem einzigen durchgang Trainiert. Dabei wird
auf das Gewicht von Neuron $i$ zu Neuron $j$ + 1 addiert, wenn
das Bit $i$ des Trainingsmusters gleich ist. Falls das nicht der Fall
ist, wird von dem Gewicht 1 subtrahiert:
$$w_{ij} = \sum_{p} (2 a^{(i)}_p - 1) \cdot (2 a^{(j)}_p - 1)$$
Jedes Gewicht ist zum start des Trainings 0. Das Training ist also
einfach nur ein Zählen, wie häufig die Stellen übereinstimmen.
Figure 3: Draft of Hopfield network. Every node is an input node.
The McCullogh-Pitts nodes are updated asynchronously. When
the state of the node doesn't change any more, they contain
the output of the network. Learned are the weights between
the nodes.
Boltzmann-Maschinen sind
stochastische neuronale Netzwerke, welche duch belibige ungerichtete
Graphen repräsentiert werden können. Die neuronen sind binär; sie
feuern also entweder oder nicht. Es gibt insbesondere keine
Unterschiede in der Stärke mit der sie feuern.
Siehe auch: Scholarpedia
Eine RBM ist ein neuronales Netz mit nur einem Hidden Layer.
Es ist gleichzeitig ein Spezialfall von
MRFs.
Im Gegensatz zur Boltzmann-Maschine muss die Restricted Boltzmann-Machine
(RBM) aus einem bipartitem Graph bestehen. Dies erlaubt ein effizienteres
Trainingsverfahren (Contrastive Divergence).
Die Energie des Netzwerkes ist
$$- \sum_{i < j} w_{ij} s_i s_j - \sum_i b_i s_i$$
wobei $s_i, s_j$ die binären Zustände der Knoten $i, j$ sind. Der
Name "Boltzmann" kommt von dieser Energie (man kann den Netzwerkzuständen
wahrscheinlichkeiten zuweisen, die direkt Proportional zu $e^{-E}$)
sind.
Figure 4: Draft of an RBM. The learned parameters are red.
Es werden keine Verbindungen zwischen den Hidden Units erlaubt (daher das "restricted" - Quelle: Hinton, 2015).
Contrastive Divergence (CD, CD-$k$, siehe YouTube Video, 2 von Hugo Larochelle)
Contrastive Divergence ist ein Trainingsalgorithmus für RBMs.
Ein Hyperparameter ist $k \in \mathbb{N}$.
Er geht wie folgt vor:
Lege den Trainingsvektor $x^{(t)}$ an die Eingabeknoten an.
Berechne die Wahrscheinlichkeit für jede Hidden Unit, dass diese gleich 1 ist. Setze sie mit dieser Wahrscheinlichkeit gleich 1.
Berechne die Wahrscheinlichkeit für jeden Eingabeknoten, dass dieser gleich 1 ist. Setze ihn mit dieser Wahrscheinlichkeit gleich 1.
Gehe zu Schritt 2. Wiederhole dies für $k$ Schritte (dies wird auch Gibbs-Sampling genannt).
Das, was nach dem $k$-fachem Gibbs-Sampling in der Eingabeschicht
steht wird auch "negative sample $\tilde x$" genannt.
Update der Parameter:
\begin{align}
W &\leftarrow W + \eta (h(x^{(t)}) {x^{(t)}}^T - h(\tilde x) {\tilde x}^T)\\
b_h &\leftarrow b_h + \eta (h(x^{(t)}) - h(\tilde x))\\
b_v &\leftarrow b_v + \eta (x^{(t)} - \tilde x)
\end{align}
wobei $\eta \in (0, 1) $ die Lernrate ist,
$b_h \in \mathbb{R}^n_h$ der Bias-Vektor der Hidden Units und
$b_v \in \mathbb{R}^{n_v}$ der Bias-Vektor der Eingabeknoten ist.
$h = \text{sigmoid}(b_h + W x)$ ist ein Vektor, welcher für die
einzelnen Hidden Units sagt wie wahrscheinlich es ist, dass diese
gleich 1 sind.
In der Praxis funktioniert es schon mit $k=1$ für Pre-Training. Wenn
$k$ groß ist konvergiert $\tilde x$ gegen den wahren Modellwert. Das
wäre dann eine Monte-Carlo Estimation.
Simulated annealing ist ein heuristisches Optimierungsverfahren.
Sei $D$ ein Wertebereich einer Funktion $f: D \rightarrow \mathbb{R}$
und $U: D \rightarrow \mathcal{P}(D)$ eine Funktion, welche die
Umgebung eines Punktes angibt. Sei $T: \mathbb{N}_0 \rightarrow \mathbb{R}_{> 0}$
die Temperatur zum Zeitpunkt $t \in \mathbb{N}_0$.
Gesucht ist $\text{arg min}_{x \in D} f(x)$.
Wähle zum Zeitpunkt $t=0$ einen zufälligen Startwert $x \in D$.
Gehe nun iterativ vor und jeweils einen Zeitschritt weiter:
Nehme einen Punkt aus der Umgebung $y \in U(x)$. Wenn
$f(y) \leq f(x)$, dann überschreibe $x \leftarrow y$. Falls nicht,
dann überschreibe es mit der Wahrscheinlichkeit $\exp \left (-\frac{f(y)-f(x)}{T(t)} \right )$.
Speichere in jedem Schritt den bisher besten Wert.
Anwendungen:
Hopfield-Netze: Hopfield-Netze kann man für das TSP einsetzen und auch als Assoziativspeicher nutzen. Allerdings haben sich Hopfield-Netze nie wirklich durchgesetzt.
Ein rekurrentes neuronales Netzwerk, bei dem die Ausgabe der
Ausgabeschicht im nächsten Zeitschritt als Eingabe verwendet wird.
Backpropagation through Time (BPTT)
Ein Trainingsalgorithmus für rekurrente neuronale Netze, bei dem
das Netz "ausgerollt" wird. Das rekurrente Netz wird also als unendlich
großes nicht-rekurrentes Netz behandelt.
Das Problem des verschwindenden Gradienten ist eine Herausforderung im
Kontext neuronaler Netze, welche mit Backpropagation trainiert
werden. Insbesondere bei sehr tiefen oder rekurrenten Netzen
kann es passieren, dass der Gradient bei den ersten Schichten sehr
niedrig ist, sodass das Netz sehr langsam lernt. Aufgrund numerischer
Ungenauigkeit kann dies sogar dazu führen, dass das Netz in den
ersten Schichten nicht lernen kann.
Ein LSTM ist ein Typ eines neuronalen Netzwerks. Das besondere an
LSTM Netzen sind "intelligente" Neuronen, welche über Gates bestimmen
ob ein Wert gespeichert wird und wie lange.
In der Update-Regel $\Delta w_{ij}^* (t+1) = \Delta w_{ij} (t+1) + \alpha \Delta w_{ij}(t)$ wird der Term $\Delta w_{ij}(t)$ als Momentum bezeichnet.
Der Skalar $\alpha \in [0, 1]$ gewichtet diesen und ist ein
Hyperparameter.
Quickprop ist ein Trainingsverfahren für neuronale Netze. Der Lernalgorithmus
nimmt an, dass die Fehlerebene lokal durch eine parabel approximiert
werden kann. Das Gewichtsupdate im Schritt $k$ ist demnach vom
Gradienten und dem Gewichtsupdate das vorherigen Schrittes abhängig:
$$\Delta^{(k)} \, w_{ij} = \Delta^{(k-1)} \, w_{ij} \left ( \frac{\nabla_{ij} \, E^{(k)}}{\nabla_{ij} \, E^{(k-1)} - \nabla_{ij} \, E^{(k)}} \right)$$
Weight Decay
Passe die Fehlerfunktion an: $E = MSE + \lambda \sum_{i,j} w_{ij}^2$
Weight Elimination
Passe die Fehlerfunktion an: $E = MSE + \lambda \sum_{i,j} \frac{w_{ij}^2}{1+w_{ij}^2}$
Optimal Brain Damage (OBD)
Optimal Brain Damage entfernt nach dem Training Verbindungen die
sehr kleine $|w_{ij}|$ haben.
Besser: Entferne Verbindungen, die geringen Einfluss auf die
Fehlerfunktion haben.
Cascade Correlation ist ein konstruktiver Algorithmus zum erzeugen
von Feed-Forward Neuronalen Netzen. Diese haben eine andere Architektur
als typische multilayer Perceptrons. Bei Netzen, welche durch
Cascade Correlation aufgebaut werden, ist jede Hidden Unit mit
den Input-Neuronen verbunden, mit den Output-Neuronen und mit allen
Hidden Units in der Schicht zuvor.
Meiosis Netzwerke bauen ein neuronales Netz auf. Sie beginnen mit einer
einzelnen hidden Unit. Diese hidden Unit wird aufgespalten, wenn die
"Unsicherheit" zu groß ist (vgl. paper für Kritierum; vgl. summary).
Häufig wird die Architektur neuronaler Netze grafisch dargestellt. Dabei ist
mir folgendes aufgefallen:
Im Innenren von Neuronen wird die Aktivierungsfunktion "geplottet". Das heißt
bei der Sigmoidfunktion wird etwas S-Förmiges dargestellt, bei der
sign-Funktion etwas eckiges, bei ReLU ein horizontaler Strich gefolgt von
einem Strich im 45-Grad Winkel.
Typischerweise ist der Input links (oder alternativ unten) und der Output
rechts (oder alternativ oben)
Interpretation of errors
Figure 5: Training and Testing error over epochs. At some point overfitting happens.Figure 6: Training and Testing error over training data. At some point overfitting happens.
If you have a problem with high variance, you can train more epochs, get more
data or better features.
If you have a problem with high bias, you should get better features or a
better classifier.
Please note that Figure 6 also gives you a feeling for how much new
training data will help you with your problem.
Aktivierungsfunktionen
Name
Function $\varphi(x)$
Range of values
Differentiable
$\varphi'(x)$
Layer
Comment
Signum
$\varphi(x) = \begin{cases}+1 &\text{if } x > 0\\-1 &\text{if } x < 0\end{cases}$
$\{-1, 1\}$
Yes (except 0)
$\varphi'(x) = 0$
No
Heaviside Step function
$\varphi(x) = \begin{cases}+1 &\text{if } x > 0\\0 &\text{if } x < 0\end{cases}$
Was ist der Unterschied zwischen Backpropagation und Gradient descent?
→ Backpropagation ist eine geschickte Umsetzung des Gradientenabstiegs,
bei der es vermieden wird Berechnungen mehrfach durchzuführen.
Welche Typen von Neuronalen Netzen gibt es?
→ Siehe Einordnung
Welche Aktivierungsfuktionen gibt es?
→ Siehe Übersicht
Welche Aktivierungsfunktionen machen bei einem einzelnen Perzeptron keinen Sinn?
→ Softmax wegen der Normierung; Maxout
Welche Aktivierungsfunktion macht in einem MLP keinen Sinn?
→ Nur lineare, da insgesamt eine lineare Funktion herauskommt.
Wofür kann man neuronale Netze einsetzen?
→ Klassifikation, Funktionsapproximation, Encoding, Dimensionalitätsreduktion,
Assoziativspeicher
Welche Möglichkeiten zur Regularisierung gibt es?
→ L1, L2, Dropout, Weight Decay
Wie kann der Standard Gradient descent Algorithmus angepasst werden
um den Lernvorgang zu beschleunigen?
→ Momentum, Exponential Decay Learning Rate, Performance Scheduling,
Newbob, AdaGrad, RProp
Welche Alternativen zu standard Gradient Descent gibt es?
→ Quickprop, (L-)BFGS, Conjugate Gradient, Quasi-Newtonian (vgl. Reddit, Optimization Basics).
Wie kann man Netztopologien aufbauen?
→ Meiosis, Cascade Correlation, Optimal Brain Damage / Surgeon (vgl. Reddit).
[Ham90] J. Hampshire and A. Waibel.
A Novel Objective Function for Improved Phoneme Recognition Using Time Delay Neural Networks. IEEE Transactions on Neural Networks, 1990.