1. XOR: Mit folgender Architektur “geht es” x1 x2 2. n-dimensionale Lernprobleme mit einer n-2-1-Architektur lösen x1 x2 . . . x2 Loading-Problem: Für eine endliche Liste binärer Trainingspaare (x(1),d(1)),L,(x(k)d(k)) mit n x(1),L, x(k) " {0,1} ,d(1),L,d(k) " {0,1} soll entschieden werden, ob es ein n-2-1-MLP gibt, welches bei Eingabe von Vektor x(i) !eine Ausgabe ≥ 0,99 für d(i) = 1, und ≤ 0,01 für d(i) = 0, produziert. Dieses Problem ist NP-vollständig. Mit den Festlegungen „Ausgabe ≥ 0,99 für d(i) = 1, und ≤ 0,01 für d(i) = 0“ tragen wir der Tatsache Rechnung, dass wir Neuronen mit sigmoider Aktivierungsfunktion verwenden wollen, die, auch wenn die Eingaben nur binär sind, doch beliebige Werte zwischen 0 und 1 abliefern (ja sogar gar nicht in der Lage sind, exakt 0 oder 1 zu produzieren). 3. Encoder (Datenkompression) Es gibt n Eingabeneuronen und n Ausgabeneuronen. Dazwischen gibt es eine verborgene Schicht mit log(n) versteckten Neuronen (n sei eine Zweierpotenz). Bei Eingabe von genau einer 1 am i-ten Eingabeneuron und sonst lauter Nullen, soll am i-ten Ausgabeneuron ein Wert ≥ 0,99 und an allen anderen Ausgabeneuronen ein Wert ≤ 0,01 ausgegeben werden. Dies soll für alle i von 1 bis n gelten. Die Idee ist, das Netz auf die (approximative) Reproduktion einer unären Zahleneingabe an der Ausgabeschicht zu trainieren. Da nur log(n) versteckte Neuronen erlaubt sind, die verborgene Schicht somit ein Nadelöhr für den Informationstransport darstellt, muss das Netz irgendeine Art der Datenkompression lernen. Eine Möglichkeit wäre der Binärcode an den versteckten Neuronen. Beispiel mit n = 8 und als einem der 8 möglichen Eingabevektoren die Zahl 5: unär 5 = 00001000 binär 5 = 101 0 0,01 0 0,01 0 0,99 0 0,01 0,01 0,01 1 0 0,99 0,99 0,01 0 0,01 0 0,01 4. Sekundärstruktur von Proteinen Ein Protein besteht, vereinfacht gesagt, aus einer linearen Verkettung von Aminosäuren. Es gibt, je nach Zählung, 20 verschiedene Aminosäuren. Proteine können aus einigen Dutzenden, aber auch aus vielen Tausenden von Aminosäuren bestehen. Für die biologische Wirkung eines Proteins ist seine 3-dimensionale Struktur, die sog. Tertiärstruktur, von essentieller Bedeutung. Diese ist nur in aufwändigen Laborprozessen (Röntgenkristallographie) zu bestimmen – wenn überhaupt. Seit einiger Zeit versucht man, solche Strukturen eher rechnerisch zu bestimmen. Etwas weniger anspruchsvoll ist es, als Vorarbeit aus der Liste der Aminosäuren eines Proteins (diese Liste nennt man die Primärstruktur) zunächst die sog. Sekundärstruktur zu bestimmen, in der für jede Aminosäure codiert ist, ob sie Teil einer Helixstruktur (α-helix), einer Faltblattes (βsheet), oder einer eher „lockeren Verbindung“ zwischen solchen Teilen (γ-coil) ist. Man hat dabei das Gefühl, dass die Zugehörigkeit einer Aminosäure Ai eines Proteins zu einer dieser 3 möglichen Strukturen in lokaler Weise durch seine Interaktionen mit benachbarten Aminosäuren festgelegt ist, beispielsweise durch die 5 Aminosäuren links und die 5 Aminosäuren rechts neben Ai. Deshalb kommt man auf die Idee, aus der Kenntnis von 11 Aminosäuren die Klasse (α oder β oder γ) der mittleren (also 6-ten) Aminosäure zu prognostizieren. Diese 11 Aminosäuren sollen einem MLP als Eingaben präsentiert werden. Da es für die erste Aminosäure 20 Möglichkeiten gibt, verwenden wir (unär codierend) hierfür 20 Neuronen. Entsprechendes gilt für die zweite bis 11-te Aminosäure. Insgesamt verwenden wir also 220 Eingabeneuronen. An der Ausgabe verwenden wir 3 Ausgabeneuronen, die mit einem Wert ≥ 0,99 an einem der 3 Neuronen und zwei Werten ≤ 0,01 an den anderen beiden codieren, welcher der 3 Klassen die mittlere, durch die Eingabeneuronen 101 – 120 repräsentierte Aminosäure angehört. Gebräuchlich sind 2 verborgene Schichten mit 20 – 30 Neuronen in der ersten und 5 – 10 Neuronen in der zweiten verborgenen Schicht. Als Trainingsdaten stehen alle Segmente aus 11 Aminosäuren von Proteinen bekannter Sekundärstruktur zur Verfügung. 1 α erste 1 Aminosäure 1 20 β 10 30 γ 220 5. Mühle Wohin soll Weiß seinen letzten Stein setzen? Erste Möglichkeit: Score einer Stellung berechnen Netzeingabe sind diverse Merkmale, die man einer Stellung entnimmt: Anzahl geschlossener Mühlen, Anzahl aller freien Positionen, wo man durch Setzen eines Steines eine neue Mühle bilden kann; etc. Daraus soll ein “Score” dieser Stellung berechnet werden (numerischer Wert normiert auf das Intervall von 0 bis 1). Dann wird unter allen Folgestellungen diejenige gewählt, die den größten Score hat. Letzteres macht nicht das Netz, sondern ein sequentieller Durchlauf durch das trainierte Netz mit allen möglichen Stellungen. Problem: Man tut sich in Trainingsstellungen schwer, einen geeigneten Score zu definieren. Zweite Möglichkeit: Eingabe sind geeignete Merkmale zweier Vergleichsstellungen, die als Folgestellungen derselben Ausgangsstellung auftreten können. Das Netz soll entscheiden, ob die erste Stellung die bessere ist. Eine solche Entscheidung ist in vielen Trainingssituationen (= 2 zu vergleichende Stellungen) leichter zu treffen. 6. Contact Map Wir betrachten, als Beispiel, eine größere Anzahl n von Hämoglobinproteinen bei unterschiedlichen Tieren. Wir unterstellen, dass sich all diese Hämoglobine aus einem gemeinsamen Ur-Hämoglobin entwickelt haben („homologe Proteine“), wobei es in der Evolution gelegentlich Mutationen, Einfügen weitere Aminosäuren und Löschen vorhandener Aminosäuren gegeben hat, was dafür verantwortlich sind, dass die diversen Hämoglobine Variationen in der Aminosäurenreihenfolge aufweisen. Wir nehmen nun an, dass uns diese evolutionäre Historie bekannt ist. Dies drückt man durch ein sog. multiples Alignment aus, in dem die Mutationen, Einfügen, Löschen beispielsweise wie folgt ausgedrückt sein können (die Buchstaben M, G, V, etc. sind Kürzel für Aminosäuren): Etwas abstrakter gesagt legen wir als multiples Alignment eine Tabelle folgender Art zugrunde: die Abfolge der Aminosäuren bzw. Leerstellen in den Proteinen 1 i j m P1 a11 a1i a1j a1m Pr ar1 ari arj arm Ps as1 asi asj asm Pn an1 ani anj anm n homologe Proteine • These 1: Wenn in einem der Proteine ein Kontakt zwischen Aminosäure i und Aminosäure j besteht, so ist dieser Kontakt vermutlich funktionsrelevant und sollte deshalb in allen anderen der homologen Proteine auch vorhanden sein. i j • These 2: Wenn wir für je zwei Positionen i und j wüssten, ob hier ein Kontakt zwischen den Aminosäuren besteht, so könnten wir daraus die genaue räumlich Struktur der Proteine vorhersagen. (In Wahrheit reicht es für die Vorhersage der 3D-Struktur schon, wenn man ca. 50% der Kontakte kennt.) Nun konzentrieren wir uns im multiplen Alignment einmal auf die Spalten i und j. In Spalte i wird nicht überall dieselbe Aminosäure stehen (weil ja Mutationen zu Veränderungen geführt haben können). Ebenso wird in Spalte j nicht überall dieselbe Aminosäure stehen. Wir stellen uns vor, dass wir den Aminosäuren A eine Maßzahl µ(A) zuweisen können, welche diese Aminosäuren hinsichtlich gewisser chemischer Eigenschaften charakterisiert (wie beispielsweise mehr oder weniger hydrophob/hydrophil zu sein, oder Ähnliches). In Spalte i sei der Mittelwert der dort auftretenden solchen Maßzahlen gleich µi und die Varianz (mittlere quadratische Abweichung vom Mittelwert) der Maßzahlen gleich " i2 . • These 3: Wenn in einem den betrachteten Proteinen des multiplen Alignments ein ! Kontakt zwischen Aminosäure i und Aminosäure j besteht, so sollten eine Mutationen in den Spalten i und j hinsichtlich der oben beschriebenen Maßzahl eine gewisse Korrelation aufweisen: Mutation in Spalte i zu einem überdurchschnittlichen Maßzahlwert sollte durch Mutation in Spalte j zu einem ebenso überdurchschnittlichen Maßzahlwert begleitet sein, und mit unterdurchschnittlichen Werten ebenso. Dies alles, damit chemisch auch nach Mutationen ein Kontakt der Aminosäuren i und j möglich bleibt (Proteine, bei denen durch eine Mutation dieser Kontakt verloren gegangen ist, waren nicht lebensfähig und sind von der Evolution ausgesondert worden, kommen also in unserem multiplen Alignment gar nicht vor). Protein Pr Protein Ps µi i µi + 8 i µi - 7 i j j µj µj + 6 j Pt Protein µj - 6 Eine solche „Kovariabilität“ des Mutationsgeschehens in den Spalten numero i und j misst man in der Statistik durch die sog. Kovarianz: 1 m " ij = 2 2 % (µ(A pi ) $ µi )(µ(A pj ) $ µ j ) # i # j p=1 • These 4: Ein positiver (möglichst großer) Wert κij sollte also auf einen möglichen ! Kontakt dieser beiden Positionen hinweisen. Wir können noch einen Schritt weiter gehen. • These 5: besteht ein Kontakt an den Positionen i und j, so erwarten wir auch entsprechende Kontakte an den beiden linken und den beiden rechten Nachbarpositionen. Bei einem β-sheet würde man je nach „Orientierung“ des Faltblattes zwei Möglichkeiten haben: i-2 i-1 i i+1 i+2 i-2 i-1 i i+1 i+2 j+2 j+1 j j-1 j-2 j-2 j-1 j j+1 j+2 anti-paralleler β-sheet paralleler β-sheet In der Matrix aller paarweisen Korrelationen würde man folgende Muster erwarten erwarten: j "2 j "1 j i"2 i "1 ! j+2 >0 >0 i i +1 i+2 j +1 >0 >0 >0 j "2 i"2 i "1 j "1 j j +1 j+2 >0 >0 i i +1 i+2 >0 >0 >0 ! Bei einem Kontakt in einer α-Helix würde es wie in einem parallelen β-sheet aussehen; außerdem würde hier die Differenz j – i nicht allzu groß sein dürfen. Da in diesen 25 Werten also starke Informationen enthalten zu sein scheinen bezüglich der Frage, ob zwischen Positionen i und j ein Kontakt besteht, sollte ein neuronales Netz diese 25 Werte zur Verfügung gestellt bekommen. Des Weiteren würde man ihm vielleicht auch noch die alle Prognosewerte bezüglich Sekundärstruktur an den Positionen i – 2, ..., i +2 und j – 2, ..., j +2 geben, sowie relevante chemische Charakteristika (what ever). 25 Neuronen mit Korrelationskoeffizienten 18 Neuronen mit i, j in Kontakt Sekundärstrukturprognosen i, j nicht in Kontakt Weitere Neuronen mit chemischen Merkmalen und Abstand zwischen i und j Anzahl der Gewichte bei ca. 60 Eingabeneuronen, 20 verborgenen Neuronen in der ersten hidden Schicht, 10 verborgenen Neuronen in der zweiten hidden Schicht, 2 Ausgabeneuronen: 60 " 20 + 20 "10 + 10 " 2 = 1420 Zur Erinnerung: Die Hessematrix der zweiten partiellen Ableitungen der quadratischen ! Fehlerfunktion hätte 2.016.400 Einträge; ihre Invertierung würde O(2.863.288.000) Additionen und Multiplikationen verschlingen.