Sztuczna inteligencja, machine learning czy data science?

W ciągu ostatniej dekady wzrost mocy obliczeniowej komputerów i gwałtowne zwiększenie ilości produkowanych przez ludzi danych umożliwiły niewyobrażalny wcześniej rozwój dyscyplin, które dzisiaj określa się przede wszystkim poprzez trzy terminy: sztuczna inteligencja (AI – Artificial Intelligence), uczenie maszynowe (ML – Machine Learning) oraz data science (DS – terminu tego praktycznie nigdzie nie tłumaczy się na język polski).

Choć pojęcia te są ze sobą ściśle związane i bardzo często spotyka się je razem to jednak nie oznaczają one dokładnie tego samego. Zobaczmy na czym polegają różnice między nimi.

Machine Learning

Zacznijmy od pojęcia uczenia maszynowego. Ja osobiście określiłbym je jako pewną specyficzną metodę tworzenia programów komputerowych. Na czym polega ta specyficzność?

Mówiąc w skrócie zamiast samemu tworzyć każdy jeden szczegół naszego programu możemy napisać program bardzo ogólny, który nauczy się rozwiązywania konkretnego problemu na podstawie dostarczonych mu danych.

Machine learning to dopasowywanie ogólnych modeli matematycznych do dostępnych danych.

 

Wyobraźmy sobie na przykład, że chcemy napisać program rozpoznający czy na danym obrazie cyfrowym znajduje się pewien typ obiektu (może to być jakieś zwierzę – np. kot czy pies). Normalnie byłoby to bardzo trudne zadanie ale dysponująć bardzo dużą liczbą zdjęć możemy je sobie znacznie uprościć.

Jednym z najprostszych możliwych podejść jest napisanie programu, który przyjmie, że na zdjęciu znajduje się szukany obiekt jeżeli ważona suma wartości wszystkich pikseli obrazu przekroczy określoną wartość. Pozostanie nam dobranie odpowiedniej wagi dla każdego piksela. Za pomocą właściwych metod matematycznych możemy te wagi wyliczyć na podstawie zbioru opisanych zdjęć. Przez słowo „opisanych” rozumiem tu, że będziemy dysponować informacją na których zdjęciach nasz obiekt się znajduje, a na których nie.

Tego typu program jest bardzo łatwy do napisania (zwykle proponuję podobne ćwiczenie do wykonania studentom informatyki na jednych z pierwszych zajęć na temat uczenia maszynowego) i daje zaskakująco dobre wyniki. Model oparty o średnią ważoną pikseli jest oczywiście bardzo prosty, a jego możliwości ograniczone ale stosując modele bardziej złożone (np. słynne sztuczne sieci neuronowe) można to zadanie rozwiązać z naprawdę z bardzo dużą dokładnością.

Udane stworzenie programu wykorzystującego uczenie maszynowe wymaga dwóch rzeczy. Pierwsza z nich to odpowiedni model (średnia ważona pikseli, sieć neuronowa itd.), a druga odpowiednia ilość danych, przy czym w wielu sytuacjach zdecydowanie trudniejsze jest zdobycie właśnie danych. 

Data Science

Wydaje mi się, że DS jest najtrudniejszym do zdefiniowania pojęciem z całej trójki. Ja określiłbym je jako dziedzinę, która zajmuje się pozyskiwaniem i praktycznym wykorzystywaniem danych.

Programiści lubią posiadać dostęp do informacji w bardzo uporządkowanej postaci np. relacyjnych baz danych, plików CSV itd. Niestety bardzo duże ilości informacji które odpowiednio wykorzystane mogłyby pomóc rozwiązać wiele praktycznych problemów, nie mają uporządkowanej struktury. Wyobraźmy sobie np. treści stron WWW czy rozmowy w mediach społecznościowych. Jednym z obszarów DS jest praca z tego typu dużymi zbiorami nieuporządkowanych informacji.

Machine learning jest jednym z narzędzi wykorzystywanych w Data Science

Wykorzystanie zdobytych i uporządkowanych danych wymaga ich analizy i tworzenia odpowiednich modeli matematycznych. Jest to kolejny obszar DS, w którym jednym z możliwych do wykorzystania narzędzi jest… machine learning. 

Widzimy więc związek między ML i DS. Pierwsza dziedzina jest jednym z narzędzi wykorzystywanych przez drugą.

Artificial Intelligence

Sztuczna inteligencja to jedno z najbardziej spektakularnych zastosowań informatyki. Warto zwrócić uwagę, że termin ten odnosi się w zasadzie do dwóch różnych pojęć.

Pierwsze z nich, znane z filmów science-fiction, nazywa się często ogólną sztuczną inteligencją. Jej celem jest stworzenie „myślących maszyn”, które w zasadzie byłby zdolne do tego samego co ludzie.

Jak na razie ogólna sztuczna inteligencja pozostaje w sferze fantastyki naukowej. To co zwykle rozumiemy przez faktycznie dające się zaimplementować AI to znacznie mniej ambitne zadanie.

Ogólna sztuczna inteligencja nadal pozostaje w sferze fantastyki naukowej. Można jednak tworzyć programy zachowujące się "inteligentnie" w szczególnych przypadkach.

Podoba mi się określenie, że sztuczna inteligencja oznacza wykonywanie przez komputer pewnych szczególnych czynności, które zwykle wiążemy z działaniem „inteligentnym”. Definicja ta nie jest oczywiście ścisła, więc spróbujmy sobie wymienić kilka takich czynności. Mogą to być np.:

  • rozpoznawanie obiektów na obrazie,
  • rozpoznawanie słów na podstawie dźwięku,
  • określanie emocji rozmówcy na podstawie treści jego słów, 
  • rekomendacja produktów, które mogą się spodobać konkretnemu klientowi.

Możliwości wykonywania wszystkich powyższych zadań przez komputery zostały w ostatnich latach bardzo rozwinięte. 

Podobnie jak w przypadku data science, jednym z narzędzi stosowanych przez systemy sztucznej inteligencji jest uczenie maszynowe. Nie jest to jednak jedyne narzędzie.

Niektóre z istniejących systemów sztucznej inteligencji zamiast uczyć się na podstawie dostarczanych danych są ręcznie projektowane przez ludzi np. poprzez zapisanie wielu logicznych reguł wnioskowania lub zasad prawdopodobieństwa. Było to właściwie jedno z pierwotnych podejść do sztucznej inteligencji w czasach, kiedy nie dysponowaliśmy jeszcze wystarczającą ilością danych.

Podsumowanie

Opisaliśmy sobie trzy pojęcia robiące zawrotną karierę we współczesnej informatyce. Jak widzisz nie oznaczają one dokładnie tego samego. Następnym razem spróbujemy odpowiedzieć sobie na pytania:

  • W jakich dziedzinach stosuje się obecnie uczenie maszynowe, sztuczną inteligencję i data science?
  • Jakie są granice możliwości tych dyscyplin i nad czym pracują naukowcy i inżynierowie, którzy pchają je do przodu?
Maciej Kraszewski

Maciej Kraszewski

Inżynier, menedżer R&D i nauczyciel akademicki. Uwielbiam zajmować się tworzeniem nowych technologii, zdobywaniem nowej wiedzy i dzieleniem się swoim doświadczeniem z innymi. Specjalizuję się w zagadnieniach przetwarzania obrazu i widzenia maszynowego.
Szukasz dobrych materiałów o projektowaniu elektroniki?

Załóż darmowe konto na naszej platformie i odbierz pakiet materiałów edukacyjnych.

Zakładając konto zgadzasz się na przesyłanie Ci treści marketingowych przez IT20 sp. z o.o. zgodnie z dostępną na stronie Polityką Prywatności. Możesz wycofać zgodę w każdej chwili.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Szukasz dobrych materiałów o projektowaniu elektroniki?

Załóż darmowe konto na naszej platformie i odbierz pakiet materiałów edukacyjnych.

Zakładając konto zgadzasz się na przesyłanie Ci treści marketingowych przez IT20 sp. z o.o. zgodnie z dostępną na stronie Polityką Prywatności. Możesz wycofać zgodę w każdej chwili.

Zaprojektuj PCB

Jak przejść od zera do projektowania profesjonalnych obwodów drukowanych?

Programowanie w języku C

Jak przejść od napisania pierwszego programu komputerowego do wykorzystania zaawansowanych metod programowania?

Projektowanie układów elektronicznych

Jak działają i jak projektować poprawnie działające układy elektroniczne?
Zapisz się na listę mailową i odbierz swoje bonusy!

Więcej treści na temat elektroniki i robotyki, darmowe e-booki i dostęp do minikursów on-line. Otrzymasz to wszystko zapisując się na naszą listę mailową.