Automatyczne uczenie maszynowe, czyli AutoML, to szybko rozwijająca się gałąź IT, która ułatwia wykorzystanie sztucznej inteligencji do rozwiązywania problemów biznesowych. Dzięki umieszczeniu narzędzi AutoML w platformach chmurowych możliwe jest wykorzystanie tych zaawansowanych rozwiązań nawet przez niewielkie organizacje.

W 2016 roku bazujący na sztucznej inteligencji program komputerowy AlphaGo pokonał człowieka - mistrza świata chińskiej gry Go. To była szokująca wiadomość, ponieważ z matematycznego punktu widzenia Go jest bardziej skomplikowana niż szachy - mistrz szachowy został pokonany przez komputer już w 1997 roku. W 2019 roku nowsza wersja programu AlphaGo Zero, która wcześniej nie grała z przeciwnikami, nauczyła się gry poprzez potyczki sama ze sobą. AlphaGo Zero pokonał poprzednią wersję aplikacji AlphaGo z miażdżącą przewagą 100 do 0.

Przykład AlphaGo pokazuje, jak dynamicznie rozwija się sztuczna inteligencja (AI) - bo właśnie korzystając z tej technologii stworzono programy do gry w Go. Rozwój sztucznej inteligencji to zasługa uczenia maszynowego (Machine Learning - ML). W klasycznym programowaniu aplikacja wykonuje algorytm napisany przez programistę. Następnie wprowadzamy dane i otrzymujemy wynik zgodny z zadanym algorytmem. Machine Learning to odwrócenie tego procesu: program otrzymuje dane, szuka pomiędzy nimi zależności i dopasowuje algorytm, a następnie na tej podstawie tworzy prognozy. Algorytmy również z czasem stają się coraz lepsze poprzez naukę na własnych błędach.

Skomplikowane? Tak, ale ML ma bardzo praktyczne zastosowania. To dzięki rozwojowi uczenia maszynowego aplikacje w smartfonie są w stanie rozpoznać tytuł i wykonawcę emitowanej w radiu piosenki, możemy też korzystać z asystentów głosowych, którzy odpowiadają na zadane językiem naturalnym pytania.

Jak działa uczenie maszynowe?

Dobrym przykładem jest rozpoznawanie obiektu na zdjęciu. Obraz w formie cyfrowej (np. JPEG, BMP czy RAW) składa się z pikseli, czyli danych numerycznych określających natężenie trzech kolorów. Wszystkie piksele tworzą macierz, która układa się w inny wzorzec gdy na obrazku jest kot, inny gdy jest na nim pies, a inny kiedy np. samochód. Uczenie maszynowe próbuje stworzyć algorytm, który po otrzymaniu obrazka zwróci etykietę („pies”, „kot”, „samochód”), na podstawie wielu zdjęć w procesie zwanym uczeniem. Przypomina to proces uczenia się mowy przez małe dziecko - im więcej kotów, psów i samochodów zobaczy, tym lepiej je rozróżnia i prawidłowo nazywa.

Najczęściej do budowy tej funkcji jest używana sieć neuronowa, czyli algorytm, który próbuje naśladować sposób działania mózgu człowieka. Sieć neuronowa różni się od klasycznych algorytmów stopniem skomplikowania - w analizie problemów stosuje nieporównywalnie większą liczbę zmiennych. Do czego może być przydatny system automatycznie analizujący obrazy? Przykładem może być dobrze znany użytkownikom smartfonów system odblokowujący telefon poprzez rozpoznanie twarzy użytkownika.

Jak zbudować model uczenia maszynowego?

Do zbudowania modelu uczenia maszynowego potrzebujemy jak najwięcej dobrej jakości danych. Oczyszczenie danych z błędnych informacji, (np. nieczytelne zdjęcie z fotoradaru, dane z uszkodzonego czujnika, który informuje o temperaturze poniżej zera absolutnego) oraz nadanie etykiet (opisanie pewnej początkowej puli zdjęć, na którym jest kot, pies czy samochód) jest czasochłonne.

Uczenie maszynowe pozwala dostarczyć przydatne narzędzia dla biznesu, ale wyzwaniem jest zbudowanie modelu. Wymaga to wiedzy z zakresu matematyki, statystyki, programowania oraz znajomości dziedziny, w której rozwiązujemy problem. Kroki, które należy wykonać w klasycznym procesie uczenia maszynowego to:

  1. eksploracyjna Analiza Danych (Exploratory Data Analysis, EDA),
  2. modelowanie,
    1. projektowanie sieci neuronowej lub wybór klasycznego algorytmu ML tak, aby osiągnąć najlepszą skuteczność modelu, zwykle jest to iteracyjny proces prób i błędów,
    2. podział danych na zbiory: treningowy (uczenie modelu), walidacyjny (tuning parametrów modelu) i testowy (ocena jakości modelu),
  3. optymalizacja ustawień modelu (hiperparametry),
  4. wdrożenie modelu na produkcję.

Budowa modelu uczenia maszynowego wymaga zaawansowanych kompetencji informatycznych. Na rynku jest niewielu tego typu ekspertów, a popyt na ich usługi jest bardzo duży. W rezultacie na zatrudnienie lub współpracę z nimi stać tylko największe organizacje.

AutoML na ratunek

Rozwiązaniem problemu czasochłonności budowy modeli i niedoboru specjalistów od uczenia maszynowego jest AutoML (Automated Machine Learning), czyli automatyzacja procesu budowania modelu predykcyjnego. Dzięki budowie modelu uczenia maszynowego z gotowych elementów proces jest prostszy, szybszy i tańszy. AutoML pozwala to robić osobom, które nie są ekspertami Data Science, a nawet nie są programistami. Szybkość tworzenia prototypów i ich modyfikacji pozwala na wprowadzenie do projektów zwinnego podejścia. Prosty prototyp możemy zbudować nawet w kilka godzin.

Jeśli chcemy rozwiązać problemy biznesowy za pomocą modeli predykcyjnych w AutoML na jednej z platform chmur publicznych Google Cloud lub Microsoft Azure musimy:

  • zebrać dane;
  • otagować dane (jeśli to konieczne) - np. przy obrazach i tekście;
  • wybrać cel - np. predykcja ceny produktu na podstawie innych cech, klasyfikacja obrazów, detekcja obiektów, analiza sentymentu;
  • załadować danych do chmury;
  • kliknąć przycisk “TRAIN”;
  • Gotowe! Wdrożony model jest dostępny przez API.

AutoML w chmurze

AutoML można uruchomić lokalnie, w modelu on-premise, ale to rozwiązanie wymaga mocy obliczeniowej dużo większej niż w przypadku ręcznego procesu budowy modelu. Powodem jest iteracyjny charakter budowy modelu w AutoML (tzn. algorytm próbuje różne scenariusze i wybiera te, które osiągają najlepsze wyniki). Jednocześnie należy pamiętać, że każdy rodzaj uczenia maszynowego (tj. ML i AutoML) wymaga analizy bardzo dużej liczby zmiennych. Przykładowo: pojedyncze kolorowe zdjęcie o niewielkiej rozdzielczości 1000x1000 pikseli ma 3 miliony zmiennych do uwzględnienia w modelu. W klasycznym IT oznacza to duże inwestycje w wydajną infrastrukturę, która będzie sporadycznie w pełni wykorzystywana.

Z pomocą przychodzi chmura, która udostępnia nieograniczoną moc obliczeniową (CPU oraz GPU) dostępną na zawołanie. Potrzebne jest kilkadziesiąt procesorów lub kart graficznych do zaawansowanych obliczeń? Proszę bardzo, płatne od zużycia. Użytkownik sam wskazuje, z jakiej mocy obliczeniowej będzie korzystał. Jeżeli zamówi jej za dużo, może przeskalować infrastrukturę i obniżyć koszty. Zerowa inwestycja w infrastrukturę, elastyczność i zwinność to główne atuty chmury.

Wróćmy jednak do AutoML: jakiego typu problemy są rozwiązywane w ten zwinny i niewymagający ekspertów sposób?

1. Wizja - Computer Vision. Wizja  - Computer Vision.

2. Przetwarzanie języka naturalnego - Natural Language Processing Przetwarzanie języka naturalnego - Natural Language Processing

3. Dane strukturalne/tabelaryczne Dane strukturalne/tabelaryczne

AutoML w mediach i wydobyciu ropy

Przykładem praktycznego wykorzystania AutoML w biznesie jest firma Meredith: amerykański koncern mediowy, w skład którego wchodzą stacje radiowe, telewizyjne, portale internetowe i czasopisma. Miesięcznie dociera do 175 mln Amerykanów. Dzięki narzędziom AutoML wchodzącym w skład pakietu Google Cloud opracowano system klasyfikacji treści. Umożliwia on zaawansowaną personalizację stron internetowych poprzez łączenie odpowiednich terminów i tematów. Ułatwia też identyfikację trendów: jakie tematy są interesujące dla użytkowników. Jak podkreślają przedstawiciele firmy ręczne zbudowanie tak zaawansowanego systemu klasyfikacji treści zajęłoby lata. Dzięki Cloud AutoML Natural Language trwało to miesiące.

Innym przykładem jest firma Schneider Electric, działająca w sektorze zarządzania energią i automatyki przemysłowej. Korzystając z narzędzi automatycznego uczenia maszynowego Microsoft Azure, inżynierowie Schneider Electric opracowali system pozwalający na analizę stanu urządzeń wykorzystywanych przez firmy z sektora wydobycia ropy i gazu. Jest to o tyle ważne, że miejsce wydobycia surowców naturalnych są przeważnie odległe i słabo dostępne (np. platformy wiertnicze na morzu, pustynie), a do naprawy potrzebni są wysoko wykwalifikowani inżynierowie i części. Gdy wydarzy się awaria, trzeba skoordynować ich transport (np. śmigłowcem lub łodzią) w celu dokonania naprawy, a na to potrzeba czasu. Tymczasem każdy dzień przestoju kosztuje średnio 20 tys. dolarów, dlatego firmom zależy na jak najszybszej naprawie. System zbiera dane z czujników, analizuje wcześniejsze awarie i z wyprzedzeniem informuje o potrzebie wymiany zużytych części i pozwala zaplanować konserwację urządzeń na podstawie danych o ich prawdziwym zużyciu. Dzięki temu skraca się czas przestoju.

AutoML, czyli sztuczna inteligencja dla każdego

AutoML i przetwarzanie w chmurze demokratyzuje sztuczną inteligencję: pozwala na jej wykorzystanie nie tylko w największych firmach. Nawet niewielkie organizacje mogą skorzystać z zalet uczenia maszynowego i usprawnić swój biznes, praktycznie bez nakładów na inwestycje.

Pamiętajmy, że AutoML nie rozwiąże wszystkich problemów organizacji. Są zadania, które wymagają indywidualnego podejścia związanego z badaniami i rozwojem algorytmu, w których AutoML może wypadać gorzej niż klasyczne uczenie maszynowe. Ale szybkość tworzenia prototypów pozwala sprawnie zweryfikować, czy w danym przypadku wykorzystanie AutoML się sprawdzi. Decydując się na próbę skorzystania z AutoML na chmurze publicznej jak Google Cloud lub Microsoft Azure mamy do dyspozycji prosty interfejs graficzny oraz możliwość wdrożenia modelu przez jedno dodatkowe kliknięcie. Obie wspomniane platformy oferują darmową możliwość przetestowania usług, również tych z kategorii AutoML, do czego gorąco zachęcamy.

I tak to właśnie działa. W Chmurze!