Najważniejsza rzecz w ML
Biznes,  Edukacja,  Podcast

Najważniejsza rzecz w Machine Learning

Ile eksperymentów w tygodniu udaje Ci się przeprowadzić?

W tym odcinku porozważamy o eksperymentowaniu i o tym, dlaczego odgrywa ono kluczową rolę w Machine Learning.

Dodatkowo dowiesz się, jakie prowadzę własne eksperymenty, jak może Ci to pomóc. Mam też dla Ciebie pracę domową i przydatne punkty, które pomogą Ci zarządzać eksperymentami.






Dzisiejszy odcinek zacznie się nieco filozoficznie, ale skończymy praktycznie 😉 

Już dawno chciałem nagrać taki odcinek i w końcu przyszedł na to czas. 

Pomysł na ten odcinek  wziął się z moich doświadczeń współpracy z firmami w ramach wdrażania uczenia maszynowego czy konsultacji w projektach ML, ale też z moich własnych praktyk, które stosuję na co dzień i widzę, że to podejście ma sens. 

Dodatkowym inputem, aby ten odcinek powstał właśnie teraz jest fakt, że ostatnie dni, nawet tygodnie spędziłem na intensywnym przygotowywaniu się na kolejną edycję moich kursów:



–  6 września wystartowały dwie edycje kursu “Analiza danych w Python” (po polsku i dla rosyjskojęzycznej społeczności DataWorkshop)

– 13 września rozpoczął się już 2 raz  kurs “NLP i praca z tekstem” dla trochę bardziej zaawansowanych osób z ML,

–  no i przede mną już 9 edycja kursu “Data Science & Machine Learning od podstaw”1 po rosyjsku.

Trochę tego jest. A mam też takie podejście, że za każdym razem staram się coś usprawnić w kursie i przygotować dla uczestników jak najlepsze warunki do nauki i rozwoju. 

Pojawia się jeszcze jeden wymiar, który szczególnie był pewnym wyzwaniem w kursie NLP, o czym opowiem dokładniej potem  – nazywam ten wymiar eksperymentowaniem.



To słowo i ten temat są dla mnie bardzo ważne i dosyć uniwersalne, jak się przekonasz w tym podkaście. Dlatego dzisiaj będzie o eksperymencie i eksperymentowaniu właśnie.



Skupię się szczególnie na ML, ale też wspomnę o tak zwanych eksperymentach codziennych, które staram się wykonywać na różnym poziomie i które pomagają mi prowadzić i rozwijać moją spółkę DataWorkshop, też tworzyć materiały do nauki – moje kursu i zwyczajnie myśleć kreatywnie, czy też “think outside the box” jak się mówi. A więc nawet  osoby decyzyjne, czy też związane bardziej z zarządzaniem niż stricte technologią,  też mogą wiele wynieść z tego odcinka i usprawnić swoją pracę.




Na początek mam pytanie, które chcę Ci zadać i fajnie byłoby, abyś odpowiedział / odpowiedziała np. w komentarzu pod podcastem lub chociaż w swojej głowie, dla siebie, warto odpowiedzieć.


Pytanie brzmi:
Ile eksperymentów w tygodniu udaje Ci się przeprowadzić?




Możesz pomyśleć teraz, co to za pytanie – “nie jestem naukowcem, nie pracuję przecież w laboratorium, to co mam eksperymentować”, ale dobra wiadomość jest taka, że można, a nawet trzeba eksperymentować niezależnie od tego, co robisz, jeśli zależy Ci na tym, aby wykonywać swoją pracę kreatywnie i być efektywnym.



Jeśli jesteś Data Scientist lub chcesz być, to eksperymentowanie to Twój chleb powszedni – nieważne, czy pracujesz w korporacji, instytucji naukowej, czy jesteś freelancerem, tutaj nawet nazwa zobowiązuje 😉



Może zaskoczę Cię, ale Twoim laboratorium może być excel lub nawet kartka papieru, choć opowiem Ci potem o jeszcze innych środowiskach i narzędziach, które szczególnie mogą pomóc, jeśli chcesz rozwijać się w ML / DS i zależy Ci na praktyce.



To są jednak tylko narzędzia, które ułatwiają  działania, ale nie sprawiają, że się je zaczyna i kończy.  Najważniejsza jest motywacja, Twoje podejście, zrozumienie natury i celu eksperymentowania, wyciągnięcia sensownych wniosków i przekucie tego na konkretne działania (!).


Zacznijmy od początku, czym jest eksperyment i eksperymentowanie?

Zaczniemy, jak wszystkie definicje, ale skończymy inaczej 😉
… z  łac. experimentum – [doświadczenie], [próba], a więc bardzo upraszczając można powiedzieć, że to coś do dotyczy wprost działania i praktyki, a nie jedynie percepcji i myślenia, prawda?
(Muszą tutaj pojawić się jeszcze dodatkowe warunki, ale na razie je pomińmy)



Możesz znaleźć w sieci wiele definicji, większość z nich odnosi się wprost do działań związanych głównie z naukami przyrodniczymi i klasycznym laboratorium lub mają dość “sztywne ramy” tak bym to ujął, ale nie warto fokusować się tylko na utartych definicjach w słownikach, tylko podejść do tematu pragmatycznie i po ludzku zgodnie z duchem obecnych czasów i tego, że eksperyment, którego celem jest zweryfikowanie jakiejś hipotezy i docelowo wprowadzenie innowacji, zmiany stanu wiedzy itd. już od dawna nie jest tylko domeną uniwersytetów, czy ośrodków naukowych lub tak jak jeszcze dawniej uprzywilejowanych społecznie osób, ale także firmy mogą mieć swoje laboratoria wprowadzać innowacje na rynku np. technologicznym. Da się to zrobić nawet bez NCBR 😉



Oczywiście pewnie łatwiej jest to robić na poziomie technologii i biznesu  niż np. nauk medycznych czy przyrodniczych, bo tam są inne zasady gry związane też z bio-polityką, ale nie wchodźmy w to :)) Myślę, że każdy ma tutaj swoje przemyślenia.



A moim celem nie jest teraz zanurzanie się  w historię i filozofię, tylko zainspirowanie Cię pewnym podejściem, które być może kojarzy Ci się ze światem naukowym i czymś nienaturalnym i pokazanie Ci, że można być może  na małą, ale znaczącą dla Ciebie skalę stworzyć z tego codzienną rutynę, która pozwoli Ci i Twojej firmie z każdym tygodniem działać lepiej. A jeśli dotykasz ML praktycznie, to w zasadzie już to robisz, ale pewnie, jak to zwykle bywa, da się jeszcze coś usprawnić.




Zatem na potrzeby tego eksperymentu myślowego 😉 weźmy sobie to, co najlepsze z założeń eksperymentu, a odrzućmy to, co kłopotliwe nawet już z samej definicji 😉




Brzmi to być może trochę dziwnie, ale chodzi mi o to, aby przede wszystkim pokazać Ci , jak można wyrobić w sobie odpowiednie nastawienie i nauczyć się wytwarzać warunki, które sprzyjają temu, aby nie bać się testować różnych rozwiązań  lokalnie, a nie tylko czekać aż ktoś to zrobi, ukaże się publikacja i będzie można oprzeć swoje działania na jakimś autorytecie. Żaden autorytet nie da Ci tego, co Twoje własne doświadczenie , nawet jeśli dotyka to mniej “ważnego problemu”, czy mniejszej skali. 



Może brzmieć to jako oczywistość,  ale jednak wiele osób wpada często w pewną dziwną pułapkę. Prosty przykład z mojego podwórka i edukacji  – część osób, która chce zacząć działać w ML zanim wytrenuje swój pierwszy model i zabierze w praktyce za rozwiązywanie konkretnych problemów (nawet prostych) wychodzi z przekonania, że najpierw trzeba przeczytać np. 10 mądrych książek “z kanonu” i potem może uda się coś zrobić. I jasne z tych książek można się wiele dowiedzieć i nawet wiedzieć, że istnieją i dobrze działają takie modele jak np. xgboost, catboost i można wymieniać tu kolejne przykłady, ale co z tego, jak nigdy Twoje ręce nie dotknęły danych i modelu choćby tego najgłupszego.



Znacznie większą wartością dla Ciebie jest własnoręczne odpalenie najprostszego modelu, który może daje głupi wynik, ale jednak jakiś daje i to jest Twój wynik, który możesz realnie poprawić, a nie wiedza na papierze.



I znów tutaj nie chodzi o narzędzia, których używasz, czy poziom zaawansowania rozwiązań, które tworzysz.  Na samym początku chodzi o nastawienie i wypracowanie w sobie pewnego procesu poznawczego, który pozwala Ci działać i podejmować decyzje nie tylko w oparciu o to, co myślisz na dany temat, ale przede wszystkim w oparciu o to, co wiesz z doświadczenia i danych, które udało Ci się własnoręcznie zebrać.







Podam Ci przykład bardzo prostych praktyk, które ja stosuję i działamy też tak całym zespołem w DataWorkshop. Być może zachęcę Cię do działania w podobny sposób lub znajdziesz swój wzór na eksperymentowanie.



Umówiliśmy się z zespołem, że dążymy do tego, aby małymi krokami usprawniać nasze działania i rzeczywiście wykonywać pewne plany, a nie jedynie marzyć o ich wykonaniu. 
Wiadomo pomysłów jest dużo, ale trzeba jakoś weryfikować te, które są warte realizacji, które przynoszą mierzalną wartość, dają jakieś sensowne – najlepiej wyrażone liczbami sygnały, że coś warto rozwijać dalej.

Można długo “gdybać”, czyli mówić co by było gdyby i na słowach kończyć, ale mimo tego, że większość tak robi, bo pomysły jakieś mają wszyscy, to musi być jakiś mechanizm wstępnego  weryfikowania ich i potem realizacji. Tutaj potrzebny jest proces, inaczej pomysły generowane z prędkością światła również tak samo szybko przepadają. 

Aby faktycznie zdobywać potrzebne nam informacje, zwłaszcza w przypadku nowych pomysłów i trafniej podejmować decyzje, na podstawie konkretnych danych, postanowiliśmy, że regularnie i w każdym tygodniu, poza codziennymi obowiązkami, będziemy przeprowadzać tak zwane nasze eksperymenty, aby weryfikować pomysły i ostatecznie ulepszać swoje działania  – każdy w swojej “działce”, ale sumarycznie efekt wpływa na wszystkich.


Eskperymentowanie w DataWorkshop



Każdy w obszarze swoich działań stara się wymyślić i przeprowadzić np. 2-3, nawet 4 eksperymenty tygodniowo – to mogą być bardzo krótkie i proste eksperymenty. Ważne tutaj jest, aby postawić pewną hipotezę, że np. działanie x wpłynie pozytywnie na procesy.

To mogą być działania związane z tworzeniem treści, technologią, zarządzaniem, sprzedażą, czy też marketingiem, to nie ma znaczenia. Chodzi o to, aby wyłapać potencjalny problem lub pewną możliwość i stosunkowo małym wysiłkiem sprawdzić, czy nasz nasz pomysł dotyczący rozwiązania tego problemu lub stworzenia tej nowej wartości jest sensowny.




A więc na starcie mamy pomysł na stworzenie nowej wartości lub rozwiązanie konkretnego problemu, potem pojawia pomysł, jak minimalnym nakładem pracy sprawdzić, czy to ma sens – konkretne kroki, czas potrzebny, aby to zrobić, zaangażowane osoby, cel i oczekiwany rezultat.

Robimy to i na koniec tygodnia dzielimy się efektami, ale nie po aby się sprawdzić nawzajem, ale po to, aby też podzielić przemyśleniami, liczbami, wnioskami i każdy mógł coś z tego wynieść. Spisujemy też retrospekcję i dalsze kroki, czyli next step, które są powiązane z każdym eksperymentem. Czasem uznajemy, że coś jest warte kontynuowanie, czasem przychodzi decyzja: nie marnujemy już czasu na to.

Eksperymentowanie w takiej formie też jest samo w sobie eksperymentem;), ale zaufaj mi, że jeśli pobudzisz siebie i swój zespół mimo ciągłego braku czasu (wszyscy na to cierpimy) do takiego sposobu  myślenia, żeby starać regularnie za pomocą nawet małych, ale konkretnych i co ważne mierzalnych kroków usprawniać swoje działania nie na słowach, a na czynach i podejmować decyzje nie tylko opierając się na intuicji, ale i na liczbach i wykonanych eksperymentach, to to przyniesie namacalne efekty. 


3 największe profity z takich praktyk:

1. Po pierwsze wykonujesz konkretne i regularne kroki, aby być lepszym w tym co robisz – w codziennym zabieganiu często wpadamy w tryb “taśmy” i wykonujemy pilne zadania mechanicznie, a brakuje refleksji na to, co można robić lepiej.

2. Tydzień czasu to dobre ograniczenie, aby coś faktycznie zrobić, bo jeśli nie mamy deadlinu, to ciężko złapać fokus, paradoksalnie kreatywność też czasem potrzebuje ograniczeń pewnych 😉

3. Wypracowujesz  proces i podejmujesz decyzje o nowych inicjatywach, czy ulepszeniach na podstawie danych, a nie tylko przekonań. Pomaga zarządzać priorytetami.










Zadanie dla Ciebie:

spróbuj zaplanować sobie w tym tygodniu dwa proste eksperymenty, które mają wprost przełożenie na Twoje działanie i stan wiedzy i zakładają, że można zrobić coś totalnie inaczej niż robisz to na co dzień lub dotyczą nowego pomysłu . Wykonaj je i podsumuj na koniec, ustal kolejne kroki. Ciekaw jestem, czy spodoba Ci się ta praktyka.


Machine Learning  i eksperymentowanie


Mam nadzieję, że udało mi się pobudzić Ciebie do tego, aby otworzyć się na codzienne małe zmiany, które mogą stać się początkiem tych większych.

Rozważaliśmy też już trochę na temat tego, czym jest eksperyment i jaką może wnieść wartość. Pozostając dalej w temacie, porozważajmy o tym, dlaczego eksperymentowanie, jest kluczowe w działaniach Data Science & Machine Learning i bez tego raczej ciężko będzie Ci odnaleźć się w tej branży czy nawet zarządzać takim projektem. Tutaj podejście wzięte z programowania i klasycznych projektów IT nie działa.

Powstało już kilka odcinków w ramach tego podcastu, gdzie opowiadam o tym, co jest moim zdaniem kluczowe w projektach ML, jakie pytania zadać na początku itp. Z mojego doświadczenia współpracy z firmami, jak i przekazywania wiedzy innym wynika, że w projektach ML wcale nie są najtrudniejsze zagadnienia czysto techniczne, bo to są tylko narzędzia, ale to, po co tych narzędzi używamy i jak próbujemy rozwiązać problem – czyli bardziej zagadnienia koncepcyjne i nastawienie do rozwiązania problemu (!).


Spotkałem się już wiele razy z taką sytuacją, że współpracując np. z programistami lub osobami, które zarządzają pracą zespołu nad pierwszym projektem ML mieliśmy pewne wyzwania, które wynikały z tego, że te osoby próbowały przełożyć 1 do 1 workflow znany z powiedzmy takich klasycznych projektów IT z programowaniem konkretnych serwisów, stron, narzędzi w roli głównej do projektu z uczeniem maszynowym czy data science.

No i tutaj pojawia się problem lub wyzwanie 😉 Dlaczego?

Chodzi właśnie o eksperymentowanie i zrozumienie, że jest to słowo klucz w projektach ML. Oczywiście to eksperymentowanie ma swoje ramy np. czas, ale najważniejsze na start  jest uświadomić sobie, że to musi się wydarzyć, jeśli chcemy zbudować sensowne i stabilne rozwiązanie. A jeśli już to sobie uświadomimy, to warto zarezerwować sobie czy dla zespołu, który ma zająć się ML, czas na to.

To, ile tego czasu powinno się przeznaczyć, to jest osobne zagadnienie, ale na początek warto w ogóle mieć w planie czas na eksperymenty, czyli szukanie optymalnego rozwiązania określonego problemu, a nie oczekiwanie, że weźmiemy jeden wzór czy model i powiemy na koniec, nie działa lub oczekiwanie, że istnieje gotowe idealne rozwiązanie. Tak  to nie wygląda.

Jeżeli mamy do czynienia z nazwijmy to “klasycznym projektem IT” , gdzie programujemy rozwiązania, to raczej jest to sytuacja, gdzie wiemy, jak coś powinno wyglądać, jakimi regułami dany proces się rządzi i naszym celem jest zaprogramowanie tego zgodnie z planem. Są tutaj wyzwania i bugi i plan może się posypać wiadomo, ale raczej wynika to z niewiedzy programistycznej, rozminięcia się z założeniami lub przeoczenia pewnych rzeczy, złego planu itp.


przypadku uczenia maszynowego, kiedy naszym celem jest nauczenie modelu przewidywania czegoś lub rozpoznawania, na starcie powinniśmy mieć precyzyjnie określony cel (jaki problem rozwiązujemy)  i metryki sukcesu, wiemy też czym dysponujemy – jakie mamy dane, ale reguły gry i jak osiągnąć najlepszy wynik według założeń są do odkrycia w ramach eksperymentów właśnie 🙂


Spróbujmy po tym co już padło zrobić małe podsumowanie i  wyłonić 5 głównych cech eksperymentu, aby jeszcze lepiej pokazać Ci pewien mindset, którym jest kluczowy w tym procesie i także w uczeniu maszynowym, a potem opowiem Ci jeszcze o 2 przykładach z życia.


Z czym wiąże się eksperyment? Co go charakteryzuje?

1. Nie ma uniwersalnych i oczywistych odpowiedzi

2. Są ograniczenia np. czas, dane, środki  itp.

3. Szukasz rozwiązania  dla danego kontekstu  i na dany czas (zawsze może być lepiej i to jest ok)

4. Jest powtarzalny – jasno określony cel i warunki (parametry, liczby brane pod uwagę)

5. Niepewność  – rozpoczyna się od hipotezy i jesteś przygotowany na to, że może być zupełnie inaczej lub odkryjesz coś nowego, o czym wcześniej nie było mowy 😉



Nie myl hipotezy z tezą!


Pamiętam, jak tworzyliśmy prototyp dla pewnej firmy. W ich szeregach nie było wtedy ani jednej osoby odpowiedzialnej za ML, było trochę osób związanych bardziej z programowaniem i naszą rolą było zrobienie prototypu pewnego zadania, które okazało się nietrywialne głównie z uwagi na brak danych i pewne wyzwania z określeniem celu, do którego dążymy.



W związku z tym, że problem dotyczył branży, a my nie znamy reguł gry tej branży, ale znamy reguły Ml, to poprosiliśmy o wsparcie CEO w tworzeniu hipotez, aby potem zweryfikować to na poziomie danych. Chodzi o pewne drogowskazy, które są oczywiste dla ekspertów z danej dziedziny i mają przypuszczenia na podstawie swojego doświadczenia i obserwacji, że pewne czynniki mogą być zależne od drugich. Mogą, ale nie muszą. Od tego jest właśnie hipoteza.



Wymaga sprawdzenia i może się okazać, że model doszukał się zupełnie innych zależności. Czyli zakładamy, że coś może wynikać z czegoś, ale ostatecznie próbujemy to odkryć w ramach szeregu eksperymentów, czy tak rzeczywiście jest.



Problem pojawia się wtedy, kiedy hipoteza mylona jest z tezą, a uczenie maszynowe z klasycznym programowaniem. Wtedy rodzi się oczekiwanie, że model musi wziąć pod uwagę pewne zależności, które według eksperta są najważniejsze. Tak oczywiście może być, że akurat wiedza eksperta jest duża, a problem na tyle oczywisty, że to przekłada się jeden do jednego, ale znów to wymaga sprawdzenia i podejścia jak do eksperymentu, a nie oczekiwania na hardkodowanie rozwiązania, jak było w tej historii przez pewien czas 🙂 





Top 3 cechy, które moim zdaniem bardzo pomagają w pracy specjalisty od ML czy DS, to:



1.  Umiejętność pracy zespołowej i dobra komunikacja (zespół innych ekspertów i biznes).

2. Umiejętność zarządzania czasem –  tutaj łatwo można popaść w analizy, sprawdzanie miliona rzeczy, stracić dużo czasu, zrobić bardzo dużo, ale nie dowieść żadnej wartości.

3. Naturalna ciekawość i chęć sprawdzania na danych różnych hipotez = pozytywne nastawienie do tego, że jest dużo niepewności, czyli nieustanna chęć eksperymentowania (połączona z umiejętnością, jak to robić dobrze).



DataWorkshop Lab w ramach kursów




Właśnie dlatego eksperymentowanie jest też DNA moich kursów i staram się motywować ludzi do tego, aby nie tylko chłonąć przygotowany materiał, ale przede wszystkim wykonywać zadania i przekształcać je w dowolny sposób. Dzięki temu tworzy się doświadczenie, które jest bezcenne i pomaga znacznie bardziej się rozwinąć.





Przekazywanie wiedzy jest w ogóle złożonym tematem i ciągle eksperymentuję też na tym polu, aby robić to jak najlepiej i ta delta rozwoju uczestników moich inicjatyw była jak największa.






Właśnie dlatego też corem i standardem wszystkich wydarzeń i szkoleń, które robimy w DataWorkshop jest przygotowanie środowiska w którym człowiek przez kilka dni (jak w przypadku krótkich szkoleń) czy kilku tygodni (jak ma to miejsce podczas kursów) nie musi się martwić o nic, oszczędza masę czasu na  walce z instalowaniem bibliotek i narzędzi lokalnie, a może się w pełni skupić na poznawaniu tak zwanego “mięsa” i eksperymentowaniu właśnie. 







DW Club & Data Science Master Class


Na koniec chciałbym dać Ci znać, że jeśli zacząć eksperymentować w ML, to jest to prostsze niż Ci się wydaje. Opowiedziałem Ci już o kursach, które mam i jeśli chcesz zawodowo rozwijać się w tym obszarze, to zapraszam na ten, który nadchodzi – Data Science & Machine Learning w praktyce” start 4 października.



To jest 8 tygodni, które nauczą Cię nie tylko podstaw uczenia maszynowego i pracy z danymi, ale też eksperymentowania.


Jeśli jesteś na innym etapie, nie możesz sobie pozwolić na kurs w tej chwili lub coś jeszcze innego, to zapraszam Cię DataWorkshop Club.  To nowa inicjatywa, której celem jest maksymalne ułatwienie rozpoczęcia lub kontynuowania przygody z ML i rozwoju w tym kierunku. Działasz kiedy chcesz, skąd chcesz i za koszt dwóch kaw w miesiącu. 


W praktyce oznacza to, że dołączasz do DW Club na zasadzie subskrypcji – co miesiąc płacisz jedynie 20 zł i masz nieograniczony dostęp do dedykowanych materiałów z ML – znajdziesz tam prostsze i trudniejsze zadania. Czasem wystarczą np. 3 dni, aby jakiś materiał przerobić od początku do końca i mieć już namacalny wynik. 


>>> Dołącz <<<

Planujemy też regularnie dostarczać nowe materiały w ramach różnych inicjatyw dedykowanych członkom klubu i tak np. w najbliższy weekend, czyli 25 i 26 września odbędzie się Data Science Master Class, podczas którego będziemy budować model, który potrafi przewidzieć cenę samochodu. 

To wyzwanie dla osób o różnym poziomie wiedzy. Osoby początkujące też będą mogły się zmierzyć z tym zadaniem i dostaną dodatkowe podpowiedzi, bardziej zaawansowane osoby będą mogły zawalczyć o wygraną 🙂 Jeśli chcesz dołączyć do samego master class bez klubu, to też będzie taka możliwość, ale klubowicze zyskują znacznie więcej 🙂



Więcej o tym wydarzeniu możesz poczytać na stronie, link do której znajdziesz na stronie biznes myśl pod tym podcastem lub w mailu, jeśli subskrybujesz Biznes Myśli, a jeśli tego nie robisz, to warto zacząć. 

>>> Dołącz <<<

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ć.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *