Machine Learning für Softwareentwickler. Paolo Perrotta. Читать онлайн. Newlib. NEWLIB.NET

Автор: Paolo Perrotta
Издательство: Bookwire
Серия:
Жанр произведения: Математика
Год издания: 0
isbn: 9783969100264
Скачать книгу
der Unterschied zwischen überwachtem und unüberwachtem Lernen darin, dass die Beispieldaten in letzterem Fall keine Labels haben. In der Praxis hat unüberwachtes Lernen jedoch nicht viel mit unserer üblichen Vorstellung von »Lernen« zu tun, sondern wirkt eher wie eine äußerst anspruchsvolle Art von Datenverarbeitung.

      Als Beispiel für unüberwachtes Lernen stellen Sie sich vor, dass Sie Marktforschung für einen Onlineshop betreiben und dabei alle Daten über die Kunden vorliegen haben: wie viel sie ausgeben, wie oft sie den Shop besuchen usw. Ein Algorithmus für unüberwaches Lernen kann Ihnen helfen, sinnvolle Zusammenhänge aus diesen Daten abzulesen, indem er ähnliche Kunden zu Gruppen zusammenfasst – ein Vorgang, der als Clustering bezeichnet wird.

      Unüberwachtes Lernen kann sehr praktisch sein, steht heutzutage aber nicht so sehr im Rampenlicht wie die anderen Varianten von ML. Für dieses Buch musste ich mich auf ein Thema beschränken und habe mich deshalb auf überwachtes Lernen konzentriert.

      Den ersten Teil dieses Buchs nimmt ein ML-Tutorial ein. Wir fangen dabei bei null an und haben am Ende ein funktionierendes Programm für maschinelles Sehen, das uns später als Ausgangspunkt dient, um die höheren Weihen zu empfangen: neuronale Netze in Teil II und Deep Learning in Teil III.

      Am besten ist es, das Tutorial gleich bei der Lektüre durchzuarbeiten, also den angegebenen Quellcode auszuführen und die Übungsaufgaben zu lösen, die am Ende der meisten Kapitel stehen. Es ist jedoch auch möglich, erst alles zu lesen, um sich einen Überblick zu verschaffen, und erst dann zur Tastatur zu greifen. Beide Vorgehensweisen sind geeignet, wobei Programmierer jedoch gewöhnlich die erste bevorzugen.

      Es dauert auch nicht lange, Ihr System so einzurichten, dass Sie den angegebenen Code ausführen können. ML erfordert zwar gewöhnlich eine hohe Rechenleistung, doch der Code in diesem Buch läuft auch auf einem normalen Laptop sehr gut. Sie müssen lediglich etwas Software installieren.

      Vor allem benötigen Sie Python, die am häufigsten für ML verwendete Sprache, in der auch die Beispiele in diesem Buch geschrieben sind. Machen Sie sich keine Sorgen, falls Sie noch nie in Python programmiert haben – Sie werden überrascht sein, wie gut lesbar diese Sprache ist. Wenn Sie Schwierigkeiten haben sollten, den Python-Code zu verstehen, lesen Sie Anhang 1, »Grundlagen von Python«. Darin erfahren Sie alles, was Sie für dieses Buch benötigen.

       Hinweis für erfahrene Pythonistas

      Wenn Sie sich mit Python auskennen, werden Sie bemerken, dass der Code in diesem Buch teilweise von den üblichen Konventionen abweicht. Beispielsweise habe ich bewusst auf einige sprachspezifische Konstruktionen wie die Listennotation verzichtet, die den Code für Einsteiger unnötig kompliziert machen. In demselben Bemühen, mich möglichst verständlich auszudrücken, verwende ich auch manche Fachbegriffe etwas lockerer, z. B. »Funktion« statt »Methode«. Für meine Verstöße gegen die Python-Etikette möchte ich mich bereits im Voraus entschuldigen.

      Fangen wir an! Als Erstes müssen Sie prüfen, ob Python bei Ihnen installiert ist. Führen Sie folgenden Befehl aus:

      python3 --version

      Wenn Sie Python 3 nicht haben, dann beschaffen Sie es sich, bevor Sie weiterlesen. In Anhang 1, »Grundlagen von Python«, erfahren Sie, wie Sie die Sprache installieren.

      Achtung: Auf manchen Systemen können Sie Python 3 auch mit python ohne die angehängte 3 ausführen, während dieser Befehl auf anderen Systemen stattdessen Python 2 ausführt. Um Verwirrung und mysteriöse Fehler aufgrund der Verwendung einer älteren Python-Version zu verhindern, sollten Sie immer den Befehl python3 verwenden.

      Wenn Sie die Sprache installiert haben, müssen wir noch ein Wort über die Bibliotheken verlieren. Für den Anfang benötigen Sie drei davon. An erster Stelle steht dabei NumPy, eine Bibliothek für wissenschaftliche Berechnungen. Außerdem verwenden wir zwei Bibliotheken zur Ausgabe von Diagrammen. Matplotlib ist der De-facto-Standard für Diagramme in Python. Seaborn baut auf Matplotlib auf und dient vor allem dazu, Diagrammen ein angenehmes Erscheinungsbild zu verleihen.

      Um diese Bibliotheken zu installieren, können Sie entweder pip verwenden, den offiziellen Paketmanager von Python, oder Conda, einen anspruchsvollen Umgebungsmanager, der insbesondere im Umfeld von ML sehr beliebt ist. Im Abschnitt »Pakete mit Conda installieren« auf Seite 340 werden die Unterschiede zwischen pip und Conda genauer beleuchtet. Im Zweifelsfall nehmen Sie pip.

      Zur Installation der Bibliotheken mit pip führen Sie die folgenden Befehle aus:

      pip3 install numpy==1.15.2

      pip3 install matplotlib==3.1.2

      pip3 install seaborn==0.9.0

      Das war es auch schon! Wenn Sie lieber Conda verwenden, richten Sie sich nach den Anweisungen in der Datei readme.txt, die Sie im Wurzelverzeichnis des Quellcodes finden.

      Schließlich brauchen Sie auch noch eine Programmierumgebung. In vielen ML-Tutorials wird Jupyter Notebook verwendet, womit Sie den Code im Browser bearbeiten und ausführen können. Für die Beispiele in diesem Buch ist es jedoch nicht unbedingt erforderlich, Jupyter Notebook einzusetzen. Als Entwickler sind Sie ja schon damit vertraut, Programme zu schreiben und auszuführen. Nutzen Sie also einfach den Texteditor oder die IDE Ihrer Wahl. Für den Fall, dass Sie Jupyter bereits kennen und verwenden, finden Sie im Verzeichnis notebooks die Jupyter-Version des Codes zu diesem Buch.

      Gehen wir die Liste noch einmal durch: Sie haben Python, drei wichtige Bibliotheken und Ihren bevorzugten Editor. Mehr brauchen Sie nicht, um anfangen zu können.

      Als Nächstes wollen wir damit beginnen, ein Programm zu schreiben, das lernen kann.

       Gewöhnen Sie sich an ML

      Als Entwickler sind Sie es gewohnt, rasch zu lernen. Bei ML jedoch wagen Sie sich auf völlig neues Terrain vor. Ich will es nicht beschönigen: Die nächsten drei oder vier Kapitel sind schwer. Bei der Lektüre werden Sie sich womöglich wie ein blutiger Anfänger vorkommen, was zwar durchaus spannend, aber manchmal auch sehr frustrierend sein kann.

      Ich kenne dieses Gefühl, aber ich kann Ihnen versichern, dass es sich lohnt, diese Hürden zu überwinden. Ich kann mich noch gut daran erinnern, wie faszinierend es war, als ich zum ersten Mal ein Machine-Learning-Programm ausführte, das eine korrekte Vorhersage machte. Halten Sie durch, und schon bald werden auch Sie dieses Glücksgefühl erleben!

      Ihr erstes ML-Programm

      Willkommen zum ersten Schritt auf dem Weg des Machine Learning. In diesem Kapitel schreiben Sie ein winziges Programm für überwachtes Lernen. Es ist noch weit weg von unserem Ziel: der Bilderkennung. Ehrlich gesagt, hat es überhaupt nichts mit maschinellem Sehen zu tun. Allerdings werden wir den Code in den nächsten Kapiteln immer mehr verfeinern, bis er dazu geeignet ist, Bilder zu erkennen.

      Die erste Version unseres Programms basiert auf der Technik der linearen Regression. Wie Sie im ersten Kapitel erfahren haben, geht es beim überwachten Lernen darum, Daten mit einer Funktion anzunähern. Bei der linearen Regression wird dafür die einfachste Funktion herangezogen, die überhaupt möglich ist: eine gerade Linie.

      Trotz dieser Einfachheit sollten Sie die vor Ihnen liegende Aufgabe nicht unterschätzen. Um Ihnen eine Einführung in lineare Regression zu geben, werden in diesem Kapitel viele verschiedene Begriffe und Prinzipien erwähnt – so viele, dass Sie sich schon überfordert fühlen mögen. Auch wenn wir anscheinend nur ein kurzes Programm schreiben, legen wir doch in Wirklichkeit die Grundlage für tiefere Kenntnisse in ML. Was Sie hier lernen, werden Sie im ganzen Rest des Buchs und darüber hinaus brauchen können.

      Fangen