Co to jest uczenie maszynowe – inteligentna analiza danych?
Uczenie maszynowe jest jednym z najprężniej rozwijających się obszarów sztucznej inteligencji (SI lub AI – artificial intelligence). Mamy z nim coraz częściej do czynienia w życiu codziennym. To technologia, która ułatwia nam funkcjonowanie nie tylko w świecie cyfrowym, ale także w tym realnym. Od przeszukiwania gigantycznych baz danych według określonych algorytmów, przez komputery wygrywające w szachy z arcymistrzami, do podpowiadania kolejnych słów przy redagowaniu wiadomości tekstowych – możliwości zastosowań urządzeń uczących się są nieograniczone.
Uczenie maszynowe, samouczenie się maszyn albo systemy uczące się (machine learning) – ta dziedzina wchodzi w skład nauk, które zajmują się sztuczną inteligencją. Jest to nauka interdyscyplinarna. Uwzględnia informatykę, robotykę i statystykę. Jej głównym celem jest praktyczne zastosowanie SI do tworzenia automatycznego systemu, który potrafi doskonalić się na bazie doświadczenia (czyli danych) i nabywać na tej podstawie nową wiedzę.
W uproszczeniu proces polega na znalezieniu wzorca w dostarczonych danych. Posłuży on do odpowiedzi na pytanie o nieznany zbiór tych danych. Jest to pewnego rodzaju przewidywanie przyszłości przez pryzmat statystyki i prawdopodobieństwa.
Uczenie maszynowe dotyczy przede wszystkim rozwoju oprogramowania stosowanego zwłaszcza w innowacyjnych technologiach i przemyśle. Odpowiednie algorytmy pozwalają oprogramowaniu automatyzować proces pozyskiwania i analizy danych, by ulepszyć i rozwijać własny system.
To pozwala:
- zwiększyć efektywność
- zwiększyć wydajność
- zwiększyć bezawaryjność
- redukować koszty
Uczenie się może być rozpatrywane jako rozbudowa stworzonego pierwotnie algorytmu, czyli dobór parametrów nazywanych wiedzą lub umiejętnością. Na przykład system komputerowy programujemy, by przeszukał dużą bazę danych i znalazł prawidłowości między danymi, przy czym tych prawidłowości wcześniej nie definiujemy. Maszyna dostaje pewien zestaw wytycznych w postaci algorytmu, ale bez konkretnie wskazanego celu poszukiwania. Rozbudowuje automatycznie algorytm w miarę analizy kolejnych danych. To ostatecznie doprowadza do prezentacji wyniku. Takie podejście, mimo że w zasadzie znane już od wielu lat i stosowane w małej skali, np. w robotyce, nabiera nowego znaczenia przy przetwarzaniu big data czy rozwoju narzędzi IT klasy BI (business inteligence).
Gdzie używamy uczenia maszynowego?
Możemy sobie wyobrazić np. wykrywanie oszustw podatkowych na podstawie transakcji i profilów podatników. Mamy do dyspozycji kilka gigantycznych niepowiązanych baz danych, które system informatyczny łącznie przeanalizuje. Potem dojdzie do wniosku, że określona grupa podatników częściej niż inni wykorzystuje konkretne odliczenie i weźmie to pod uwagę, gdy będzie analizować kolejną porcję danych albo przeniesie trend np. z VAT na analizę PIT. Albo na podstawie listy substancji zakazanych w danym kraju, po zgłoszeniu nowego leku przez usługę on-line, wstępnie zdecyduje, czy dopuścić go do obrotu. Bierze pod uwagę jego skład i kombinacje składników oraz proporcje. Oczywiście na końcu decyduje człowiek, ale wyposażony w wiedzę, którą mógłby zdobyć tylko po długotrwałych i kosztownych badaniach laboratoryjnych.
Trudno szukać dziedziny czy branży generującej codziennie ogromne ilości danych, w której uczenie maszynowe nie znajdzie zastosowania. Firmy, takie jak Google czy nasze rodzime Allegro, dzięki zaawansowanym algorytmom uczącym się zwiększają efektywność i szybkość wyszukiwania oraz przetwarzania informacji. Coraz częściej padają pomysły, by wykorzystać mechanizmy uczenia maszynowego w projektach administracji publicznej.
Po co używamy uczenia maszynowego?
- tworzenie nowych pojęć
- wykrywanie nieznanych prawidłowości w danych
- formułowanie reguł decyzyjnych
- przyswajanie nowych pojęć i struktur za pomocą uogólnienia i analogii
- modyfikowanie, uogólnianie i precyzowanie danych
- zdobywanie wiedzy poprzez interakcję z otoczeniem
- formułowanie wiedzy zrozumiałej dla człowieka
Uczenia maszynowego potrzebujemy do:
- analizy i używania olbrzymich baz danych, których rozmiary, złożoność i wymóg ciągłej aktualizacji nie pozwalają na niezautomatyzowaną analizę (ekonomia, medycyna, chemia)
- dostosowania się systemu do środowiska poprzez dynamiczną modyfikację, która pozwala poprawnie działać w zmiennych warunkach (robotyka, systemy sterowania, produkcji, analizy danych)
- szukania i analizy zależności w dużych bazach danych, by syntetycznie przedstawić informacje według podanych kryteriów (systemy eksperckie, wyszukiwarki internetowe)
- analizy, badania i opracowania bardzo złożonych problemów, trudnych do opisu i często bez wystarczających modeli teoretycznych, których uzyskanie jest kosztowne, czasochłonne lub mało wiarygodne (fizyka, matematyka)
Czego potrzebujemy: uczenia maszynowego, sztucznej inteligencji czy tylko zaawansowanego algorytmu?
Sztuczna inteligencja to sztuka oraz nauka podejmowania prób tworzenia maszyn, które sprawiają wrażenie myślących. Nie chodzi tu o tworzenie maszyn, które zastąpią ludzi, czego tak się obawiamy. Tworzymy maszyny, które będą dla nas użyteczne. Tymczasem często nazywamy rozwiązania i przedmioty inteligentnymi, choć wcale takie nie są. By takie były, konieczny jest element przetwarzania i płynącej z niego wartości dodanej.
Machine learning w IT najczęściej nie kojarzymy np. z robotyką, tak jak sztucznej inteligencji, a raczej z przeszukiwaniem dużych baz danych. Jak wspominaliśmy powyżej, sztuczna inteligencja to pojęcie szersze niż uczenie maszynowe, które jest tylko jednym z obszarów wyodrębnionych w tej dziedzinie nauki. Jest też cienka granica między dobrze napisanym algorytmem zaimplementowanym w programie, który wykonuje zdefiniowane wcześniej polecenia, a algorytmem uczącym się.
Najlepszym przykładem, który ilustruje różnicę, są słynne pojedynki arcymistrzów szachowych z superkomputerami. Maszyna IBM Deep Blue, która pokonała Kasparova, to przykład systemu, który nie nauczył się, jak grać w szachy, ale został zaprogramowany tak, by grał w szachy i miał zapisane konkretne schematy działania zależne od ustawienia figur. Jego przewagą była baza dużej liczby możliwych ruchów i moc obliczeniowa. Jego przeciwieństwem jest program komputerowy AlphaGo. Ten wykorzystuje mechanizm uczenia maszynowego. Stworzony przez firmę DeepMind nauczył się skutecznie grać w go i pokonał najlepszego gracza na świecie.
Źródło:
https://pl.wikipedia.org/wiki/Uczenie_maszynowe
http://www.przemyslawowsianik.net/2017/03/07/machine-learning-z-czym-to-sie-je/
https://pl.wikipedia.org/wiki/AlphaGo
Autor: Marcin Rogalski