Info IV, Tutorium 2, SS07
Dies ist die Homepage zum Informatik IV Tutorium Nummer 2 im Sommersemester 2007 an der Universität Karlsruhe (TH).
- Ort: Raum -109 im Informatik Neubau (Geb. 50.34)
- Zeit: Wöchentlich – Montag, 11:30 Uhr; erstmalig am 23. April 2007
- Kontakt: thomas.pajor (at) logn.de oder #uka.info1 im Quakenet
Einen Übungsschein könnt ihr erwerben. Hierfür sind mindestens 2/3 der zu erreichenden Punkte auf den Übungsblättern nötig.
Die Abgabe in Zweiergruppen ist nicht erlaubt. Dafür wird es immer nur eine Korrekturaufgabe á 10 Punkte pro Übungsblatt geben.
Die bearbeiteten Übungsblätter sind, wie gewohnt, versehen mit Name, Matrikelnummer sowie der Tutoriumsnummer in die Einwurfsschlitze im Keller des Informatik Neubaus zu werfen. Bitte achtet darauf dass eure Blätter zusamengetackert sind.
Begleitend zur Vorlesung gibt es außerdem eine Newsgroup in der diskutiert und Fragen gestellt werden können.
Neues…
Ende
Samstag, 28.07.2007, 15:36
Das war es dann mit den Tutorien dieses Semester. Unsere (korrigierten) Folien sowie die Lösung zur Simplex-Aufgabe aus dem Zusatztutorium habe ich unter Material verlinkt. Ich hoffe es hat euch trotz des nicht ganz einfachen Stoffes Spaß gemacht. Bleibt mir schließlich nurnoch viel Erfolg für die Klausur zu wünschen, und falls ihr noch Fragen habt könnt ihr mich natürlich weiter via Elektropost erreichen (Wobei ich jedoch bis mitte August nicht in Karlsruhe sein werde).
Vielen Dank wieder an Adam Taras für die regelmäßigen Aufzeichnungen und an alle die Hinweise zu Fehlern auf Folien oder den Lösungen gegeben haben. :-)
Zusatztutorium
Mittwoch, 18.07.2007, 23:14
Ich habe es ja schon im letzten Tutorium angekündigt: Ein Zusatztutorium gehalten von Benjamin Vogel (Tut 7) und mir zur Klausurvorbereitung wird es geben! Termin und Ort stehen jetzt fest und sind:
Freitag, 27. Juli, 14:00 Uhr – Hörsaal -101 Infobau (Geb. 50.34)
Wir werden allerdings keinen eigenen Stoff vorbeiten. Bitte stellt Fragen und Themenwünsche vorher via Elektropost, so dass wir dazu was vorbereiten können. Ihr seid natürlich alle eingeladen teilzunehmen, egal ob ihr in unseren Tutorien eingeschrieben seid oder nicht.
Punktestand
Mittwoch, 18.07.2007, 21:10
Ich habe das 11. Übungsblatt korrigiert und die Punkte eingetraten. Außerdem findet ihr schon das 12. Übungsblatt in dem System – allerdings noch ohne Punkte, da ich es ja noch nicht korrigiert habe.
Ergänzungen zum Tut (Wavelet-Transformation)
Dienstag, 17.07.2007, 01:24
Da ich leider nicht alles, was ich zu Wavelets vorhatte, geschafft habe, hier die versprochenen Ergänzungen. Nochmal zur Erinnerung. Der Vektorraum enthält alle abschnittsweise konstanten Funktionen auf dem Intervall auf gleich großen Abschnitten, und es gilt
Die Haar-Basis von sind gerade die Funktionen, die in genau einem Abschnitt den Wert annehmen und sonst sind. Davon gibt es natürlich Stück, und alle Funktionen (Bilder) aus lassen sich durch Linearkombinationen dieser Basisvektoren darstellen.
Nun hatten wir noch das Standardskalarprodukt auf Funktionenräumen definiert:
und somit können wir den Begriff der Orthogonalität verwenden (Zur Erinnerung: Zwei Funktionen sind genau dann orthogonal, wenn ihr Skalarprodukt ergibt). Wegen ist ein Untervektorraum von und somit existiert bezüglich ein orthogonaler Komplementraum zu , den wir mal nennen wollen. Weil alle diese Räume endlichdimensional sind, gilt sogar
Die Basisvektoren von heißen Wavelets. Im Falle der Haar-Basis von betrachten wir die korrespondierte Basis im Orthogonalraum, und definieren
mit
als Haar-Wavelets. Die folgende Grafik zeigt die Haar-Wavelets für den Raum .
Man kann relativ leicht einsehen, dass hier je zwei Basisvektoren aus und orthogonal sind, und somit ist erfüllt (Das ist in der LA-Vorlesung vermutlich bewiesen worden). Wir haben in dem einführenden Beispiel auf den Folien gesehen, dass das Eingabebild bei der Wavelet-Transformation sukzessive „vergröbert“ wird, und wir uns jeweils die „Detailkoeffizienten“ dazuspeichern. Die Zerlegung von einem Bild aus in Komponenten aus und entspricht genau dieser Vergröberung, denn das Bild aus enthält nurnoch halb so viele „Bildpunkte“ (Abschnitte auf ) wie das Bild aus . Der Anteil aus , der für die Beschreibung von dem Bild aus notwendig ist, lässt sich anschaulich mit den „Detailkoeffizienten“ aus dem Beispiel identifizieren.
Ist nun ein beliebiges Bild aus , so ist eine Linearkombination aus Vektoren der Haar-Basis zu .
Dabei sind die Koeffizienten genau die Farbwerte der Pixel. Wenn man nun diesen Zerlegungsschritt mal durchführt so ergibt das gerade
Die Wavelet-Transformierte des Bildes ist dann
Auf den Tut-Folien (siehe Material) ist auch nochmal das Beispiel, das wir eingangs zur Motivation der Wavelet-Transformation durchgegangen sind, auf diese formale Methode bezogen. Außerdem habe ich ein Paper verlinkt, nach dem sich auch meine Herleitung im Tutorium gerichtet hat. Ich empfehle es euch auf jeden Fall als Ergänzung zu dem offiziellen Manuskript.
Korrekturaufgabe auf Blatt 9
Dienstag, 25.06.2007, 13:02
Auf einer frühen Fassung des 9. Übungsblattes sind zwei Aufgaben als Korrekturaufgaben markiert. Dies ist ein Fehler, und es wird nur die Aufgabe 33 korrigiert.
Auf der aktuellen Version des Blattes im Netz müsste das schon berichtigt sein.
Ergänzungen zum Tut heute
Dienstag, 29.05.2007, 19:49
Ich habe heute eine sigmoide Funktion im Tut als monoton (steigend) und mit negativem wie positivem Grenzwert definiert. Dies reicht aber nicht aus! Die Funktion muss weiterhin auch differenzierbar auf dem ganzen Definitionsbereich sein. Damit fällt die Sprungfunktion mit
weg, da sie an der Stelle nicht diff’bar ist.
Der Backpropagation-Algorithmus würde nämlich sonst nicht mit beliebigen sigmoiden Funktionen funktionieren, da wir ja die erste Ableitung von benötigen.
Des Weiteren scheint es in der Literatur mit den Begriffen „Erregungsfunktion“ und „Aktivierungsfunktion“ ein bisschen durcheinander umherzugehen. Ich habe im Tut heute die gewichtete Summe als Erregungsfunktion bezeichnet, also beispielsweise
und die Aktivierungsfunktion ist dann beispielsweise die sigmoide Funktion die den Zustand des Neurons berechnet und als Eingabe bekommt. Im Goos 4 wird mit den Begriffen anders gehandhabt – nur damit ihr nicht verwirrt seid falls ihr in der Literatur rumstöbert.
Verlegung des Tuts am 28. Mai 2007 / Übungsblätter
Mittwoch, 23.05.2007, 14:47
Da nächsten Montag Feiertag ist (Pfingstmontag) werde ich das Tutorium in dieser Woche verschieben. Der neue Termin ist
Dienstag, 29. Mai um 15:45 Uhr in Raum 301 im Infobau.
Danach findet es natürlich wieder zu den gewohnten Zeiten am üblichen Ort statt. Aufgrund der Hochgradigkeit des aktuellen Themas braucht ihr das Übungsblatt 5 erst am Freitag einzuwerfen, und für das nächste Übungsblatt habt ihr dann zwei Wochen Bearbeitungszeit.
Zusatzmaterial; „Themen“-Sektion entfernt
Montag, 21.05.2007, 23:56
Unter „Material“ findet ihr das Java-Applet zur Perzeptron-Lernregel von heute, falls ihr damit selbst nochmal rumspielen wollt. Es war ja etwas hektisch heute am Ende im Tutorium. Außerdem habe ich noch eine Zusammenfassung von Benjamin Vogel (Tut 7) zum (algebraischen) Simplex-Verfahren verlinkt.
Des Weiteren habe ich mal die „Themen“ und die „Material“ Seiten vereinigt. Erstens muss ich dadurch weniger updaten, und zweitens ist es so übersichtlicher, wenn ihr bei den Folien bzw. Aufgaben gleich seht was das Thema im Tutorium war. :)
LP Solve
Dienstag, 08.05.2007, 14:33
Falls ihr ein bisschen mit linearen Programmen rumspielen wollt, so könnt ihr euch mal LP Solve anschauen. Damit könnt ihr ziemlich einfach (ganzzahlige) lineare Programme lösen. Ich habe das außerdem mal unter Material mit verlinkt!
Zum algebraischen Simplex-Algorithmus
Montag, 07.05.2007, 21:56
Ich habe leider heute nicht alles geschafft, was ich machen wollte, und ich weiß nicht ob auf dem nächsten Übungsblatt nochmal was zu Simplex drankommt, und eigentlich will ich mich jetzt auch nicht ewig mit dem Thema aufhalten, deswegen hier noch das, was es zum algebraischen Simplex zu sagen gibt.
Nur nochmal zur Erinnerung. Die Normalform unseres linearen Programms ist ja zu Anfang gerade:
wobei die Basisvariablen und die Nichtbasisvariablen sind. Nehmen wir der Einfachheit halber mal an, dass der Punkt Element unseres Lösungsbereiches ist. Dann wählen wir diejenige der Nichtbasisvariablen, die zu einer Verbesserung der Zielfunktion führt, und setzen alle anderen Nichtbasisvariablen auf . Etwas formaler: Finde eine Nichtbasisvariable für die (Man könnte hier selbstverständlich auch die größte auswählen - aber das bringt asymptotisch keine Verbesserung der Laufzeit).
In unserem Beispiel-LP
unter
würden wir beispielsweise erhöhen (wobei ). Nun könnten wir ja theoretisch beliebig hoch setzen, und erhielten dann einen beliebig guten Wert aus unserer Zielfunktion, jedoch würden wir dadurch möglicherweise die Nebenbedingungen verletzen. Das heißt, wir suchen uns diejenige der Nebenbedingungen heraus, die das Erhöhen der Nichtbasisvariablen am meisten einschränkt.
In unserem Beispiel setzen wir dazu einfach in die Nebenbedingungen ein, und prüfen welche Bedingung die stärkste Einschränkung an stellt. Also
Die erste Ungleichung stellt keine Einschränkung an , also könnte beliebig wachsen. Die zweite Gleichung fordert dass kleiner als sein muss, und die Dritte sogar .
Nun haben wir eine Gleichung gefunden, die unsere Nichtbasisvariable am stärksten einschränkt. Wir führen nun die besagte Koordinatentransformation durch, indem wir die Variablen und „tauschen“. Anschaulich bewegen wir unser Koordinatensystem so, dass die neue Ecke des Polyeders (die in unserem Falle der Punkt ) der neue Ursprung des Koordinatensystems wird. Wenn ihr die Tableau-Notation aus dem Skript benutzt, dann entspricht das gerade dem Austauschalgorithmus mit dem Pivot . Was da im Grunde passiert ist nichts anderes, als dass die Gleichung nach der Variablen aufgelöst wird, und dann für in allen anderen Gleichungen eingesetzt wird. Dadurch wird quasi die Rolle von mit getauscht, denn ist nun links der Gleichheitszeichen, und somit eine Basisvariable, während zu einer Nichtbasisvariablen geworden ist. Wir haben also die Koordinatendarstellung unseres LP geändert!
Machen wir das doch mal für unser Beispiel mit und . Auflösen der Gleichung drei nach führt zu
und dies eingesetzt für in allen anderen Gleichungen (Zielfunktion nicht vergessen!) ergibt das neue lineare Programm in Normalform:
unter
Die aktuelle Ecke des Polyeders, die wir jetzt also betrachten ist , und dies entspricht, wenn wir das mal in die Gleichung von einsetzen, dem Punkt – was tatsächlich eine Ecke des Polyeders ist (vgl. graphische Variante im Tut). Außerdem hat sich der Wert der Zielfunktion von auf verbessert.
Wir können nun das gleiche Prozedere erneut durchführen. Finde eine Nichtbasisvariable, dessen Erhöhung die Zielfunktion verbessert. Wir könnten beispielsweise nehmen, da diese positiv in der ZF vorkommt. Und so weiter, ich hoffe ihr kommt langsam auf die Idee wie das funktioniert :-).
Wenn es keine verbessernde Nichtbasisvariablen mehr gibt, so sind wir fertig, und haben die optimale Lösung am Punkt (natürlich bezüglich der aktuellen Koordinatendarstellung) gefunden. Einsetzen in die entsprechenden Gleichungen und liefert dann den tatsächlichen Punkt in unserer ursprünglichen Koordinatendarstellung.
Ich hoffe es ist jetzt halbwegs verständlich was der Simplex-Algorithmus in seiner algebraischen Variante macht. In den Lösungen zu den Aufgaben aus dem heutigen Tut habe ich das Beispiel mit dem Rohöl auch nochmal algebraisch durchgeführt.
Verlegung des Tutraums
Samstag, 21.04.2007, 13:21
Auf den Webinscribe-Tutoren-Zetteln stand als Raumangabe für mein Tutorium der Raum -109 im AVG. Leider enthält der Raum keinen Beamer, daher habe ich das Tutorium verlegt, und zwar in den
Raum -109 im Informatik Neubau (Geb. 50.34).
Auf der aktuellen Version der Tutoren-Liste ist das schon korrigiert, aber für alle, die es nicht mehr mitbekommen haben, werde ich am Montag noch ein Goto in den AVG-Raum setzen. :-)