Neurale Netzwerke und tiefe Lerntechniken
Definition:
Neurale Netzwerke sind von biologischen Nervensystemen inspirierte Modelle, die aus Neuronen und Verbindungen bestehen. Tiefe Lerntechniken verwenden Netzwerke mit vielen Schichten (Deep Learning), um komplexe Muster zu erkennen.
Details:
- Neuron: Grundelement, das Eingaben gewichtet und eine Aktivierungsfunktion anwendet.
- Schichten: Eingabe-, versteckte und Ausgabeschicht.
- Aktivierungsfunktionen: z.B. Sigmoid, ReLU.
- Trainingsprozess: Vorwärts- und Rückwärtspropagation zur Gewichtsaktualisierung.
- Überwachung erforderlich: Trainingsdaten benötigen Labels.
- Optimierung: Gradientenabstieg zur Kostenminimierung.
- Anwendungen: Bild- und Spracherkennung, Übersetzungen.
Evaluierung und Validierung von Modellen
Definition:
Evaluierung und Validierung von Modellen - Prüfung der Leistung und Generalisierungsfähigkeit eines Modells.
Details:
- Evaluierung: Messung der Modellleistung mittels Metriken (z.B. Accuracy, Precision, Recall)
- Validierung: Überprüfung der Generalisierungsfähigkeit auf unabhängigen Datensätzen (z.B. Cross-Validation)
- Trainings-, Validierungs- und Testset: Datenaufteilung zur besseren Modelleinschätzung
- Cross-Validation: \[\text{CV-Fehler} = \frac{1}{k} \sum_{i=1}^{k} \text{Fehler}(M_i)\]
- Overfitting: Modell passt zu gut an Trainingsdaten, verliert Generalisierungsfähigkeit
- Underfitting: Modell ist zu einfach, kann Datenstruktur nicht erfassen
Explorative Datenanalyse (EDA)
Definition:
Verfahren zur Untersuchung von Datensätzen, um deren Hauptmerkmale zu verstehen, oft unter Verwendung visueller Methoden; Ziel: Auffälligkeiten und Zusammenhänge identifizieren.
Details:
- Verfahren: Daten visualisieren (Diagramme, Plots), deskriptive Statistik (Mittelwert, Median, Varianz), Datenbereinigung
- Zentralbegriffe: Ausreißer, Verteilungen, Korrelationen
- Tools: R, Python (pandas, matplotlib, seaborn)
- Explorative Fragen: Gibt es Ausreißer? Welche Muster und Trends existieren?
- Ziel: Hypothesen generieren, Annahmen prüfen
Big Data Technologien (Hadoop, Spark)
Definition:
Verteilte Systeme zur Verarbeitung großer Datenmengen
Details:
- Hadoop: Framework zur verteilten Speicherung (HDFS) und Verarbeitung (MapReduce)
- Spark: Schnelle In-Memory-Verarbeitung, unterstützt u.a. Batch- und Streaming-Daten
- HDFS: Verteiltes Dateisystem innerhalb von Hadoop
- MapReduce: Programmiermodell zur Datenverarbeitung in Hadoop
- RDD (Resilient Distributed Dataset): Zentrales Abstraktionsmodell in Spark, unterstützt Ausfallsicherheit und parallele Operationen
- Spark SQL: Ermöglicht Abfragen großer Datenmengen ähnlich zu SQL
- DataFrames/Datasets: Optimierte Datenstrukturen in Spark für benutzerfreundliche und leistungsfähige Datenmanipulation
Softwarearchitektur und Design Patterns
Definition:
Softwarearchitektur definiert die grundlegenden Strukturen eines Softwaresystems, bestehend aus Softwareelementen und deren Beziehungen. Design Patterns sind wiederverwendbare Lösungen für häufig auftretende Entwurfsprobleme.
Details:
- Architekturstile: Monolithisch, Microservices, Event-Driven, Serverless
- Design Patterns: Singleton, Factory, Observer, Strategy, Decorator, Adapter
- Grundprinzipien: KISS (Keep It Simple, Stupid), DRY (Don't Repeat Yourself), SOLID-Prinzipien
- UML-Diagramme: Klassendiagramme, Sequenzdiagramme, Aktivitätsdiagramme
- Tools: Enterprise Architect, Visual Paradigm, Lucidchart
Testmethoden und Testautomatisierung
Definition:
Verschiedene Methoden, um Softwaretests durchzuführen und Prozesse zur Automatisierung dieser Tests.
Details:
- Black-Box-Testen: Tests basierend auf Spezifikationen ohne Kenntnis der internen Implementierung.
- White-Box-Testen: Tests mit Kenntnis des internen Codes und der Struktur.
- Modultests: Tests einzelner Softwaremodule/einheiten.
- Integrationstests: Testen von Schnittstellen zwischen Modulen.
- Systemtests: Gesamtsystem wird getestet.
- Abnahmetests: Verifizierung durch Kundenanforderungen.
- Testautomatisierung: Einsatz von Tools zur Durchführung von Tests ohne manuelle Eingriffe, z.B. Selenium, JUnit.
- Kosteneffizienz: Reduziert langfristig die Testkosten.
- Konsistenz: Erhöht Genauigkeit und Wiederholbarkeit der Tests.
- Skalierbarkeit: Automatisierte Tests skalieren besser mit der Menge an Testfällen.
Intelligente Agenten und Multi-Agenten-Systeme
Definition:
Definierte Einheiten, die autonom agieren, um Ziele zu erreichen; MAS bestehen aus mehreren solchen Einheiten, die interagieren.
Details:
- Intelligente Agenten: Autonome Einheiten, besitzen Fähigkeiten zur Wahrnehmung, Entscheidungsfindung, Aktion.
- Reaktiv: Reaktion auf Umgebungseinflüsse.
- Proaktiv: Zielgerichtetes Verhalten.
- Kommunikativ: Austausch von Informationen.
- MAS: Mehrere Agenten kooperieren oder konkurrieren.
- Koordination: Zentralisiert oder dezentralisiert.
- Anwendungsfelder: Robotik, Wirtschaft, Spiele, Netzwerke.
- Ziel: Effizienzsteigerung durch verteilte Problemlösung.
Netzwerksicherheitsprotokolle
Definition:
Protokolle zum Schutz der Kommunikation im Netzwerk vor Abhörung, Manipulation und anderen Angriffen.
Details:
- Wichtige Protokolle: SSL/TLS, IPsec, SSH
- Ziele: Vertraulichkeit, Integrität, Authentifizierung
- SSL/TLS: Verwendet in HTTPS, basiert auf Zertifikaten
- IPsec: Arbeitet auf Schicht 3 (Netzwerkschicht), bietet Verschlüsselung und Authentifizierung
- SSH: Sicherer Fernzugriff auf Server, ersetzt Telnet
- Sicherheitsfunktionen: Verschlüsselung (\textbf{AES}, \textbf{RSA}), Hashing (\textbf{SHA-256})