SEBASTIAN 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: