Machine Learning – temat na czasie. Nie wszyscy wiedzą jednak, jak można je wykorzystać. Dowiesz się tego w naszym cyklu.

Zaczynamy cykl postów dotyczących zagadnień związanych z tematyką Machine Learning. Sam temat jest dość popularny. Brakuje jednak materiałów, które w prosty sposób wyjaśnią, czym jest owo uczenie i w jaki sposób można je wykorzystać.

W kolejnych częściach cyklu dowiesz się:

  • Czym jest uczenie maszynowe i gdzie można je wykorzystać
  • Jak walidować swoje rozwiązanie
  • Jakie narzędzia stosuje się podczas pracy z uczeniem maszynowym

Całość będzie przedstawiona w przystępny sposób. Kolejne tematy uzależniam od zainteresowania czytelników. Jeżeli pojawi się chęć poznania bardziej zaawansowanych tematów, również będę mógł je poruszyć w dalszych częściach cyklu.

Praca przy uczeniu maszynowym przypomina bardzo pracę naukowca przeprowadzającego eksperymenty. Na porządku dziennym jest szukanie nowych czynników czy przeprowadzanie badań w różnych warunkach.

Jednak zanim zaczniemy karierę naukowca, musimy przygotować laboratorium, w którym będziemy przeprowadzać eksperymenty. Może nie jest to najbardziej interesująca część tej pracy, jednak trzeba od czegoś zacząć.

Wybór technologii

Pracę nad uczeniem maszynowym można rozpocząć w każdym języku, w którym dostępne są następujące moduły:

  • Moduł do tworzenia wykresów
  • Moduł z gotowymi algorytmami uczącymi (trenującymi)
  • Moduł do wczytywania i przetwarzania danych (połączenie z bazami danych, pliki csv)

W tym poradniku będziemy uczyć się, używając języka Python i jego odpowiednich bibliotek. Dlaczego wybrałem ten język? Oto powody:

  • Niski próg wejścia w semantykę języka
  • Możliwość uruchomienia na każdym systemie operacyjnym
  • Jupyter Notebook używa Pythona jako język (o tym za chwilę)
  • Spora popularność w kręgach naukowych

Instalacja środowiska

Najprostszą metodą jest zainstalowanie pakietu Anaconda.

Otrzymujemy dzięki temu całe środowisko, w którym można przeprowadzać eksperymenty.

Jeżeli masz większe doświadczenie z Pythonem, możesz zainstalować wymagane biblioteki za pomocą pip, zamiast instalować Anacondę (poniższe komendy mogą być pomocne np. w przypadku stawiania serwera, gdzie nie możemy zainstalować Anacondy):

Walidacja instalacji

Aby sprawdzić poprawność całej instalacji, należy odpalić skrypt znajdujący się na tej stronie.

Odpalanie nieznanych skryptów z nieznanych stron nie jest najlepszą praktyką, jeżeli chodzi o bezpieczeństwo. Jednak kto nie ryzykuje, ten szampana nie pije. XD

Skrypty w Pythonie uruchamiamy z wiersza poleceń, podając nazwę pliku:

Wynikiem odpalenia skryptu powinna być seria różnych statystyk oraz takie, lub podobne okienko:

pic1

Powyższy skrypt to program, który uczy się rozpoznawania cyfr z obrazków. Chwilowo nie będziemy go analizować, gdyż jest zbyt skomplikowany jak na początek.

Jupyter notebook

Przyda się jeszcze jedno narzędzie – Jupyter notebook. Jest on automatycznie instalowany wraz z pakietem Anaconda. Dla bardziej zaznajomionych z Pythonem zamieszczam sposób instalacji przez pip

Narzędzie to, uruchamiane w przeglądarce za pomocą lokalnego serwera, jest notatnikiem, w którym można umieścić kilka typów komórek:

  • Uruchamialny kod Pythona (obsługuje też inne języki)
  • Dokumentację w postaci Markdown
  • Czysty tekst

Dlaczego Jupyter jest taki pomocny?

  • Podczas pracy w zespole inni programiści mogą korzystać z naszych wyników i wykresów (właśnie obsługa wykresów sprawia, że to narzędzie jest naprawdę fajne)
  • Można podłączyć różne źródła danych
  • Szybko zbadać dane – wykonać zapytanie, wyfiltrować, obliczyć statystyki (mediana, średnia i inne)
  • Łatwo go przechować w systemie kontroli wersji – notatniki są plikami json

Można go wypróbować tu

Zadanie dla chętnych

Po instalacji Jupytera, utwórz nowy notatnik. Dodaj komórkę z kodem i wrzuć tam zawartość plot_rbm_logistic_classification.py, następnie uruchom kod. Na końcu powinno się pojawić okienko. Zadanie polega na tym, żeby wykres nie pojawiał się w osobnym okienku, tylko w przeglądarce.

Podpowiedź: Można dodać jeszcze jedną komórkę z kodem i rozbić go na mniejsze części. Dzięki temu w jednej komórce możemy mieć cały kod uczący, w następnej tylko do rysowania wykresu. Nie stracimy wtedy czasu na ponowne uruchamianie uczenia.

Najnudniejsza część za nami. 🙂 W następnej części zajmiemy się podstawami teoretycznymi oraz pierwszym eksperymentem. W razie problemów – dajcie znać w komentarzach.

Software Developer and Team Leader at Aspire Systems Poland, constantly challenging his status quo. He wants to change the world and values knowledge gained in practice more than certifications and academic titles.