TU Wien:Machine Learning VU (Musliu)

Aus VoWi
Zur Navigation springen Zur Suche springen
Ähnlich benannte LVAs (Materialien):

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Thomas GärtnerRudolf MayerNysret MusliuAndreas Rauber
ECTS 4,5
Letzte Abhaltung 2024S
Sprache English
Mattermost machine-learningRegisterMattermost-Infos
Links tiss:184702, eLearning
Zuordnungen
Masterstudium Data Science Modul MLS/FD - Machine Learning and Statistics - Foundations (Pflichtfach)
Masterstudium Business Informatics Modul DA/EXT - Data Analytics Extension (Gebundenes Wahlfach)
Masterstudium Logic and Computation Modul Knowledge Representation and Artificial Intelligence (Gebundenes Wahlfach)
Masterstudium Software Engineering & Internet Computing Modul Algorithmik (Gebundenes Wahlfach)


Inhalt[Bearbeiten | Quelltext bearbeiten]

Triviale Einführung in Algorithmen wie kNN, decision trees, bayesian networks, random forests, SVM, WEKA API

Kurze Einführung in Evaluierung

Ablauf[Bearbeiten | Quelltext bearbeiten]

2 Übungsaufgaben in 3er Gruppen: kleinere Beispiele in WEKA Programmieren

Schriftliche Prüfung am Ende

WS 2015: drei Übungsaufgaben; (1) Regression an selbstgewählten Datensets mit verschiedenen Regressions-Algorithmen, (2) das gleiche mit Klassifikation, (3) Implementierung eines einfachen Szenarios mit der Weka API (z.B. Finde optimales k für kNN, automatische Model Selection, ...).

WS18/19: 3 Aufgaben: 1. Regression, 2. Klassifikation. Für das 3. gabs ein paar Optionen zur Auswahl, z.B. Neuronale Netze, u.A. auch CNN (deep learning) für Klassifikation von Bildern.

Datensätze werden zum Teil vorgegeben, können zum Teil frei gewählt werden.

SoSe21: 3 Aufgaben: 1. Regression Methods (2 vorgegebene Datensätze, 2 selbst gewählte, verschiedene Verfahren aus Libraries zu verwenden), 2. Classification Methods (2 vorgeg. Datensätze, 2 selbst gewählte, 2 Methoden selbst zu implementieren und mit bestehenden Verfahren aus Libraries zu vergleichen), 3. Thema wählbar aus verschiedenen vorgegebenen (e.g. Bereich Deep Learning for Text / Image Classification, Differential Privacy, Privacy Attacks, AutoML)

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]

WS19/20: Kentnisse in Python bzw. R hilfreich. Java wird nicht mehr benötigt!

In Java sollte man sattelfest sein. [WS18: Java-Kenntnisse nicht zwingend notwendig]

Grundsätzlich sollte man selbstständig Daten visualisieren und präsentieren können.

WS18/19: Man konnte die Sprachen in denen man programmiert im Grunde frei wählen. R und/oder Python Kenntnisse sind z.B. recht hilfreich, besonders auch für die Visualisierung.

WS22: Vorkenntnisse in Python oder R werden auf jeden Fall benötigt; Vorkenntnisse in pandas, scikit, oder sonstigen Frameworks können auch nicht schaden

Vortrag[Bearbeiten | Quelltext bearbeiten]

in Englisch

Mayer, Rudolf:

- guter Vortrag mit vielen Beispielen, trotzdem recht langweilig und oberflächlich

- viele Aussagen auf Folien fehlerhaft (z.b.: "Fully grown decision trees will be 100% [accurate] on training data" <- warum soll das falsch sein???

-- comment: this is actually true, unless your data contains points that are equal in features, but have a different label; that is also mentioned in the slides.

- Mayer deckt ein sehr breites Gebiet sehr oberflächlich ab

- Mathematisch nicht anspruchsvoll und nicht rigoros (keine Beweise, Notation unordentlich)

Musliu, Nysret:

- schlechter Vortragsstil, eher einschläfernd, hat keine eigenen Folien

- Zum Punkt keine eigene Folien: Ja, aber das würde ich als positiv werten, da die Original Ressourcen gut zum Lernen geeignet sind (Bücher, die gratis und ohne Anmeldung als PDF verfügbar sind)

- Musliu ist zuvorkommend und geht sehr auf den Wissensstand der Studierenden ein.

- Meiner Meinung nach eigenen sich die Folien schlecht zum Lernen für die Prüfung

Übungen[Bearbeiten | Quelltext bearbeiten]

Mit einer guten Gruppe leicht schaffbar, je nach dem welches Thema man wählt

Die Punktevergabe (besonders beim zweiten Bsp.) war allerdings nicht wirklich nachvollziehbar. Man hat im TUWEL seine Punkte eingetragen bekommen und das wars. Allgemein hab ich das Gefühl eine ansprechende Dokumentation ist ihnen wichtiger als die Arbeit selbst.

Hier empfiehlt es sich besonders, dass man ein Framework programmiert (gemeinsam als Gruppe oder jemand mit etwas mehr Erfahrung), was dann alle verwenden können bzw. leicht angepasst werden kann. Empfehlenswert ist z.B. die GridSearchCV von sklearn.

(SS20) Wie oben beschrieben ist die Vergabe der Punkte sehr willkürlich es wirkt als würden verschiedene Maßstäbe pro Beispiel angewendet werden und zusätzlich dauert die Benotung ewig (Ergebnis von Bsp.1 war vor Bsp.2 da...)

(SS21) Übung 1 und 3 von Prof. Mayer waren sehr offen, man konnte bis auf einen Datensatz fast alles selbst entscheiden (verwendete Libraries, Machine Learning Modelle, Metriken, wie man Vergleicht, ...). Übung 2 von Prof. Musliu hat zu implementierende Decision Tree Algorithmen vorgegeben, lies den Rest aber auch offen. Das kann man gut finden oder nicht, was (zumindest unserer Gruppe) jedoch recht negativ auffiel, war die Aufgabenstellung zu Übung 1 von Prof. Mayer (siehe Materialien). Diese wirkt so, als hätte man eine Mind-Map zum Thema Machine Learning Basics gezeichnet und versucht wirklich jedes Wort auf dieser Mind-Map irgendwie in die Aufgabenstellung zu integrieren, was in einer Aufgabenstellung resultiert, die sehr viele Sachen fordert, die sich in der für die Übung vorgesehen Zeit niemals ausgehen würden.

(WS22) Übung 0: Nur abgegeben / nicht abgegeben; Hier sollte man nicht zu viel Zeit investieren -- Übung 1: Hier wurde bei unserer Gruppe viel Wert auf die Ergebnisse und die Interpretation gelegt. Dafür musste ein ca. 15-seitiger Report geschrieben werden den die Studierenden recht frei gestalten durften (In den Folien zur Übung wurden aber einige Rahmenpunkte beschrieben, die erwartet werden). Die Abgabe wurde durch ein von Tutoren gehaltenes Gespräch überprüft. Dieses Gespräch war sehr locker und wir durften eigentlich die ganze Zeit ziemlich frei reden. Zwischenfragen gab es nur ganz, ganz wenige und wenn, dann waren diese sehr leicht zu beantworten. Die Erfahrung kann aber abweichen, je nachdem, wer das Gespräch hält. Die endgültige Benotung hat hier dann doch recht lange gedauert und war nicht 100% nachvollziehbar -- Übung 2: Hier mussten zwei selbst gewählte Algorithmen implementiert werden und mit Standardimplementierungen verglichen werden. Man durfte sich die Algorithmen und Datensätze selbst auswählen. Es empfiehlt sich also, einfache Algorithmen zu wählen. Das Abgabegespräch hat hier Prof. Musliu gehalten. Er war zwar sehr nett und die Benotung war am Ende auch recht fair, aber seine Zwischenfragen waren ziemlich schwer zu beantworten und zum Teil ziemlich verwirrend bzw. konnten sie einen leicht aus dem Konzept bringen. Es musste eine Präsentation vorbereitet werden, die wir dann eigentlich nicht wirklich präsentieren durften. Stattdessen hat er viel Wert auf den Code gelegt, den wir mehr oder weniger Zeile für Zeile erklären mussten. Man sollte sich also lieber dahingehend vorbereiten, den Code wirklich bis ins letzte Detail ausführlich erklären zu können. Auch die zwei implementierten Algorithmen sollte man ähnlich detailliert erklären können. Übung 3: War sehr frei, man durfte sich eines von vielen recht offen definierten Themen aussuchen und in der Gruppe ausarbeiten. Am Ende war nur ein Report und der Programmcode abzugeben und in einem Abgabegespräch zu präsentieren, welches, zumindest bei unserem Thema, sehr angenehm war. Das Abgabegespräch leitete, je nach Thema, entweder einer der Professoren oder ein/e Tutor/in (z.B. wurden alle Themen 3.3 von Professor Musliu geprüft). Das sollte man bei der Auswahl eines Themas bedenken. Es war, zumindest in diesem Semester, keine Präsentation vor einer Gruppe in einem längeren Slot nötig.

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

Invest some time in looking at old exams. Try to find some of the true/false questions and make sure you know the most current ones.

Also see that you know how to calculate the basic examples using e.g. Naive Bayes, etc. I think there's always one of those in each exam.

At least last two exams (WS2022) were entirely MC tests, no open questions. However, they contained a few calculations you had to perform but they gave you 6 options to choose from. Overall, the exam was surprisingly easy, and it contained a few of the older questions (especially in the true/false part).

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

WS10: etwas mehr als 5 Wochen

SS13: Prüfung 26.06., Zeugnis 29.07.

WS18: Prüfung 18.10.19, Zeugnis 14.11.19

WS22: Prüfung 02.05.23, Noten: 03.05.23

Benotung der Übungen[Bearbeiten | Quelltext bearbeiten]

WS18: Hat für jede Übung durchschnittlich 2 Monate gebraucht

SS20: Übung vom 3.5. (Regression) noch immer nicht benotet (10.8.)

SS21: Übung von Anfang Mai (Regression) noch immer nicht benotet (2.8.)

WS22: 1-2 Monate pro Übung nach letzter Leistung (z.B. Abgabegespräch)

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

SS21: Für den Übungspart sind laut TISS 39.5 std eingeplant. Wer jetzt denkt, dass 39.5 std für 3 größere Team-Projekte recht knapp wirkt, der liegt damit absolut richtig. Die Aufgabenstellungen sind tendenziell eher offen und die Benotung wirkte großzügig, vielleicht könnte man also mit einem minimalistischen Ansatz an die 39.5 std herankommen. Wer aber alles in der Aufgabenstellung genannte behandeln will sollte eher die doppelte Zeit einrechnen. Wenn man noch keine Erfahrung mit Datenmanipulation (zB. Pandas) oder Machine Learning Libraries (zB. Sklearn) hat, ist der Zeitaufwand wahrscheinlich sogar noch höher.

WS22: Der Aufwand übersteigt die angegebenen 4,5 ECTS bei Weitem. So viel verbringt jede Person in der Gruppe wahrscheinlich allein bei den Übungsbeispielen.

SS23: this is at least a 6 ECTS course, if not more. The exercise part is pretty much time consuming, if you consider that: it's three separate projects; you need to read up on the various libraries (Pandas, scikit-learn, numpy, matplotlib, etc. if you are using Python); you need to communicate with your team mates.

Unterlagen[Bearbeiten | Quelltext bearbeiten]

Folien im TUWEL

imho sehr gute Erklärung der Classifiers unter:

http://chem-eng.utoronto.ca/~datamining/dmc/data_mining_map.htm

Und zusätzliche Vorlesungen:

https://class.coursera.org/ml-003/lecture

Tipps[Bearbeiten | Quelltext bearbeiten]

  • Seminarraum Menger ist im 3. Stock durch die Glastüre und dann gleich nach links...
  • These are feedback points (given by Rudolf Mayer) that were given WS21 but are of general interest for all exercises in this course. Read them carefully
Preprocessing:[Bearbeiten | Quelltext bearbeiten]

It is important to consider when / where to do data preprocessing. We have seen a few times that e.g.

- Missing value deletion was done before splitting

- Taking care of imbalanced data done before splitting

- Removing outliers was done before splitting

This way, you are modifying your *test* (before it was created), and you implicitly simplify your task.

Further, any other pre-processing method (such as feature scaling) or any other use of the test set for any training-related task (such as hyper-parameter optimisation) should be avoided.

If you perform these actions using information from the test set as well, you do not get a realistic estimate for the performance of your model.

We have discussed this in the context of model/algorithm selection, but another nice source discussing the topic is https://machinelearningmastery.com/data-preparation-without-data-leakage/

Experiment setup & analysis:[Bearbeiten | Quelltext bearbeiten]

Be consistent with your design, and make sure the results are comparable. E.g. if you are comparing the performance of two algorithms on the same dataset, test the performance on the *same* test set. Not just the same percentage, but really the *same* test set with the exact same instances. The same applies if you are comparing the performance of one model, but change a parameter.

If you are exploring the impact of changing a hyperparameter on the performance of your model, keep all other hyperparameters fixed, and vary only the one you chose. If you vary multiple hyperparameters at once, you will not be able to draw a conclusion from your results.

If you are performing grid search, make sure the search space is large enough and that you stop searching when the chosen score does not improve anymore (you might need to expand the search space). In order to confirm a certain behavior, you can focus, e.g. ”zoom in” on certain areas. Ideally, you visualize the behavior - the change (visualisation will help you make a decision).

If you are comparing the performance of a classifier across different datasets, consider using the same (or at least similar) pre-processing and other settings.

Include a baseline, i.e. a lower boundary your classifier should achieve. The zero rule / dummy classifier, i.e. voting for just the majority class, would be one; another one would be to a uniform / random vote, i.e. 1/|classes|, though that is likely a too low baseline in most cases.

Evaluation Metrics:[Bearbeiten | Quelltext bearbeiten]

- Make sure your chosen metrics provide enough information about the performance of your model. What do they measure? What does the result mean?

What can help when choosing suitable metrics:

- Think about what the classification task is (what are you trying to predict and why? What is your objective?)

- Binary/multi-class/multi-label classification?

- iIs the data balanced? (e.g. accuracy will be high on imbalanced data if your model predicts only the prevalent class, thus you need e.g. other metrics, calculate per class accuracy, confusion matrix etc.)

- Which target class is more important? Are they all equally important?

Think about FN, FP:

-- E.g. wrong prediction of a disease: if someone does not have a certain disease, but we predict that they do, they receive devastating news (FP), but they are healthy. If someone does have a certain disease, but we do not detect it (FN), they do not receive treatment. (valid for threat detection tasks) - e.g. focus on recall

-- Wrong prediction in advertising: you show an ad to someone, who will not buy your product (FP), or you do not show your advertisement to someone who would have bought your product (FN), which is the better scenario?

Reports:[Bearbeiten | Quelltext bearbeiten]

Some reports are too long. The goal of a report is to determine what are the *main interesting* points, discuss your findings, as well as the context - to *extract knowledge* from your experiments. Simply printing out parts of your data/results without further analysis/discussion/summary is not sufficient.

Use tables/figures/plots to your advantage, make sure to always clearly label them and provide legends, axis labels etc.

When you are plotting your results, determine which type of plot is suitable (e.g. comparing the value of accuracy per different scaling method - a bar plot, or even a scatterplot would be suitable, not a line graph however, as there is no continual change, it is simply a comparison of different values)

Also, include an overall summary where you discuss your findings across all datasets. Providing conclusions only per dataset misses the bigger picture.

Mind how you divide your work and structure your report, so that you can ensure arriving at overall conclusions based on findings from comparable experiments.

Work as a group to deliver one uniform group project, define your experiment design together and be consistent. There should not be distinct parts in the report or experiment design (e.g.no different preprocessing/split/settings per person) - communicate with your group partners →.yYour report should not be a concatenation of three very different sections!

Presentations:[Bearbeiten | Quelltext bearbeiten]

- Choose the important/interesting findings, discuss the problems you had, your experience, provide comparisons, discuss inconsistencies in results, connections, pros/cons of your approach, etc.

- No need to repeat contents of the lecture (e.g. explaining how a certain algorithm works)

- Use plots, tables, bullet points instead of lots of text on your slides to illustrate your point

- Mind the time

Highlights / Lob[Bearbeiten | Quelltext bearbeiten]

noch offen

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

Vortrag ist sehr oberflächlich. Nach dem Kurs versteht man die Ideen hinter den Algorithmen, aber theoretische und mathematische Grundlagen werden keine geboten.

Aussagen in Vorlesung oft sehr unpräzise. SS22: Organisation und Umsetzung der LVA eine Katastrophe. Letzte Hausübung musste während der vorlesungsfreien Zeit erledigt werden (Deadline Ende Juli) und war mit Abstand am aufwändigsten. Beim Test (30.6.2022) kamen zu 95% neue Fragen, es hatte also überhaupt keinen Sinn gehabt, die alten Fragen zu lernen. Außerdem vier Rechenbeispiele (Convolution, Gradient descent, RSS, k-armed Bandit) wobei sie in der Q & A Session noch verlautbart hatten dass es reicht, wenn man die Algorithmen und deren Anwendungen beim Namen nennen kann. Diese Verlautbarung war im Nachhinein extrem ärgerlich. Besser wäre es gewesen, sie hätten einfach nichts gesagt.

Prof. Musliu hat im Laufe der LVA mehrmals Dinge versprochen und nicht gehalten (Exercise wird bis Tag X freigeschaltet, wurde dann aber erst sechs Tage später veröffentlicht, etc.).

Die ganze Vorlesung war leider unglaublich oberflächlich und wenn man sich nicht bei der Umsetzung der Hausübungen alles selbst beibringt lernt man so gut wie nichts.

Ich persönlich rate euch von dieser LVA wegen der miserablen Umsetzung ab. An den Ergebnissen der diesjährigen LVA Bewertung im TISS sehe ich gerade, dass ich mit dieser Meinung absolut nicht der einzige zu sein scheine. Ein wohliges Gefühl!

Kann nur zustimmen: Die Organisation ist sehr schwammig und Änderungen werden erst sehr spät und dann oft nur in der VO kommuniziert. Z.B. Gab es im Winter 2022 Änderungen am Vorlesungsplan (Einheiten sind dazugekommen und andere wurden verschoben). Das wurde einen Tag vor der neu eingelegten Einheit nur in der VO kommuniziert. Um Fair zu sein, muss schon dazu gesagt werden, dass die extra Einheiten wenigstens aufgezeichnet wurden. Eine bessere und zeitgerechnetere Kommunikation wäre trotzdem von Vorteil gewesen. Genauso mit dem Ablauf der Übungen. Auch hier wurde nicht kommuniziert, ob es nun Präsentationen oder nur Abgabegespräche geben soll, und die Aussagen in den Folien bzw. auf Tuwel widersprechen sich zum Teil.

Wikipedia-Links[Bearbeiten | Quelltext bearbeiten]