Uczenie maszynowe przynależy do dziedziny nauki związanej ze sztuczną inteligencją. Dotyczy tworzenia programu, który stopniowo ulepsza swoje działanie na podstawie danych. Im więcej danych program otrzyma, tym szybsza będzie nauka. Cała korzyść uczenia maszynowego polega na tym, że program potrafi uczyć się bez nauczyciela.

O czym myślimy mówiąc „naucz program”? Klasyczne programowanie polega na wpisaniu zestawu reguł, które program wykonuje na zasadzie „jeżeli-to”. Jeżeli program otrzyma dane wejściowe, których nie rozpozna (lub programista o nich zapomni), program nie może kontynuować pracy.

Uczenie maszynowe jest inne. Analizuje wszystkie dane wyszukując podobieństw lub szablonu, który umożliwia łatwe zapamiętanie i naukę. Stanowi to ogromną zaletę w stosunku do klasycznego programowania. W przypadku większej ilości zmiennych, programista nie jest w stanie pamiętać o ich wszystkich i tak opracować program, aby brał wszystko pod uwagę i uwzględniał wszystkie opcje. Ponadto, im więcej jest zmiennych, tym większy jest program i wymagania dotyczące sprzętu komputerowego lub utrzymania.


Jakie są dostępne metody uczenia maszynowego?

Jest ich wiele, ale skupię się tylko na wybranych dla lepszego zrozumienia tendencji w uczeniu maszynowym.

1. Uczenie nadzorowane vs. nienadzorowane

Różnicę pomiędzy nimi można w obrazowy sposób wyjaśnić na przykładzie. Wyobraź sobie, że masz młodszego brata i chcesz go nauczyć liter. Pokażesz mu literę „D” i powiesz, że rozpozna „D” po charakterystycznym „brzuszku”. Jeżeli później brat pokaże Ci inną literę, np. „P” i spróbuje zastosować wyuczoną metodę (jeżeli litera ma „brzuszek”, to jest to „D”), nauczyciel musi zareagować i go poprawić.

Ale co to oznacza w przypadku uczenia maszynowego? W przypadku uczenia nadzorowanego, program otrzymuje zestaw danych, dla których znane są dane wejściowe i dane wyjściowe. Poprzez dane wyjściowe rozumiemy dane historyczne (co, dlaczego i jaki był wynik) i na ich podstawie program w oparciu o zasadę podobieństwa może przewidzieć, co będzie się działo dalej. Można to porównać do eksperta, który od lat pracuje w danej dziedzinie, i który bazując na swoim doświadczeniu może powiedzieć, co nastąpi w dalszej kolejności.

Następna kwestia, która od razu przychodzi na myśl, to: czy w takiej sytuacji uczenie się z nauczycielem nie jest zawsze lepsze? Nie do końca. Czasami nie posiadamy danych wyjściowych. Czasami możemy mieć zbyt szeroki i abstrakcyjny problem, w przypadku którego nie jest niemożliwe wskazanie wyniku.

2. Uczenie się przez wzmacnianie
To sposób uczenia, którym zajmuję się na potrzeby swojej pracy licencjackiej, dlatego jest mi dość bliski. Działa na zasadzie nagrody za dobrą decyzję i pewnego rodzaju kary za błędy. Mówiąc wprost, mamy różne dostępne opcje postępowania (nawet do 100 opcji).

Uczenie się przez wzmacnianie polega na podejmowaniu wielu decyzji i analizie wszystkich opcji (tak zwanych iteracji/cykli), dzięki którym znaczna ilość eksperymentów pozwoli nauczyć się i znaleźć najlepszą możliwą kombinację i sekwencję kroków w oparciu o to, ile razy program został nagrodzony lub ukarany.

Jakie są dostępne metody wykorzystania uczenia maszynowego?

Nie da się ich policzyć. Myślę, że jedyną rzeczą, która może nas ewentualnie ograniczać, jest nasza wyobraźnia.
Kiedy rozpoznamy mocne i słabe strony uczenia maszynowego, znalezienie odpowiedniego zastosowania będzie wyjątkowo proste - bułka z masłem. Wspomnę tylko kilka rzeczywiście wykorzystywanych sposobów z punktu widzenia informacyjnego lub finansowego. 

Personalizacja osoby w internecie
Zbieranie danych na temat klientów, produktów, które przeglądają, artykułów, które ich zainteresowały - wszystko to może być wykorzystane w celu odkrycia, jakie rozwiązanie jest potrzebne klientowi, jaki problem klient chce rozwiązać, a w oparciu o dane od innych użytkowników z podobnym problemem, program potrafi doradzić i zasugerować pomocne produkty.

Na takiej samej zasadzie działają Google i Facebook. Na podstawie tzw. ciasteczek, zbierają dane o osobie i udostępniają jej najbardziej trafne wyniki.

Kiedy rozpoznamy mocne i słabe strony uczenia maszynowego, znalezienie odpowiedniego zastosowania będzie wyjątkowo proste - bułka z masłem. Wspomnę tylko kilka rzeczywiście wykorzystywanych sposobów z punktu widzenia informacyjnego lub finansowego.

Infolinia dla klienta
Dotychczas było to najpopularniejsze rozwiązanie. Wiele firm oferuje kontakt telefoniczny poprzez infolinię dla klienta. Wysoki stopień wykorzystania pracowników i częste powtarzanie tych samych pytań skutkowało zastosowaniem uczenia maszynowego z użyciem tzw. robotów (programów, które udzielają odpowiedzi na pytania klienta w czasie rzeczywistym). Można pomyśleć, że komputer nie jest w stanie prawidłowo nam doradzić lub że jako człowiek od razu zauważymy różnicę. Ale znany Test Turinga już zdołał nas kilkakrotnie przekonać, że sztuczna inteligencja może być nieodróżnialna od ludzi.

To tylko niektóre z wielu zastosowań uczenia maszynowego oraz zasady jego funkcjonowania


Tomáš Lichanec
Student

Uniwersytet Techniczny w Koszycach

Wydział inżynierii elektrycznej i informatyki, systemy inteligentne, uczenie maszynowe