Machine Learning für Softwareentwickler
eBook - ePub

Machine Learning für Softwareentwickler

Von der Python-Codezeile zur Deep-Learning-Anwendung

Paolo Perrotta, Volkmar Gronau

  1. 396 pagine
  2. German
  3. ePUB (disponibile sull'app)
  4. Disponibile su iOS e Android
eBook - ePub

Machine Learning für Softwareentwickler

Von der Python-Codezeile zur Deep-Learning-Anwendung

Paolo Perrotta, Volkmar Gronau

Dettagli del libro
Anteprima del libro
Indice dei contenuti
Citazioni

Informazioni sul libro

  • Eine Einführung in das maschinelle Lernen für Entwickler
  • Alle wesentlichen Ideen, Werkzeuge und Konzepte des supervised Learning, von neuronalen Netzen und des Deep Learning werden präsentiert
  • Der gesamte Programmcode ist in Python geschrieben

Domande frequenti

Come faccio ad annullare l'abbonamento?
È semplicissimo: basta accedere alla sezione Account nelle Impostazioni e cliccare su "Annulla abbonamento". Dopo la cancellazione, l'abbonamento rimarrà attivo per il periodo rimanente già pagato. Per maggiori informazioni, clicca qui
È possibile scaricare libri? Se sì, come?
Al momento è possibile scaricare tramite l'app tutti i nostri libri ePub mobile-friendly. Anche la maggior parte dei nostri PDF è scaricabile e stiamo lavorando per rendere disponibile quanto prima il download di tutti gli altri file. Per maggiori informazioni, clicca qui
Che differenza c'è tra i piani?
Entrambi i piani ti danno accesso illimitato alla libreria e a tutte le funzionalità di Perlego. Le uniche differenze sono il prezzo e il periodo di abbonamento: con il piano annuale risparmierai circa il 30% rispetto a 12 rate con quello mensile.
Cos'è Perlego?
Perlego è un servizio di abbonamento a testi accademici, che ti permette di accedere a un'intera libreria online a un prezzo inferiore rispetto a quello che pagheresti per acquistare un singolo libro al mese. Con oltre 1 milione di testi suddivisi in più di 1.000 categorie, troverai sicuramente ciò che fa per te! Per maggiori informazioni, clicca qui.
Perlego supporta la sintesi vocale?
Cerca l'icona Sintesi vocale nel prossimo libro che leggerai per verificare se è possibile riprodurre l'audio. Questo strumento permette di leggere il testo a voce alta, evidenziandolo man mano che la lettura procede. Puoi aumentare o diminuire la velocità della sintesi vocale, oppure sospendere la riproduzione. Per maggiori informazioni, clicca qui.
Machine Learning für Softwareentwickler è disponibile online in formato PDF/ePub?
Sì, puoi accedere a Machine Learning für Softwareentwickler di Paolo Perrotta, Volkmar Gronau in formato PDF e/o ePub, così come ad altri libri molto apprezzati nelle sezioni relative a Computer Science e Neural Networks. Scopri oltre 1 milione di libri disponibili nel nostro catalogo.

Informazioni

Anno
2020
ISBN
9783969100264
Teil 1
Von null auf Bilderkennung
Dieser Teil gibt eine Einführung in überwachtes Lernen. Innerhalb von nur zwei Kapiteln werden wir ein erstes Machine-Learning-System programmieren, das wir anschließend Schritt für Schritt weiterentwickeln, bis es leistungsfähig genug ist, um handgeschriebene Ziffern zu erkennen.
Ja, Sie haben richtig gelesen: Auf den nächsten etwa 100 Seiten werden wir ein Programm zur Bilderkennung schreiben. Was noch besser ist: Wir werden dazu keine Machine-Learning-Bibliothek verwenden. Abgesehen von einigen Allzweckfunktionen für arithmetische Berechnungen und grafische Darstellung schreiben wir den ganzen Code selbst.
Es ist sehr unwahrscheinlich, dass Sie in Ihrer zukünftigen Karriere jemals Machine-Learning-Algorithmen von Grund auf selbst schreiben müssen. Aber es einmal zu tun, um die Grundlagen richtig zu verstehen, ist von unschätzbarem Wert. Sie werden genau wissen, was jede einzelne Zeile des fertigen Programms tut. Danach wird Machine Learning für Sie nie wieder wie schwarze Magie wirken.
1
Einführung in Machine Learning
Softwareentwickler erzählen sich gern Veteranengeschichten. Sobald ein paar von uns in einer Kneipe zusammensitzen, fragt einer: »An was für Projekten arbeitet ihr gerade?« Dann nicken wir heftig und hören uns die amüsanten und teilweise furchtbaren Geschichten der anderen an.
Bei einem dieser abendlichen Geplänkel Mitte der 90er erzählte mir eine Freundin von dem unmöglichen Auftrag, an dem sie gerade arbeitete. Ihre Vorgesetzten wünschten sich von ihr ein Programm, das Röntgenaufnahmen analysieren und dadurch Krankheiten erkennen konnte, etwa eine Lungenentzündung.
Meine Freundin warnte die Geschäftsleitung vor, dass das ein hoffnungsloses Unterfangen sei, aber man wollte ihr nicht glauben. Wenn ein Radiologe das leisten konnte, so argumentierten die Manager, warum dann nicht auch ein Visual-Basic-Programm? Sie stellten ihr sogar einen Radiologen zur Seite, damit sie lernte, wie er vorging, und dies in Code umsetzen konnte. Diese Erfahrung bestärkte sie jedoch nur in ihrer Meinung, dass Radiologie menschliches Urteilsvermögen und menschliche Intelligenz erforderte.
Wir lachten über die Sinnlosigkeit dieser Aufgabe. Ein paar Monate später wurde das Projekt aufgegeben.
Doch kehren wir nun in die Gegenwart zurück. 2017 veröffentlichte ein Forschungsteam der Stanford University einen Algorithmus, um Lungenentzündung anhand von Röntgenbildern zu erkennen.1 Er erfüllte nicht nur seine Aufgabe, sondern war sogar zuverlässiger als ein professioneller Radiologe. Das hatte als unmöglich gegolten. Wie hatten die Forscher es geschafft, diesen Code zu schreiben?
Die Antwort lautet: gar nicht. Anstatt Code zu schreiben, setzten sie Machine Learning ein. Sehen wir uns an, was das bedeutet.
Programmierung und Machine Learning im Vergleich
Das folgende Beispiel zeigt den Unterschied zwischen Machine Learning (oder kurz ML) und gewöhnlicher Programmierung. Stellen Sie sich vor, Sie sollen ein Programm erstellen, das Videospiele spielt. Bei der traditionellen Programmierung würden Sie dazu Code wie den folgenden schreiben:
enemy = get_nearest_enemy()
if enemy.distance() < 100:
decelerate()
if enemy.is_shooting():
raise_shield()
else:
if health() > 0.25:
shoot()
else:
rotate_away_from(enemy)
else:
# ... und noch viel mehr Code
Und so weiter. Der Großteil des Codes würde aus einer Riesenmenge von if... else-Anweisungen vermischt mit Befehlen wie shoot() bestehen.
Moderne Sprachen bieten uns zwar Möglichkeiten, diese hässlichen, verschachtelten if-Anweisungen durch angenehmere Konstruktionen wie Polymorphismus, Mustererkennung oder ereignisgestützte Aufrufe zu ersetzen, aber das Grundprinzip der Programmierung bleibt unverändert: Sie sagen dem Computer, wonach er Ausschau halten und was er tun soll. Dabei müssen Sie jede mögliche Bedingung aufführen und jede mögliche Aktion definieren.
Mit dieser Vorgehensweise sind wir weit gekommen, aber sie hat auch einige Nachteile. Erstens dürfen Sie nichts auslassen. Wahrscheinlich können Sie sich Dutzende oder gar Hunderte von besonderen Situationen vorstellen, die Sie in dem Videospielprogramm berücksichtigen müssen. Was geschieht, wenn sich ein Gegner nähert, sich aber ein Power-up zwischen Ihnen und ihm befindet, das Sie vor seinen Schüssen schützen kann? Ein menschlicher Spieler wird eine solche Situation schnell erkennen und zu seinem Vorteil nutzen. Kann ein Programm das auch? Das hängt ganz von dem Programm ab. Wenn Sie diesen Sonderfall beim Schreiben des Codes berücksichtigt haben, dann kann das Programm damit umgehen. Allerdings wissen wir, wie schwer es ist, selbst in so eng umrissenen Aufgabenfeldern wie der Buchhaltung jegliche Sonderfälle abzudecken. Wenn Sie sämtliche Sonderfälle auf so komplexen Gebieten wie dem Spielen von Videospielen, dem Fahren eines Lkw oder dem Erkennen eines Bilds auflisten wollen, kann ich Ihnen dazu nur viel Glück wünschen.
Es reicht aber nicht nur, all diese Fälle aufzulisten; Sie müssen auch wissen, wie Sie dabei jeweils eine Entscheidung fällen. Das ist die zweite große Einschränkung bei der Programmierung, die in manchen Fachgebieten schon das Aus bedeutet. Betrachten Sie zum Beispiel eine Aufgabe aus dem Bereich des maschinellen Sehens wie das bereits erwähnte Erkennen einer Lungenentzündung anhand einer Röntgenaufnahme.
Wir wissen nicht genau, wie ein Radiologe eine Lungenentzündung erkennt. Wir haben zwar eine grobe Vorstellung davon, dass er nach undurchsichtigen Bereichen sucht, aber wir wis...

Indice dei contenuti

  1. Cover
  2. Titel
  3. Impressum
  4. Inhalt
  5. Widmung
  6. Danksagung
  7. Wie um alles in der Welt ist so etwas möglich?
  8. Teil 1 Von null auf Bilderkennung
  9. Teil 2 Neuronale Netze
  10. Teil 3 Deep Learning
  11. Anhang
  12. Fußnoten
Stili delle citazioni per Machine Learning für Softwareentwickler

APA 6 Citation

Perrotta, P. (2020). Machine Learning für Softwareentwickler ([edition unavailable]). dpunkt. Retrieved from https://www.perlego.com/book/2235196/machine-learning-fr-softwareentwickler-von-der-pythoncodezeile-zur-deeplearninganwendung-pdf (Original work published 2020)

Chicago Citation

Perrotta, Paolo. (2020) 2020. Machine Learning Für Softwareentwickler. [Edition unavailable]. dpunkt. https://www.perlego.com/book/2235196/machine-learning-fr-softwareentwickler-von-der-pythoncodezeile-zur-deeplearninganwendung-pdf.

Harvard Citation

Perrotta, P. (2020) Machine Learning für Softwareentwickler. [edition unavailable]. dpunkt. Available at: https://www.perlego.com/book/2235196/machine-learning-fr-softwareentwickler-von-der-pythoncodezeile-zur-deeplearninganwendung-pdf (Accessed: 15 October 2022).

MLA 7 Citation

Perrotta, Paolo. Machine Learning Für Softwareentwickler. [edition unavailable]. dpunkt, 2020. Web. 15 Oct. 2022.