In dieser Arbeit sollte mittels Deep Learning ein Modell erstellt werden, mit dem sich die Auslastung eines Servers in einem Rechenzentrum vorhersagen lässt. Dafür sollte evaluiert werden, welche Modell-Architektur für diese Zeitreihenvorhersage am besten geeignet sind. Dafür wurde zunächst eine theoretische Untersuchung durchgeführt und anschließend ein Vergleich der geeigneten Modell-Architekturen angestellt. Es stellte sich heraus, dass ein Convolutional Neural Network (CNN) mit einer Long Short Term Memory (LSTM) Schicht die besten Prognosen erzeugt.
Es wurde untersucht, wie sich die Hauptkomponentenanalyse zur Dimensionsreduktion auf die Modelle auswirkt. Dies zeigte, dass die Effekte stark von der Architektur abhängen. Die System-Architektur einer Webanwendung wurde so erweitert, dass es möglich ist, neben der historischen Serverauslastung auch Prognosen anzuzeigen. Die Visualisierungen der aufgezeichneten Daten wurden um die Vorhersagen erweitert.
Die Arbeit stellt schließlich eine Möglichkeit dar, wie der Lebenszyklus des Prognosemodells in einem produktiven System mit stetiger Auslastungsmessung integriert werden kann.
Inhaltsverzeichnis
1. Einleitung
1.1 Ausgangssituation
1.2 Zielsetzung
1.3 Gliederung der Arbeit
2. Einführung in die Zeitreihenanalyse in der Statistik
2.1 Definition einer Zeitreihe
2.1.1 Arithmetisches Mittel
2.1.2 Erwartungswert
2.1.3 Varianz
2.1.4 Kovarianz
2.2 Stationäre Prozesse
2.3 Das Komponentenmodell
2.3.1 Trendbereinigung
2.3.2 Saisonbereinigung
2.4 AR-, MA- und ARMA-Modelle
2.4.1 AR(p)-Modelle
2.4.2 MA(q)-Modelle
2.5 ARMA(p,q)-Modelle
2.6 ARIMA(p,d,q)-Modelle
2.6.1 Vorgehensweise zur Zeitreihenvorhersage mit ARIMA-Modellen
3. Python für Machine-Learning und Data Science
3.1 Relevante Python-Bibliotheken
3.1.1 Numpy
3.1.2 Pandas
3.1.3 statsmodels
3.1.4 Matplotlib
3.1.5 Tensorflow
3.1.6 Keras
3.1.7 Scikit-learn
4. Der Data Science Prozess
4.1 Fragestellung
4.2 Datenbeschaffung (1)
4.3 Datenexploration (1)
4.4 Datenbeschaffung (2)
4.5 Datenexploration (2)
4.5.1 Rücksprache mit Datenbankadministrator
4.6 Datenbeschaffung (3)
4.7 Datenexploration (3)
4.7.1 Vereinheitlichung der Timestamps
4.7.2 Merkmale als Spalten
4.7.3 Keine fehlenden Merkmalswerte
4.8 Datenmodellierung
4.9 Visualisierung
5. Grundlagen für die Prognosenerstellung mit Machine-Learning
5.1 Was ist Machine-Learning?
5.2 Statistische Methoden oder Machine-Learning?
5.3 Machine-Learning-Klassen
5.3.1 Supervised Learning
5.3.2 Unsupervised Learning
5.3.3 Reinforcement Learning
5.3.4 Entscheidung für eine Klasse
5.4 Künstliche Neuronale Netze
5.4.1 Das Perzeptron nach Rosenblatt
5.4.2 Aufbau von KNNs
5.4.3 Lernen mittels Gradientenabstiegsverfahren
5.4.4 Backpropagation
5.5 Über- und Unteranpassung eines Künstlichen Neuronalen Netzes
5.6 Regularisierung
5.6.1 Dropout-Regularisierung
5.6.2 Regularisierung durch Early Stopping
5.7 Standardisierung
5.8 Univariate und multivariate Vorhersagen
6. Zeitreihenprognose mit Neuronalen Netzen
6.1 Evaluation verschiedener Architekturen Neuronaler Netze
6.1.1 Multilayer Perceptron (MLP)
6.1.2 Convolutional Neural Network (CNN)
6.1.3 Recurrent Neural Network(RNN)
6.1.4 Long Short Term Memory (LSTM)
6.1.5 Gated Recurrent Unit (GRU)
6.2 Datenvorbereitung für multivariate KNNs
6.2.1 Featuregenerierung aus den Zeitstempeln
6.2.2 Hauptkomponentenanalyse (PCA)
6.2.3 Ablauf der Datenvorbereitung
6.3 Implementierung der KNNs
6.3.1 Grundlegende Designentscheidungen
6.3.2 Implementierung des MLP
6.3.3 Implementierung des CNN
6.3.4 Implementierung des LSTM- und GRU-Netzes
6.4 Modelloptimierung
6.4.1 Kreuzvalidierung
6.4.2 Rastersuche
6.4.3 Ergebnisse der Hyperparameteroptimierung
6.5 Trainings-, Validierungs- und Testdaten
6.6 Modellbewertung
6.6.1 Möglichkeiten zur Fehlerbestimmung
6.6.2 Fehlerauswertung der erstellten Modelle
6.6.3 Interpretation der Fehlerauswertung
6.6.4 Entscheidung für ein Modell
6.6.5 Modell für zweite Serverinstanz
7. Möglichkeiten zur Integration der Prognosen in die Webanwendung
7.1 Durchführen des Machine-Learning im Browser
7.1.1 Tensorflow.js
7.1.2 WebAssembly
7.1.3 Iodide
7.1.4 Pyodide
7.2 Bereitstellung der Prognosewerte
7.3 Entscheidung für einen Ansatz
8. Umsetzung des gewählten Ansatzes
8.1 Die Webanwendung DC-Cubes
8.2 Verwendete Technologien
8.2.1 React
8.2.2 D3.js
8.2.3 three.js
8.2.4 Solr
8.2.5 Node.js
8.3 Backend-Architektur
8.4 Konzept zur Bereitstellung der Prognosewerte
8.5 Visualisierung der Prognosen in der Webanwendung
8.5.1 Ausgangssituation
8.5.2 Erweiterung um Prognose
8.6 Technische Umsetzung
8.6.1 Speichern der historischen Daten
8.6.2 Erzeugen und Speichern der Prognosen
8.6.3 Laden der Prognose in die Webanwendung
8.6.4 Neue Prognosen erstellen
8.6.5 Anzeigen der Prognose aktivieren
8.6.6 Anzeigen der Prognose im 2d-Chart
8.6.7 Anzeigen der Prognose im 3d-Chart
8.6.8 Merge-Core
9. Zusammenfassung und Ausblick
9.1 Zusammenfassung dieser Arbeit
9.2 Lebenszyklus der Prognosemodelle
9.3 Ausblick
Zielsetzung & Themen
Ziel dieser Bachelorarbeit ist die Integration von Machine-Learning-basierten Vorhersagemodellen für die Server-Auslastung in eine bestehende Monitoring-Webanwendung. Dabei soll erforscht werden, wie auf Basis historischer Belastungsdaten zuverlässige Prognosen über die zukünftige IT-Auslastung getroffen und dem Nutzer visuell in einer bestehenden Web-Infrastruktur präsentiert werden können.
- Methodische Grundlagen der Zeitreihenanalyse und statistische Modellierung.
- Einsatz und Evaluation von Deep-Learning-Architekturen wie MLP, CNN, RNN, LSTM und GRU für Zeitreihen.
- Prozesshafte Datenvorbereitung und Feature Engineering zur Vorhersage von Servermetriken.
- Technische Realisierung der Vorhersage-Pipeline und Integration in ein Web-Dashboard (DC-Cubes).
Auszug aus dem Buch
2.4.1 AR(p)-Modelle
Ein AR(p)-Modell ist ein autoregressives Modell p-ter Ordnung [60, S. 84]. Man bezeichnet es als autoregressiv, da sich der Wert zum Zeitpunkt t aus einer Linearkombination der vorhergegangenen Werte ergibt [98, S. 79]. Es ist intuitiv, dass bei den Werten einer Zeitreihe eine Abhängigkeit zu den vorherigen Werten besteht. Jedoch ist nicht klar, wie viele Zeitschritte in die Vergangenheit eine solche Abhängigkeit besteht.
Das AR(p)-Modell stellt die Zeitreihe durch die in der Zeit verschobene Zeitreihe selbst dar. Der Parameter p des AR(p)-Modells gibt an, bis zu welchem Zeitpunkt in der Vergangenheit die Werte berücksichtigt werden sollen [84, S. 45]. Ein AR(p)-Prozess Yt lässt sich nach [84, S. 45] durch folgende Gleichung definieren:
Yt = α0 + α1Yt−1 + ... + αpYt−p + εt.
Dabei ist Yt ist ein stochastischer Prozess und εt ein White-Noise-Prozess mit Erwartungswert E(εt) = 0, der auch „Innovationen“ genannt wird [84, S. 45 f.]. Ein White-Noise-Prozess ist „eine Folge von unabhängigen identisch verteilten Zufallsvariablen“ [84, S. 4]. Aus der identischen Verteilung ergibt sich der Erwartungswert E(εt) = 0 für die Zufallsvariable εt. Aus der Unabhängigkeit folgt, dass die Kovarianz, das Maß für Abhängigkeit, zweier Punkte Cov[εt,εs] = 0 ist für s = t [84, S. 97]. Die Innovationen stellen in dieser Gleichung also den Rest dar, für den keine Abhängigkeit existiert.
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel stellt die Ausgangssituation in Rechenzentren dar, definiert das Ziel der Vorhersage der Server-Auslastung und gibt einen Überblick über den Aufbau der Arbeit.
2 Einführung in die Zeitreihenanalyse in der Statistik: Es werden statistische Grundlagen wie Mittelwert, Varianz und Komponentenmodelle sowie klassische Zeitreihenmodelle wie AR, MA, ARMA und ARIMA eingeführt.
3 Python für Machine-Learning und Data Science: Begründung der Wahl von Python für diese Arbeit unter Vorstellung relevanter Bibliotheken wie Numpy, Pandas, Tensorflow und Scikit-learn.
4 Der Data Science Prozess: Detaillierte Beschreibung der iterativen Schritte von der Fragestellung über die Datenbeschaffung und Exploration bis zur Modellierung innerhalb dieses Projekts.
5 Grundlagen für die Prognosenerstellung mit Machine-Learning: Einführung in Machine-Learning-Grundlagen, verschiedene Lernklassen sowie die Funktionsweise von künstlichen neuronalen Netzen und deren Lernverfahren.
6 Zeitreihenprognose mit Neuronalen Netzen: Theoretische Evaluation, Implementierung und Optimierung verschiedener KNN-Architekturen (MLP, CNN, LSTM, GRU) für die Zeitreihenprognose.
7 Möglichkeiten zur Integration der Prognosen in die Webanwendung: Diskussion und Vergleich verschiedener Ansätze zur Integration der Modelle in eine Web-Umgebung, wobei die Server-seitige Implementierung favorisiert wird.
8 Umsetzung des gewählten Ansatzes: Dokumentation der technischen Integration der Prognose-Pipeline in die bestehende Webanwendung DC-Cubes.
9 Zusammenfassung und Ausblick: Zusammenfassung der Ergebnisse hinsichtlich der Modell-Performance und Empfehlungen für den weiteren Lebenszyklus und Skalierungsmöglichkeiten der Lösung.
Schlüsselwörter
Zeitreihenanalyse, Machine-Learning, Deep-Learning, Neuronale Netze, Server-Monitoring, Python, ARIMA, CNN, LSTM, GRU, Datenvorbereitung, Web-Dashboard, Prognose, Feature Engineering, Skalierbarkeit
Häufig gestellte Fragen
Worum geht es in der Arbeit grundlegend?
Die Arbeit befasst sich mit der Vorhersage von CPU-Auslastung in Rechenzentren unter Verwendung von Machine-Learning-Verfahren und deren Integration in ein webbasiertes Monitoring-Dashboard.
Welche zentralen Themenfelder werden behandelt?
Die Arbeit deckt die statistische Zeitreihenanalyse, Machine-Learning-Grundlagen, die Architektur künstlicher neuronaler Netze sowie die praktische Softwareentwicklung für die Web-Integration ab.
Was ist das primäre Ziel der Arbeit?
Das primäre Ziel ist es, auf Basis historischer Belastungsdaten aus einem Rechenzentrum eine automatisierte Prognose-Funktion in die bestehende Webanwendung DC-Cubes zu implementieren, um die Netzwerkauslastung besser steuern zu können.
Welche wissenschaftlichen Methoden kommen zum Einsatz?
Es werden klassische statistische Ansätze sowie moderne Deep-Learning-Methoden wie Convolutional Neural Networks (CNN) und Long Short Term Memory (LSTM) Netzwerke zur Zeitreihenvorhersage verwendet.
Was wird im Hauptteil behandelt?
Der Hauptteil gliedert sich in die theoretische Einführung in Zeitreihen und neuronale Netze, die praktische Datenvorbereitung, die Implementierung und Optimierung der Modelle sowie deren Integration in eine webbasierte Architektur.
Welche Schlüsselwörter charakterisieren die Arbeit?
Zu den wichtigsten Begriffen gehören Zeitreihenprognose, Machine-Learning, Neuronale Netze, Server-Monitoring, Python und Datenvorverarbeitung.
Warum wurde ein CNN für die Prognose gewählt?
Die Entscheidung für ein CNN basierte auf einer Modellvergleichsanalyse, bei der das CNN für den spezifischen Datensatz die geringsten Fehlerwerte bei gleichzeitig effizienter Epochendauer lieferte.
Wie werden die Daten für das Machine-Learning-Modell aufbereitet?
Die Rohdaten durchliefen eine Datenbereinigung, Standardisierung und eine Hauptkomponentenanalyse (PCA), um die Dimensionalität zu reduzieren und die Effizienz des Trainings zu erhöhen.
- Citar trabajo
- Sebastian Steindl (Autor), 2020, Integration von python-basierten Vorhersagemodellen in ein Monitoring-Webdashboard, Múnich, GRIN Verlag, https://www.grin.com/document/899477