Mein ganzes bewusstes Leben war ich Ingenieur (nein, ich spreche nicht von einem Energydrink mit fragwürdigen Eigenschaften).
Ich hatte nie besonders Interesse an der Welt der Informationstechnologie, und selbst Matrizen könnte ich wahrscheinlich nicht auf einem Blatt Papier multiplizieren. Das war für mich auch nie nötig. Um Ihnen ein wenig über die Besonderheiten meiner Arbeit zu erzählen, kann ich eine wunderbare Geschichte teilen. Ich bat einmal meine Kollegen, eine Arbeit in Excel zu erledigen – sie saßen einen halben Arbeitstag lang und summierten die Daten mit einem Taschenrechner, ja, genau, mit einem ganz normalen schwarzen Taschenrechner mit Tasten. Und nach so etwas kann man doch nicht über neuronale Netzwerke reden, oder?.. Daher hatte ich nie besondere Voraussetzungen, um in die IT-Welt einzutauchen. Aber, wie man sagt, „wo wir nicht sind, ist es besser“, meine Freunde haben mir alles über Augmented Reality, neuronale Netzwerke und Programmiersprachen (vor allem über Python) ins Ohr geflüstert.
Es sah auf den ersten Blick ziemlich einfach aus, und ich dachte mir, warum nicht dieses magische Handwerk erlernen, um es in meinem Bereich anzuwenden.
In diesem Artikel lasse ich meine Versuche, die Grundlagen von Python zu meistern, außen vor und teile meine Eindrücke von dem kostenlosen TensorFlow-Kurs von Udacity.

Einführung
Zunächst sollte erwähnt werden, dass nach 11 Jahren in der Energiewirtschaft, wo man alles weiß und machen kann, und sogar ein wenig mehr (gemäß seinen Pflichten), das Lernen völlig neuer Dinge – einerseits einen enormen Enthusiasmus auslöst, andererseits aber auch zu körperlichen Schmerzen in den 'Zahnrad' des Gehirns führt.
Ich bin mir immer noch nicht über alle grundlegenden Konzepte der Programmierung und des maschinellen Lernens im Klaren, daher sollte man mich nicht zu streng beurteilen. Ich hoffe, mein Artikel ist für ähnliche Menschen wie mich interessant und nützlich – diejenigen, die von der Softwareentwicklung weit entfernt sind.
Bevor ich zum Kursüberblick übergehe, möchte ich sagen, dass für das Studium zumindest Grundkenntnisse in Python erforderlich sind. Man kann ein paar Bücher für Einsteiger lesen (ich habe auch begonnen, einen Kurs auf Stepic zu besuchen, aber habe ihn noch nicht vollständig abgeschlossen).
Im TensorFlow-Kurs wird es keine komplizierten Konstruktionen geben, aber es wird notwendig sein, zu verstehen, warum Bibliotheken importiert werden, wie eine Funktion definiert wird und warum etwas in sie eingesetzt wird.
Warum TensorFlow und Udacity?
Mein Hauptziel beim Lernen ist es, Fotos von Komponenten von Elektroinstallationen mithilfe von neuronalen Netzen zu erkennen.
Ich habe mich für TensorFlow entschieden, weil ich von Freunden davon gehört habe. Und soweit ich verstanden habe, ist dieser Kurs ziemlich beliebt.
Ich habe versucht, mit dem offiziellen .
zu beginnen, und bin sofort auf zwei Probleme gestoßen.
- Es gibt viele Lehrmaterialien, aber sie sind chaotisch. Es war sehr schwierig für mich, auch nur ein halbwegs kohärentes Bild zur Lösung des Problems der Bilderkennung zu erstellen.
- Die meisten Artikel, die ich benötige, sind nicht ins Russische übersetzt. So kam es, dass ich in meiner Kindheit Deutsch gelernt habe und jetzt, wie viele sowjetische Kinder, weder Deutsch noch Englisch beherrsche. Natürlich habe ich versucht, im Laufe meines Lebens Englisch zu lernen, aber es ist ähnlich gelaufen wie auf dem Bild.

Nachdem ich auf der offiziellen Website weitergeforscht habe, habe ich die Empfehlung gefunden, einen der beiden Online-Kurse zu absolvieren. .
Wie ich verstanden habe, war der Kurs auf Coursera kostenpflichtig, während der Kurs kostenlos, also umsonst, absolviert werden konnte.
Inhalt des Kurses
Der Kurs besteht aus 9 Lektionen.
Die erste Sektion ist eine Einführung, in der erklärt wird, wozu dieser Kurs überhaupt dient.
Die Lektion Nr. 2 war meine liebste. Sie war einfach genug, um sie zu verstehen, und zeigte die Wunder der Wissenschaft. Kurz gesagt, in dieser Lektion, neben den grundlegenden Informationen über neuronale Netze, demonstrieren die Autoren, wie man mit Hilfe eines einstufigen neuronalen Netzes das Problem der Umrechnung von Fahrenheit in Celsius löst.
Das ist wirklich ein sehr anschauliches Beispiel. Ich denke immer noch darüber nach, wie ich eine ähnliche Aufgabe für Elektrizität formulieren und lösen kann.
Leider bin ich dann ins Stocken geraten, denn es ist ganz schön schwierig, unbekannte Dinge in einer fremden Sprache zu lernen. Mich hat gerettet, dass ich auf Habr .
gefunden habe. Die Übersetzung wurde gut gemacht, die Colab-Notebooks wurden ebenfalls übersetzt, daher habe ich danach sowohl ins Original als auch in die Übersetzung geschaut.
Lektion Nr. 3 ist im Grunde eine Übertragung der offiziellen TensorFlow-Tutorial-Materialien. In dieser Lektion lernen wir mithilfe eines mehrschichtigen neuronalen Netzwerks, Bilder von Kleidung zu klassifizieren (Datensatz Fashion MNIST).
Die Lektionen von Nr. 4 bis Nr. 7 sind ebenfalls Umsetzungen des Tutorials. Da sie jedoch gut strukturiert sind, ist es nicht notwendig, die Reihenfolge selbst zu verstehen. In diesen Lektionen erfahren wir kurz etwas über hochpräzise neuronale Netzwerke, wie man die Lernqualität verbessern und das Modell speichern kann. Gleichzeitig werden wir das Problem der Klassifizierung von Katzen und Hunden auf Bildern angehen.
Lektion Nr. 8 stellt einen eigenständigen Kurs dar, mit einem anderen Dozenten, und der Kurs ist ziemlich umfangreich. Er befasst sich mit zeitlichen Reihen. Da mich das momentan nicht interessiert, habe ich ihn nur überflogen.
Abgeschlossen wird alles mit Lektion Nr. 9, die zur Teilnahme an einem kostenlosen Kurs zu TensorFlow Lite einlädt.
Was mir gefallen hat und was nicht
Ich beginne mit den positiven Aspekten:
- Der Kurs ist kostenlos.
- Der Kurs behandelt TensorFlow 2. Einige Tutorials und Online-Kurse, die ich gesehen habe, beziehen sich jedoch auf TensorFlow 1. Ich bin mir nicht sicher, wie groß der Unterschied ist, aber es ist schön, die aktuelle Version zu lernen.
- Die Dozenten in den Videos sind nicht störend (obwohl die russische Version nicht so dynamisch vorgelesen wird wie das Original).
- Der Kurs nimmt nicht viel Zeit in Anspruch.
- Der Kurs vermittelt kein Gefühl von Trostlosigkeit und Verzweiflung. Die Aufgaben sind einfach und es gibt stets einen Colab-Hinweis mit der richtigen Lösung, falls etwas unklar ist (und etwa die Hälfte der Aufgaben war für mich nicht ganz offensichtlich).
- Es ist keine Installation erforderlich; alle Laborarbeiten des Kurses können im Browser durchgeführt werden.
Jetzt zu den Nachteilen:
- Es gibt praktisch keine Kontrollmaterialien. Weder Tests noch Aufgaben, nichts, um das Verständnis des Kurses zu überprüfen.
- Nicht alle Notebooks haben bei mir wie gewünscht funktioniert. Ich glaube, im dritten Lehrabschnitt des Originalkurses auf Englisch gab es einen Fehler in Colab, und ich wusste nicht, was ich damit machen sollte.
- Es ist bequem, nur am Computer zu schauen. Vielleicht habe ich nicht ganz verstanden, aber ich habe die Udacity-App nicht auf meinem Smartphone gefunden. Die mobile Version der Website ist nicht anpassungsfähig, das heißt, das Navigationsmenü nimmt fast den gesamten Bildschirm ein, und um den Hauptinhalt zu sehen, muss man nach rechts scrollen. Außerdem können die Videos nicht auf dem Telefon angesehen werden. Auf einem Bildschirm mit etwas über 6 Zoll kann man nichts richtig erkennen.
- Einige Dinge im Kurs werden mehrfach erklärt, aber die wirklich wichtigen Aspekte zu den Convolutional Networks werden nicht ausreichend behandelt. Ich habe nach wie vor die globale Zielsetzung einiger Übungen nicht verstanden (zum Beispiel, wofür Max Pooling gedacht ist).
Zusammenfassung
Sicher haben Sie bereits erraten, dass kein Wunder geschehen ist. Nach dem Abschluss dieses kurzen Kurses ist es unmöglich, wirklich zu verstehen, wie neuronale Netze funktionieren.
Natürlich konnte ich nach diesem Kurs mein Problem mit der Klassifizierung von Bildern von Schaltern und Knöpfen in Verteilungseinheiten nicht selbst lösen.
Aber insgesamt ist der Kurs nützlich. Er zeigt, welche Dinge man mit TensorFlow umsetzen kann und in welche Richtung man sich weiterentwickeln sollte.
Ich denke, ich sollte mir zunächst die Grundlagen von Python aneignen und Bücher auf Russisch lesen, die erklären, wie neuronale Netze funktionieren, und danach kann ich mich mit TensorFlow beschäftigen.
Ich möchte am Ende meinen Freunden danken, die mich dazu ermutigt haben, den ersten Artikel auf „Habr“ zu schreiben und mir bei der Gestaltung geholfen haben.
P.S. Ich freue mich über Ihre Kommentare und jede konstruktive Kritik.
Quelle: habr.com
