Posts mit dem Label Informatikkrams werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Informatikkrams werden angezeigt. Alle Posts anzeigen

Dienstag, 19. Januar 2010

Book Day

Heute war an der Unibibliothek Bücherbasar. Das ist eine alljährliche Veranstaltung, bei der alte und nicht mehr benötigte Bücher zu (sehr) kleinen Preisen unters Volk gebracht werden.

Nachdem ich diese Gelegenheit in den letzten Jahren stets verpasst habe, bin ich diesmal nur leicht verspätet angekommen und konnte einiges Geschriebenes für meine Heimbibliothek erwerben.

Um diesen Anlass zu feiern möchte ich nun hier jeweils den 19. Satz der 54. Seite eines jeden neuen Buches zitieren (Zahlen zufällig gewählt):

The paper by Burks, Goldstine, and von Neumann was incredible for the period.

In Abbildung 1.11 sind die Abweichungen für unser Beispiel aufgelistet.

After Alberts death, both she and Dorrie may have come a little unhinged.

Das Maximinkriterum macht vor allem dann Sinn, wenn in einem Zwei-Personen-Spiel der Gewinn eines Spielers immer auf Kosten des anderen geht.

They pay a stream of coupons with a final repayment of principal at maturity, but they can be converted into the underlying stock before expiry.

Second, unless stochastic terms are added to the estimated values, the variance of the distribution is understated.

Can Opener n. church key (beer).

The Garret Theatre ran off and on until 1970, subsidized by Herbert's labours as a waiter.

Bildet man den Quotienten zweier Maßzahlen, so erhält man eine wichtige Klasse von Maßzahlen: Die sogenannten Verhältniszahlen.

Die Theoriekenntnis muss so gut sein, dass Sie nicht allein die aus ihr abgeleiteten Hypothesen, sondern ebenfalls die bekannten Antecedenzbedingungen kennen.

Data is moved serially through fiber cable.

Montag, 11. Januar 2010

Scamming the Scammers?

Eine weitverbreitete Form des Internet-Scams ist der sogenannter 419 Scam, bei dem (oft afrikanische) Betrüger versuchen, gutgläubigen Bürgern durch das Versprechen zukünftigen Reichtums viel Geld aus der Tasche zu ziehen.

Eine Gemeinschaft von selbsternannten Wächtern des Rechts hat es sich zum Ziel gesetzt, diese Betrüger zu bekämpfen indem sie die Scammer ihrerseits an der Nase herumführen und ihnen möglichst viele Stöcke und Steine in den Weg zu legen.

Eine gute Idee?

Auf den ersten Blick ja: Recht kann im Internet oft nicht durchgesetzt werden, weil die Strukturen der Rechtswahrung der einzelnen Nationalstaaten oft völlig ungeeignet sind um gegen Rechtsverstöße, die über das Internet aus anderen Ländern begangen werden, vorzugehen. Und was kann es schaden, wenn eindeutige Betrüger auf amüsante Weise dazu gebracht werden, dem Opfer selbst Geld zu bezahlen oder ihm Photos zu schicken?

Und dann kommt eine Geschichte wie diese:

Follow along in the journey of two pathetic 419 scammers into one of the most violent and desolate places on earth, the Chad/Sudan border, where hundreds of thousands of Sudanese refugees have fled to avoid being killed by Sudanese guerillas.

Man beachte auch das die letzte Mail unseres erfolgreichen Helden:

Hi there Kuku,

How's Antarctica? Remember before when I told you that you were famous? Here's the website that made it all happen.
http://www.419eater.com/html/RoadToChadDarfur

Look, I know that you are probably still a little upset over what happened, but I was wondering if you could do me a HUGE favour. Could you send me your photograph? I never did get one of you and it would help me complete the website. As an extra insentive, I will put in a good word for you with your family, telling them that it is not your fault that Oney is either dead or someone's prison fuck-toy.

Thanks in advance for your cooperation.

Blessings,

Rev. Kuhm Belcher

Und nun fragt man sich: Geht es hier wirklich darum, die Unschuldigen zu beschützen und Betrüger zu nerven? Oder geht es darum eine Entschuldigung dafür zu finden, mit Menschen zu spielen wie mit Puppen und ihnen dadurch jegliches Mensch-sein abzusprechen?

Dienstag, 22. Dezember 2009

Car Sharing

Daimler hat sich offensichtlich entschlossen, etwas der Idee meiner Masterarbeit ähnelndes zu implementieren: Das Projekt car2go bietet in Ulm und Austin Autos, genauer Smarts, für 19 cent in der Minute zum mieten an. Ohne großen Vertrag kann man sich dort einen der herumstehenden Smarts nehmen und damit losfahren.

Ich habe schon ein wenig danach gesucht, wie Daimler das Problem meiner Masterarbeit (Wie stellt man sicher, dass die Autos dort sind, wo die Leute losfahren wollen) gelöst hat, aber natürlich gibt es über derartige Details wenige Angaben und schon gar keine Veröffentlichungen. Da freut man sich im Vergleich dann über Informatikfirmen, die interessante Konzepte oft zumindestens in abstrakter Form auch in wissenschaftlichen Zeitschriften veröffentlichen.

Was auf jeden Fall schon sehr hilft ist die Karte, auf der man sehen kann, wo die Autos gerade stehen.

Samstag, 10. Oktober 2009

Salzburg

Das Praktikum ist vorbei und ich genieße einige letzte Tage in München, bevor es zurück nach Paderborn geht und ich wieder in den Alltag des Studentenlebens eintauche (nur noch ein Semester!).

Gestern habe ich den Tag genutzt, um die Geburtstadt von Christian Doppler (und weniger bedeutenden Persönlichkeiten), das schöne Salzburg in Österreich, zu besuchen. Damit habe ich nun jedem der drei großen, deutschsprachigen Länder hier unten einen Besuch gewidmet. (Die Schweiz mit Zürich war letztes Wochenende dran und ich werde hoffentlich noch einen nachträglichen Beitrag schreiben)

Fotos von Salzburg gibt es hier. Besonders gefallen hat mir ein kleines Haus, das man von der Festung aus gesehen hat (naja, eigentlich gab es eine ganze Reihe an schönen Häusern). Wenn ich einmal reich bin, möchte ich genau so eines haben und einrichten.

Heute wird also nocheinmal mit den anderen Praktikanten gefeiert (ich werde sie vermissen und wir haben uns schon versprochen uns in Zürich wiederzusehen, wenn wir alle einen Job haben.) und morgen wird gepackt und aufgeräumt.

Es war eine interessante Zeit hier. Ich habe einiges gelernt (seltsamerweise mehr darüber, wie Menschen sind, als anderes. Aber die Arbeit an Code Search hat mich auch einiges über Suche im Allgemeinen gelehrt.) und bin um viele Erfahrungen reicher.

Ich habe mich entschlossen diesen Blog hauptsächlich als privates Tagebuch weiterzuführen. Das heißt, ich werde die meisten Einträge nicht mehr veröffentlichen, dafür aber wieder (viel) regelmäßiger schreiben.

Donnerstag, 23. Juli 2009

Solares Dingsdabums


Was mag das wohl sein? Eine selbstladene, solargetriebene Batterie, mit der man fast alles an batteriebetriebenen Geräten (Handy, Fotoapperat, leider nicht den Mac) aufladen kann. Ein Tag in der prallen Sonne reicht für eine volle Ladung versprechen die Illustrationen der kurzen Anleitung. Zu Schade, dass es hier fast immer regnet oder zumindest bewölkt ist. Alternativ lässt sich das Teil wohl aber auch am USB Port aufladen. Und woher habe ich es?

Sonntag, 14. Juni 2009

Hiking in the Rain

Ein weiterer Wandertag: Diesmal in der Gegend des Viadukts von Neuenbeken, großteils im Regen und über eine Strecke von etwa 8km. Es hat Spaß gemacht, vor allem, weil wir die längste Zeit im Wald gewandert sind und der Regen uns dort nicht störte. Im Gegensatz zum letzten Wandertag haben wir diesmal auch ein paar Höhenmeter bewältigen müssen: Es ist überraschend, wie bergig es nur eine Viertelstunde von Paderborn entfernt ist. Die Zivilisation ist aber auch im tiefen Wald nicht mehr fern: Zu einem Zeitpunkt warteten wir an einer Wegkreuzung, weil zwei von uns plötzlich angerufen wurden und ein dringendes Gespräch führen mussten. Es ist schon schade, wenn es so selbstverständlich ist, dass man immer überall ereichbar ist.

Nach dem Wandern waren wir auf einen Tee in der petite Galerie: Mithin das beste Cafe in Paderborn (wenn auch teuer) würde ich sagen. Ein paar Fotos gibt es auch.

In other news: Ich habe How to Break Software: A Practical Guide to Testing durchgelesen, bin aber nicht überzeugt. Das Buch konzentriert sich sehr auf das Blackbox-Testing und innerhalb dieses Bereichs sehr auf Angriffe, die von der GUI aus gestartet werden. Es gibt ein paar nützliche und viele triviale Tipps, aber da ich selten von der GUI aus Software teste ist es für mich nicht sehr relevant. Schade, denn das Buch war in Code Complete empfohlen worden und ich hatte mir viel erhofft.

Freitag, 29. Mai 2009

Über die Bedeutung von Worten

Ein wichtige philosophische Frage ist es, wie Worte zu einer Bedeutung kommen bzw. was es überhaupt für ein Wort heißt, eine Bedeutung zu haben. Es gibt hier zwei Ansätze:

In den kausalen Bedeutungstheorien vertritt man die Ansicht, dass die Bedeutung von Worten über eine (ziemlich komplexe) kausale Bedeutungskette zustande kommt. Das bedeutet, dass jeder von uns über eine kausale Verknüpfungskette lernt, welche Bedeutung z.B. das Wort Buch hat. Also was der mit dem Wort verbunde Gegenstand in der wirklichen Welt ist. Ein großes Problem der kausalen Bedeutungstheorien ist, dass sie vorhersagen, dass es exakte Synonyme in verschiedenen Spachen gibt (mein Wort Buch und das italienische Libro beziehen sich auf denselben Gegenstand in der wirklichen Welt). Es gibt aber viele Worte, die in anderen Sprachen keine exakten Synonyme haben. Als Beispiele die schönen Worte morinha und teranga aus dem keltischen / afrikanischen Kulturkreis.

In der zweiten Theorie bedeuten Worte ersteinmal nichts. Sie sind aber verknüpft mit Ideen und diese wiederum bedeuten etwas im Sinne einer Merkmalskombination. Das Wort Buch ist also mit einer Buchidee verknüpft und ich habe eine Vorstellung in der Art von:

Ein Gegenstand ist ein Buch, genau dann wenn Eigenschaften A,B,C zu treffen.

Da wir über die Idee einen Mittelsmann zwischen die Sprache und die wirkliche Welt geschaltet haben, kann man nun sagen, dass es keine exakten Synonyme gibt, weil wir unterschiedliche Ideen mit den Worten bezeichnen. Zum Beispiel bezeichnet morhina eine 'Idee des sehnsüchtigen Heimwehs angesichts eines Lebens in einem fremden Land', die wir hier (meist) nicht haben und für die wir deswegen kein Wort besitzen. Genauso sind viele unserer Ideen, z.B. die Idee des Buchs zwar ähnlich zu Ideen anderer Menschen aber nicht identisch, weswegen sich viele Worte in der Bedeutung leicht unterscheiden.

Das Problem der zweiten Theorie ist, dass sie eine genau Klassifikation von Eigenschaften zu Ideen voraussetzt. Wir erkennen ein Buch indem wir überprüfen ob ein Gegenstand die Eigenschaften A,B,C aufweist. Gibt es wirklich einen so aufgebauten Ideenbegriff?

Beim maschinellen Lernen brauchen wir einen solch klaren Begriff nicht. Man mag von einer Support Vektor Maschine sagen, dass sie die Idee einer Spam-Nachricht hat. Zudem ist die Idee einer Spam-Nachricht bei unterschiedlicher SVMs auch leicht unterschiedlich (je nach verwendeter Trainingsmenge), was (wenn man dreisterweise den Menschen einen ähnlichen Prozess der Begriffsbildung unterstellt) die Theorie stützt. Eine SVM hat aber keine klare Liste von Eigenschaften mit einer genau dann wenn Beziehung in Bezug auf die Idee der Spam-Nachricht. Stattdessen gibt es eine mathematische, kontinuierliche Funktion, die einer Reihe von kontinuierlichen oder diskreten Features A,B,C eine Art Konfidenzwert zuordnet.

Die Idee einer Spam-Nachricht einer SVM ist also inherent fuzzy mit unklaren Übergängen zu Nicht-Spam-Nachrichten und schwer zu entscheidenen Randfällen. Trotzdem kann man sagen, dass es die Idee gibt und man kann vor allem auch sagen, wie sie zustandegekommen ist: Durch die Analyse einer Menge von Beispielen der Ideen Spam und Nicht-Spam. (Und es gibt gerade nicht die von Plato geforderte ideale Spam-Nachricht als Urbild aller Spam Nachrichten)

P.S:

Der amnesty Stand gestern ist übrigens gut gelaufen: 98 Unterschriften haben wir gesammelt.
(Und ich bekam ein paar mal die Gelegenheit das Wort 'verschwundengelassen' zu benutzen)

Donnerstag, 21. Mai 2009

Too much work to do...

It is no wonder, that grown Men either perplexed in the necessary affairs of Life, or hot in the pursuit of Pleasures, should not seriously sit down to examine their own Tenets; especially when one of their Principles is, That Principles ought not to be questioned.

Wahre Worte aus Lockes Mund. Leider komme ich im Moment nur wenig dazu, ihn aus Vergnügen (also nicht für mein Seminar) zu lesen. Zuviel Arbeit hält mich im Moment von den meisten Hobbies ab. Allein nächste Woche ein Vortrag für die Projektgruppe (eigentlich sogar zwei Vorträge) und ein Vortrag für das Seminar Handlungen. Außerdem noch die Ausarbeitung für mein Informatik Seminar (wo ich heute zum Glück große Fortschritte gemacht habe) und Vortrag und Ausarbeitung für User Centred Design.

Warum all der Aufwand? Weil ich im Juli wieder zum Praktikum nach Google gehe: Während die meisten Kommilitonen ihre Prüfungen dann haben werden, muss ich zusehen, dass ich das Semester schon vorher abschließe. Alle meine Veranstaltungen sind deswegen darauf ausgelegt, vorher abgeschlossen werden zu können.

Ich hoffe nur, dass es den Aufwand wert ist. Aber ich freue mich schon darauf, wieder in eine neue Umgebung zu kommen.

Montag, 20. April 2009

Stundenplan

Wieder einmal steht die Arbeit der Lektüre von Locke im Weg. Deswegen werde ich hier über meine Arbeit sprechen, genauer: Über meinen Stundenplan. Meine Veranstaltungen dieses Semester sind:

Randomisierte Algorithmen

Eine Vorlesung für das Studium Generale, auf die ich mich sehr freue. Ich habe bis jetzt nur wenig formal mit randomisierten Algorithmen zu tun gehabt, wurde aber immer wieder auf die Nützlichkeit des Zufalls in bestimmten Situationen (gerade zum Aufbrechen von Symmetrie) aufmerksam gemacht. Ich hoffe durch diese Vorlesung kann ich das auf eine vernünftige theoretische Basis stellen.

Seminar: User Centred Design

Usability Engineering aus Psychologensicht. Das Seminar wird vom c-Lab angeboten und ich habe den ersten Termin leider verpasst. Ich hoffe darauf, dass im Seminar empirische Studien vorgestellt werden anstelle von reinen Designideen. Da das c-Lab aber sehr praxisorientiert ist, denke ich, dass es gute Chancen dafür gibt.

Seminar: Erkenntnis und Wahrnehmung im britischen Empirismus

Locke, Baby! Zudem scheint der Dozent vernünftig zu sein und ich werde für den Leistungsnachweis nicht allzuviel tun müssen (ein Referat über die Biographie Lockes, auf das ich mich sehr freue, da ich bis jetzt noch nicht allzuviel zu seinem Hintergrund gelesen habe). Leider wird dort nicht das Orginal des Essays gelesen, sondern eine deutsche Übersetzung der französischen Ausgabe (oder so). Jedenfalls sind die Kapitelnummerierungen dort anders als bei mir.

Seminar: Handlungen

Ein philosophisch / psychologisches Forschungsseminar, das nach einer entäuschenden ersten Sitzung gerade gute Chancen hat gegen das konkretere Seminar zu Fahrerassistenzsystemen rauszufliegen. Allein der Versuch der Definition des Begriffs Handlungen zu Beginn war meiner Meinung nach schon etwas konfus.

Seminar: Algorithmen für sichere verteilte Systeme

Die Veranstaltung, die das Potential hat, mir am meisten Spaß zu machen. Ich werde mich mit verschiedenen Möglichkeiten, SPAM zu entdecken und zu bekämpfen, beschäftigen. Wenn ich Glück habe, kann ich über die TREC und CEAS SPAM Challenges reden, was mir eine Entschuldigung gibt, mehr über Support Vector Machines, logistische Regression und konkrete Anwendung des maschinellen Lernens zu lernen.

Mittwoch, 15. April 2009

Viele Kleinigkeiten

Das Semester hat begonnen und neben den ersten Vorlesungen fordert auch die Projektgruppe wieder eine ganze Menge Arbeit. Ich bin gestern also nicht dazu gekommen Locke tatsächlich anzufangen und habe auch heute nur das Vorwort -The Epistel to the Reader- gelesen. Diese bietet zwar keine neuen philosophischen Ideen, ist dafür aber in einem herrlichen alt-englischen Stil geschrieben: Locke erläutert den Ursprung des Essays und entschuldigt sich in bester britischer Art für alle möglicherweise vorhandenen Fehler im Text (z.B. dafür, dass Dinge fehlen, oder das der Text zu ausführlich ist, ...).

Daneben habe ich heute morgen mit der Wohnungssuche in München begonnen und auf diversen Seiten nach Angeboten gesucht und welche aufgebeben: München ist ein teures Pflaster und ich erwarte eine Miete von etwa 500 Euro im Monat für ein kleines Zimmer. Aber es ist ja nur für drei Monate und ich verdiene ja auch etwas.

Für einige Leser wird auch von Interesse sein, dass ich von Dirk ein Buch über die Programmiersprache Scala bekommen habe, das nun ebenfalls auf meiner Leseliste steht. (Das Lernen von Scala wird nach dem Abschluss des Stanford Machine Learning Kurses mein nächstes größeres 'privates' Informatikprojekt werden) Ich hatte schonmal die pdf Version des Buches und kann nur wiederholen, dass Scala als High-Level Sprache einen sehr guten Eindruck macht. Unter anderem die nahtlose Integration von Javabibliotheken und die Kombination von objektorientierter mit funktionaler Programmierung interessieren mich. Allerdings soll die Performance von Scala etwa der von Java entsprechen, also im Vergleich zu C/C++ eher schlecht sein. (Kein Wunder, wenn die Java Bibliotheken über Scala mitbenutzt werden können)

Dienstag, 3. März 2009

Der Robot Swarm Simulator

Jetzt ist er endlich fertig: Der Roboterschwarmsimulator meiner Projektgruppe wurde gestern erfolgreich unseren Betreuern übergeben.

Die meisten hier dürften die genauen technischen Spezifikationen nicht sonderlich interessieren. Im Prinzip geht es beim RSS darum, auf einem Roboterschwarm bestimmte Algorithmen auszuführen, damit die Roboter z.B. zusammenfinden oder sich in kleine Teams aufteilen.

Ein kurzes Video des Simulators gibt es hier:

Youtube Video

Sonntag, 4. Januar 2009

Zwanzigtausend erste Aufgüsse

Nach längerer Pause habe ich mal wieder Lust zu einem Blogeintrag. Im Moment bin ich bei meinen Eltern in Reken, wo ich unter anderem in den Genuß eines funktionierenden Internets komme (Ich trauere den Tagen in Mountain View hinterher, wo es überall in der Stadt ein funktionierendes Netz gab!).

In der Zwischenzeit ist auch viel passiert: Ich habe (endlich!) Nachtzug nach Lissabon gelesen und außerdem Ghostwritten, eine äußerst interessante Sammlung von Geschichten (Und ich nehme mir fest vor, in den nächsten Tagen über beide Bücher zu schreiben). Außerdem habe ich für zwei Tage London besucht (ungeordnete Photos hier). Ich glaube London ist ein guter Platz zum Leben: Ich mag das Gefühl durch die Straßen dort zu gehen, die vielen Pubs, die Tatsache das dort viel weniger gehupt wird als in Paris...

Zu guter letzt ist auch unsere Projektgruppe endlich gestartet. Im Moment sind wir gerade dabei, den Robotersimulator zu implementieren: Eine Aufgabe, die mir im Moment viel Spaß macht, weil es das erste Mal ist, dass ich in der Uni versuche ein Softwareprojekt "richtig" umzusetzen (mit einem vernünftigen Team, vernünftigem Designprozess, Unit Tests...). Programmieren macht einfach unglaublich Spaß...

Sonntag, 2. November 2008

Forschungarchäologie

Für das Seminar Wissensbasierte Systeme brauche ich ein Forschungspapier. Von 1973.

Der Prozess um an ein solch altes Papier zu kommen ist sogar relativ problemlos: Man sucht sich die Nummer und den Band des Journals auf den Websiten der Unibibliothek heraus, sagt sie den Mitarbeitern und die machen dann eine Magazinbestellung (und in meinem speziellen Fall findet man ein paar Minuten später ein Buch, das den fraglichen Artikel nachgedruckt hat).

Nur: Die Informatik ist ein sich schnell entwickelndes Fachgebiet und im Gegensatz zu Altgriechisch sind die Informationen aus frühzeitlichen Quellen oft überholt. Was für neue Erkenntnisse wird mir ein derart betagtes Papier also bieten?

Freitag, 19. September 2008

Kostenlose Kurse

Stanford, eine der besten Universitäten der Welt (nicht zu vergessen die Universität der Google Gründer), hat sich entschlossen einige seiner Informatikkurse frei verfügbar zu machen, eine Initiative, die ich sehr begrüße.

Im einzelnen sind das:

Programming Methology: Objektorientierte Designtechniken anhand von Java (in etwa das Äquivalent zu "Grundlagen der Programmierung")

Programming Abstraction: Weitergehender Kurs zu Softwaredesign auf der Grundlage von Programming Methology aber diesmal anhand von C++ (ich finde es übrigens gut, das beide Sprachen bei Stanford gelehrt werden)

Programming Paradigms: Noch weitergehender Kurs, der kurz wesentliche moderne Programmiersprachen, aber auch einige ältere, wie LISP abhandelt

Introduction to Robotics: Eine Einführung in die Robotertechnik

Natural Language Processing: Eine forschungsnahe Einführung in die Spracherkennung

Machine Learning: Der Kurs, der mich am meisten interessiert (und den ich mir in den nächsten Tagen bis zum Semesterbeginn näher anschauen werde). Behandelt werden klassische Maschinenlerntechniken wie Support Vector Machinen und Neuronale Netze, aber auch Clustering und einige Anwendungen.

The Fourier Transform and its Applications: Ein Kurs zur Fourier Transformation, den ich mir bei Gelegenheit auch sicher mal anschauen werde (Zumal die Fourier Transformation auch beim Maschinenlernen eingesetzt wird)

Linear Systems and Optimization: Ein weitergehender Kurs in der linearen Algebra

Convex Optimization I+II: Konvexe Optimierung... . Da ich grad Combinatorial Optimization lese, dürfte der Kurs eventuell eine gute Ergänzung sein. Nur Zeit dafür muss man erstmal finden.

Samstag, 13. September 2008

Summer School - Final Week

Und hier der Abschlussbericht zu den Vorlesungen der zweiten Woche:

Learning with sparsity -inducing Norms (Francis Bach)

Zu kompliziert, zu weit an dem vorbei, was ich so mache. Um es kurz zu machen: Für mich völlig sinnlos


Active Learning and Control (Nando de Freitas)

Eine schöne Vorlesung über eine bunte Mischung an Themen. Zum einen wurde über aktives Lernen (Wie wähle ich am besten mein nächstes Trainingsbeispiel aus?) gesprochen, zum anderen aber auch über so verschiedene Dinge, wie Über-Kopf-fliegende Hubschrauber und Maschinenlernen bei Suchmaschinen.


Parametric and non-parametric Bayesian Learning (Manuel Davy)

Sehr technisch. Aber in den Grundzügen sehr interessant: Wie unterscheidet sich bayesches Lernen von der Maximum Likelihood Analyse?


Learning Theory of Optimal Decision Making (Csaba Szepesvari)

Nach Sutton die zweite Vorlesung über Reinforcement Learning. Nur das es sich diesmal um sogenanntes stateless learning handelte: Ein Experiment wird unendlichmal widerholt. Bei jeder der unabhängigen und identisch verteilten Wiederholungen, hat man I Optionen. Wie findet man nun die beste? Die Vorlesung wurde zum Ende hin auch sehr technisch, aber die guten Folien geben genug Gelegenheit zum Nacharbeiten.


Theoretical Foundations of Clustering (Shai Ben-David)

Die für mich beste Vorlesung: Zum einen wurde über verschiedene Versuche geredet, ein allgemeines Axiomensystem für Clusteringprobleme aufzustellen und zum anderen viel über die Komplexität von Clustering: Im allgemeinen Fall sind die meisten Clusteringprobleme NP-hart, aber in sehr vielen Fällen sind "clusterbare" Daten auch in annehmbarer Zeit zu clustern. (Es wurden jeweils versucht zu formalisieren, was "clusterbar" in diesen Fällen bedeutet)


On the Foundations and Applications of i-MCMC Methods (Pierre Del Moral)

Der schlechteste Vortrag der Summer School: Der Mensch hat eine Folie aufgelegt, dazu dann 10 Minuten zu jedem Stichpunkt auf der Folie etwas sehr technisches erzählt (Stichpunkte waren meist die Oberbegriffe). Ohne irgendwelche Vorkenntnisse hatte ich keine Chance, mitzukommen.

Freitag, 12. September 2008

Code Complete

Goto labels should be leftaligned in all caps and should include the programmer's name, home phone number, and credit card number.

Code Complete ist nach Effective C++ das zweite Fachbuch, das ich von Anfang bis Ende durchgelesen habe. Im Gegensatz zu Effective C++ ist es nicht für eine spezifische Programmiersprache geschrieben, sondern versucht allgemeine Ratschläge zu vielen, mit dem Programmieren zusammenhängenden Themen zu geben. Design, Testen, Codestruktur um nur einige zu nennen (der Autor nimmt es sich sogar heraus, ein Kapitel zum persönlichen Charakter zu schreiben).

Besonders die Abschnitte zur Fehlersuche und zum Code Feintuning waren für mich dabei sehr nützlich: In beiden wird mit harten Daten die Effektivität möglicher Fehlersuchprozeduren (von Unittests, bis zu formalen Reviews) bzw. Tuning Techniken (dabei wird aber stets betont, den Code vorher mit einem Profiler zu untersuchen um wirklich die Flaschenhälse zu verbessern) untersucht. Das heißt man kann für viele Kombinationen an Techniken gleich sehen, wie hoch der Anteil der durch sie entdeckten Fehler bzw. der Geschwindigkeitszuwachs voraussichtlich sein wird (natürlich nur ungefähr, da die Untersuchungen dazu eine hohe Varianz hatten).

Dazu betont das Buch immer wieder, wie wichtig es ist, den eigenen Code lesbar und verständlich zu halten und welche Mittel (von Kommentaren über passende Variablenamen bis zu flachen Vereerbungshierarchien) dazu geeignet sind, das zu erreichen.

Während Effective C++ sich wirklich stark auf C++ konzentriert, ist Code Complete also fast universell für jeden Programmierer nützlich.

Sonntag, 7. September 2008

Bunkernacht und Wochenrückblick

Die erste Woche MLSS ist vorbei. Zeit also für einen kleinen Wochenrückblick und eine Übersicht über das, was wir hier so machen.

Wir hatten in der ersten Woche 5 (Kleinst-)Vorlesungen zu je 6 Stunden.


"Reinforcement Learning and Knowledge Representation" (Rich Sutton)

Einer der beiden Kurse, die sich auch mit künstlicher Intelligenz im generellen (im Unterschied zur reinen Funktionsapproximation) beschäftigen. Die Grundthese von Sutton ist, dass künstliche Intelligenz aus Erfahrungen lernen sollte. Auf dieser Grundlage wurden dann verschiedene Algorithmen zum lernen aus abgeschlossenen Episoden vorgestellt (Time Difference Learning und Sarsa vor allem). Witzig: Sutton ist der Autor der Folien, die auch an der Uni Paderborn im Maschinenlern Kurs verwendet werden. Er erklärt es aber natürlich viel besser.


"Feature Selection" (Isabelle Guyon
)

Leicht verständlich, aber nicht unbedingt sehr interessant, da Feature Selection für neuere ML Verfahren oft nicht nötig ist. Spannend war aber ein Algorithmus zum entdecken von kausalen Zusammenhängen zwischen einzelnen Features (im Unterschied zur reinen Korrellation)


"Introduction to Kernel Methods" (Stephane Canu)

Sehr technisch. Am Anfang wurde eine gute Übersicht gegeben, was Kernel Methods eigentlich sind und ich weiß nun auch, welche Artikel ich lesen muss, um endlich zuverstehen, was eine SVM ist (leider wurde es in seinem Vortrag vorausgesetzt). Der Rest der Vorlesung bestand leider aus Formeln, für die mir die Voraussetzungen fehlten.


"
Overcomplete Representations with Incomplete Data: Learning Bayesian Models for Sparsity" (Patrick Wolfe)

Noch technischer und noch mehr vorkenntnislastiger... . Aus diesem Vortrag habe ich wirklich nichts mitgenommen.


"
Supervised and Unsupervised Learning with Energy-Based Models" (Yann LeCun)

Der zweite Vortrag, der sich mit "echter" künstlicher Intelligenz befasst hat. Es ging um das lernen von "Energieoberflächen", welche passenden Mustern eine niedrige Energie zuordnen und unpassenden eine hohe. Das alles im Rahmen von "tiefen" neuronalen Netzen und mit Backpropagation als Lernalgorithmus (es wurde auch viel zu den schwächen von Backpropagation bei tiefen neuronalen Netzen gesagt). Die Ergebnisse waren beeindruckend: Online-Gesichtserkennung, Handschrifterkennung, ein autonom fahrender Roboter. Ich denke eines meiner nächsten Projekte wird es sein, ein neuronales Netz für ein einfaches Spiel zu bauen und zu trainieren.


Gestern abend sind wir dann auf dem Strand zu einem alten deutschen Bunker gelaufen und haben in ihm ein Lagerfeuer gemacht (der Bunker war zu beiden Seiten offen, so dass der Wind hindurch konnte). Eine interessantes Erlebnis, zumal es erforderte in der Nacht über Steine und Klippen zu klettern, um den Bunker zu erreichen (zum Glück haben wir auf dem Rückweg einen Weg über den Strand gefunden: Wir wurden von einem schlimmen Regenschauer erwischt und ich hätte nicht über die nassen Steine klettern wollen). Während es nicht regnete war der (zeitweise von nur wenigen Wolken getrübte) Sternenhimmel sehr sehenswert: Kaum eine größere Stadt in der Nähe um ihn micht Licht zu verschmutzen. Ein oder zwei Fotos habe ich auch gemacht, aber sie kommen später. Sich innerhalb eines Rudels Informatiker außerhalb des vertrauten Kellers zu befinden ist immer wieder für ein paar spannende Erlebnisse gut...

Dienstag, 26. August 2008

Vorbereitungen

Im Moment laufen die Vorbereitungen für Frankreich auf Hochtouren. Die Leute von der Sommerschule haben heute eine Masse an Vorbereitungsmaterial geschickt (ich freue mich schon auf die Gelegenheit, mehr mit R zu machen). Der Zeitplan ist hier schon seit geraumer Zeit online: Es sieht so aus, als hätte ich in den nächsten Wochen nicht viel freie Zeit. (Und eigentlich freue ich mich sogar richtig darüber, wieder etwas zu tun zu haben).

Ich bin auch gespannt auf den Urlaubstag in Paris (und auch auf die Zugfahrt nach Paris)... und auch ein wenig nervös: Immerhin kann ich kein Französisch (ich vermute aber, dass das in Paris oft vorkommt).

Packen müsste ich auch noch...

Mittwoch, 30. Juli 2008

Effective C++

Eine Neuheit für dieses Blog: Die Rezension eines Fachbuches. Eine Neuheit auch für mich, da es das erste Fachbuch ist, dass ich wirklich durchgelesen habe.

Wenn man schon C++ programmiert kann man aus Effective C++ einiges neues lernen. Die drei wichtigsten Dinge für mich:

Der Sinn davon, Konstruktoren als explicit zu deklarieren.
Die genaue Funktionsweise des automatisch generierten Copy Constructors.
Die Erkenntnis, das Dinge wie shared_ptr frei verfügbar sind.

Was ich nicht so gut fand, waren die teilweise sehr ins Detail gehenden Erklärungen zu Templates und Template-Metaprogramming: Ich tendiere dazu einfache und übersichtliche Lösungen den übermäßig cleveren vorzuziehen.
(Randnotiz: Ich halte es für eine der größeren Probleme in der Informatik, dass viele Programmierer sich zu sehr komplizierten und "cleveren" Lösungen hinreißen lassen für minimale Zugewinne an Geschwindigkeit oder Speicherplatzverbrauch. Auf heutigen Systemen ist die Übersichtlichkeit des Codes oft viel wichtiger.)

Dienstag, 15. Juli 2008

Ankommen

Im Moment bin ich ganz und gar mit dem Wiederankommen und den mehr oder weniger lästigen Pflichten, die sich daraus ergeben beschäftigt: Ein neues Handy will gekauft werden, ich muss zum Friseur, etc... (ich werde die Zeit aber auch nutzen um mir ein neues Buch zu kaufen)

Schön aber, meine Freunde hier wiederzusehen, auch wenn ich auf der der Überraschungsfeier noch so müde war, das ich nach ein paar Stunden ins Bett gegangen bin.

Schön auch, das die Welt endlich mein bevorzugtes Eingabegerät als etwas besonderes anerkennt.

Außerdem war gestern die Projektgruppenvorstellung. Ich werde wohl die Projektgruppe hier nehmen und kann mich auf Greenfield Engineering freuen.