# Protokoll 13.07.22 (intern)
## Todos Orga
- Protokollorganisation
- Repo erstellen, Collab Integration
## Wei-Cheng Fragen
- Data sources
- Notebook vs. Python script
- collaborative work, how do you imagine this?
- Pytorch vs. Tensorflow/Keras
- Klausur Noten?
## Auswahl des Datasets
- viele Datasets verfügbar: könnten überlegen auf verschiedene zu trainieren und Ergebnisse vergleichen
- Auswahl: UTK Face (Cropped)
## Meeting 14.07.
- ab 16 Uhr Wei-Cheng, danach Zusammen am Projekt arbeiten
# Protokoll 14.07.22 (mit Wei)
## Fragen beantworten
### Data sources
- haben selbst UTK Faces ausgwählt, andere in Auswahl
- Größe, Diversität wichtig
- Training mit erstem, dann mit anderem, kann interessant sein, wenn wir aus einer Datendomäne rausschauen
### Abgabe/Script-Format
- ganz wichtig: Paper mit Latex, Einführung, Results, Eval & Zusammenfassung
- was haben wir in Arbeit gemacht, welche Modelle laufen gut, was läuft eher schlecht
- Kriterium: Demo muss existieren, gut mit Jupyter Notebook Visualisierungen darstellbar
- Abgabe ohne Präsi
### Wahl der Library
- können wir selbst auswählen, Wei präferiert PyTorch
### Collaboration, what does work well?
- Code im Repo halten
- erstmal zwei Ansätze probieren, z.B. zwei Teams CNN vs CNN, beide Ergebnisse vergleichen
- Parameter tuning, vielleicht Ergebnisse zusammenführen
### Wie soll output Aussehen?
- Label ist Alter
- kann aber auch anders sein, wenn gewünscht
### Generelle Tipps
- Tipp: erstmal Dataloader aufbauen, mit Datensatz Training/Test trennen
- Tipp: anfangen mit CNN, dann [ResNet](https://www.tensorflow.org/api_docs/python/tf/keras/applications/resnet) weitermachen
- mit wandb.ai kann man sehr schöne Grafiken erzeugen
## Nächste Termine
- intern: Mittwoch 17:00
- mit Wei: Donnerstag 16:00
# Protokoll 14.07.2022 (intern)
- When2Meet aufgesetzt
- überschneidende zu Teams
- Entscheidung: TF/Keras
- bis Mittwoch anschauen: Dataloader, in Keras einlesen
# Protokoll 20.07.2022 (intern)
## nächste Schritte
- wandb nutzen
- history werte, zwischenmodelle speichern (als csv o.Ä.)
- welches Netz nutzen wir? am Netz rumbasteln
- eventuell 2 Gruppen --> eine gruppe mit resnet, eine mit CNN
- CNN: Willi
- ResNet: Lucas
## TODO
- Datenaufteilungsskript auffrischen --> kommentieren usw.
- Metadaten und Modelle speichern --> einheitliches Naming
- wandb einrichten
## Fragen für Meeting mit Wei
- kriegen wir resourcen? aka grafikkarte / server
# Protokoll 21.07.2022 (mit Wei)
- wir planen zwei Gruppen: eine mit CNN, eine mit ResNet
- Zugang zu einer Grafikkarte im DHC-Lab könnte schwierig sein
- Wei gibt uns Bescheid, ob wir eine Grafikkarte bekommen
- Wei schlägt vor, Ressourcen bei Google Collab zu nutzen
- evtl. gibt es einen Studi-Zugang
- wir sollen lieber Regression statt Classification machen
- vielleicht sollten wir die Werte normalisieren
- Wei schlägt vor, den Hintergrund der Bilder zu entfernen
- [SciKit](https://scikit-learn.org/stable/user_guide.html) zum Entfernen des Hintergrunds
## Report
- Wir sollen uns eine Forschungsfrage überlegen, auf die wir uns konzentrieren. Diese ist dann auch der Fokus unseres Resports.
- Der Report soll fünf bis zehn Seiten lang sein, nicht mehr als zehn Seiten.
## nächstes Meeting
- wir schreiben Wei am 25./26.07., ob wir uns am 28.07. mit ihm treffen
- 09.08.-16.08. hat Wei Urlaub
# Protokoll 21.07.2022 (intern)
- wir freuen uns über wandb
- irgendwie scheint das Modell sich auf das Median-Alter einzuschießen
- unser Hauptziel: Alter predicten (surprise)
## TODO
- ordentliche Predictions hinbekommen
- Forschungsfrage finden
- zweiten Datensatz finden
- Pairs:
- Lucas, Will.I.Am (CNN Linear Regression)
- Max, Ole, Elias (ResNet)
# Protokoll 27.07.2022 (intern)
## Was bisher geschah
- Lucas und William haben ein CNN mit drei bis acht Conv Layers gebaut
- Sweeps (Menge aus Runs, sozusagen Konfiguration für mehrere Runs; wandb wählt dann Parameter für konkrete Runs) dabei genutzt
- es scheint großes Overfitting auf die 26 zu geben
- daher haben sie den Datensatz reduziert, sodass nur noch Personen und 70 Jahren drin sind und für jedes ALter etwa gleich viele Bilder vorliegen
- bei höherem Alter glauben wir nun eine stärkere Relation zwischen vorhergesatem und tatsächlichem Alter, bei Bildern von jüngeren Personen allerdings nicht
- Max, Ole und Elias haben sich an einem ResNet probiert
- es wurde ein pretrained ResNet50 genutzt
- es wurde ein val_mean_error von ~10 erreicht
- wir fühlen hier Overfitting
- wir würden gern ein ResNet18 testen, sowas gibt es bei Tensorflow aber leider nicht
## What's next?
- Team CNN: VCC60
- Team ResNet:
- vielleicht wäre es mal einen Versuch wert, das ResNet50 nochmal unverändert zu nutzen und stattdessen unsere Datensatz-Bilder auf 224x224 hoch zu sampeln
- ResNet18 selber bauen
## Fragen an Wei
- Sieht das so aus, als wäre unser Datensatz unpassend?
- Ist das bei Deep Learning so ein Ding, dass wir uns bestehende Modelle nehmen und versuchen, diese zu verbessern?
- Zahlt der Lehrstuhl einmal Colab Pro+?
- Was wird denn so erwartet von unserer Arbeit (metrik-mäßig)?
# Protokoll 28.07.2022 (mit Wei)
- wir sollen mal Data Augumentation ausprobieren
- Wei sagt, wir sollten mal ein ResNet18 trainieren
- das sollte besser sein als VGG16, meint Wei
- Wei fragt mal, ob wir Colab Pro+ erhalten
- wir nutzen bisher den Mean Squared Error als Loss-Funktion
- vielleicht sollten wir mal L1-Norm nutzen
- Wei kann sich nicht vorstellen, dass RMSE so viel besser wäre
- Ist das bei Deep Learning so ein Ding, dass wir uns bestehende Modelle nehmen und versuchen, diese zu verbessern?
- jo, das ist so
- Was wird denn so erwartet von unserer Arbeit (metrik-mäßig)?
- gute Metriken wären nice, aber eine gute Note hängt nicht mit guten Metriken zusammen
- das nächste Team-interne Treffen ist am 01.08. um 14:30
# Protokoll 01.08.2022 (intern)
- Lucas hat viel trainiert
- es gibt einiges an Overfitting, once again
- Lucas sagt "halt stopp"
## Was wir machen wollen
- auf ResNet fokussieren
- andere Loss-Funktion: MAE als Loss-Funktion
- Regularizer: fertig trainieren
- Data Augumentation angucken & einbauen
### Zum Rumprobieren:
- CNN auf IMDB
- VGG16 ausprobieren
### Jeder schaut sich an
- ähnliche Approaches anschauen, was machen andere anders
# Protokoll 05.08.2022 (intern)
- die Augumentation findet während des Durchlaufs statt, da werden nicht vorneweg rotierte Dateien generiert
- Datensatz: erstmal kein IMBD nutzen, lieber APPA-REAL
## ein paar Sweeps, what to try
- anfängliche Learning rate
- Scheduler ja nein
- welche Augumentations
- Regularizer ja nein
- ein paar Dense-Layer noch dahinter?
# Protokoll 09.08.2022 (intern)
## Fragen an Wei
- Inhalt Report, was außer Datensatz-Reflexion und Model-rumprobiere?
## what to try
- Drop-out
- background removal
# Protokoll 09.08.2022 (mit Wei)
## Report
- 5-10 Seiten (eher so 7/8 Seiten inklusive Bildern)
- warum wir das Problem wichtig finden
- Intentionen, warum wir etwas gemacht/verwendet haben, wichtig
- Anhang: eigenes Alter bewerten vom Model bewerten lassen
## Model
- mal mit 101 Klassen wie probieren wie im yu4u-Repo
## Weiteres
- Wei ist bis 16.08. weg
- Abgabe an teaching.lippert@... und Hinweis-Mail an Wei
# Protokoll 18.08.2022 (intern)
## Unsere eigene Deadline
- Abgabe am 29.08.
## Vorgehen
- eine Person pro Text + ein Reviewer pro Text
- am Ende lesen alle über alles drüber
## Inhalt des Reports
> Forschungsfrage: Wie können wir ein Modell erstellen, welches das menschliche Alter besser vorhersagt als Menschen?
- Abstract
- Einleitung, warum Thema Relevanz hat
- Datensatz (kurz, weil nicht Hauptthema)
- Kriterien warum in betracht gezogen (divers, groß. Qualität?, Menschliche Schätzungen) -> IMDP, Appa, UTK Faces
- data cleansing benutzt?
- warum welche Datensätze ausgeschlossen(Beispielbilder denen schlechte Labels zugeordnet wurden)
- warum haben wir uns für den APPA Datensatz entschieden (weil dort Altersschätzungen inkludiert waren, sauberer Datensatz, negativ: klein)
- Appa hat Menschen Schätzung
- Herangehensweise an die Netzauswahl
- Unterscheidung Regression & Classification
- CNN
- ResNet
- erwähnen, wie wir auf yu4u gekommen sind
- Augumentation
- nachgelesen in Papers -> jetziger Aufbau
- Vergleich Mensch Modell
- wie Mensch-Abschätzungen bei APPA gemacht wurden
- Beispielbilder: Wo performt Mensch besser als Modell und andersherum, wo ungefähr gleichgut, wo ist Modell besonders schlecht, wo ist der Mensch besonders schlecht
- Falls zu wenig Text: Vergleich mit Zwischenmodell
- Fazit
- Quellen
- Anhang: wie das Modell auf uns funktioniert
## Textverteilung
> Write | Reviewer
- Abstract, Einleitung, Fazit: Ole | Elias
- Datensatz: William | Ole
- Herangehensweise (Regression/Classification, CNN): Max | Lucas
- Herangehensweise (ResNet, Augumentation, finales Modell): Lucas | Max
- Vergleich Mensch-Modell: Elias | William