Przez całe moje świadome życie byłem energetykiem (nie, nie mówię tutaj o napoju o wątpliwych właściwościach).
Nigdy szczególnie nie interesowałem się światem technologii informacyjnej, a nawet macierzy pewnie nie potrafiłbym pomnożyć na kartce papieru. Nigdy też nie było mi to potrzebne; abyście trochę zrozumieli specyfikę mojej pracy, mogę podzielić się wspaniałą historią. Pewnego dnia poprosiłem moich kolegów o wykonanie pracy w Excelu – minęła połowa dnia roboczego, podchodzę do nich, a oni siedzą i sumują dane na kalkulatorze, tak, na zwykłym czarnym kalkulatorze z przyciskami. I o jakich sieciach neuronowych można potem mówić?.. Dlatego nigdy nie miałem specjalnych predyspozycji do zanurzenia się w świat IT. Ale, jak to mówią, „dobrze tam, gdzie nas nie ma”, moi znajomi nieustannie nudzą mi o rzeczywistości rozszerzonej, sieciach neuronowych, językach programowania (głównie o Pythonie).
Na słowach wydawało się to dość proste, więc postanowiłem, czemu nie nauczyć się tego magicznego rzemiosła, aby zastosować to w swojej dziedzinie.
W tym artykule pominę moje próby opanowania podstaw Pythona i podzielę się z Wami swoimi wrażeniami z darmowego kursu TensorFlow na Udacity.

Wprowadzenie
Na początek warto zaznaczyć, że po 11 latach w energetyce, kiedy znasz i umiesz wszystko, a nawet nieco więcej (w swoim zakresie obowiązków), nauka całkowicie nowych rzeczy – z jednej strony budzi ogromny entuzjazm, ale z drugiej – staje się fizycznym bólem „zębatek w głowie”.
Do tej pory nie do końca rozumiem wszystkie podstawowe koncepcje programowania i uczenia maszynowego, więc nie należy mnie surowo oceniać. Mam nadzieję, że mój artykuł będzie interesujący i pomocny dla takich jak ja – osób dalekich od tworzenia oprogramowania.
Zanim przejdę do przeglądu kursu, powiem, że do jego nauki wymagana będzie przynajmniej podstawowa znajomość Pythona. Można przeczytać kilka książek dla początkujących (ja także zacząłem kurs na Stepic, ale jeszcze go do końca nie ukończyłem).
W samym kursie TensorFlow nie będzie skomplikowanych konstrukcji, ale zrozumienie, dlaczego importuje się biblioteki, jak definiuje funkcję i dlaczego coś się do niej podstawia, będzie konieczne.
Dlaczego TensorFlow i Udacity?
Głównym celem mojej nauki było pragnienie rozpoznawania zdjęć elementów instalacji elektrycznych za pomocą sieci neuronowych.
Wybrałem TensorFlow, ponieważ słyszałem o nim od swoich przyjaciół. Jak się zorientowałem, ten kurs jest dość popularny.
Próbowałem zacząć naukę od oficjalnego .
I natychmiast napotkałem dwa problemy.
- Materiałów edukacyjnych jest dużo, a one są w nieładzie. Ułożenie chociażby w miarę spójnej wizji rozwiązania problemu rozpoznawania obrazów było dla mnie bardzo trudne.
- Większość potrzebnych mi artykułów nie jest przetłumaczona na rosyjski. Tak się złożyło, że w dzieciństwie uczyłem się niemieckiego i teraz, jak wielu radzieckich dzieci, nie znam ani niemieckiego, ani angielskiego. Oczywiście w czasie świadomego życia starałem się opanować angielski, ale wyszło mi to mniej więcej jak na zdjęciu.

Po dalszym przeszukaniu oficjalnej strony znalazłem rekomendację, aby przejść .
Jak zrozumiałem, kurs na Courserze był płatny, a kurs można było przejść 'bezpłatnie, czyli za darmo'.
Treść kursu
Kurs składa się z 9 lekcji.
Pierwsza sekcja to wprowadzenie, gdzie opowiedziano, do czego jest potrzebny.
Lekcja nr 2 okazała się moją ulubioną. Była na tyle prosta, że można ją było zrozumieć, a także pokazywała cuda nauki. Krótko mówiąc, w tej lekcji, oprócz podstawowych informacji o sieciach neuronowych, twórcy pokazują, jak przy użyciu jednowarstwowej sieci neuronowej rozwiązać problem konwersji temperatury z Fahrenheitów na Celsjusze.
To naprawdę bardzo obrazowy przykład. Wciąż siedzę i myślę, jak wymyślić i rozwiązać podobne zadanie, ale tylko dla elektryki.
Niestety, dalej utknąłem, ponieważ uczenie się niezrozumiałych rzeczy w nieznanym języku jest dość trudne. Uratuje mnie to, że znalazłem na Habra .
Tłumaczenie zostało wykonane starannie, notatniki Colab również zostały przetłumaczone, więc dalej zaglądałem zarówno do oryginału, jak i do tłumaczenia.
Lekcja nr 3 to w zasadzie przerobienie materiałów z oficjalnego tutorialu TensorFlow. W tej lekcji uczymy się klasyfikować obrazy z odzieżą za pomocą wielowarstwowej sieci neuronowej (zbiór danych Fashion MNIST).
Lekcje od nr 4 do nr 7 są również przeróbką tutorialu. Jednak dzięki ich starannej kompozycji nie ma potrzeby samodzielnie rozumieć kolejności nauki. W tych lekcjach w skrócie opowiedziano nam o superdokładnych sieciach neuronowych, o tym, jak zwiększyć dokładność uczenia i zachować model. Przy okazji rozwiązujemy zadanie klasyfikacji kotów i psów na obrazku.
Lekcja nr 8 jest całkowicie osobnym kursem, prowadzi inny wykładowca i sam kurs jest dość obszerny. Lekcja dotyczy szeregów czasowych. Ponieważ mnie to obecnie nie interesuje, przejrzałem go pobieżnie.
Kurs kończy lekcja nr 9, która jest zaproszeniem do odbycia bezpłatnego kursu dotyczącego TensorFlow lite.
Co się podobało, a co nie
Zacznę od plusów:
- Kurs — darmowy
- Kurs — o TensorFlow 2. Niektóre podręczniki, które widziałem, oraz niektóre kursy w Internecie były o TensorFlow 1. Nie wiem, jak duża jest różnica, ale miło jest uczyć się aktualnej wersji.
- Wykładowcy w filmach nie denerwują (choć w rosyjskiej wersji czytają nieco mniej energicznie niż w oryginale)
- Kurs nie zajmuje dużo czasu
- Kurs nie wprowadza w uczucie przygnębienia i beznadziejności. Zadania w kursie są proste, a zawsze istnieje wskazówka w postaci Colab z poprawnym rozwiązaniem, jeśli coś jest niejasne (a niejasna była dla mnie dobra połowa zadań)
- Nie trzeba nic instalować, wszystkie laboratoria kursowe można zrealizować w przeglądarce
Teraz minusy:
- Nie ma praktycznie żadnych materiałów kontrolnych. Ani testów, ani zadań, nic, co mogłoby w jakiś sposób sprawdzić przyswojenie kursu
- Nie działały mi wszystkie notatniki tak, jak powinny. Wydaje mi się, że w trzeciej lekcji oryginalnego kursu po angielsku Colab zgłaszał błąd i nie wiedziałem, co z tym zrobić
- Łatwo oglądać tylko na komputerze. Może nie do końca się zorientowałem, ale nie znalazłem aplikacji Udacity na mój smartfon. A wersja mobilna strony nie jest responsywna, to znaczy prawie cała powierzchnia ekranu zajmowana jest przez menu nawigacyjne, jednak aby zobaczyć główną treść, trzeba przewijać w prawo poza obszar widoku. Ponadto wideo nie można obejrzeć na telefonie. Na ekranie o przekątnej 6 cali z niewielkim haczykiem nic szczególnego nie widać.
- Niektóre rzeczy w kursie są omawiane kilka razy, ale naprawdę potrzebne informacje na temat samych sieci konwolucyjnych nie są w kursie poruszane. Tak naprawdę nie zrozumiałem globalnego celu niektórych ćwiczeń (np. po co jest Max Pooling).
Podsumowanie
Z pewnością już się domyślasz, że cud się nie zdarzył. Po ukończeniu tego krótkiego kursu, niemożliwe jest naprawdę zrozumieć, jak działają sieci neuronowe.
Oczywiście, po tym nie mogłem samodzielnie rozwiązać mojego zadania z klasyfikacją zdjęć wyłączników i przycisków w urządzeniach rozdzielczych.
Ale ogólnie kurs jest przydatny. Pokazuje, jakie rzeczy można zrobić z pomocą TensorFlow oraz w jakim kierunku iść dalej.
Myślę, że najpierw muszę nauczyć się podstaw Pythona i przeczytać książki w języku polskim na temat działania sieci neuronowych, a dopiero potem zabrać się za TensorFlow.
Na zakończenie chciałbym podziękować moim przyjaciołom za to, że zmotywowali mnie do napisania pierwszego artykułu na 'Habr' i pomogli w jego zredagowaniu.
P.S. Będę wdzięczny za Wasze komentarze oraz wszelką konstruktywną krytykę.
Źródło: habr.com
