Table Of ContentSEBASTIAN DÖRN
Programmieren für
Ingenieure und Natur-
wissenschaftler
Intelligente Algorithmen und
digitale Technologien
eXXamen.press
eXamen.pressisteineReihe,dieTheorieundPraxisausallenBereichenderInformatik
fürdieHochschulausbildungvermittelt.
Sebastian Dörn
Programmieren für
Ingenieure und
Naturwissenschaftler
Intelligente Algorithmen und digitale
Technologien
SebastianDörn
HochschulcampusTuttlingen
HochschuleFurtwangen
Tuttlingen,Deutschland
ISSN1614-5216
eXamen.press
ISBN978-3-662-54303-0 ISBN978-3-662-54304-7(eBook)
https://doi.org/10.1007/978-3-662-54304-7
DieDeutscheNationalbibliothekverzeichnetdiesePublikationinderDeutschenNationalbibliografie;detaillier-
tebibliografischeDatensindimInternetüberhttp://dnb.d-nb.deabrufbar.
SpringerVieweg
©Springer-VerlagGmbHDeutschland2018
DasWerkeinschließlichallerseinerTeileisturheberrechtlichgeschützt.JedeVerwertung,dienichtausdrücklich
vomUrheberrechtsgesetzzugelassenist,bedarfdervorherigenZustimmungdesVerlags.Dasgiltinsbesondere
fürVervielfältigungen,Bearbeitungen,Übersetzungen,MikroverfilmungenunddieEinspeicherungundVerar-
beitunginelektronischenSystemen.
DieWiedergabevonGebrauchsnamen,Handelsnamen,Warenbezeichnungenusw.indiesemWerkberechtigt
auchohnebesondereKennzeichnungnichtzuderAnnahme,dasssolcheNamenimSinnederWarenzeichen-
undMarkenschutz-Gesetzgebungalsfreizubetrachtenwärenunddahervonjedermannbenutztwerdendürften.
DerVerlag,dieAutorenunddieHerausgebergehendavonaus,dassdieAngabenundInformationenindiesem
WerkzumZeitpunktderVeröffentlichungvollständigundkorrektsind.WederderVerlagnochdieAutorenoder
dieHerausgeberübernehmen,ausdrücklichoderimplizit,GewährfürdenInhaltdesWerkes,etwaigeFehler
oderÄußerungen.DerVerlagbleibtimHinblickaufgeografischeZuordnungenundGebietsbezeichnungenin
veröffentlichtenKartenundInstitutionsadressenneutral.
GedrucktaufsäurefreiemundchlorfreigebleichtemPapier
SpringerViewegistTeilvonSpringerNature
DieeingetrageneGesellschaftistSpringer-VerlagGmbHDeutschland
DieAnschriftderGesellschaftist:HeidelbergerPlatz3,14197Berlin,Germany
Vorwort
IndiesemdreibändigenWerkProgrammierenfürIngenieureundNaturwissenschaft-
ler werden die Methoden der Programmierung und Algorithmen von ihren Grundlagen
biszuleistungsfähigenVerfahrenausdemBereichderKünstlichenIntelligenzmiteiner
umfangreichen Auswahl von technischen-naturwissenschaftlichen Anwendungen vorge-
stellt. IndenIngenieur-undNaturwissenschaften habendieseVerfahrenheutedurchdie
zunehmendeDigitalisierungeinensehrgroßenAnwendungsbereich.
DasZieldieserBuchreiheistes,StudierendenderIngenieur-oderNaturwissenschaften
dieProgrammierungalsSchlüsselqualifikationmitzahlreichenAnwendungsmöglichkei-
tenvorzustellen.EingroßerWertwirddabeiaufeinepraxisorientierteundverständliche
DarstellungderArbeitsweisevonAlgorithmenmitHilfevonSchritt-für-Schritt-Anleitun-
gen gelegt. Alle vorgestellten Algorithmen werden von den Grundprinzipien bis zu den
Implementierungsdetailsgenaubesprochen.DieUmsetzungvonProgrammierkonzepten
undalgorithmischenVerfahrenerfolgtdabeiinderProgrammierspracheJava.
AuswahlderInhaltedesdrittenBands
AufbauendaufdenimerstenundzweitenBanddargestelltenAlgorithmenundProgram-
miertechnikeninJava,beschäftigenwirunshiermitdenalgorithmischenMethodiken,die
heutehinterallendigitalenProduktenundDienstleistungenstehen.Zunennensinddabei
diebekanntenSchlagwörterinFormvonKünstlicherIntelligenz,DataMining,Predictive
Analytics,Industrie4.0oderInternetderDinge.
Die digitale Datenanalyse mit den zugehörigen Algorithmen sind dabei die zentrale
Grundlagealler dieser neuen IT-Technologien.Das Ziel ist, großeDatenmengen aus di-
versen Anwendungsfeldern zu verarbeiten, auf gewisse Muster zu analysieren und die
relevanten Informationenzu extrahieren. Diese sogenanntenintelligenten Verfahren,ba-
sierend auf dem maschinellen Lernen, sind die Basis für nahezu alle Innovationen in
unsererheutigendigitalisiertenWelt.
Mit Hilfe dieser Art der Informationsverarbeitung können durch Kombination einer
VielzahlvonmathematischenModellenundalgorithmischenMethodenneuedigitaleGe-
schäftsmodellekonzipiertundumgesetztwerden.IndiesemBandbehandelnwirdiezen-
tralen Verfahrenstypen und stellen eine großeBandbreitekonkreter potentieller Anwen-
dungenvor:
V
VI Vorwort
(cid:2) GrundlagenderDigitalisierung:DigitaleDaten,PredictiveAnalytics,Industrie4.0,
KünstlicheIntelligenz
(cid:2) ZentraleKonzepte:Wahrscheinlichkeitsrechnung,Klassifikation,Clustering,Validie-
rung,Boosting
(cid:2) Neuronale Netze: Einfaches Perzeptron, mehrlagiges Perzeptron, rekurrente Netze,
Faltungsnetze
(cid:2) Bayes-Netze:Aufstellen,SchließenundLernenvonBayes-Netzen
(cid:2) ProbabilistischeRobotik:Bayes-Filter,Kalman-Filter,Partikel-Filter
(cid:2) Markov-Modelle:Markov-Ketten,Hidden-Markov-Modelle,MarkovschesEntschei-
dungsmodell
(cid:2) Entwicklungsmethodiken:Softwaresysteme,Mensch-Maschine-KommunikationDi-
gitaleProdukte
(cid:2) Anwendungen:AutonomesFahren,KognitiveSysteme,DigitaleMedizin,Intelligente
Roboter,Software-Agenten
Weitere Informationen zum Thema Programmierung, Algorithmen und Digitalisierung
findenSieaufmeinerWebsitehttp://sebastiandoern.de.
Danksagung
FürdieErstellungderAbbildungenzudeneinzelnenKapitelnbinichSonjaJenisch,Aline
Winter, Johannes Jaeger und David Schulz sehr dankbar. Für wertvolle Hinweise und
VerbesserungsvorschlägegehtmeinDankanMartinaWarmer,SonjaJenisch,LilliReiner,
Martin Haimerl, Johannes Jaeger, Bianca Seige, Katharina Buss, Verena Wagner, Mike
FornefettundJanLeonSchöneck.
HinweiseundAnregungen
Hinweise und Verbesserungsvorschläge sind von allen Seiten sehr willkommen, um
eine kontinuierliche Verbesserung dieser Lehrbuchreihe zu erreichen: per Email an
[email protected].
Tuttlingen,August2017 SebastianDörn
Inhaltsverzeichnis
1 GrundlagenderDigitalisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 DigitaleDaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 PredictiveAnalytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Industrie4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 KünstlicheIntelligenz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 ZentraleKonzepte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1 Wahrscheinlichkeitsrechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.1 AllgemeineGrundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.2 BedingteWahrscheinlichkeiten . . . . . . . . . . . . . . . . . . . . . 26
2.1.3 SatzvonBayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.4 Verteilungsfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.1.5 ErwartungswertundVarianz . . . . . . . . . . . . . . . . . . . . . . . 40
2.1.6 MehrdimensionaleVerteilungen . . . . . . . . . . . . . . . . . . . . . 42
2.1.7 KovarianzundKorrelation . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2 Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.2 NächsteNachbarMethode . . . . . . . . . . . . . . . . . . . . . . . . 54
2.2.3 LernendeVektorquantisierung . . . . . . . . . . . . . . . . . . . . . . 58
2.2.4 Entscheidungsbäume. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.2.5 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.3 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.3.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.3.2 HierarchischesClustering . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.3.3 K-Means-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.3.4 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.4 Validierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.4.1 Trainings-undTestdaten . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.4.2 Kreuzvalidierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
VII
VIII Inhaltsverzeichnis
2.5 Boosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.5.1 AdaBoost-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.5.2 Viola-Jones-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.6 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3 NeuronaleNetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.1.1 BiologischesPrinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.1.2 AllgemeinesArbeitsprinzip. . . . . . . . . . . . . . . . . . . . . . . . 92
3.1.3 EinfacheMustererkennung . . . . . . . . . . . . . . . . . . . . . . . . 93
3.1.4 ArchitekturderNetze . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.1.5 Anwendungsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.2 EinfachesPerzeptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.2.1 Netzarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.2.2 Lernverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3 MehrlagigesPerzeptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.3.1 Netzarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.3.2 Lernverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.4 RekurrenteNetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.4.1 Netzarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.4.2 Lernverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.5 Faltungsnetze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.5.1 Netzarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.5.2 Lernverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.6 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.7 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4 Bayes-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.1 Naive-Bayes-Klassifikator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.2 GrundlegendeBegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4.3 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
4.4 GrundlegendeLösungsprinzipien. . . . . . . . . . . . . . . . . . . . . . . . . 163
4.5 AlgorithmusundImplementierung. . . . . . . . . . . . . . . . . . . . . . . . 170
4.6 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
4.7 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Inhaltsverzeichnis IX
5 ProbabilistischeRobotik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
5.1 AllgemeineGrundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
5.1.1 EinführendesBeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
5.1.2 GrundlegendeMethoden . . . . . . . . . . . . . . . . . . . . . . . . . 184
5.1.3 DynamischesstochastischesSystem . . . . . . . . . . . . . . . . . . 187
5.2 Bayes-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5.2.1 EinführendesBeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5.2.2 GrundlegendeBegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . 190
5.2.3 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.2.4 GrundlegendeLösungsprinzipien . . . . . . . . . . . . . . . . . . . . 191
5.2.5 AlgorithmusundImplementierung . . . . . . . . . . . . . . . . . . . 193
5.2.6 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.3 Kalman-Filter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
5.3.1 EinführendesBeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
5.3.2 GrundlegendeBegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . 200
5.3.3 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
5.3.4 GrundlegendeLösungsprinzipien . . . . . . . . . . . . . . . . . . . . 201
5.3.5 AlgorithmusundImplementierung . . . . . . . . . . . . . . . . . . . 204
5.3.6 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
5.4 Partikel-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
5.4.1 EinführendesBeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
5.4.2 GrundlegendeBegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . 211
5.4.3 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
5.4.4 GrundlegendeLösungsprinzipien . . . . . . . . . . . . . . . . . . . . 212
5.4.5 AlgorithmusundImplementierung . . . . . . . . . . . . . . . . . . . 213
5.4.6 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.5 Übungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6 Markov-Modelle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
6.1 Markov-Ketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6.1.1 EinführendesBeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
6.1.2 GrundlegendeBegriffe. . . . . . . . . . . . . . . . . . . . . . . . . . . 222
6.1.3 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
6.1.4 GrundlegendeLösungsprinzipien . . . . . . . . . . . . . . . . . . . . 230
6.1.5 AlgorithmusundImplementierung . . . . . . . . . . . . . . . . . . . 232
6.1.6 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Description:Ziel des Buches ist es, Ingenieuren oder Naturwissenschaftlern die Programmierung als Schlüsselqualifikation mit zahlreichen Anwendungsmöglichkeiten vorzustellen. Der Autor erläutert algorithmische Methoden, die heute hinter digitalen Produkten und Dienstleistungen stehen. Zentrale Anwendungen si