Przewodnik po uczeniu maszynowym dla początkujących

Przewodnik po uczeniu maszynowym dla początkujących

Uczenie maszynowe, głębokie uczenie, sztuczna inteligencja…wydaje się, że wszyscy o tym mówią. Jednak czym właściwie jest uczenie maszynowe i jaką wartość wnosi? Poprosiliśmy niezależnego eksperta w dziedzinie sztucznej inteligencji i uczenia maszynowego, aby pomógł nam lepiej zrozumieć ten złożony temat. Jonathan Prom Scharff obecnie pracuje nad własnym projektem, który ma na celu zmniejszenie zużycia energii w kraju poprzez wykorzystanie najnowszych odkryć w dziedzinieuczenia maszynowego. Jonathan jest konsultantem w dziedzinie uczenia maszynowego i może być zatrudniany również do projektów wykorzystujących uczenie maszynowe w innych branżach.

1. Jak firmy wykorzystują uczenie maszynowe do celów biznesowych i jak szybki jest rozwój w tej dziedzinie

To standardowe pytanie, na które ludzie lubią odpowiadać na konferencjach biznesowych. Zazwyczaj prezentowany jest wtedy slajd mówiący ‘’ Sztuczna inteligencja jest nową elektrycznością” i zapewne pojawiają się też cytaty z raportów McKinsey mówiące o tym, że duża część zawodów zostanie zautomatyzowana w najbliższych latach. W tym momencie mówca spogląda z powagą na widownię i wypowiada słowa pełne grozy ,, jeśli nie zaczniesz działać teraz kwestią czasu będzie kiedy wyprzedzą cię bardziej innowacyjni gracze”.

Zapewnejest to dobrą taktyka sprzedaży – nic tak jak strach nie działa na ludzi – według mojego osobistego doświadczenia rzeczywistość jest inna. To prawda, że Google, Facebook i tym podobne rozwijają na wysoką skalę rozwiązania stosujące uczenie maszynowe. Prawdą jest też, że dużo prac zostanie zautomatyzowanych, jednak według mnie, większość dużych firm wykorzystuje uczenie maszynowe do zaskakująco ograniczonego stopnia. W przypadkach, w których stosowane są rozwiązania wykorzystujące uczenie maszynowe są one zazwyczaj albo wyjątkowo proste – czytaj z pogranicza błędu – lub wyjątkowo skomplikowane i nie działające dobrze. Także albo jakiś stażysta bardzo szybko coś zrobił, bez zbyt dużej wiedzy, albo firma zatrudniła sporą grupę doktorów, którzy wprowadzili najnowocześniejsze rozwiązania ze swoich teoretycznych badań naukowych od zera. Obie te skrajności zazwyczaj nie działają dobrze. Pierwsza z oczywistych powodów, druga natomiast gdyż sprawienie, by uczenie maszynowe faktycznie zadziałało, to nie ćwiczenie teoretyczne. Wszystko polega na zdobyciu odpowiednich danych, sparafrazowaniu problemu, tak by pasował do standardowego zestawu komend i poleceń uczenia maszynowego, a następnie użyciu standardowych narzędzi.

Podsumowując, uczenie maszynowe będzie miało ogromny wpływ na wiele branż, ale poza kilkoma wyjątkami, nie postępuje to tak szybko. Całkowite zrewolucjonizowanie branż jest bardzo ciężkie. Nawet jeśli startup rozwiązałby wszystkie kwestie związane z uczeniem maszynowym, to pewnie nadal nie miałby dostępu do danych potrzebnych do wprawienia algorytmów uczenia maszynowego w ruch.

2. W takim razie, gdzie uczenie maszynowe już teraz przekłada się na wyniki?

Odpowiedź na to pytanie może się różnić w zależności od tego, kogo zapytamy. Osobiście myślę, że uczenie maszynowe wnosi najwięcej w przypadku automatyzacji tak zwanych ,,prostych” zadań.

Kluczem do decyzji, czy w przypadku danej czynności wykorzystanie uczenia maszynowego ma sens, jest zastanowienie się, czy da się ją rozłożyć na jasno zdefiniowane części.

Powiedzmy, że chcesz zautomatyzować proces decyzyjny przy sprzedaży ubezpieczeń. Można ten proces obrócić w jasno zdefiniowany problem poprzez stwierdzenie: „biorąc pod uwagę otrzymane dane, wskaż „1”,gdy dana osoba powinna otrzymać ubezpieczenie lub wskaż „0”, gdy dana osoba nie powinna otrzymać ubezpieczenia”. Tak zdefiniowany problem zapewnia, że uczenie maszynowe w tym przypadku zadziała. Jeśli natomiast postawionoby problem mówiąc: „biorąc pod uwagę otrzymane dane, napisz umowę ubezpieczeniową” wtedy automatyzacja procesu z wykorzystaniem uczenia maszynowego okazałaby się praktycznie niemożliwa.

Z mojego doświadczenia wynika natomiast, że bardzo często da się jasno zdefiniować skomplikowany problem poprzez podzielenie go na mniejsze ,,podproblemy’’ oraz pójście na kompromis. W związku z tym zamiast ująć problem jako ,,napisz kontrakt ubezpieczeniowy”, można powiedzieć najpierw ,,wskaż, który z tych 7 standardowych kontraktów będzie odpowiedni do użycia”. Kolejnym ,,podproblemem’’ mogłoby być oszacowanie właściwych liczb w poszczególnych predefiniowanych miejscach w wybranym standardowym kontrakcie.

W ten sposób poprzez podzielenie złożonego problemu na do pewnego stopnia wystandaryzowane mniejsze można zautomatyzować duże ilości pracy dzięki uczeniu maszynowemu. Ważne jest, żeby określić, czy zadanie, które chcesz zautomatyzowaćda się zmienić w jasno określone przewidywanie odnośnie przyszłości. Więc ,,który z tych 7 możliwych standardowych kontraktów jest odpowiedni?” Jaka powinna być cena za ubezpieczenie w tych konkretnych okolicznościach?” itd.

Kolejnym ważnym punktem jest, żeby starać się nie automatyzować za dużej części wykonywanej pracy. Zazwyczaj będziesz w sytuacji, w której możesz zautomatyzować 70/80 zadań, stosunkowo szybko, i zamiast starać się kompletnie wyeliminować człowieka z procesu lepiej zatrzymać się na 70/80 procentach automatyzacji. Pokrycie pozostałych 20/30 procent jest zazwyczaj bardzo kosztowne i bardzo podatne na błędy.

3. Postaraj się wytłumaczyć uczenie maszynowe przy użyciu konkretnych przykładów

Wyobraź sobie, że jesteś sędzią i rozważasz zautomatyzowanie swojej pracy. Zresztą kogo obchodzą przestępcy, prawda?.

Problemem z automatyzowaniem procesu wydawania wyroków jest to, że ,,od każdej zasady jest wyjątek”. Także jeśli osoba ma napisać program, który będzie automatycznie skazywał ludzi, wymagałoby to ogromnej ilości kodu, który wziąłby pod uwagę każdy możliwy specyficzny przypadek.Ponadto, każde nawet najmniejsze zmiany prawa sprawią, że program będzie bezużyteczny.

A może zamiast kazać człowiekowi wpisywać wszystkie przepisy do programu komputerowego powinniśmy pozwolić to zrobić maszynie? Czy nie możemy po prostu dać komputerowi dużo spraw kryminalnych wraz z odpowiednimi wyrokami, a on wtedy sam domyśli się jakie są zasady? Okazuje się, że możemy, a proces ten nazywa się uczeniem maszynowym. A więc uczenie maszynowe można rozumieć jako masę algorytmów, które uczą się kopiować obserwowane zachowanie. W związku z tymtworzenia zautomatyzowanego sędziego, polegałoby to na połączeniu zestawu danych z wcześniejszych spraw i odpowiadającychim werdyktów. Historyczne sprawy składałyby się na pewne określone i możliwe do zaobserwowania zachowanie, a algorytm uczenia maszynowego starałby się znaleźć gruntowny zestaw reguł, który pozwoliłby na skopiowanie schematu wydawania wyroków przez sędziów w historycznych sprawach.

Co by się stało, gdybyśmy spróbowali tego w świecie rzeczywistym? Miało to już miejsce w USA. Pierwszy problem, jaki napotkali ludzie podczas wdrażania sędziego – sztucznej inteligencji polegał na tym, że był on lekko rasistowski przy wydawaniu wyroków. Zachowanie to było rezultatem historycznych orzeczeń sądowych, które zazwyczaj karały Afroamerykanów dłuższymi wyrokami. W związku z tym sztuczna inteligencja po prostu skopiowała to zachowanie.

Tak więc stwierdzenie, że algorytmy maszynowe nie są podatne na ludzkie uprzedzenia jest raczej błędne. Powiedzmy jednak, że chcemy stworzyć nierasistowskiego sędziego w oparciu o sztuczną inteligencję. Jak pozbyć się tendencji dawania Afroamerykanom dłuższych wyroków?

Tutaj tworzenie systemu uczenia maszynowego staje się bardziej sztuką niż nauką. Rozwiązaniem jest albo usunięcie rasistowskich orzeczeń sądowych  z bazy danych lub podanie algorytmowi uczenia maszynowego informacji, która pozwoli mu zidentyfikować, które z wyroków są odrobinę rasistowskie, a które nie.

Jednym rozwiązaniem może być usunięcie wszystkich nakazów sądowych, które są niekorzystane dla Afroamerykanów. Innym może być przeszkolenie sztucznej inteligencji na temat danych dotyczących uprzedzeń rasowych i kiedy sztuczna inteligencja – sędzia będzie użyty w praktyce, wtedy można mu zawsze powiedzieć, że poddawana procesowi będzie biała osoba. W ten sposób ludzie byliby sądzenijak biali obywatele.

4. Jednak jakich algorytmów należy użyć przy tworzeniu sztucznej inteligencji – sędziego?

Powiedzmy, że zgromadziłeś swoją bazę spraw historycznych i odpowiadających im orzeczeń sądowych, które ukazują zachowania, które chcesz skopiować. Tak więc jesteś gotowy, aby twoja sztuczna inteligencja – sędzia zaczęła działać.

Większość osób zwróciłoby się do często wymienianych popularnych na rynku technik sieci neuronowych i uczenia głębokiego. (Red.: Sieci neuronowe to konkretna klasa algorytmów uczenia maszynowego, które ostatnio zostały nazwane uczeniem głębokim.) Wątpię żeby niedoświadczony użytkownik był w stanie z łatwością uzyskać najnowocześniejsze rezultatyużywając techniki znanej podnazwą, która nie bardzo ma nawet polski odpowiednik „Gradient Boosting” drzewek decyzyjnych.

Poza konkursami uczenia maszynowego nikt nawet o tym nie słyszał, ale jeśli chodzi o wygrywanie konkursów uczenia maszynowego, algorytm ten jest jednym z najlepszych.

5. Czy to oznacza, że uczenie głębokie jest przereklamowane?

Dobre pytanie, można chcieć odpowiedzieć ,,dlaczego więc wszyscy mówią o uczeniu głębokim? Wszyscy przecież nie mogą być idiotami.”

Prosta wersja odpowiedzi jest związana z tym, co nazywamy nieustrukturyzowanymi danymi. Tak więc, kiedy tworzysz swój zestaw danych spraw historycznych, zazwyczaj tworzysz pewną ustrukturyzowaną reprezentację spraw historycznych. Oznacza to zasadniczo, że tworzysz arkusz kalkulacyjny podsumowujący każdą ze spraw. Może on zawierać takie zmienne jak rasa, liczba wcześniejszych wyroków, liczba wskazująca jak poważne było wykroczenie itd. Dla każdej sprawy historycznej wypełniasz następnie odpowiednią wartość zmiennej w ramach swojego podsumowującego arkusza.

W ten sposób zamieniasz sporą ilość spraw historycznych w arkusz kalkulacyjny, gdzie każdy rząd odpowiada sprawie historycznej.

Ta ustrukturyzowana reprezentacja zasila algorytm uczenia maszynowego, który następnie uczy się fundamentalnych zasad łączących sprawy historyczne z odpowiadającymi im wyrokami.

Problem polega na tym, że czasami bardzo trudno jest podsumować dostępne dane w formie arkusza. Najlepszym przykładem takich danych są obrazki i tekst.

Tak więc nawet jeśli ludziom jest bardzo łatwo rozpoznać przedmioty na obrazkach, zadanie to jest bardzo trudne dla algorytmów uczenia maszynowego. Było tak jednak przed powstaniem uczenia głębokiego, które kompletnie zmieniło umiejętności uczenia maszynowego przy interpretacji obrazków i danych tekstowych systemów uczenia maszynowego.

Zauważ, że uczenie głębokie również bardzo dobrze działa na ustrukturyzowanych danych, jednak dla tego typu danych istnieją o wiele łatwiejsze algorytmy, które pozwalają na osiągnięcie podobnych rezultatów.

6. Jak radzisz rozpocząć przygodę z uczeniem maszynowym

Możecie w to wierzyć lub nie, ale w rzeczywistości bardzo łatwo jest zacząć korzystać z uczenia maszynowego.Na course.fast.ai znajduje się wiele wspaniałych kursów o tym jak szybko osiągnąć najlepsze rezultaty przy użyciu uczenia maszynowego.Kursy te są głównie skupione na uczeniu głębokim, ale wkrótce wprowadzony będzie kurs, który skupi się na bardziej tradycyjnych technikachuczenia maszynowego. Kolejnym dobrym krokiem do rozpoczęcia nauki jest strona kaggle.com, na której praktycy dzielą się swoimi rozwiązaniami.

Blog gościnny Jonathana Prom Scharffa, eksperta w dziedzinie sztucznej inteligencji i uczenia głębokiego

Czy sztuczna inteligencja może wnieść wartość do twojego biznesu? Pozwól niezależnemu konsultantowi pomóc.

Jeśli szukasz eksperta w dziedzinie sztucznej inteligencji lub project managera  stucznej inteligencji, inżyniera uczenia maszynowego, automation developera lub innego konsultanta w tym obszarze, skontaktuj się z nami w celu uzyskania darmowej oferty profili dokładnie wyselekcjonowanych pod twój projekt.

 

 

 

 

 

Dodaj komentarz