Pobierz
najnowszy numer

Newsletter

Zapisz się do naszego Newslettera, aby otrzymywać informacje o nowościach z branży!

Jesteś tutaj

AI dla każdego. Część 2

Printer Friendly and PDF

W pierwszej części przedstawione zostały podstawowe pojęcia i zagadnienia mające związek ze sztuczną inteligencją. Przytoczyłem też kilka ciekawych faktów historycznych. W niniejszej części opiszę kilka konkretnych rozwiązań leżących u podstaw sztucznej inteligencji.

Po co nam sztuczna inteligencja?

Dlaczego tak zaawansowana i skomplikowana zdobycz techniki przebojem wdziera się do naszego codziennego życia? Po części dlatego, że jako ludzie w naturalny sposób dążymy do kształtowania otaczającego nas świata w sposób, który ułatwia nam codzienne życie. W dzisiejszych czasach bardzo pomaga w tym zaawansowana technika. Wydajemy polecenia głosowe naszym telefonom, a te odpowiadają głosowymi wskazówkami nawigacyjnymi, czytają na głos wiadomości tekstowe lub podają aktualną prognozę pogody. Gdy szukamy w sieci pobliskiej restauracji, oprócz wskazówek dotyczących jej lokalizacji uzyskujemy wiele dodatkowych informacji, np. aktualne menu, listę najczęściej wybieranych dań, przedstawione opinie gości, informacje dotyczące godzin otwarcia i promocji, numer telefonu i adres poczty elektronicznej. Gdy skierujemy aparat fotograficzny na grono znajomych, urządzenie może samo zrobić zdjęcie w momencie, gdy na twarzach fotografowanych osób pojawi się uśmiech. Gdy podczas jazdy autem wyposażonym w aktywny system bezpieczeństwa zbliżymy się zbyt szybko do pojazdu znajdującego się przed nami, zostaniemy ostrzeżeni sygnałem dźwiękowym i świetlnym, a jeśli nie zareagujemy w porę, auto rozpocznie automatycznie hamowanie awaryjne.

To kilka przykładów wykorzystania inteligencji maszyn w naszym życiu codziennym. Najważniejszym powodem, dla którego systemy sztucznej inteligencji stały się tak ważne, jest fakt, że potrafią zrobić to, co do tej pory było albo zupełnie nieosiągalne dla tradycyjnych rozwiązań informatycznych albo funkcjonowało znacznie gorzej. Do tego wątku powrócę dalej w tym artykule. Najpierw jednak warto zapoznać się z pojęciem algorytmu, które jest jednym z fundamentów informatyki.

Co to jest algorytm?

Słowo algorytm pochodzi od słowa Algorismus – łacińskiej wersji nazwiska Al-Chuwarizmi, arabskiego matematyka żyjącego w IX wI. Początkowo termin ten oznaczał sposób wykonywania działań arytmetycznych, ale po pracach Alana Turinga (zob. AI dla każdego, część 1, „Zabezpieczenia” nr 1/2019) i wraz z narodzinami informatyki stał się on jednym z podstawowych pojęć w tej dziedzinie. Obecnie algorytm najprościej można zdefiniować jako przepis na wykonanie czegoś. Innymi słowy jest to szereg czynności elementarnych, które należy wykonać, aby doprowadzić do rozwiązania określonego zadaniaI. Możemy więc mówić o algorytmie wykrywania twarzy czy sterowania robotem, ale takie codziennie czynności jak pieczenie ciasta, jazda samochodem czy rozmowa telefoniczna także są doskonałymi przykładami algorytmów.

Bardzo często można spotkać się z określeniem „algorytm AI” czy „algorytm sztucznej inteligencji”. Nie jest to całkowicie poprawne, gdyż sama definicja algorytmu opisuje go jako sposób na wykonanie czegoś w kolejnych krokach (których liczba jest skończona), natomiast proces rozwiązywania czy wykonywania zadania przez sztuczną inteligencję może być trudny albo nawet niemożliwy do podzielenia na jakieś konkretne części składowe (zadania mogą być bardzo trudne albo wręcz niemożliwe do zalgorytmizowania). Sztuczna inteligencja jest nam potrzebna właśnie dlatego, że dany problem nie pasuje do żadnego zamkniętego algorytmu i trzeba wykorzystać dużo bardziej zaawansowane sposoby, aby z takim problemem skutecznie się uporać. W tym kontekście związek frazeologiczny algorytm sztucznej inteligencji jest więc co najmniej nieprecyzyjny. Obawiam się jednak, że już zbyt mocno zakorzenił się w literaturze, by można go było skutecznie wyplenić.

Po wyjaśnieniu, czym jest algorytm, można wyjaśnić, do czego jest nam potrzebna sztuczna inteligencja, na przykład w telewizji dozorowej. Pomoże w tym sympatyczne zwierzę domowe.

 

Fot. 1. Kot i jego schematyczna reprezentacja w standardowym algorytmie rozpoznawania kształtów.
Fot.: K. Bogusz (źródło: https://pl.wikipedia.org/wiki/Kot_domowy#/media/File:Felis_catus-cat_on_...), graf.: P. Rogalewski

 

Problem kota

Koty to bardzo wdzięczne zwierzęta, pełne gracji i elegancji. Posiadają też pewną szczególną cechę, o której za chwilę. 

Po lewej stronie fotografii 1. znajduje się kot, a po prawej jego przykładowa schematyczna reprezentacja w algorytmie detekcji kształtów. Ramy niniejszego artykułu i całego cyklu, do którego on należy, nie pozwalają na szczegółowe opisanie działania tego typu algorytmów. Zainteresowanym zgłębieniem zagadnienia polecam np. opracowania dotyczące transformaty Hougha i detekcji linii w układzie biegunowymII. Dla nas istotny jest fakt, że jest to standardowy algorytm detekcji kształtów uzupełniony o mechanizm kontekstowy, nie bazujący na sztucznej inteligencji. Algorytm „widzi” okrągłą głowę, trójkątne, spiczaste uszy, podłużny tułów, cienkie, podłużne łapki i ogon. Mechanizm kontekstowy próbuje określić na podstawie wzajemnego położenia poszczególnych figur geometrycznych, czym jest dany zbiór kształtów, czyli czym jest w istocie obserwowany obiekt. Problem pojawia się w momencie, gdy kot wykorzysta swoją szczególną cechę, a mianowicie elastyczność ciała umożliwiającą przyjmowanie bardzo różnych pozycji. 

Standardowy algorytm w takiej sytuacji pogubi się całkowicie, gdyż mechanizm kontekstowy nie wykrywa, że przemieszczone w nietypowe miejsca albo nawet brakujące trójkąty, okręgi i elipsy to nadal części tego samego obiektu. W celu ustalenia, że to wciąż jest kot, będzie potrzeba znacznie więcej. To właśnie doskonałe pole do działania dla sztucznej inteligencji, która potrafi uporać się z takim zadaniem. Ale jak to robi? Skąd taki system wie, że śpiący kot to nadal kot? Odpowiedź jest prosta: bo się tego nauczył, a właściwie, ściślej rzecz ujmując, został tego nauczony. „Pokazano” mu tysiące fotografii kotów w bardzo wielu pozycjach, o różnych kolorach, różnych ras, wielkości itd. Innymi słowy system został wytrenowany do wyszukiwania kotów na obrazie. To oczywiście tylko przykład, ale w telewizji dozorowej standardowe algorytmy detekcji kształtów i analizy ruchu już dziś zaczynają oddawać pole rozwiązaniom z dziedziny sztucznej inteligencji. Oto kilka przykładów:

  • poruszające się na wietrze gałęzie nad płotem będą ignorowane w odróżnieniu od człowieka przechodzącego przez ten płot;
  • zwierzęta wchodzące na chroniony teren nie będą wyzwalały alarmu w odróżnieniu od osób lub pojazdów;
  • w zarejestrowanym materiale zostaną odnalezione wszystkie auta określonego koloru i podanej marki, a nawet określonego modelu;
  • w zarejestrowanym materiale zostaną odnalezione wszystkie osoby jadące pojazdami jednośladowymi.

Te przykładowe systemy zostały wcześniej nauczone tego, czego powinny szukać, na jakie cechy obiektów i ich zachowań zwracać uwagę, a które pomijać. Rozwiązania tego typu już istnieją i działają, a kilku czołowych producentów systemów telewizji dozorowej ma je w swojej ofercie.

AI a big data

Kolejne części niniejszego cyklu artykułów poświęcę w większości różnym metodom uczenia się przez maszyny lub systemy (ang. machine learning), często nazywanego w języku polskim uczeniem maszynowym (to określenie już zdążyło się upowszechnić), gdyż jest to fundamentalny element sztucznej inteligencji. Zacznę jednak od uporządkowania kategorii procesów w ramach sztucznej inteligencji. 

Sztuczna inteligencja nie mogłaby istnieć bez bardzo dużych zbiorów danych (ang. big data)III – tak dużych, że przetwarzanie ich tradycyjnymi metodami jest znacznie trudniejsze niż samo gromadzenie danych i często nie jest możliwe. Obecnie napisanie aplikacji posługującej się sztuczną inteligencją wcale nie wykracza poza możliwości małego zespołu średniej klasy programistów. Co więc powoduje, że prym w tej dziedzinie wiodą giganci, tacy jak Google, Microsoft czy Facebook? Wbrew pozorom zaplecze finansowe niekoniecznie jest tu na pierwszym miejscu. Kluczem są właśnie ogromne zbiory danych, którymi można „karmić” systemy wykorzystujące sztuczną inteligencję i je skutecznie trenować. Proponuję wpisanie w wyszukiwarce internetowej słowa kot. Liczba wyników, podawana w górnej części strony daje pojęcie o ogromie zbioru zgromadzonych danych – w tym przypadku jest to liczba użyć słowa kot w najrozmaitszych kontekstach. To doskonały przykład użycia big data.

Fot. 2. Śpiącego kota kompletnie nie interesuje problem, jaki stwarza on algorytmowi detekcji kształtów. Fot. i graf.: P. Rogalewski

 

W ramach sztucznej inteligencji możemy wyróżnić dwie główne kategorie procesów: uczenie się przez maszyny lub systemy (machine learning), po polsku nazywane uczeniem maszynowym, oraz procesy wspomagające. Ten podział nie jest dokładny, bo bardzo często procesy z obu kategorii wzajemnie się przenikają i uzupełniają, jednak zastosuję go w celu uporządkowania różnych pojęć. Ogólnie rzecz ujmując, procesy wspomagające to ta część sztucznej inteligencji, która nie zajmuje się bezpośrednio uczeniem się, tylko przygotowaniem zbiorów danych do niego potrzebnych, czyli materiałów do nauki oraz opracowaniem i wykorzystaniem wyników uczenia się. Do elementów z tej kategorii wrócę w kolejnych częściach cyklu, by teraz skupić się na machine learning.

Rys. 1. Uczenie maszynowe i procesy wspomagające sztuczną inteligencję. Graf.: P. Rogalewski

 

Nauka czyni mistrza

Uczenie się przez maszyny lub systemy (albo, inaczej mówiąc, uczenie maszynowe) umożliwia maszynom realizację zadań bez precyzyjnych instrukcji lub ich wykonania pomimo braku części danych koniecznych do wykonania takich zadańIV. Wykorzystując sztuczną inteligencję, maszyny same mogą zdobywać brakujące dane (wiedzę), czyli się uczyć. Uczenie maszynowe jest więc naturalną konsekwencją i wynikiem rozwoju sztucznej inteligencji. Na rys. 1. widoczne są cztery kategorie odpowiadające różnym metodykom uczenia się:

  1. Nauka z trenerem (nadzorowana). Zakłada udział nadzoru w procesie uczenia się i opiera się na porównywaniu nowych danych z dostępnymi, znajdującymi się w pamięci, przykładowymi („treningowymi”) parami informacji, z których jedna jest „wejściowa”, a druga „wyjściowa” (dostępne dane mogą być w zasobach określanych mianem big data). Innymi słowy, system – „widząc”, jak dane dostarczone przez trenera wpływają na wynik „na wyjściu” – będzie starał się przewidzieć, jaki wynik „na wyjściu” dadzą nowe dane wejściowe, których wcześniej nie „widział”.
  2. Nauka bez trenera (nienadzorowana). W tym przypadku system nie otrzymuje z zewnątrz żadnych wskazówek dotyczących relacji między danymi wejściowymi i wyjściowymi. Będzie starał się wyciągać wnioski samodzielnie, np. na podstawie powtarzalności i regularności w danych wejściowych, grupowania ich w zbiory, sortowania itp.
  3. Nauka przez wzmacnianie. Po podjęciu decyzji na podstawie dostępnych danych wejściowych system ulega tzw. wzmocnieniu (wzmocnieniu pozytywnemu), jeżeli decyzja okazała się słuszna, albo tzw. wzmocnieniu negatywnemu po podjęciu niesłusznej decyzji, co jest mechanizmem opisanym w psychologii behawioralnej (wzmocnienie pozytywne jest nagrodą, a wzmocnienie negatywne karą). Wzmocnienie pozytywne jest w tym przypadku silnym, a wzmocnienie negatywne słabym sygnałem odbieranym przez system.
  4. Głębokie uczenie się. Jest to metoda polegająca na wielopoziomowej analizie danych wejściowych, na przechodzeniu od ogółu do szczegółu. Metoda ta, obok automatycznego uczenia się przez system (ang. automatic machine learning), jest obecnie najbardziej zaawansowaną i najbardziej skomplikowaną techniką wspierającą systemy wykorzystujące sztuczną inteligencję.

W kolejnej części skoncentruję się na szczegółach technik uczenia maszynowego i opiszę działanie podstawowego elementu sieci neuronowych – sztucznego neuronu.

Piotr Rogalewski

 

Przypisy

I Lidia Drabik, Elżbieta Sobol, Słownik języka polskiego PWN, Wydawnictwo Naukowe PWN, Warszawa 2018.

II R. O. Duda, P. E. Hart, Use of the Hough Transformation to Detect Lines and Curves in Pictures, (w:) „Association for Computing Machinery”, vol. 15, styczeń 1972.

III V. Mayer-Scho¨nberger, K. Cukier, Big Data: A Revolution That Will Transform How We Live, Work and Think, Houghton Mifflin Harcourt, Boston 2013.

IV T. Mitchell, Machine Learning, McGraw-Hill, Nowy Jork 1997.

 

Zabezpieczenia 2/2019

Wszelkie prawa zastrzeżone. Kopiowanie tekstów bez zgody redakcji zabronione / Zasady użytkowania strony