machine learning monkey

Machine learning – samodoskonalenie z problemami

Oglądaliście film „Ona” („Her„) Spike’a Jonza? Jeśli nie – polecam. Fascynująca historia miłości człowieka i systemu komputerowego mówiącego głosem Scarlett Johansson. Wzruszający zapis rozwoju maszyny, która uczy się bycia człowiekiem w najbardziej ludzkim obszarze – uczuć i emocji. Brzmi jak science-fiction w opcji romantycznej, trąca rojeniami na temat sztucznej inteligencji, które rozgrzewały wyobraźnię w latach 90? Trochę na pewno, jednak pamiętać należy, że maszyny uczące się (czy uczenie maszyn – machine learning) to nie jest już tylko filmowa fikcja. Od lat 90. zmieniło się sporo.  Skoro o filmach mowa – faktów poszukać można w „Najmądrzejszej maszynie na świecie” – dokumentalnym wprowadzeniu w świat maszyn, które mogą być mądrzejsze niż ludzie.

Machine learning to stosunkowo młoda dziedzina interdyscyplinarna zajmująca się sztuczną inteligencją. Interdyscyplinarność oznacza tu styk robotyki, informatyki i statystyki. Głównym jej celem jest stworzenie automatycznego systemu potrafiącego doskonalić się przy pomocy gromadzonego doświadczenia (czyli danych) i nabywania na tej podstawie nowej wiedzy, czyli ciągły rozwój wynikający z nieustannego przetwarzania informacji i wyciągania z nich wniosków.

Uczenie maszynowe dotyczy głównie ewoucji oprogramowania stosowanego zwłaszcza w innowacyjnych technologiach i przemyśle. Odpowiednie algorytmy mają pozwolić oprogramowaniu na zautomatyzowanie procesu pozyskiwania i analizy danych do ulepszania i rozwoju własnego systemu. Uczenie się może być rozpatrywane jako konkretyzacja algorytmu, czyli dobór parametrów, nazywanych wiedzą lub umiejętnością. Służy do tego wiele typów metod pozyskiwania oraz reprezentowania wiedzy. Jeśli słysząc „algorytm” natychmiast myślicie „Google” to macie rację – kolejne, coraz bardziej zaawansowane algorytmy tej wyszukiwarki to po prostu kolejne etapy rozwoju wynikającego z odpowiedniego zastosowania zgromadzonej wiedzy.

Jakie może mieć to zastosowanie? Coraz mądrzejsze maszyny to większa efektywność, wydajność i bezawaryjność oraz redukcja kosztów. Czyli warto.

machine learning

W ogólnym schemacie uczenia się mamy do czynienia z systemem uczącym się i środowiskiem, w którym system musi się dynamicznie dostosowywać do zmieniających się warunków (np. systemy sterowania). Nie da się w tych warunkach uniknąć problemów, które są złożone i trudne do opisu. Często nie ma wystarczających modeli teoretycznych albo ich uzyskanie  jest zbyt kosztowne czy mało wiarygodne.

Uczenie maszynowe przynieść ma konkretne skutki:

  • tworzenie nowych pojęć
  • wykrywanie nieznanych prawidłowości w danych
  • formułowanie reguł decyzyjnych
  • przyswajanie nowych pojęć i struktur przy pomocy uogólnienia i analogii
  • modyfikowanie, uogólnianie i precyzowanie danych
  • zdobywanie wiedzy poprzez interakcję z otoczeniem
  • formułowanie wiedzy zrozumiałej dla człowieka

W praktyce oznacza to rozwiązania takie jak:

  • oprogramowanie do rozpoznawania mowy:
    • automatyczne tłumaczenie
    • rozpoznawanie mowy ludzkiej
    • dyktowanie komputerowi
    • interfejsy użytkownika sterowane głosem
    • automatyzacja głosem czynności domowych
    • interaktywne biura obsługi
    • rozwój robotów
  • automatyczna nawigacja i sterowanie:
    • kierowanie pojazdem (ALVINN)
    • odnajdywanie drogi w nieznanym środowisku
    • kierowanie statkiem kosmicznym (NASA Remote Agent)
    • automatyzacja systemów produkcji i wydobycia (przemysł, górnictwo)
  • analiza i klasyfikacja danych:
    • systematyka obiektów astronomicznych (NASA Sky Survey)
    • rozpoznawanie chorób na podstawie symptomów
    • modelowanie i rozwijanie terapii lekowych
    • rozpoznawania pisma na podstawie przykładów
    • klasyfikowanie danych do grup tematycznych wg kryteriów
    • aproksymacja nieznanej funkcji na podstawie próbek
    • ustalanie zależności funkcyjnych w danych
    • przewidywanie trendów na rynkach finansowych na podstawie danych mikro i makro ekonomicznych

Jeszcze bardziej praktycznie? Przywołajmy Cleverbota.

Cleverbot to aplikacja internetowa, która rozmawia z ludźmi. Chatbota stworzył Rollo Carpenter (razem z podobną aplikacją internetową, Jabberwacky). Wraz ze współpracownikami odbył z nim kilkanaście tysięcy rozmów w pierwszej dekadzie jego działania. Od momentu udostępnienia w Internecie w 1997 liczba rozmów przekroczyła 150 milionów. Cleverbot jest też obecnie aplikacją dostępną za 0,99 USD. Inaczej niż w przypadku innych chatbotów, odpowiedzi Cleverbota nie są zaprogramowane. Zamiast tego „uczy się” on na podstawie danych uzyskanych od ludzi, którzy piszą w polu pod logiem Cleverbota, a system znajduje słowa kluczowe lub całe frazy pasujące do danych wejściowych. Po przeszukaniu zebranych rozmów udziela odpowiedzi opartej o to, co ludzie odpowiedzieli na tę treść, kiedy to Cleverbot ją napisał. Cleverbot brał udział w formalnym teście Turinga w czasie festiwalu Techniche w Indian Institute of Technology Guwahati 3 sierpnia 2011. Na podstawie 334 głosów został uznany za ludzkiego w 59,3% (ludzie uzyskali w tym teście 63.3%). Wynik 50.05% lub więcej jest często uznawany za zaliczenie testu. Oprogramowanie obsługiwało w czasie testu tylko 1 lub 2 jednoczesne pytania, a w internecie Cleverbot rozmawia z 10 000 ludzi na raz.

Za mało przykładów? ASIMO, czyli Zaawansowany Postęp w Innowacyjnej Mobilności to humanoidalny robot pokazany światu 31 października 2000 roku. Stworzyła go Honda i wbrew powszechnemu mniemaniu, nie uczciła (podobno) nazwą pisarza science fiction Isaaca Asimova. ASIMO jest jedenastym udanym modelem dwunożnego robota. Uważany jest za jeden z najbardziej rozwiniętych technicznie chodzących robotów na świecie. Projekt rozwijał się od roku 1986, kiedy to stworzono pierwszy model E0. ASIMO może chodzić do przodu, do tyłu, w bok, biegać, omijać przeszkody, zawracać i wchodzić w interakcję z otoczeniem. Celem producenta jest stworzenie robota, który będzie pomocny w codziennym życiu człowieka.

Tak wygląda ten przystojniaczek. Czy scenariusz „Her” wciąż wydaje Wam się nierealny?

robo

Jak uczy się maszyna? Uczenie maszynowe i jego powodzenie zależą od wyboru odpowiedniej metody formułującej problem, zbioru uczącego (czyli doświadczeń) oraz sposobu uczenia się nowych pojęć.

Metody maszynowego uczenia się:

  • wnioskowanie wartości funkcji logicznej z przykładów
  • uczenie drzew decyzyjnych (ang. Decision Tree Learning) – drzewo decyzyjne to graficzna metoda wspomagania procesu decyzyjnego, stosowana w teorii decyzji. Algorytm drzew decyzyjnych jest również stosowany w uczeniu maszynowym do pozyskiwania wiedzy na podstawie przykładów. Jest to schemat o strukturze drzewa decyzji i ich możliwych konsekwencji. Zadaniem drzew decyzyjnych może być zarówno stworzenie planu, jak i rozwiązanie problemu decyzyjnego. Metoda drzew decyzyjnych jest szczególnie przydatna w problemach decyzyjnych z licznymi, rozgałęziającymi się wariantami
  • uczenie Bayesowskie (ang. Bayesian Learning) – metody oparte na twierdzeniu sformułowanym przez XVIII-wiecznego matematyka Thomasa Bayesa odgrywają znaczną i ostatnio rosnącą rolę w dziedzinie sztucznej inteligencji, zwłaszcza w uczeniu się maszyn. Można ogólnie powiedzieć, że wzór Bayesa stał się podstawą do rozwoju teorii i algorytmów różnych form wnioskowania probabilistycznego.
  • uczenie z przykładów (ang. Instance-based Learning) – w odróżnieniu od metod uczenia, które konstruują ogólny, tzw. jawny opis funkcji docelowej, który dostarcza dane uczące, uczenie tego typu po prostu zapamiętuje przykłady. Uogólnianie nad tymi przykładami jest odwlekane do czasu, aż nowy przykład (zadanie) ma być klasyfikowane. Za każdym razem, kiedy przychodzi nowe zapytanie (przykład), badane są jego powiązania z zapamiętanymi już przykładami, aby ustalić wartość docelowej funkcji nowego przykładu.
  • uczenie się zbioru reguł (ang. Learning Sets of Rules) – zbiór reguł w postaci klauzul Hornowskich może być interpretowany jako program w np. języku Prolog
  • analityczne uczenie (ang. Analytical Learning) – metody uczenia indukcyjnego (wykorzystują sieci neuronowe, drzewa decyzyjne), wymagają pewnej liczby przykładów aby osiągnąć pewien poziom uogólnienia. Analityczne uczenie stosuje wiedzę aprioryczną i wnioskowanie dedukcyjne do powiększania informacji dostarczanej przez przykłady uczące.
  • połączenie indukcyjnego i analitycznego uczenia (ang. Combining Inductive and Analytical Learning) – czyste indukcyjne uczenie formułuje ogólne hipotezy poprzez znalezienie empirycznych regularności w przykładach uczących. Natomiast czyste analityczne uczenie stosuje aprioryczną wiedzę do otrzymania ogólnych hipotez dedukcyjnie. Połączenie obu podejść daje korzyści: lepszą poprawność i trafność uogólniania gdy dostępna jest wiedza aprioryczna oraz szukanie zależności w obserwowanych danych uczących do wypracowania szybkiej wiedzy apriorycznej.
  • uczenie przez wzmacnianie (ang. Reinforcement Learning) – uczenie przez wzmacnianie to metoda wyznaczania optymalnej polityki sterowania przez agenta w nieznanym mu środowisku, na podstawie interakcji z tym środowiskiem. Jedyną informacją, na której agent się opiera jest sygnał wzmocnienia (poprzez wzorowanie się na pojęciu wzmocnienia z nauk behawioralnych w psychologii), który osiąga wysoką wartość (nagrodę), gdy agent podejmuje poprawne decyzje lub niską (karę) gdy podejmuje decyzje błędnie.

Wszystko to brzmi dobrze, ale problemów nie brakuje i jak na razie są one poważne:

Poza etapem tworzenia systemu powstają następujące problemy:

  • zbyt mała lub zbyt duża zależność systemu od środowiska, w którym się znajduje co może prowadzić do niepełnej analizy danych lub błędnej interpretacji
  • wiarygodność i poprawność generowanych wniosków, według Poppera „wiedza zdobyta w wyniku obserwacji ma charakter jedynie domyślny”, a rozumowanie indukcyjne nie może być w pełni udowodnione, a jedynie sfalsyfikowane
  • niekompletne lub częściowo sprzeczne dane
  • niezdefiniowanie ograniczeń dziedzinowych, może prowadzić do zbyt daleko idących uogólnień i błędnych wniosków

W związku z powyższymi problemami przyjęto następujące postulaty, które wiedza generowana przez systemy powinna spełniać:

  • wiedza generowana przez system powinna podlegać kontroli i ocenie człowieka, według podanych przez niego kryteriów
  • system powinien być zdolny do udzielenia wyjaśnienia w przypadku problemu
  • wiedza powinna być zrozumiała dla człowieka, czyli wyrażalna w opisie i modelu myślowym przez niego przyjętym

Jaki etap rozwoju – wbrew tym problemom – osiągnęło uczenie maszynowe i w jaki sposób znajduje ono zastosowanie w marketingu? O tym już w następnym odcinku:)

0 komentarzy:

Dodaj komentarz

Chcesz się przyłączyć do dyskusji?
Feel free to contribute!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *