DATAWORKSHOP
Uczenie maszynowe
od czego zacząć
Moja historia podróży po świecie ML
W ostatnim roku dość często podróżuję, jestem zapraszany na różne konferencje, wydarzenia, na których staram się dzielić swoim doświadczeniem. Czasem bywa to bardzo męczące, bo w ciągu jednego tygodnia odwiedzasz 2, 3, a czasem więcej miast. Jak ktoś to robił, to wie, jak to jest skomplikowane, ale moja motywacja to przygotowanie ludzi do zmian, które nas czekają. Wiem, że nie tak wiele osób jest w stanie zastanawiać się nad tym, dokąd ten świat dąży, czego mogą się spodziewać w najbliższym czasie, dlatego jeżdżę i opowiadam, jak ja to widzę. Zwykle po takiej prezentacji nasuwają się bardzo logiczne pytanie: no dobra, ale jak zacząć, od czego zacząć?
To jest bardzo dobre, a z drugiej strony bardzo trudne pytanie. Próbowałem odpowiadać na to pytanie z różnych punktów widzenia, ale widziałem, że ta moja odpowiedź nie była wystarczająco dobra dla tej konkretnej osoby, a po drugie, że nie mam tak dużo czasu, żeby spędzić całą godzinę z każdym, kto o to pyta. Tak pojawił się pomysł, żeby nagrać ten webinar i podzielić się moim doświadczeniem.
Uczenie maszynowe od czego zacząć
Zacznę być może w sposób trochę nieoczekiwany dla osób, które nigdy wcześniej tego nie robiły. Zacznę o czymś innym niż ML wprost, ale z drugiej strony mam nadzieję, że zrozumiesz, dlaczego to robię.
Pierwsze pytanie, które należy zadać samemu sobie, to dlaczego chcę zająć się tym tematem. Przygotowałam kilka inspiracji, co może być dla ciebie interesujące albo co może cię skłonić, żeby się rozwijać w tym kierunku:
Chcę więcej zarabiać.
No i faktycznie, jeżeli poczytamy najnowsze informacje, to możemy się dowiedzieć, że są osoby, które potrafią zarabiać milion dolarów rocznie. Jest pokusa, żeby się przebranżowić. Oczywiście chodzi o Stany Zjednoczone, w Polsce zarabianie takich pieniędzy jest pewnie trudniejsze, ale ewidentnie czuć, że jest tu potencjał – zwłaszcza jeżeli masz pewne umiejętności, wiedzę techniczną, potrafisz budować modele, ale również potrafisz to umiejętnie sprzedać biznesowo albo połączyć kropki pomiędzy tymi światami. Wtedy Twoja pensja może być większa niż zwykłego programisty.

Z drugiej strony chciałem opowiedzieć historię z moich studiów. Miałem na studiach kolegę, który bardzo się męczył na kierunku informatycznym i kiedyś zapytałem go, czemu zaczął studiować na tym kierunku, bo dla mnie niezrozumiałe było, jak można się męczyć z komputerami, wydawał mi się to być najlepszy sposób spędzania życia. I on odpowiedział, że przyszedł na ten kierunek, bo mama mu kazała i po nim można zarabiać więcej pieniędzy. Dobrze, że jednak na drugim roku podjął decyzję o zmianie kierunku, która okazała się później bardzo trafna.

Dlatego spróbuj się zastanowić, czy też nie jesteś w podobnej sytuacji, jeżeli ML nie jest dla Ciebie, to nie pchaj się w niego na siłę. Z drugiej strony ML ma bardzo wiele różnych obszarów – to nie są wyłącznie techniczne obszary, są również jak najbardziej humanistyczne. Mało tego, podejrzewam, że w najbliższej przyszłości te obszary humanistyczne będą mieć znaczny wpływ na naszą przyszłość, bo techniczne będą już opracowane.
Chcę być sławny dzięki wynalazkowi.
To może wydawać się trochę dziwne, ale jak rozmawiam z ludźmi, to często oni nie zdają sobie z tego sprawy, że jest to dla nich bardzo ważne. Jeżeli i ty też masz taką potrzebę, to oznacza, że w powinieneś trochę inaczej myśleć i trochę inaczej się rozwijać, żeby to osiągnąć. To jest zupełnie inne wyzwanie niż poprzednie.
Chcę pomóc ludzkości
Ten argument należy prawdopodobnie do mniej licznej grupy i mam nadzieję, że postaram się załapać do tej grupy i próbuję to robić wszystkimi siłami. Żeby rozwijać się w tym kierunku, to znów trzeba inaczej patrzeć na sytuację, inne obszary, inne umiejętności trzeba rozwijać.
Chcę zbudować karierę w środowisku akademickim.
W tym przypadku znów trzeba inaczej podejść do sprawy i inaczej się rozwijać.

Dlatego zastanów się na spokojnie, spędź godzinę czy kilka na przemyśleniach. Bardzo fajnie takie rzeczy przemyśleć idąc sobie na spacer, zostawiając komórkę w domu, idealnie, gdyby to były góry czy las, tam gdzie jest cisza, gdzie możesz zostać sam ze sobą chociażby na godzinkę. Bardzo paradoksalne jest to, jak często nie potrafimy zostać na godzinkę sami, żeby porozmawiać sami ze sobą albo zastanowić się dlaczego chciałbym coś zrobić.

Gdy już wiesz, co Tobą kieruje. Zadaj sobie pytanie:

Co chcesz osiągnąć?

To „co" podzieliłem na dwa wymiary.
Pierwszy wymiar:
  • założyć własny start-up
Być może będziesz współzałożycielem, partnerem. Prawdopodobnie nie zarobisz na tym dużych pieniędzy, bo start-upy najczęściej upadają, więc są inne lepsze ścieżki, by zarobić więcej pieniędzy. W start-upach często powstają wynalazki – to już jest dobry kierunek myślenia. Jeśli chodzi o pomaganie ludziom taki start-up może być korzystny.

  • praca na etat w korporacji
Możesz zarabiać duże pieniądze, ale statystycznie na wynalazek nie ma większych szans. Etat niekoniecznie daje możliwości pomagania ludziom.

  • pracować z najlepszymi DeepMind/Google Brain/FB AIR Research
Może też brzmi trochę dziwnie, ale takie firmy przyciągają „mózgi" i bardzo je doceniają. Ten punkt bardzo się łączy ze światem akademickim, bo te trzy instytucje bardzo doceniają osoby z doktoratem, głęboką wiedzą teoretyczną i próbują to łączyć z biznesem.
Drugi wymiar - jaką rolę będziesz wykonywać, gdy założysz start-up albo pójdziesz na etat:
Tych ról jest naprawdę wiele, a rynek jest bardzo niedojrzały i przez to każda firma trochę inaczej traktuje to, kim jest na przykład data engine albo machine learning engineer. Jeśli zapytasz w 5,10 różnych firmach, co oni myślą na ten temat, to z dużym prawdopodobieństwem usłyszysz różne odpowiedzi. Ale spróbuję to trochę poukładać. Niektóre z tych ról to:

  • data engineer
  • machine learning engineer
  • machine learning researcher
  • data science/ml manager
  • data scientist
  • PhD/professor
  • hobby
Skupmy się na kilku najbardziej popularnych.

Data engineer musi być bardzo dobry w backendzie, musi znać przynajmniej jeden z języków: Python, Java, C++, SQL, ale dobrze by znał co najmniej 2 z nich. Dość często frontendy i backendy są napisane w Pythonie, ale pewne kawałki kodu trzeba zoptymalizować w Javie czy C++. Dodatkowo z dużym prawdopodobieństwem będziesz potrzebować SQL-a, bo dane trzeba pobrać i wrzucić. Również potrzebna będzie znajomość takich narzędzi jak Hadoop, EML, Spark, Kafka, związanych z big data.

Jak pokazuje doświadczenie, przydałaby się znajomość frontendu – nie musisz być ekspertem, ale potrzebna bywa podstawowa znajomość, żeby czasem coś zmienić, dodać przycisk, szczególnie jeśli chodzi o JavaScript. Zacząłem pracować z JavaScriptem ponad 10 lat i to co się działo wtedy, a to co się dzieje teraz, to są zupełnie różne światy. Teraz ten JavaScript trochę wariuje, jeżeli chodzi o ilość bibliotek, którą musisz wciągnąć, żeby zrobić Hello World, a z drugiej strony podają pełne wyjaśnienia dlaczego akurat tak się dzieje i warto być z tym na bieżąco.

Data engineer jest odpowiedzialny za to, żeby zbudowany model dostarczyć na produkcję i żeby on był dostępny, skalowalny. Jest również odpowiedzialny za to, żeby reagować na pojawiające się błędy. Jeżeli chodzi o obszary, które warto znać, ale niekoniecznie trzeba być w nich ekspertem, to z pewnością jest to uczenie maszynowe. Prawdopodobnie przydałoby się mu, żeby kojarzył, co to jest ML, być może fajnie by było, żeby zbudował chociażby jeden czy dwa modele i wtedy ta wiedza będzie lepiej zintegrowana.

Zwykle data engineerami zostają ludzie, którzy programują i później przechodzą na ML, bo to jest większe wyzwanie niż robienie stron www. Gdy pracujesz 5-10 lat, to w pewnym momencie zaczyna Cię to nudzić, bo nic nowego się nie pojawia i wiesz, co trzeba robić. Ja starałem się wtedy na przykład słuchać jakąś książkę, by mój umysł był bardziej pochłonięty nową wiedzą, z ta żmudna praca działa się jakby automatycznie. I to jest dobry moment, by przejść do roli data engineera, bo jest bardziej ambitna.


Kolejną rolą, którą omówię jest ML engineer. Od tej osoby spodziewamy się, że będzie dość mocno ukierunkowana na to, w jaki sposób rozwiąże problem czy dostarczy rozwiązania. Również bardzo ważna jest komunikacja na odpowiednim poziomie. Komunikacja w ogóle jest bardzo trudnym aspektem dla osób technicznych i na tym osobiście wiele razy się potknąłem i później pracowałem nad tym, by nauczyć się lepiej wyjaśniać różne tematy. Warto zainteresować się storytellingiem. Komunikacja to sprawa kluczowa, bo może się okazać, że zbudujesz bardzo fajny model, bardzo fajnie będzie to wyglądało na liczbach i będziesz w stanie to zinterpretować, ale nikt poza tobą nie będzie w stanie tego odczytać, a ostateczna decyzja jest podejmowana przez ludzi z biznesu. Jeżeli nie jesteś im w stanie wyjaśnić, to już przegrałeś na starcie. Druga rzecz to uczenie maszynowe, przy czym tutaj nie chodzi o to, że musisz tworzyć własne algorytmy – Twoim zadaniem jako inżyniera jest wziąć wiedzę, który jest dostępna, umieć ją w odpowiedni sposób zastosować, połączyć to wszystko, żeby działało i mniej więcej tyle. Musisz wiedzieć, jakie są modele, w jaki sposób można je zwalidować, sprawdzić, czy działają poprawnie. Jeżeli chodzi o stack techniczny to Python albo R, to są takie dwa wiodące języki. Ja skupiam się na Pythonie, bo wydaje mi się, że to jest takie bardzo pragmatyczne podejście. Mówiąc o Pythonie, wymienię kilka dodatkowych bibliotek: Jupyter, NumPy, Pandas, Scikit-Learn, ewentualnie Matplotlib. Mając taką wiedzę, można powiedzieć, że możesz już pracować jako ML engineer. Tu wymagania są różne niż dla data engineera.

Jeżeli chodzi o wiedzę, która byłaby przydatna, ale niekoniecznie musisz być w niej ekspertem, to warto wiedzieć, w jaki sposób zarządzać kodem, jak działa backend, bo rolą ML engineera jest właśnie dostarczanie, budowa prototypów, weryfikacja pomysłów, hipotez. I zwykle taka osoba nie wdraża modelu na produkcję, robi to data engineer, ale dobrze byłoby, aby osoby na obu tych stanowiskach rozumiały te dwa światy – by ML engineer rozumiał, o co chodzi na backendzie i pomagał we wdrożeniu, a data engineer rozumiał, o co chodzi w ML.

Trzecią rolę, która dość mocno się różni od poprzednich, nazwałem ML researcher, może się również nazywać trochę inaczej. Tutaj bardzo ważna jest przede wszystkim twarda wiedza teoretyczna na temat uczenia maszynowego, statystyki, matematyki, fachowa umiejętność czytania i pisania publikacji. Taka osoba musi pochłaniać te publikacje „na śniadanie". Jego celem jest kombinowanie, co by jeszcze można było zrobić, żeby te model działały jeszcze lepiej. Ta osoba niekoniecznie buduje prototypy, ale dość często skupia się na tworzeniu syntetycznych zbiorów danych i na nich pracuje. Ta rola jest dość często spotykana w środowisku akademickim, chociaż w nim jest za bardzo teoretyczna. W DeepMind, Facebooku czy Google Brain próbują łączyć to również z biznesem – nadal jest nacisk na research, badania, ale z drugiej strony te badania ostatecznie będą rozwiązywać problemy biznesowe.

Jaka wiedza przydałaby się takiej osobie? Generalnie takie osoby zwykle nie są zbyt mocne w programowaniu, a przydałoby się, żeby umiały trochę kodować czy hardkodować. Jeśli taka osoba potrafi tylko pisać publikacje językiem matematycznym, to już traci, bo w uczeniu maszynowym, przynajmniej w obecnej fazie, jest wyprzedzany przez matematyków i są konkretne rzeczy, które działają, dlatego że ktoś inny sprawdził, że taka kombinacja faktycznie działa. Dlatego uważam, że taka osoba jednak musi kodować, to może być taki hardkoding, że ciężko go będzie odczytać, nie będzie tam dobrych praktyk, ale na tym poziomie to nie jest aż takie kluczowe.

Wymieniłem trzy role, ale nie jestem w stanie się wypowiedzieć o wszystkich rolach, zwłaszcza o ML research, bo nigdy się tym nie zajmowałem. Jeżeli chodzi o pracę w DeepMind, to nagrałem odcinek Biznes Myśli z Mateuszem, więc jak ktoś rozważa na poważnie, by iść w tym kierunku, to bardzo polecam go posłuchać – bo w nim były bardzo praktyczne porady, między innymi taka, że koniecznie musisz się zaangażować na jednej z dobrych uczelni, najlepiej zagranicznej, chociaż w Polsce czasem trafiają się naprawdę fajni mentorzy, ale to niestety jest rzadkością. Taki mentor musi faktycznie być na tyle zaawansowany, żeby pomóc Ci rozwinąć swój talent, mało tego, musi mieć również odpowiednie kontakty, żebyś nie tylko siedział w tym lokalnym środowisku, ale również miał możliwość wyjechać chociaż na krótkie staże, na przykład do Stanford czy Oxfordu i dzięki temu się rozwinąć.

Więc na temat ML research nie będę teraz mówić za wiele, bardziej skupię się na ML engineer. To jest ten obszar, na którym najbardziej się skupię, jeżeli chodzi o uczenie maszynowe, wspomnę też o data engineer.
Chciałbym, żebyś po tym webinarze miał pewną wizję, jak ten świat funkcjonuje i kto z kim, w jaki sposób się komunikuje, co dostarcza. ML research dostarcza suche publikacje, które można przeczytać i teoretycznie również co jakiś czas takie rzeczy pochłania. ML engineer nie ma aż tak dużo czasu, żeby pochłaniać fachowe publikacje, natomiast co jakiś czas musi pracować nad swoim rozwojem, żeby nie stać w miejscu. Dość ścisła jest współpraca pomiędzy ML engineerem i biznesem, tutaj pojawia się decyzja, która następuje w momencie współpracy pomiędzy osobą, która dostarcza taki prototyp, pokazuje jego możliwości, wyjaśnia, jakie są problemy i jak możemy je rozwiązać.

Większość dobrych modeli nazywa się black boxami, a biznes zwykle ich nie toleruje. Jeżeli powiesz biznesowi, że to jest black box i nic z tym nie zrobimy, to jest prawda, ale że nic z tym nie zrobimy, to jest trochę słabe, bo jednak są pewne narzędzia, które dają możliwość interpretowania, co się dzieje w tych black boxach. Jeżeli jesteś właśnie w tym miejscu i potrafisz to pokazać, przekonać biznes, że to jest większa wartość, to oznacza, że znajdujesz się w odpowiednim miejscu i jeżeli Twoim celem jest zarabiać więcej pieniędzy to strzeliłeś w dziesiątkę. Data engineer dostarcza te rzeczy na produkcję, współpracuje z ML engineerem, współpracuje również z biznesem, ale ta rola według mnie jest bardziej schowana. Oczywiście ta osoba też musi myśleć, co robi, po co to robi, ile czasu spędza na różnych rzeczach, ale według mnie ta współpraca z biznesem jest troszkę mniejsza w porównaniu z ML engineerem.

Przejdźmy teraz do roli data scientist. Jest z nim taki problem, że ciężko go zdefiniować. Niekiedy firmy zakładają, że data scientist zawiera te trzy wcześniej wymienione elementy: data engineer, ML engineer i ML researcher, ale wiadomo, że jak ktoś jest od wszystkiego, to średnio to działa. Dość często jest tak, że łączy się role data engineer i ML engineer, ale to też średnio się sprawdza pod tym względem, że jest dużo zdolnych programistów, którzy potrafią bardzo dobrze przygotować tzw. pipeline i dostarczą ten modem na produkcję, a przy tym nie potrafią robić badań, eksperymentów, hipotez z danymi. ML engineerowi zajmuje to powiedzmy dwa tygodnie, a programiście 5 dni – wiadomo, że lepiej, żeby zrobił to programista, bo po co marnować potencjał. Więc jednak korzystniej, jeżeli w firmie jest ten podział. Do stanowiska data scientist można dołożyć taką rolę, jaką jest znalezienie i pobieranie danych.
Data scientist (n.): "Person who is better at statistics than any software engineer and better at software engineering than any statistician"
Jak to osiągnąć?
Najpierw trzeba odpowiedzieć sobie na pytanie: „dlaczego", później „co chcesz osiągnąć".
Teoria
  • Książki
  • MOOC
Networking
  • Meet-upy
  • Konferencje
  • Sieci społecznościowe
Książki
Z książkami jest pewien problem. Ciągle otrzymuję pytania o to, które książki najbardziej polecam. Dla mnie jest to bardzo trudne pytanie, bo szczerze mówiąc już mało pamiętam, którą wiedzę zdobyłem z której książki, bo ta wiedza dość mocno się przenika i łączy się w całość. A druga rzecz jest taka, że samo czytanie książek to jest za mało. Jednak postanowiłem, że chociaż raz muszę zabrać te książki, które warto mieć na uwadze i przeczytać przynajmniej jedną z nich, a najlepiej kilka.
Pierwsza książka to Python for Data Analysis", której tematem jest Pandas i NumPy. Jeżeli chcesz więcej zrozumieć, to polecam. Ta książka dość często traktuje o zbyt zaawansowanych tematach, nie wszystko będzie Ci potrzebne, natomiast jeżeli ogarniesz przynajmniej 10-20% z tej książki, to już będzie całkiem fajnie.

Druga książka, która jest mało znana to Hands-On Machine Learning with Scikit-Learn & TensorFlow". Ona pojawiła się nie tak dawno. Jest całkiem fajna z uwagi na to, że jest mega praktyczna. W książce zawarte są tematy, które ja chciałbym podjąć, pisząc własną książkę, więc być może nie będę musiał pisać książki, bo ktoś chyba wyczuł lukę braku praktyczności i ją uzupełnił. W książce jest kod, który można odpalić i powtórzyć, jest też informacja, jak to zrobić, więc warto rozważyć zakup tej książki.

Kolejną książkę Doing Data Science" czytałem jakiś czas temu. Z tego co pamiętam, to przykłady w niej są napisane w R. Z R jest taka sytuacja, że akurat mniej w nim pracuję, a z drugiej strony polecam jednak poznać ten język jako alternatywę, bo to pomaga lepiej myśleć na różne tematy, bo każdy z tych języków ma swoje zalety i wady, jeżeli poznasz te zalety i potrafisz je połączyć, to jesteś mistrzem. Jeżeli chodzi o programowanie, to miałam okazję poznać wiele języków, zaczynając od PHP, Pythona, Java'y, C#, Ruby. W każdym z nich pracowałem co najmniej półtora roku i to na produkcji. To jest bardzo ciekawe doświadczenie, kiedy poznajesz te mocne strony i próbujesz je połączyć.
Python for Data Analysis Hands-On Machine Learning with Scikit-Learn & TensorFlow Doing Data Science
Kolejna pozycja, która wydaje się całkiem fajna na początek to Building Machine Learning Systems with Python". Została wydana około rok temu. Książka zawiera konkretne przykłady, zastosowania, więc może to być bardzo ciekawa lektura.

Machine Learning with Python Cookbook" to troszkę nowsza książka. Są w niej informacje, jak używać biblioteki, przykłady. Być może też przypadnie Wam do gustu.

Machine Learning in Action" to trochę starsza książka, czytałem ją kilka lat temu. Podobało mi się w niej to, że było poruszane bardziej praktyczne podejście, a nie tylko sucha teoria.
Building Machine Learning Systems with Python Machine Learning with Python Cookbook Machine Learning in Action
Trochę inny kierunek myślenia prezentuje książka Storytelling with data". Dlaczego ta książka może być ciekawa? Komunikacja, w szczególności dla ML engineera, jest mega kluczową umiejętnością. Zrozumiałam to trochę za późno i sam zacząłem to trenować. Bardzo ci polecam, bo jeśli nawet będziesz super mistrzem technicznym, ale nie będziesz potrafił wyjaśnić, dlaczego Twoje rozwiązanie jest lepsze, to będziesz miał bardzo frustrujące życie – po pierwsze nikomu nie pomożesz, po drugie możesz stracić pracę, po trzecie, co wydaje mi się chyba najważniejsze, nie będziesz czuł satysfakcji, że robisz coś wartościowego albo nikt nie jest w stanie docenić Twojego rozwiązania. To jest bardzo frustrujące. Pamiętam, jak przechodziłem to ileś razy, a później okazało się, że to nie chodziło o to, że ktoś jest głupszy, tylko ten język, którym się posługiwałem był po prostu zbyt ograniczony i ta osoba nie potrafiła odkodować tego, co miałem na myśli.

Bardzo ważne jest, by umieć przekazać to, co zrobiłeś. Jest taki test: czy umiesz wyjaśnić na przykład jednym zdaniem albo jednym obrazkiem, co osiągnąłeś, jaka jest tego wartość, jaki problem rozwiązujesz. Bardzo fajne jest, że jak rozmawiasz z biznesem, to pokazujesz, jaka jest wartość, jak zrobimy to, to osiągniemy to i to. Ostatnio byłem na takiej prezentacji, na której mówiło się o klasyfikacji binarnej. Była mowa o tym, że jakiś model działa o 9% lepiej. A jeśli ta informacja zabrzmi, że model, uczenie maszynowe ratuje życie 9% ludzi albo jeszcze mocniej, że stwarza życie 9% ludzi, to ten argument brzmi dużo mocniej. Nie chodzi mi tutaj o manipulację czy przesadzanie, bo to są bardzo śliskie tematy. Bardziej chciałbym podkreślić, żeby powiedzieć to samo, tylko w taki sposób, żeby to było zrozumiałe dla drugiej strony. Wydaje mi się, że jest to bardzo ważny temat, bo obserwuję, że techniczne osoby zwykle mają dość duże kłopoty w tym obszarze.


A Data Visualization Guide for Business Professionals
Teraz książka na temat statystyki. Książek w tym temacie też jest sporo. „Think stats" to całkiem fajna pozycja.

Mogę polecić również stronę Safari books online. Tam można sobie wykupić abonament i czytać książki, oglądać wideo, tutoriale, naprawdę jest tam multum wiedzy, dostępne są tam najnowsze książki, nawet takie, które nie są jeszcze dostępne publicznie. Jeśli czytasz sporo książek, to może Ci się to opłacać, a nawet, jak nie czytasz tylu książek, to możesz poeksperymentować przez miesiąc, żeby sprawdzić, czy się przypadkiem nie wciągniesz w takie rzeczy.
MOOC (ang. massive open online course)
Kolejna rzecz to kursy online. Tutaj jest bardzo dużo możliwości, jak coursera, edX, Udacity, Udemy. Prawie każdy mówi, że przerobił kurs Andrew Ng. Moje doświadczenie pokazuje, że ten kurs jest fajny, tylko nie jako pierwszy. Jest taki problem z tym kursem, że przerabiasz go i już niby trochę wiesz, o co chodzi z algorytmami, ale kompletnie nie wiesz, jak zacząć rozwiązywać problemy. Czujesz się totalnie zielony i niby masz jakąś wiedzę, ale tak naprawdę tylko informacje, bo nie jesteś w stanie ich wykorzystać. Ta informacja przepływa przez Ciebie, ale niekoniecznie z niej skorzystasz. Z drugiej strony dodam, że taki kurs teoretyczny może być fajny jako uzupełnienie wiedzy, kiedy już masz pewne doświadczenie praktyczne, udało Ci się połączyć pewne klocki, nie wiesz, dlaczego to działa, ale wiesz, że działa i potrzebujesz troszkę więcej teorii. Wydaje mi się, że to jest bardziej rozsądna ścieżka, zgodnie z moim doświadczeniem to znacznie lepiej się sprawdza, a pracuję z ludźmi i przez moje kursy przewinęło się około 500 osób, więc mogę potwierdzić, że statystycznie jest to najlepsze podejście.

Podam dwa przykłady, bo tak naprawdę kursów jest tak dużo i oczywiście nie miałem czasu, by wszystkie przerobić, a po drugie w pewnym momencie przestajesz przerabiać kursy, bo znajdujesz inny sposób nauki, bardziej praktyczny, pragmatyczny.

Pierwszy kurs to Intro to Machine Learning – myślę, że może być całkiem fajny na początek, a drugi to Intro to Data Analysis, którego tematem są NumPy i Pandas, bo te biblioteki są bardzo przydatne.
Chcesz bardziej poznać DataWorkshop?
Z przyjemnością Ci opowiem o kursie, który zmieni Twoje zdanie o ML, a może nawet wskaże ścieżkę rozwoju.
Meet-upy
Kolejna rzecz, która wydaje mi się bardzo często niedoceniana to są meet-upy, szczególnie w kwestii networkingu. Networking jest ważny, ale nie chodzi o to, że przychodząc na takie spotkanie zdobędziesz nową wiedzę, bo równie dobrze możesz oglądać wideo na YouTubie. Chodzi o to, że poznasz kogoś, kto jest na podobnym poziomie albo był na tym poziomie i przeszedł tę ścieżkę – taka osoba może wprost wpłynąć na Twoje życie i zmienić go. Dlatego polecam uczestnictwo w meet-upach i różnych wydarzeniach. W Polsce jest to między innymi AImeetup, który odbywa się w wielu miastach, między innymi Warszawie, Krakowie, Poznaniu, Białymstoku i są plany rozszerzenia na inne miasta.

Kolejna grupa, w której miałem okazję uczestniczyć to Data Science Warsaw, podejmowane są bardzo fajne tematy, niestety z uwagi, że mieszkam w Krakowie, nie jestem w stanie uczestniczyć w każdym spotkaniu, natomiast przeglądając treść merytoryczną, udostępniane prezentacje, mogę powiedzieć, że są naprawdę inspirujące. Więc jeśli jesteś z Warszawy, to trafną decyzją będzie pójście na spotkanie, poznanie środowiska, ludzi.

DataKRK to jest grupa z Krakowa – dość liczna, ma prawie 2000 uczestników. Wcześniej działałem aktywnie w tej społeczności, ale teraz trochę mi na to brak czasu. Jest to bardzo fajna inicjatywa . Wrocław też ma swoją grupę, jest to Data Science Wrocław, która powstała ponad rok temu. Na razie jeszcze nie miałem okazji się tam pojawić, natomiast z tego co sprawdzałem, jeśli chodzi o frekwencję, poruszane tematy i uczestników, też wygląda to bardzo ciekawie.

Są jeszcze meet-upy PyData organizowane w różnych miastach: Warszawie, Krakowie, Trójmieście, Wrocławiu, Łodzi. Nie wszystkie te grupy są bardzo aktywne, więc sprawdź, czy grupa w twoim mieście jest aktywna.
Konferencje
Kolejny kierunek, jeżeli chodzi o to networking, to konferencje. Tutaj wspomnę o konferencji, która odbędzie się w pierwszym tygodniu października - DataWorkshop Club Conf. Organizuję tę konferencję dla absolwentów kursu DataWorkshop. Idea była taka, żeby pomagać uczestnikom kursu w ich rozwoju, by poznać się nawzajem – będzie bardzo aktywny networking w postaci gry, dzięki czemu na przykład w ciągu godziny poznasz 20 czy 30 osób, a co ważne wśród tych osób będzie co najmniej kilka, które działają podobnie do Ciebie, a być może jest tam osoba z umiejętnością, której Tobie brakuje i wspólnie możecie założyć start-up, zrobić biznes, projekt hobbystyczny, więc jestem bardzo entuzjastycznie nastawiony do tego pomysłu. Postaram się również zaprosić osoby, które poszukują specjalistów od ML. Często jest tak, że po tym kursie jest wielu chętnych do różnych zadań, ale nie tak łatwo jest znaleźć zadanie, które będzie interesujące i do tego będzie przynosiło korzyści materialne. Oprócz tego przedstawione będą tak zwane success stories. Rozważam też dodanie prelekcji, o tym co się nie udało, czego się z tego nauczyłem, bo bardzo stawiam na praktykę. Ta konferencja jest organizowana przede wszystkim dla absolwentów kursów, ale również rozważam zaproszenie osób, które chcą rozwijać się i zdobyć taką wiedzę.

Kolejna konferencja, o której warto wspomnieć to Data Science Summit – odbędzie w Warszawie 8 czerwca. Jest jeszcze konferencja Big Data Technology Warsaw. Zajmują się big data, ale mają też osobną ścieżkę data science. I trafiają się tam całkiem ciekawe prezentacje. Są jeszcze różne inne inicjatywy, jeżeli chodzi o konferencje, warsztaty, szkolenia, jest ich sporo i nie będę ich wszystkich wymieniać. Chciałem pokazać przynajmniej trzy, żeby pokazać, że w Polsce dzieje się wiele rzeczy.
Facebook
Warto wspomnieć sieci społecznościowe, a przede wszystkim Facebooka. Najliczniejszą grupą na Facebooku jest Data Science PL, ma ponad 4 000 uczestników. Dość często można tam trafić na bardzo fajne artykuły, ostatnio wprowadzono fajne hashtagi, dzięki którym artykuły są katalogowane i można łatwiej znaleźć interesujący nas temat. Mam również swoją własną grupę DataWorkshop, na której można znaleźć informacje na temat uczenia się, hackatonów, spotkań, wydarzeń. Jeżeli dla ciebie jest to interesujące, to serdecznie Cię zapraszam.
Blogi
Warto ćwiczyć różne dodatkowe rzeczy i tych blogów jest naprawdę wiele. Pierwszy blog, który przychodzi mi na myśl, to „No Free Hunch", jest to oficjalny blog Kaggle. Podejmowane są tematy różnych rozwiązań na Kaggle i to jest bardzo inspirujące. Blog pisany jest zrozumiałym językiem, nie ma tam samej suchej matematyki, wydaje mi się, że to może być dobre źródło wiedzy dla początkujących.

Drugi przykład to The morning paper" – bardzo inspirująca strona, dzięki której możemy obserwować ciekawe rzeczy, dowiedzieć się, co się dzieje, ale niekoniecznie musisz się wgryzać w detale, zwłaszcza na początek, ale przynajmniej różne tematy obiją Ci się o uszy. To zajmie troszkę czasu, ale w pewnym momencie połączysz te kropki i sam będziesz się dziwił, skąd o tym wiesz.

Jeszcze jeden blog, który wydaje mi się dość pragmatyczny – jest to WILDML. Można zapisać się na newsletter, artykuły nie pojawiają się tak często, ale jak już się pojawi, to żeby go przeanalizować, to zwykle rezerwuję sobie trochę więcej czasu. Nie chodzi o to, że muszę przeczytać wszystko, ale o to, żeby zrozumieć, o co chodziło w tym artykule i wyciągnąć te rzeczy, które być może będę w stanie wykorzystać.
Nagrania konferencji
Nie we wszystkich konferencjach można uczestniczyć, ale można obejrzeć nagrania. Tych konferencji jest wiele i są naprawdę ciekawe. Na początku prawdopodobnie będziesz trafiać na różne źródła, które niekoniecznie są mega inspirujące, ale jak posprawdzasz, zweryfikujesz, to myślę, że znajdziesz coś dla siebie. Polecam, żeby przynajmniej raz w tygodniu oglądać co najmniej jedną prezentację, wtedy masz 53 prezentacje w skali roku, ale co jest ciekawe w tym podejściu, to jest to, że jeżeli oglądasz jedną prezentację tygodniowo, to musisz zaplanować, co będziesz oglądać w kolejnym tygodniu i nie chcesz marnować okazji. Jeżeli masz taką dłuższą listę powiedzmy 20 rzeczy do wyboru, to spędzisz trochę czasu na podjęciu decyzji i to według mnie jest właśnie tą wartością, że z jednej strony nie spędzasz aż tak dużo czasu na oglądaniu wszystkiego, ale jednak próbujesz to filtrować samodzielnie to, co wydaje się najbardziej wartościowe. Ważne jest, żeby była ta ciągłość sprawdzania, weryfikowania. Są konferencje: PyData, ML Conf, O'Reilly – trudno wymienić wszystkie.
Podcast
Najpierw opowiem o polskich podcastach.
Biznes Myśli" to podcast o sztucznej inteligencji, który prowadzę. W tej chwili mam około 60 tysięcy pobrań. Natomiast najważniejsze jest to, że staram się skupić na tematach związanych ze sztuczną inteligencją, zadaję trudne pytania, żeby słuchacze zaczęli rozważać różne kwestie. Jeśli potrzebujesz suchej teorii, to prawdopodobnie nie jest dla Ciebie, ale jeżeli chcesz posłuchać praktycznych porad od praktyków, ciekawych ludzi, to powinien Cię zainteresować.

Drugi polski podcast nazywał się wcześniej „Data Science", ale zmienił nazwę na DataEvangelists.ai". Prowadzący skupiają się na data science, uczeniu maszynowym, również zapraszają inne osoby do udzielania wywiadów.

Angielskich podcastów jest znacznie więcej. Na początek polecam podcast Learning Machines 101", Talking Machines" i TWiML&AI".

Bardzo ci polecam sprawdzić podcasty, jeśli nigdy ich nie słuchałeś, bo dość często okazuje się, że możemy znaleźć więcej czasu. Ja słucham, gdy podróżuję, stoję w kolejce, idę do domu – zakładam słuchawki i słucham podcastu albo audiobooka – dzięki temu udało mi się znacznie więcej informacji przepuścić przez siebie i znacznie więcej przetworzyć, zwłaszcza jak idziesz czy biegniesz. Okazuje się, że podczas biegu czy aktywności fizycznej mózg jest w stanie znacznie lepiej przetwarzać. Dlatego bardzo polecam sprawdzić podcasty jako dodatkową możliwość rozwoju.
Tutoriale
Teraz przechodzę do takich life-hacków, rzeczy, które bardzo polecam. Tutoriale to taki klucz do tego, jak najlepiej się rozwijać. Kaggle to strona do konkursów, ale ostatnio pojawiły się na niej różne tutoriale dotyczące między innymi Pandasa, Data Visualisation – tam są gotowe klocki kodu, które można zastosować, odpalić samodzielnie u siebie. Są też inne tutoriale, na przykład na Topcoder.

Nie chcesz czytać dalej?
Oglądaj Tu lub na Youtube
Zapraszam również do archiwum moich bezpłatnych webinarów.
Uczenie maszynowe - od czego zacząć?
Wspieraj bezpłatne webinary
Przygotowanie webinaru zajmuję dużo czasu i generuje dodatkowe koszty (np. na wynajęcie serwerów na eksperymenty). Jeśli czujesz, że moje webinary dają Ci wartość, to możesz odwdzięczyć się. Będę miał możliwość i motywację do jeszcze większego zaangażowania.
Możesz wpłacić dowolną kwotę, np. 10zł, 20zł, 30zł... 90zł, 100zł.
Dziękuję ;)
Rozwiązywanie problemów
Przejdźmy teraz do praktyki. Ilość wiedzy, jaką możesz znaleźć w Internecie jest ogromna. Jak sobie z tym wszystkim radzić i zrobić tak, żeby można było się rozwijać? Wybierz sobie najprostszy problem i zacznij pracować. Jeżeli pojawiają się jakieś problemy, to masz kilka możliwości, jak to rozwiązać – możesz pójść na Quorę i zadać tam pytanie. Dość często korzystam z Quory do inspiracji i badania, co tam jeszcze ciekawego można znaleźć.

Kolejną fajną stroną jest StackExchange (Data Science oraz CrossValidated), gdzie można znaleźć bardzo wiele praktycznych tematów, na przykład jak walidować model, jak działa walidacja krzyżowa albo co autor miał na myśli, kiedy budował taki czy inny model – super rzecz. Jeśli masz jakieś pytanie, polecam wpisać je do wyszukiwarki i prawdopodobnie znajdziesz na nie odpowiedź.
Dane
Kolejne ważne pytanie, które czasem dostaję, to skąd wziąć dane do zadania. A tych danych jest już trochę. Jest na przykład taka strona jak „UCI Machine Learning Repository". Również na Kaggle jest osobna zakładka, które nazywa się Datasets, czyli zbiór danych – też możesz to pobrać, jest tam dużo materiału. Co jest fajne w Kaggle, to poza danymi masz również rozwiązanie – ktoś inny już dołączył do tego problemu i próbuję go rozwiązać, możesz wziąć gotowy kod, zmodyfikować go i w ten sposób się uczysz. Według mnie w taki sposób możesz znacznie szybciej iterować. Na GitHubie są repozytoria, na przykład awesome-public-datasets. Dostępne są agregatory np. DataPortals.org o różnych krajach, również o Polsce. Inne agregator to Open Data Monitor – można się tam podpiąć i dostawać powiadomienie, kiedy coś się gdzieś zmieniło, myślę, że to też może być dla Ciebie ciekawe.
Środowisko
Kolejna rzecz, gdy mam dane, podstawową wiedzę, jak to odpalić, to: gdzie mam to odpalić? Potrzebuje mieć środowisko. Na początek polecam Colab, to jest środowisko dostarczane przez Google. Masz też GPU, tylko trzeba umieć je włączyć, następnie kliknąć Runtime / Change runtime type / GPU / SAVE i będzie dostępne przez 12 godzin, a później będzie restart. Najważniejsze jednak, że jest to całkiem bezpłatne. Tam jest wiele fajnych bibliotek, takie których tam nie ma, można bardzo łatwo zainstalować poprzez pip install i nazwa. Jeżeli chodzi o parametry, to jest karta GPU, K80. Pomimo tego, że karta GPU, to jest no free lunch – problem może być taki, jeżeli dane trzymasz na Google Drive, to wąskim gardłem będzie przesyłanie danych z Google Drive do Colaba. Jednym z rozwiązań jest trzymanie danych na Google Cloud, bo wtedy to jest jedna struktura i przesył danych jest szybszy. Mamy 13GB RAM i 2 CPU.

Drugie, troszkę bardziej zaawansowane podejście, to własna chmura, okazuje się, że nie jest to aż tak skomplikowane, nawet jeśli nigdy tego nie robiłeś. Wydaje mi się, że ciężko jest sobie nie poradzić. Masz do dyspozycji Google Cloud Platform i Amazon web services. Zakładasz sobie Ubuntu, uruchamiasz tę maszynę, logujesz się, następnie kopiujesz kod (GitHub):

bash <(curl -s https://raw/githubusercontent.com/dataworkshop/course_env/master/setup.sh)

Następnie wklejasz, wciskasz kilka razy enter, czekasz przez moment i to działa.
Konkursy
Kolejna rzecz, w którą warto się zaangażować to konkursy. Przede wszystkim polecam Kaggle – jest bardzo fajne, bo można się tam wiele nauczyć. Często jest krytykowany przez osoby ze środowiska data science czy uczenia maszynowego. Wiem, o co im chodzi, bo w Kaggle mocno przesadzają z perfekcjonizmem, bardzo skupiają się na tym, żeby usprawniać model 0.01 i to nie jest fajne pod tym względem, że nie potrafisz później tej wiedzy wykorzystać na zewnątrz w praktyce. Ale to co jest fajne w Kaggle to sposób myślenia i szybkość docierania informacji do ludzi, a tam są „mózgi", od których można się wiele nauczyć. Poruszane są ciekawe tematy – to naprawdę jest wiele warte.

W trakcie mojego kursu ja robię specjalny konkurs i to nie jest przypadek, bo po wielu różnych eksperymentach zrozumiałem, że można opowiadać ciekawe rzeczy, można tłumaczyć, jak działają biblioteki, ale ostatecznie każdy musi się zaangażować i rozwiązać ten problem samodzielnie. Jak można taką osobę zaangażować? To jest mega trudne i to, co wymyśliłem, i to, co mi się sprawdza, bo po dwóch edycjach każdy, kto uczestniczy w konkursie, to potwierdza, to jest zrobienie konkursu i zaangażowanie uczestników. Jak już taka osoba się wkręci, to nagle okazuje się, że wiele rzeczy nie wiedziała przedtem, ale przez to, że się wkręciła, musi je rozwiązać. Bo to jest ciekawe, jest takie napięcie, chcesz jeszcze sprawdzić to czy tamto, te pomysły same się nasuwają i już nie ma tego podejścia: pomóż mi, bo tego nie rozumiem. Jest za to podejście, że tak wiele rzeczy chcę zrobić. W jednym konkursie po 2-3 miesiącach okazuje się, że trzeba nauczyć się znacznie więcej niż po dziesiątkach książek. Wiadomo, że trzeba utrzymać równowagę, nie chodzi o to, że konkurs jest najlepszy, ale według mnie konkurs zapewnia bardzo fajne zaczepienie się dla osoby całkiem początkującej, by zacząć działać.

Są też różne inne konkursy, na przykład DrivenData, który skupia się na promocji rozwiązywania innych ludzkich problemów oraz Data Science Challenge. Jest ich jeszcze wiele, ale nie będę teraz ich wymieniać.
Portfolio
Warto zastanowić się nad zbudowaniem portfolio, które pomoże Ci, gdy chcesz iść na etat, ale również gdy nie chcesz iść na etat, tylko na przykład założyć swój start-up, pomoże Ci oszukać mózg. Generalnie mózg nie jest zbytnio ustrukturyzowany, ciągle potrzebuje pomocy, potrzebuje jakichś notatek, tabelek, do których co jakiś czas będziesz wracać i je uzupełniać. Co ważne, również się nakręcisz i będziesz robił coraz więcej.

W pierwszej edycji kursu DataWorskhop uczestniczył Kamil Krzyk, pewnie część z Was go zna, ja bardzo trzymam za niego kciuki, bo idzie do przodu jak burza, wspieram go i staram się go zapraszać na różne wydarzenia. On między innymi założył takie repozytorium na GitHubie, które nazwał My Road to AI – bardzo polecam, jest tam sporo fantastycznych linków, możesz zobaczyć, ile człowiek wkłada wysiłków, żeby iść do przodu. Wiadomo, że nie musisz przerabiać wszystkiego, ale wydaje mi się, że część rzeczy może Cię zainspirować i być może również będziesz chcieć stworzyć coś podobnego. Od razu powiem, że jak zaczniesz robisz to udostępniając publicznie, to wzrośnie Twoja motywacja – mówię to z własnego doświadczenia, bo wiem, że jak tylko się zaangażowałem w różne wystąpienia publiczne, to wzrastała moja energia. Te podziękowania, które otrzymuję, też się w pewien sposób kumuluje i chcę robić jeszcze więcej – jest to takie fajne kółko, które się rozpędza. Nagle okazuje się, że w ciągu roku potrafisz się rozwinąć tak szybko, że ktoś inny przerabia te rzeczy przez 3-5 lat.
Praca
Bardzo często słyszę: jestem początkujący, muszę jeszcze 5 lat coś przerabiać. To jest bardzo zła strategia, bo po pierwsze uczenie maszynowe bardzo szybko się starzeje, po drugie nigdy nie staniesz się seniorem teoretycznym, musisz zacząć pracę i działać jako junior, nawet jeżeli jesteś trochę wyżej, o ile możesz materialnie sobie na to pozwolić. Jeśli jesteś osobą zaangażowaną, to możesz bardzo szybko przeskoczyć z juniora do middle'a, a później do seniora.

Jak znaleźć pracę? Jest wiele różnych możliwości. Ostatnio trafiłem na fajny artykuł w Towards Data Science pod tytułem „The Mindset for Innovation with Data Science", polecam przeczytanie nie tylko pracownikom, ale również pracodawcom. Można sprawdzać na pracuj.pl wpisując w wyszukiwarce praca machine learning, praca data science. Można wejść na stronę stack overflow, gdzie są oferty zagraniczne, a często trafia się praca zdalna, więc warto spróbować.
Dziel się wiedzą
U mnie bardzo się sprawdza dzielenie się wiedzą. Na swoim kursie ciągle to powtarzam i widzę, że część osób próbuje to wdrażać w życie. Gdy po jakimś czasie pytam ich, czy coś się zmieniło, to nie miałem jeszcze ani jednej odpowiedzi, że nic się nie zmieniło i że dzielenie się wiedzą to był głupi pomysł. To nie działa w sposób liniowy - czym więcej dzielisz się wiedzą, to tym bardziej się nakręcasz i to idzie w sposób wykładniczy. Bardzo słynny fizyk Richard Feynman mówi, że jak chcesz stać się mistrzem czegoś, to spróbuj to wyjaśnić. W trakcie kursu zbieram pytania na webinarach, za każdym razem są inne i niekiedy są zadane tak, że nigdy o tym w taki sposób nie myślałem. I co ja wtedy robię? Po prostu siadam na chwilę i rozważam, jak najlepiej odpowiedzieć na to pytanie. Dlaczego to działa? To bardzo systematyzuje moją wiedzę, zaczynaj mi się układać klocki i w pewnym momencie nie ważne, jak zadasz pytanie i tak wiem, co odpowiedzieć, bo na bieżąco uzupełniam wcześniejsze luki. I co jest ważne, że kiedy zaczynasz się dzielić wiedzą, to rozwijasz się znacznie szybciej, bo nie zdajesz sobie sprawy, czego nie wiesz.

Kolejny cytat fizyka Alberta Einsteina: „If you can't explain it simply, you don't understand it well enough". Bardzo lubię ten cytat, bo jak coś zrozumiesz, to jest tylko połowa sukcesu.

Jeśli nie jesteś tego w stanie wyjaśnić w jasny, przystępny sposób, to znaczy, że prawdopodobnie tego nie rozumiesz, spróbuj jeszcze raz. Ile razy musiałem się namęczyć, żeby wymyślić, w jaki sposób mogę wyjaśnić ten czy inny koncept, tak żeby to było zrozumiałe. Gdy już po kursie zbierałem opinie, to okazywało się, że osoby całkowicie zielone rozumiały koncepcję, nie potrafiły być może odpowiednio posługiwać się Pythonem, ale to można nadrobić, najważniejsze, że udało się założyć ten fundament: o co w tym chodzi, jak należy o tym myśleć, jakie pytania należy zadawać – to jest wartość i najtrudniejsza sprawa.


Polecam również posłuchać inspirującej prelekcji z PyData 2016 „How to become a Data Scientist in 6 months a hacker's approach to career planning" o tym, w jaki sposób ta dziewczyna w sześć miesięcy zhakowała swoją karierę. Wydaje mi się, że można tym się zainspirować.
Life hacks
Podam jeszcze parę moich sposobów. Jeśli jesteś osobą bardzo akademicką, to niekoniecznie ci to zadziała, natomiast jeśli jesteś praktykiem, lubisz eksperymentować, chcesz bardzo szybko iść do przodu i zależy ci na tym, żeby poznać istotę rzeczy, a niekoniecznie udowadniać komuś, że jesteś mądry i inteligentny, to może być dla ciebie bardzo fajne.

Pierwsza rzecz to GitHub. Wchodzisz na GitHub, wybierasz temat uczenie maszynowe, przeglądasz tutoriale, biblioteki – możesz się dowiedzieć, jakie nowe rzeczy się pojawiają. Jeśli coś zdobywa dużo gwiazdek, to nie musisz marnować swojego czasu i szukać, bo inni Ci podpowiadają, że to jest wartościowe. Jeśli interesuje Cię jakiś tutorial, możesz go pobrać i odpalić. Jak go odpalisz, to poczujesz, że też to potrafisz. Wiem, że teraz trochę hakujemy system i nie do końca zrozumiesz, jak to działa pod spodem, ale na początku to jest ok. Później coraz więcej będziesz wchodzić w różne tematy teoretyczne, robić różne eksperymenty, zmieniać różne i wtedy bardziej zrozumiesz, jak to działa. Jeśli chcesz znaleźć pracę, iść do przodu jako praktyk, to tę metodę mogę Ci polecić.

Kolejna fajna rzecz to Medium. Może przeczytać tam o uczeniu maszynowym, można przerabiać tematy związane z data science, AI. Jest dużo tematów teoretycznych, ale również jest dużo tutoriali, wprowadzeń. Jak wyszukać interesujący nas temat? Wchodzisz na stronę wyszukiwarki Google, wpisujesz:

site:medium.com "machine learning "

czy

site:medium.com "deep learning"

albo inne tematy, które Cię interesują.

Często przeglądam, co nowego tam się pojawiło. Możesz sobie ułatwić sprawę stosując filtry na przykład za ostatni rok, za ostatni miesiąc, czy za 2 lata. Dobrym filtrem jest to, że Google wybiera najbardziej wartościowe rzeczy i to również oszczędza Twój czas.
Podsumowanie
Jest takie słynne powiedzenie, że jak coś słyszałem, to zapomniałem, jak coś widziałem, to zapamiętam – jak czytasz, to zapamiętujesz, jak to zrobisz, to zrozumiesz – uruchomienie nie oznacza, że zrobiłeś od początku, ale to jest zupełnie inny poziom rozwoju, już to rozumiesz, a jak tego doświadczasz, to się uczysz – to jest poziom mistrzowski.
Webinary – trzy proste kroki
Co zrobić dalej, żeby się nie pogubić? Nagrałem już wcześniej 3 webinary:

Jeżeli przerobisz te 3 webinary, to może się okazać, że już przekroczyłeś tę barierę. Jeśli zrobisz te 3 kroki, to trzymam kciuki za Twój dalszy rozwój.

Archiwum moich bezpłatnych webinarów znajdziesz klikając na przycisk.
Uczenie maszynowe - od czego zacząć?
Wspieraj bezpłatne webinary
Przygotowanie webinaru zajmuję dużo czasu i generuje dodatkowe koszty (np. na wynajęcie serwerów na eksperymenty). Jeśli czujesz, że moje webinary dają Ci wartość, to możesz odwdzięczyć się. Będę miał możliwość i motywację do jeszcze większego zaangażowania.
Możesz wpłacić dowolną kwotę, np. 10zł, 20zł, 30zł... 90zł, 100zł.
Dziękuję ;)
Data Workshop Tour
Co jeszcze można zrobić? Nie tak dawno w mojej głowie pojawił się pomysł na pewną inicjatywę. Rozważałem, w jaki sposób mogę pomóc ludziom złamać barierę wejścia, pokazać, że on nie jest aż tak skomplikowana. Być może już teraz możesz zacząć działać w tym kierunku, używać te modele, które są, a problemy, które będziesz rozwiązywać nie będą stricte techniczne, a raczej kreatywne, dość często są to problemy komunikacyjne, jak przekazać tę wiedzę. To jest bardzo ważne, żeby zrozumieć, że nie chodzi o zrobienie doktoratu, bo doktorat bardziej jest potrzebny do ML research. A jeżeli będziesz osobą, która używa uczenia maszynowego jako inżynier, to nie potrzebujesz doktoratu. Zastanawiałem się, jak mogę pomóc i wymyśliłem DataWorkshop Tour, który zorganizuję we wrześniu 2018 roku. Spotkania odbędą się w 6 miastach: Gdańsku, Katowicach, Krakowie, Poznaniu, Warszawie, Wrocławiu. Mam duży entuzjazm, by spróbować i zobaczyć, co się stanie. Wydaje mi się, że po takim wydarzeniu nagle kilkadziesiąt osób może zmienić sposób myślenia i zacząć działać.

Druga rzecz, którą organizuję to konferencja Data Workshop Club Conf. To wydarzenie dla osób, które chcą iść do przodu, mają pełną wiedzę, ale potrzebują wsparcia, kontaktów, tego czego nie ma w książkach, w kursach. To będzie super miejsce, taki akcelerator mózgu.
Zaangażuj więcej zmysłów – czytaj, rysuj, tłumacz innym
Oprócz tych trzech kroków, które wymieniłem, wymienię parę punktów związanych z nastawieniem wizjonerskim. Pierwsza, bardzo istotna rzecz to zaangażowanie zmysłów. Ludzie często się ograniczają tylko do jednego działania, na przykład tylko czytają albo tylko słuchają. Jeżeli czytasz czy słuchasz, to spróbuj to również narysować na kartce, ewentualnie na komputerze – ale jeśli robisz to na kartce albo tablicy, to wtedy włączają się całkiem inne neurony i dzięki temu wgłębiasz się w temat. Tłumaczenie innym to jest naprawdę niesamowite narzędzie i jak spróbujesz, to zobaczysz, jakie to jest ważne. Bardzo często wydaje się, że nic nie wiemy, więc jak możemy tłumaczyć, przecież nikt nas nie zaprosi na Infoshare.

Ja zaczynałem lata temu w firmie, zbierałem ludzi i starałem się tłumaczyć, to było śmieszne, bo nauczyłem się jednego algorytmu i starałem się tę wiedzę przekazać. To był mały fragment wiedzy, ale już wtedy zacząłem pracować nad sobą i nad tym, jak przekazywać wiedzę, przygotować prezentację, pilnować czasu, na co zwracać uwagę, w jaki sposób tłumaczyć, żeby to było zrozumiałe i w ten sposób się uczyłem. Raczej w zespole nikt cię nie zje, nie będzie mówił, że to robisz źle, bo będą zdawać sobie sprawę, że robisz to hobbystycznie i raczej będziesz mieć wsparcie. Później miałem meet-upy i na nich też się uczyłem.

Potem, jak już masz tę wiedzę, możesz pisać bloga, możesz nagrywać wideo na YouTubie – jest milion różnych pomysłów, które można zrealizować, ale zacznij to robić. Jeżeli będziesz tylko czytał, gwarantuję Ci, że jest to niewystarczające, Twój umysł będzie bardzo skrzywiony. To jest tak, jakbyś trenował na siłowni tylko jeden mięsień, chyba nie to chciałbyś osiągnąć.
Minimalizuj - ucz się tego, czego faktycznie potrzebujesz
To jest bardzo istotna rzecz. W tej chwili nie mamy problemu z informacją, ona dopływa zewsząd. Wiedzę, którą pokazuję na kursie, zdobyłem z Internetu i książek. Problem jest taki: kilka lat zajęło mi uświadomienie sobie pewnych rzeczy i zrozumienie, co jest, a co nie jest istotne. W kursie kompresuję tę wiedzę w taki sposób, żeby pokazać, to czego udało mi się nauczyć w ciągu 5 lat pracy związanej z uczeniem maszynowym. Dlaczego to robię? Pokazuję, co musisz koniecznie wiedzieć, później możesz rozwijać te tematy, ale na początek ich wszystkich nie potrzebujesz. Jak zaczynasz uczyć się czegoś nowego, zadaj sobie proste pytanie: czy to, co teraz czytam będzie mi do czegoś potrzebne? Oczywiście nie zawsze wiesz, co będzie w przyszłości, ale zazwyczaj na poziomie intuicji czujesz, że to jest niepotrzebne. Jeżeli masz konkretny problem, nad którym pracujesz, to na pewno wiesz, co jest ci potrzebne. Jeśli masz zrobić walidację i nie wiesz, jak to zrobić albo zastanawiasz się, który model jest lepszy, to badasz temat.
Eksperymentuj – dzieci szybko uczą się dzięki eksperymentom
Myślę, że ta analogia dość często się pojawia, bo dzieci często eksperymentują i nie przywiązują się do wyników. Osoby dorosłe, jeśli zrobią coś głupiego, to wpadają w depresję, a warto z tego się pośmiać, tak jak dzieci. Bardzo zachęcam do eksperymentów. Już mówiłem wcześniej o GitHubie. Postaraj się chociaż raz w tygodniu ściągnąć jakiś tutorial albo repozytorium i spróbuj to odpalić. Nawet jeśli nie rozumiesz jak i dlaczego to działa, później się w to wgłębisz i zrozumiesz. Zmienisz kilka parametrów i już będziesz mieć dobry wynik.
Różne źródła – ucz się z różnych źródeł, nawet skrajnych
Tego się nauczyłem nieświadomie, bo jak zaczynałem było znacznie trudniej, było bardzo dużo suchych, teoretycznych informacji i łatwo było się poddać. Staram się różnicować źródła, z których korzystam, między innymi dlatego, żeby znaleźć takie, które rozumiem i później ewentualnie przejść do tych, których nie rozumiem, by to połączyć i zrozumieć inną perspektywę. Również staram się szukać takich źródeł, które są sobie przeciwstawne, gdy jest konflikt i osoby sobie zaprzeczają, ale jeśli się nad tym zastanowisz, to widzisz w tym sens – każdy patrzy na to z innej perspektywy. Dzięki temu, że patrzysz na tego słonia z różnych stron, zaczynasz łączyć te kropki i lepiej rozumiesz temat. Więc staraj się różnicować źródła, czytaj publikacje różnych autorów, zarówno akademickich, jak i praktyków. Ta innowacja, o które zwykle się mówi, nie oznacza tworzenia nowych rzeczy, a bardziej łączenie kropek, które już istnieją. Brakuje osób, które patrzą na różne obszary i próbują to połączyć, jeśli nauczysz się to robić, to gratulacje.
Wytrwałość – przygotuj się na maraton, jest trudno, ale warto
Dość często widzę, że ktoś przychodzi na jednodniowe szkolenie i oczekuje, że po tym szkoleniu będzie wiedział wszystko. Pokazuję w trakcie, jak rozwiązać prosty problem pokazać, że się da, ale to nie jest tak, że wracasz do domu i robisz rocket science. Trzeba być gotowym na maraton, trzeba nad tym spędzić więcej czasu, ale jak jesteś wytrwały to dotrzesz na metę, czego Ci bardzo życzę.

Jeśli chcesz się ze mną skontaktować na Facebooku, na Twitterze. Prowadzę DataWorkshop, gdzie podejmuję bardziej praktyczne tematy. Bardzo często podróżuję po różnych miastach, zapraszamy na spotkania. Zapraszam również do posłuchania podcastu Biznes Myśli – niekiedy poruszam tam tematy techniczne, ale takie, które mogą wpłynąć na Twoje życie w tym sensie, że świat zmienia się szybciej niż myślisz i wydaje mi się, że wiele osób nie zdaje sobie z tego sprawy.
Chcesz bardziej poznać DataWorkshop?
Z przyjemnością Ci opowiem o kursie, który zmieni Twoje zdanie o ML, a może nawet wskaże ścieżkę rozwoju.
Ponad 10 lat temu zacząłem programować. Od 2013 roku zacząłem pracować z uczeniem maszynowym (od strony praktycznej). W 2015 założyłem inicjatywę DataWorkshop. Pomagać ludziom zaczać stosować uczenie maszynow w praktyce. W 2017 zacząłem nagrywać podcast BiznesMyśli. Jestem perfekcjonistą w sercu i pragmatykiem z nawyku. Lubię podróżować.

Follow me on Twitter and Facebook

Vladimir
Kontakt
Masz pytania czy wątpliwości? To pisz śmiało :)
również możesz pisać na
hello@dataworkshop.eu
Grodzka 42/1, 31-044
Kraków, Polska
Wysyłając wiadomość, wyrażam zgodę na przetwarzanie moich danych w ramach projektu DataWorkshop. Powyższej zgody udzielam w stosunku do Biznes Myśli – Uladzimir Aliakseichanka, ul. Grodzka 42/1, 31-044 Kraków, NIP: 6751364881. W każdej chwili będziesz mógł wycofać zgodę.
Ta strona używa cookie i inne technologii. Korzystając z niej wyrażasz zgodę na ich używanie.
Rozumiem i zgadzam się :)
Close