Czym jest uczenie maszynowe?

Uczenie maszynowe jest tematem który zyskuje na popularności z każdym dniem. Coraz częściej można usłyszeć, że aplikacja X czy Y zbudowana zostałą z wykorzystaniem algorytmów uczenia maszynowego. Dlatego też w końcu i ja postanowiłem zainteresować się tym tematem. Na dzień dzisiejszy obszar uczenia maszynowego jest dla mnie czymś nowym, a to czego się dowiem, wraz z własnymi przemyśleniami, chciałbym opisać w postaci wpisów na tej stronie.

Czym jest uczenie maszynowe?

Zaskakujące jest to, że w zasadzie nie ma jednej, precyzyjnej definicji czym jest właściwie machine learning. Ogólnie rzecz biorąc, jest to zestaw technik, algorytmów i metod rozwiązywania problemów optymalizacji zadań w jakimś obszarze. Dodatkowo, mechanizmy te są w stanie, na podstawie poprzednich wyników – doskonalić efekty przyszłych wyników.

Jakie są rodzaje uczenia maszynowego?

Uczenie nadzorowane.

Dostarczamy całość danych niezbędnych do nauki. Wszystkie dane są odpowiednio ustrukturyzowane, sparametryzowane i podzielone. Materiał treningowy używany jest do przygotowania odpowiedniej bazy powiązań.

Uczenie nienadzorowane.

W tym przypadku – dostarczamy jedynie dane wejściowe. Zadaniem algorytmu jest automatyczna analiza danych, znalezienie powiązań i wyciągnięcie odpowiednich wniosków. Nie wiemy co jest ostatecznym i poprawnym wynikiem działania algorytmu.

Uczenie ze przez wzmacnianie.

Uczenie przez wzmacnianie daje naszemu algorytmowi zespół danych wejściowych oraz sygnał informujący o „nagrodzie” bądź „karze”. Możemy to porównać np. do gry w grę której zasad nie znamy. Na pewnym etapie nasz algorytm uzyskuje informację o tym, czy jego wnioskowanie jest słuszne czy też błędne. Z każdą kolejną iteracją wyniki działania algorytmu powinny być coraz lepsze.

Gdzie wykorzystujemy uczenie maszynowe?

Uczenie maszynowe jest obecnie coraz cześciej wykorzystywane we wszystkich dziedzinach życia, np:

  • mechanizmy autokorekty,
  • ocena zdolności kredytowej,
  • mechanizmy rekomendacji,
  • wirtualni asystenci,
  • automatyczna analiza i klasyfikacja danych,
  • automatyzacja procesów produkcji,
  • automatyzacja procesów zaopatrzenia,
  • automatyczne wykrywanie spamu.