next up previous contents
Nächste Seite: MÄCHTIGKEIT DER KLASSE DER Aufwärts: EIN `SELBSTREFERENTIELLES' REKURRENTES NETZ Vorherige Seite: `KONVENTIONELLE' ASPEKTE DER ARCHITEKTUR   Inhalt

`SELBSTREFERENTIELLE' ASPEKTE DER ARCHITEKTUR

Dieser Abschnitt beschreibt bisher unspezifizierte Interpretationen gewisser Ein- und Ausgaben, welche unser Netzwerk zum ersten `selbstreferentiellen' Netzwerk mit expliziter Kontrolle über alle sein Verhalten steuernde Parameter machen. Da wir nicht alle potentiell nützlichen Arten der Selbstmodifikation kennen können, und da geeignete Selbstmodifikationsprozeduren beliebige Komplexität aufweisen könnten, werde ich die `selbstreferentiellen' Aspekte dergestalt definieren, daß die Selbstmodifikationsprozeduren die Form beliebiger berechenbarer Abbildungen von Algorithmuskomponenten und Performanzevaluationen auf Algorithmusmodifikationen annehmen können (modulo Zeit- und Speicherbegrenzungen).

Im folgenden werde ich vier unkonventionelle Aspekte auflisten. Die resultierende Architektur sollte als Repräsentant einer Vielzahl ähnlicher Architekturen verstanden werden.

1. Das Netz `sieht' Performanzevaluationen. Eine Teilmenge der Eingabeknoten, die keine `normalen' Eingabeknoten enthält, wird als Menge der Evalknoten (mit Kardinalität $n_{eval}$) bezeichnet. $eval_k$ steht für den $k$-ten Evalknoten. Obwohl diese Modifikation konventioneller Netze im Vergleich mit den folgenenden Modifikationen relativ einfach ist, repräsentiert sie doch den möglicherweise bedeutsamsten Beitrag zur Erzielung `selbstreferentieller' Architekturen, wie Fußnote$^8$, Abschnitt 8.1.3 noch etwas detaillierter ausführen wird.

2. Jede adaptive Komponente des Netzes erhält eine Adresse. Für jede Verbindung $w_{ij}$ führen wir eine Adresse $adr(w_{ij})$ ein. Dies wird dem Netz helfen, über seine eigenen Verbindungen zu `reden', wie die nächsten beiden Punkte klarmachen werden. O.B.d.A. nehmen wir im folgenden an, daß $adr(w_{ij})$ als Binärvektor repräsentiert sei (dies stellt jedoch nur eine von vielen Möglichkeiten dar$^5$).

3. Das Netz vermag all seine eigenen Gewichte zu analysieren. Eine Untermenge der Nichteingabeknoten, welche keine `normalen' Ausgabeknoten enthält, wird als Analyseknoten bezeichnet. $ana_k$ bezeichnet den $k$-ten von $n_{ana}$ Analyseknoten. Die Analyseknoten dienen dazu, sequentiell Verbindungen anzusprechen, deren gegenwärtige Gewichte das Netzwerk `in Erfahrung bringen möchte'. Es bereitet keine Schwierigkeiten, die Analyseknoten mit genügend Kapazität zur Adressierung jeder beliebigen Verbindung auszustatten, einschließlich jener Verbindungen, die zu Analyseknoten führen. Dies läßt sich beispielsweise durch

\begin{displaymath}
n_{ana} = up(log_2 n_{conn})
\end{displaymath} (8.2)

erreichen, wobei $up(x)$ die kleinste ganze Zahl $\geq x$ liefert. Ein spezieller Eingabeknoten, der weder `normaler' Eingabeknoten noch Evalknoten ist, wird mit $val$ bezeichnet. $val(t)$ berechnet sich gemäß
\begin{displaymath}
val(1) = 0,~~\forall t\geq 1:~
val(t+1) = \sum_{i,j}g[ \Vert ana(t) - adr(w_{ij}) \Vert^2]w_{ij}(t),
\end{displaymath} (8.3)

wobei $g$ eine differenzierbare Funktion mit Wertebereich $[0 \ldots 1]$ ist. $g$ bestimmt, wie nahe eine Verbindungsadresse8.5den Aktivationen der Analyseknoten sein muß, um einen signifikanten Beitrag für $val(t)$ zu ermöglichen. Ich schlage eine Funktion $g$ vor, die nahezu überall fast Null ist, um den Ursprung herum jedoch eine enge Spitze aufweist. Dies wird dem Netz im Prinzip erlauben, sich zu jedem Zeitpunkt eine einzelne Verbindung herauszupicken und ihr gegenwärtiges Gewicht zu analysieren, ohne `cross-talk' von anderen Gewichten in Kauf nehmen zu müssen.

Es ist ohne weiteres möglich, alternative Schemata zur gleichzeitigen Adressierung mehr als eines Gewichtes zu entwerfen (siehe auch Fußnote$^5$).

4. Das Netz vermag all seine eigenen Gewichte zu modifizieren. Eine Untermenge der Ausgabeknoten, welche weder `normale' Ausgabeknoten noch Analyseknoten enthält, wird als die Menge der Modifizierknoten bezeichnet. $mod_k$ bezeichnet den $k$-ten von $n_{mod}$ Modifizierknoten. Die Modifizierknoten dienen dazu, sequentiell Verbindungen anzusprechen, deren gegenwärtige Gewichte das Netzwerk `ändern möchte'. Es bereitet von neuem keine Schwierigkeiten, die Modifizierknoten mit genügend Kapazität zur Adressierung jeder beliebigen Verbindung auszustatten, einschließlich jener Verbindungen, die zu Modifizierknoten führen. Dies läßt sich wiederum durch

\begin{displaymath}
n_{mod} = up(log_2 n_{conn})
\end{displaymath} (8.4)

erreichen. Ein spezieller Nichteingabeknoten, der weder `normaler' Ausgabeknoten, Analyseknoten, noch Modifizierknoten ist, wird mit $\bigtriangleup $ bezeichnet. $f_{\bigtriangleup}$ sollte sowohl positive als auch negative Aktivationen $\bigtriangleup(t)$ gestatten. $mod(t)$ und $\bigtriangleup(t)$ arbeiten zusammen, um explizite Gewichtsänderungen gemäß
\begin{displaymath}
w_{ij}(t+1) = w_{ij}(t) + \bigtriangleup(t)~g[~ \Vert adr(w_{ij}) - mod(t) \Vert^2~ ]
\end{displaymath} (8.5)

hervorzurufen. Ist $g$ nahezu überall fast Null, weist aber um den Ursprung herum eine enge Spitze auf, so kann sich das Netz zu jedem Zeitpunkt eine einzelne Verbindung herauspicken und ihr gegenwärtiges Gewicht ändern, ohne andere Gewichte zu beeinflussen. Es ist wiederum ohne weiteres möglich, alternative Schemata zur gleichzeitigen Modifikation mehr als eines Gewichtes zu entwerfen (siehe erneut Fußnote$^5$).

Die Gleichungen (8.1), (8.3), und (8.5) beschreiben im wesentlichen die vorverdrahtete Systemdynamik - die vom Performanzmaß abhängigen Belegungen der Evalknoten werden allerdings erst im Abschnitt 8.2 spezifiziert werden.

Abbildung: Der spezielle Eingabevektor $eval(t)$ informiert das vollständig rückgekoppelte Netzwerk (nur zwei Verbindungen sind eingezeichnet) über externe Performanzevaluationen. Der spezielle Ausgabevektor $ana(t)$ adressiert eine zu analysierende Verbindung, deren Gewicht in den speziellen Eingabeknoten $val$ geschrieben wird. Der spezielle Ausgabevektor $mod(t)$ adressiert eine zu modifizierende Verbindung, deren Gewicht in Proportion zur gegenwärtigen Aktivation des speziellen Ausgabeknotens $\bigtriangleup $ geändert wird. Siehe Text für Details.
\begin{figure}\psfig{figure=fig8.1} \end{figure}


Tabelle 8.1: Symboldefinitionen zur Beschreibung des `selbstreferentiellen' Netzes.
Symbol Beschreibung  
$t$ Diskreter Zeitindex aus $\{1, \ldots, n_{time} \}$  
$x_k$ $k$-ter `normaler' Eingabeknoten  
$y_k$ $k$-ter Nichteingabeknoten  
$o_k$ $k$-ter `normaler' Ausgabeknoten  
$z_k$ $k$-ter Knoten  
$eval_k$ $k$-ter Evalknoten (zur Beobachtung von Performanzevaluationen)  
$ana_k$ $k$-ter Analyseknoten (um Verbindungen zu adressieren)  
$mod_k$ $k$-ter Modifizierknoten (um Verbindungen zu adressieren)  
$val$ spezieller Eingabeknoten zur Analyse von Gewichten  
$\bigtriangleup $ spezieller Ausgabeknoten, um Gewichte zu ändern  
$u(t)$ Aktivation von $u$ zur Zeit $t$, falls $u$ Knoten bezeichnet  
$v_k(t)$ $k$-te Komponente von $v(t)$, falls $v(t)$ Vektor (konsistent mit vorangegangener Zeile)  
$x(t)$ `normaler' Eingabevektor zum Zeitpunkt $t$  
$o(t)$ `normaler' Ausgabevektor zum Zeitpunkt $t$  
$eval(t)$ Performanzevaluationsvektor zum Zeitpunkt $t$  
$ana(t)$ spezieller Ausgabevektor zur Adressierung von Verbindungen  
$mod(t)$ spezieller Ausgabevektor zur Adressierung von Verbindungen  
$n_x$ $dim(x(t))$, Anzahl der normalen Eingabeknoten  
$n_o$ $dim(o(t))$, Anzahl der `normalen' Ausgabeknoten  
$n_{eval}$ $dim(eval(t))$, Anzahl der Evalknoten  
$n_I$ $ n_x + n_{eval} + 1 $, Anzahl aller Eingabeknoten  
$up(x)$ kleinste ganze Zahl $\geq x$  
$n_{mod}$ $dim(mod(t))= up(log_2 n_{conn})$, Anzahl der Modifizierknoten  
$n_{ana}$ $dim(ana(t))= up(log_2 n_{conn})$, Anzahl der Analysierknoten  
$n_y $ $n_o + n_{ana} + n_{mod} + 1$, Anzahl der Nichteingabeknoten  
$n_z$ $n_I + n_y $, Anzahl aller Knoten  
$n_h$ Anzahl der `versteckten' Knoten  
$w_{ij}$ Verbindung vom Knoten $j$ zum Knoten $i$  
$n_{conn}$ $n_I(n_y+n_I)$, Anzahl aller Verbindungen  
$adr(w_{ij})$ Adresse von $w_{ij}$  
$g$ Funktion zur Definition der `Nähe' von Adressen, mit enger Spitze um den Ursprung herum  
$val(t+1)$ $\sum_{i,j}g[ \Vert ana(t) - adr(w_{ij}) \Vert^2]w_{ij}(t)$  
$w_{ij}(t)$ Gewicht von $w_{ij}$ zum Zeitpunkt $t$  
$w_{ij}(t+1)$ $w_{ij}(t) + \bigtriangleup(t)~g[~ \Vert adr(w_{ij}) - mod(t) \Vert^2~ ]$  
$n_r$ konstante Blockgröße, $x(t)$ bleibt während Blöcken der Länge $n_r$ invariant  
$n_s$ Anzahl sukzessiver Blöcke in der Eingabesequenz  
$n_{time} = n_rn_s$ Anzahl sukzessiver Zeitschritte in der Eingabesequenz  
$S$ Menge der vom Netz ausführbaren Algorithmen  


Es gibt viele im obigen Sinne `selbstreferentielle' Netze. Der Begriff `versteckte Knoten' bezeichne Knoten, die weder `normale' Eingabeknoten, `normale' Ausgabeknoten, Evalknoten, Analysierknoten, Modifizierknoten, $val$ oder $\bigtriangleup $ sind. Es existieren $n_h = n_y-n_o$ derartige versteckte Knoten. Es gibt eine unendliche Anzahl von Möglichkeiten, die Bedingung

\begin{displaymath}
n_{conn} \geq
(n_h +n_o + 2 up(log_2n_{conn}) +1)
(n_h +n_o + 2 up(log_2n_{conn}) +1 + n_x + 1 + n_{eval}).
\end{displaymath} (8.6)

zu erfüllen. Ein Beispiel, bei dem das Gleichheitszeichen in (8.6) erfüllt ist, ist durch

\begin{displaymath}
n_x = 27,
n_o= n_{eval}= 4,
n_{ana}= n_{mod}= 11,
n_h= 5
\end{displaymath}

gegeben.


next up previous contents
Nächste Seite: MÄCHTIGKEIT DER KLASSE DER Aufwärts: EIN `SELBSTREFERENTIELLES' REKURRENTES NETZ Vorherige Seite: `KONVENTIONELLE' ASPEKTE DER ARCHITEKTUR   Inhalt
Juergen Schmidhuber 2003-02-20


Related links in English: Recurrent networks - Fast weights - Subgoal learning - Reinforcement learning and POMDPs - Unsupervised learning and ICA - Metalearning and learning to learn
Deutsche Heimseite