Sztuczna Inteligencja – czy komputer może zarabiać za nas pieniądze?

Każdy z nas słyszał już zapewne o bezzałogowych samochodach lub samolotach, robotach, botach na Telegramie z którymi można rozmawiać czy inteligentnych domach. Wszystkie te rzeczy można wrzucić do jednego worka, który podpiszemy wzniośle mianem Sztucznej Inteligencji. W tym semestrze mam kurs o takiej nazwie (Sztuczna Inteligencja), postanowiłem napisać o tym kilka słów, żebyśmy wiedzieli o co z tym wszystkim chodzi.

Algorytmy sterujące i decyzyjne

Zanim przejdziemy do szerokiego pojęcia sztucznej inteligencji, możemy poruszyć temat algorytmów sterujących i decyzyjnych w informatyce. Musimy mieć świadomość, że od takich prostych algorytmów decyzyjnych wszystko się zaczyna. Czym właściwie są algorytmy sterujące i decyzyjne?

Źródło: http://softcontrols.plNajlepiej zilustruje to prosty przykład, którym będzie algorytm zarządzania temperaturą w inteligentnym domu. Zadaniem algorytmu jest oczywiście utrzymanie w domu temperatury zadanej przez właściciela domu. Algorytm podejmuje dwie proste decyzje:

  • Jeżeli temperatura w pokoju jest większa niż temperatura zadana przez właściciela, to włącz klimatyzację
  • Jeżeli temperatura w pokoju jest mniejsza niż temperatura zadana przez właściciela, to włącz kaloryfery

Prosty kod algorytmu w pseudo kodzie:

Ten algorytm pozostawia wiele do życzenia, bo z racji tego, że nigdy nie wyłącza ani kaloryferów, ani klimatyzacji, mógłby szybko wyczerpać zapasy finansowe właściciela 🙂 A my (zgodnie z tytułem tego wpisu) chcemy wykorzystać komputery do zarabiania, a nie tracenia za nas pieniędzy. Z tym sami sobie poradzimy 😛

Bot podpowiadający który mecz obstawić

Źródło: http://sport.interia.plProstym pomysłem na program, który będzie za nas zarabiał, jest zauważenie zależności, że lepsze drużyny piłkarskie wygrywają częściej. Zauważając tę zależność nie czuję się co prawda jak Mikołaj Kopernik, który w XVI wieku wstrzymywał Słońce i ruszał Ziemię, ale podsuwa mi ona pewien prosty pomysł.

Może napisać program, który będzie odwiedzał strony z wynikami meczy piłkarskich (tzw. crwawler) i zbierał informacje o tym, która drużyna piłkarska w ostatnim czasie wygrywa mecze? Trochę czasu trzeba by zainwestować w znalezienie stron, na których udostępniają wyniki meczy, ale gdybyśmy zbudowali taką bazę danych o meczach, moglibyśmy np. napisać program, który działałby w następujący sposób:

Wtedy mielibyśmy program, który informuje nas o tym, która drużyna jest w formie i mecz tej drużyny moglibyśmy obstawić. To, czy warto używać pieniędzy na obstawianie meczy pozostawiam czytelnikom – miało nam to tylko posłużyć jako przykład i zachęcić do przeczytania artykułu 😛 Ale posłuchajcie teraz, bo poruszymy jeszcze ciekawszy temat!

Programy, które same się uczą – Sztuczna Inteligencja!

Sztuczna inteligencja (ang. artificial intelligence) to coś więcej niż na sztywno zaprogramowane decyzje. Chodzi o to, żeby napisać taki program, który sam będzie wyciągał wnioski ze swoich działań.

Jako przykład weźmy grę w warcaby. Popularna i przyjemna planszówka. Załóżmy, że naszym zadaniem będzie stworzyć program-gracza, który będzie wygrywał w warcaby. Pierwszym pomysłem, jaki programiście przychodzi do głowy jest zrobienie baaaaardzo wielu instrukcji warunkowych (ifów) i stworzyć taki program:

Nie jest to jednak takie łatwe, bo w tak prostej grze, jaką są warcaby okazuje się, że mamy 500 miliardów miliardów stanów gry (5 razy 10 do 20). Życzę powodzenia programiście, który napisze tyle linii kodu. Nie mówiąc o tym, że dla każdej musiałby wymyślić odpowiedni ruch! 😀

Oczywiście nie tędy droga. Musimy stworzyć program/gracza/bota, który “myśli”. Zaimplementujemy mu tzw. drzewo gry, na podstawie którego program oceniał będzie, jaki ruch da mu najlepszą sytuację na planszy (oraz najgorszą dla przeciwnika). Każdy ruch, to kolejny poziom drzewa gry, kolejne rozgałęzienie. Oczywiście nie jesteśmy w stanie stworzyć drzewa dla wszystkich możliwych ruchów, ale powiedzmy na 5 ruchów do przodu? Może na 6, jeżeli nasz program jest dobrze napisany? Tego w jaki sposób zaimplementować funkcję określającą wartość / korzyść ruchów nie chcę tutaj poruszać.

Mając takie drzewo, nasz bot będzie wybierał ten ruch, którego gałąź da mu największy zysk. Następnie tworzymy 2 graczy tego samego programu i każemy im grać ze sobą. Jednemu z programów implementujemy mechanizmy uczenia się – funkcje, które będą wyciągać wnioski z ruchów, a drugiego nie uczymy. W ten sposób korygujemy funkcję określającą wartość ruchów i okazuje się, że po jakimś czasie jeden program zbyt często wygrywa i już więcej się nie uczy. Gratulacje, Twój program jest wyuczony!

Ale tylko do wygrywania z tym jednym przeciwnikiem. Następnym krokiem jest duplikacja wyuczonego programu i każemy mu znowu grać ze sobą – tym razem przeciwnik jest trudniejszy i znowu program może czegoś się nauczyć. Możemy też sami zagrać z nim w warcaby – będzie to dużo wolniejszy proces uczenia, ale być może wykonamy jakieś nowe ruchy, które czegoś go nauczą, a jeżeli pogramy z nim wystarczająco długo, nie będziemy już z nim w stanie wygrać! 😀

Zastosowania Sztucznej Inteligencji

Bezzałogowy samochód od Google

Oczywiście sztuczna inteligencja to nie tylko gry. Przez ostatnie 20 lat ta dziedzina nauki przeżywa duże zmiany, a obecna moc obliczeniowa komputerów daje nam wielkie możliwości. Sztuczna inteligencja jest wykorzystywana do sterowania robotami, automatycznego oferowania Ci produktów (sklep internetowy patrzy jakie przedmioty przeglądasz i w ten sposób uczy się – tworzy twój profil zainteresowań), wyświetlania odpowiednich reklam i wyników wyszukiwania (wpisując to samo hasło w Google każdy z nas może otrzymać inne wyniki wyszukiwania), sterowania ruchem drogowym (w nowoczesnych miastach na skrzyżowaniach, przez które przejeżdża więcej samochodów dłużej świeci się zielone światło), a ostatnio widziałem nawet, że Telegram chwali się swoją nową funkcjonalnością rozmów, informując nas, że ich jakość jest stale poprawiana przez AI (Sztuczną Inteligencję).

Jakość rozmów przez Telegrama, ulepszana jest dzięki Sztucznej Inteligencji (artificial intelligence)

Jeżeli będziecie mieć w szkole lub na studiach zajęcia dotyczące grafów, Sztucznej Inteligencji lub jakiś prostych algorytmów decyzyjnych, to zachęcam do słuchania. Z mentorami bardzo chcielibyśmy kiedyś zrobić taki konkurs, w którym przygotujemy wirtualny świat z określonymi zasadami, a uczestniczący Irysi tworzyli by swoje boty, które poruszałyby się w tym świecie. Chodzić będzie o to, żeby Twój bot osiągnął określony cel przed botami innych Irysów – np. zniszczył ich wioskę 🙂 Ale najpierw musimy jeszcze poćwiczyć czyste programowania. Czekają nas ciekawe projekty! Zachęcam do komentowania 😉

Aksel N

Aksel Nooitedagt

Wierzę, że dzięki narzędziom i technologii możemy łatwiej osiągać nasze cele 🙂 Interesuje się tworzeniem aplikacji webowych i zarządzaniem projektami (nie tylko informatycznymi).

Like
Like Love Haha Wow Sad Angry

6 Replies to “Sztuczna Inteligencja – czy komputer może zarabiać za nas pieniądze?”

  1. Ja przyszłość widzę w inteligentych lodówkach, które automatycznie zamawiają brakujące jedzenie w sklepie, a później jest ono dostarczanie prosto do domu 😀

  2. Bardzo ciekawy temat, może się wydawać że jest to dopiero przyszłoś ale patrząc na te przykłady które podałeś można zobaczyć że dużo firm już wykorzystuje AI do ulepszania swoich produktów. Ciekawym przykładem też jest Google który wykorzystuje AI do ulepszania Google Translate. btw. Nie mogę się doczekać wspólnych projektów z wykorzystaniem AI

  3. A ja czekam aż będziemy mogli jeździć tak jak tutaj: https://youtu.be/iHzzSao6ypE?t=3m49s 😀 3:50

  4. Ciekawa opcja z tymi światłami 🙂 Ciekawie będzie śledzić postęp technologiczny w naszej codzienności.

  5. Szczerze to nie wsiadłbym do taxówki bez kierowcy

  6. A pomyśleć, że jeszcze kilka lat temu żeby zagrać w warcaby, musieliśmy poprosić kogoś do towarzystwa. Wirtualny świat z botami brzmi bardzo ciekawie i na pewno niejedną osobę zaciekawi tego typu konkurs 🙂

Dodaj komentarz