Lehrinhalte
Digitalisierung und maschinelles Lernen werden in der Zukunft sowohl in der chemischen Forschung als auch in der Industrie eine zunehmend wichtige Rolle spielen. Es ist deshalb davon auszugehen, dass die meisten Studierenden der Chemie während ihrer Promotion und ihrer späteren Berufstätigkeit mit diesen Themen in Berührung kommen. Dieser Kurs vermittelt in einem (kürzeren) theoretischen und einem (umfangreicheren) praktischen Teil die Grundlagen des wissenschaftlichen Maschinenlernens.

Im theoretischen Teil wird behandelt:
- Aufbau und die Funktionsweise von neuronalen Netzen.
- Die Implementierung und das Training von neuronalen Netzen in der Python Bibliothek PyTorch.
- Verschiedene Möglichkeiten, physikalisch/chemisches Vorwissen in die Struktur oder den Trainingsprozess von neuronalen Netzen zu integrieren.
- Grundlagen der mathematischen Beschreibung chemischer Reaktoren.
- Modellierung von chemischen Reaktoren mittels physikalisch informierter neuronaler Netze (PINNs).
Im praktischen Teil des Kurses bearbeiten die Studierenden in Gruppenarbeit Programmierprojekte. Dabei wenden die Studierenden physikalisch informierte neuronale Netze an, um ein Modell eines industriellen Reaktors zu erstellen. Sämtliche zur Bearbeitung der Projektaufgaben benötigten Grundlagen (sowohl Maschinenlernen als auch Chemische Verfahrenstechnik) werden im Theorieteil des Kurses vermittelt. Die Projekte werden in Python bearbeitet. Grundkenntnisse der Programmierung wie sie zum Beispiel im Kurs ‚Chemische Verfahrenstechnik mit Matlab‘ erworben werden, werden vorausgesetzt. Zu Beginn des Kurses erfolgt eine Einweisung in Python, so dass keine Pythonkenntnisse vorausgesetzt werden. Neben einem Hands-on Einstieg in das Thema neuronale Netze bietet das Bearbeiten der Projekte die Chance, praktische Programmiererfahrung zu sammeln.
Der Kurs wird gemeinsam für Studierende der Fachrichtungen Maschinenbau und Chemie angeboten. Auf diese Weise vermittelt die Gruppenarbeit Erfahrung im interdisziplinären Arbeiten.

Literatur
Wird im Laufe des Tutoriums ausgehändigt.

Voraussetzungen
Erfahrungen im Programmieren (zum Beispiel Python, Matlab oder Julia) sind erwünscht.

Offizielle Kursbeschreibung
Nachdem die Studierenden die Lerneinheit erfolgreich abgeschlossen haben, sollten sie in der Lage sein:
1. Neuronale Netze in PyTorch (Python) zu implementieren und zu trainieren.
2. Differentialgleichungen für die Beschreibung von chemischen Reaktoren zu formulieren.
3. Physikalisches Wissen der chemischen Verfahrenstechnik für das Training von physikalisch informierten neuronalen Netzen zu verwenden.
4. Die Verwendung von physikalischem Wissen zum Training von neuronalen Netzwerken zu diskutieren und bewerten.
5. Programmierprojekte in Gruppen zu bearbeiten.

Online-Angebote
moodle

Course Contents
Digitalization and machine learning will play an increasingly important role in the future, both in chemical research and in industry. It can therefore be assumed that most chemistry students will come into contact with these topics during their doctorate and their later professional career. This course teaches the basics of scientific machine learning in a (shorter) theoretical and a (more extensive) practical part.

The theoretical part covers:
- The structure and function of neural networks.
- The implementation and training of neural networks in the Python library PyTorch.
- Various ways of integrating prior physical/chemical knowledge into the structure or training process of neural networks.
- Fundamentals of the mathematical description of chemical reactors.
- Modeling of chemical reactors using physically informed neural networks (PINNs).

In the practical part of the course, students work on programming projects in groups. The students use physically informed neural networks to create a model of an industrial reactor. All the basics required to work on the project tasks (both machine learning and chemical reaction engineering) are taught in the theoretical part of the course. The projects are worked on in Python. Basic knowledge of programming, such as that acquired in the 'Chemical Process Engineering with Matlab' course, is assumed. An introduction to Python is given at the beginning of the course, so that no knowledge of Python is required. In addition to a hands-on introduction to the topic of neural networks, working on the projects offers the opportunity to gain practical programming experience.
The course is offered jointly to students of mechanical engineering and chemistry. In this way, the group work provides experience in interdisciplinary work.

Literature
Will be handed out during the tutorial.

Preconditions
Experience in programming (e.g. Python, Matlab or Julia) is desirable.

Official Course Description
Will be handed out during the tutorial.

Semester: ST 2024