Myśląc i dyskutując o sztucznej inteligencji, często zapominamy, że jest ona w istocie programem komputerowym. W tym artykule powiemy, czym są programy komputerowe i które z nich możemy nazwać sztuczną inteligencją.
![]() |
Jak działa i myśli sztuczna inteligencja? Ilustracja: Pixabay. |
1. O komputerze
W1936 roku brytyjski matematyk Alan Turing opublikował pracę, w której opisał teoretyczny model komputera (nazwany później maszyną Turinga). Praca ta nosi dziś miano najbardziej wpływowej pracy matematycznej w historii. Dzięki niej wiemy, jakie problemy komputer może rozwiązać i jak złożony jest dany problem z perspektywy komputera, tzn. jak wiele pamięci i ilu operacji komputer będzie potrzebował na jego rozwiązanie. Krótko mówiąc, Alan Turing pokazał ludzkości, czego możemy od komputera oczekiwać, a czego nie.
Niespełna dekadę później, około 1945 roku, powstały pierwsze komputery, a Turing już w 1950 roku napisał kolejny wizjonerski artykuł Computing Machinery and Intelligence, w którym zaproponował metodę rozstrzygnięcia, czy komputer posiada inteligencję (metodę tę znamy dziś pod nazwą testu Turinga). Optymizm poznawczy tamtego czasu doprowadził do powstania w 1956 roku nowej dyscypliny naukowej nazwanej „sztuczną inteligencją”. Turing niestety zmarł dwa lata wcześniej.
Wróćmy jednak do komputerów. Jedną z podstawowych zalet komputera jest jego uniwersalność. Podczas gdy inne urządzenia domowe, jak na przykład odkurzacz, mają ściśle określone przeznaczenie i wąski zakres czynności, jakie możemy za ich pomocą wykonać, komputer wykazuje zdolność do realizacji znacząco szerszej gamy zadań. Ta uniwersalność ma jednak swoją cenę: musimy komputerowi odpowiednio zakomunikować, co i jak ma robić, w języku, który jest on w stanie „zrozumieć”.
2. Programowanie i komunikacja
Komunikację człowieka z komputerem, której celem jest rozwiązanie jakiegoś problemu, nazwiemy programowaniem. Problemy stawiane przed komputerem mogą być proste, np. obliczenie wyniku mnożenia dwóch liczb, lub bardziej złożone, jak napisanie streszczenia kilkustronicowego artykułu. Skoro programowanie to sposób komunikacji człowieka z komputerem, to osobę, która potrafi skutecznie taką komunikację prowadzić, nazwiemy programistą lub programistką. Co ciekawe, programista lub programistka komunikuje się z komputerem w podobny sposób, jak ludzie komunikują się między sobą — używa języka.
Poświęćmy chwilę samej komunikacji. Komunikujemy się, wymieniając komunikaty. Każdy taki komunikat składa się ze słów ułożonych w pewnym porządku, który to porządek definiuje gramatyka języka, którym się posługujemy.
Komunikat jako całość ma też swoją treść (czyli sens), który komunikujący chce odbiorcy tego komunikatu przekazać. Gdy komunikat jest niepoprawny gramatycznie, często nie możemy go zrozumieć. Tak samo jest, gdy komunikat, choć gramatycznie poprawny, zawiera wyrażenia, których znaczenia (czyli sensu) nie znamy. W obu przypadkach mówimy: „To jest bez sensu!”.
Tak więc sprawne używanie języka w komunikacji, zarówno tej międzyludzkiej, jak i między człowiekiem a komputerem, wymaga formułowania komunikatów w języku zrozumiałym dla odbiorcy i to w sposób gramatycznie poprawny, dobierając odpowiednie wyrażenia tak, aby całość komunikatu była sensowna.
3. Języki programowania i program komputerowy
Tak jak jest wiele języków, którymi ludzie komunikują się między sobą, tak też jest wiele języków służących do komunikacji z komputerem, np. Python czy Java, żeby wymienić tylko dwa najpopularniejsze. Nazywamy je językami programowania. Język programowania, jak każdy język, ma swój system znaków, swoją gramatykę oraz reguły definiujące znaczenie/sens wyrażeń (czyli jaki efekt osiągniesz, używając tego czy innego wyrażenia).
Jeśli zostaniesz programistą lub programistką, komunikując się z komputerem (np. za pomocą Pythona czy Javy), będziesz wysyłał(a) komputerowi komunikaty instruujące go, jakie kroki kolejno powinien on wykonać. To jest tak, jakbyś, pisząc program komputerowy, wydawał(a) komputerowi rozkazy: zrób to, a potem tamto, a następnie to itd.
Zatem programowanie to po prostu wprowadzanie instrukcji, które mówią komputerowi, co ma robić krok po kroku, zgodnie z intencją programisty lub programistki.
Zbiór takich instrukcji nazywa się programem komputerowym. I choć instrukcje zawarte w programie komputerowym potrafią być bardzo złożone, a profesjonalne oprogramowanie może składać się nawet z milionów linii kodu, to zawsze kod ten można rozłożyć na prostsze instrukcje postaci:
-
Zrób to!
-
Jeżeli jest tak a tak, zrób to, w przeciwnym razie zrób co innego!
-
Wykonaj to 10 razy!
Jeśli zdecydujesz się na naukę programowania, do czego Cię serdecznie zachęcam, to zapewne zaczniesz od nauczenia się tych prostych instrukcji i sukcesywnie będziesz uczyć się składania ich w większe programy komputerowe.
Pamiętaj! Nie ma zasadniczej różnicy między uczeniem się języka obcego, takiego jak angielski czy włoski, a uczeniem się języka programowania Python czy Java.
4. Inteligentne programy komputerowe
Czy każdy program komputerowy jest sztuczną inteligencją? Kiedy nazwiemy program komputerowy „inteligentnym”? Zanim odpowiemy na te pytania, poświęćmy chwilę samej „inteligencji”.
Powiedzmy uczciwie: nie ma konsensusu wśród uczonych, czym dokładnie jest inteligencja. Osobiście najbardziej sympatyzuję z teorią inteligencji wielorakiej Howarda Gardnera, zgodnie z którą inteligencja rozumiana jest jako zestaw różnych procesów myślowych, które umożliwiają przetwarzanie informacji, rozwiązywanie problemów, podejmowanie decyzji, rozumienie emocji, tworzenie sztuki i wykonywanie przeróżnych skomplikowanych działań. Nie ma więc jednej inteligencji, jest ich wiele.
Tak więc kierowanie autem, rozmowa z przyjacielem, właściwe odczytanie emocji z wyrazu twarzy partnerki czy partnera, stworzenie szkicu Archikatedry Lubelskiej, napisanie streszczenia artykułu, podjęcie decyzji odnośnie do kierunku studiów poprzedzone wielogodzinnymi rozważaniami „za i przeciw”, zrobienie ollie na deskorolce czy w końcu odnalezienie ulubionego sklepu z butami w dużej galerii handlowej będą przejawami procesów myślowych świadczących o tym, że posiadamy w różnym stopniu wiele inteligencji.
Programy komputerowe nazwiemy inteligentnymi, gdy będą automatyzować procesy myślowe standardowo wykonywane przez ludzi. To znaczy, gdy uda nam się napisać program komputerowy, który samodzielnie pokieruje autem lub napisze streszczenie artykułu, lub przeprowadzi poprawne rozumowanie, lub oceni, czy recenzja filmu jest pozytywna, czy negatywna, lub rozpozna stan emocjonalny osoby na podstawie wyrazu jej twarzy itd., to każdy taki program komputerowy nazwiemy sztuczną inteligencją.
Dodajmy, że sztuczną inteligencją mogą być też roboty, w których inteligentne programy sterują urządzeniami peryferyjnymi, takimi jak kamera, koła, ramię itp. Analogicznie do tego, jak procesy myślowe zachodzące w naszych mózgach wykorzystują nasze ciała do różnych działań.
5. Programowanie AI vs. programowanie klasyczne
Powstaje jednak pytanie, skoro — jak powiedzieliśmy wcześniej — programowanie polega na wydawaniu komputerowi przez programistę lub programistkę instrukcji: zrób to, a potem tamto itp., to czy w ogóle można tu mówić o jakiejś inteligencji w komputerze? Czy komputer w ogóle może „wymyślić” cokolwiek, czy też zawsze będzie ograniczony do wykonywania krok po kroku operacji, które my, ludzie, mu zlecimy?
Aby odpowiedzieć na te pytania, musimy zagłębić się nieco bardziej w sam proces programowania i zrozumieć, czym różni się klasyczne programowanie od programowania sztucznej inteligencji. Najlepiej zrobić to na przykładzie.
Przykład: Przyjmijmy, że naszym zadaniem jest napisanie programu komputerowego, który dla zadanego tekstu, np. artykułu prasowego (2–3 strony), będzie tworzył jego streszczenie (powiedzmy, maksymalnie 10 zdań).
Klasyczne podejście do tego problemu polega na tym, że programistka najpierw sama musi wymyślić, jak taki problem rozwiązać (np. wytnij 3 pierwsze zdania ze wstępu artykułu i 2 ostatnie z zakończenia). Następnie programistka zapisuje krok po kroku swój pomysł rozwiązania problemu w języku programowania, a komputer go wykonuje.
Programowanie sztucznej inteligencji odwraca ten proces. Programistka nie komunikuje komputerowi przepisu, czyli algorytmu, jak krok po kroku problem rozwiązać (w naszym przykładzie problemem jest, jak na podstawie artykułu napisać jego streszczenie), ale tworzy w samym komputerze środowisko, tzn. przestrzeń, w której komputer na podstawie wielu przykładów artykułów prasowych i ich streszczeń sam taki przepis wymyśli.
Przestrzenią, gdzie komputer samodzielnie szuka rozwiązania problemu, są najczęściej sztuczne sieci neuronowe. Programistka najpierw programuje, jak taka sieć ma wyglądać, tzn. ile ma mieć neuronów, jaką ma mieć architekturę, czyli jak bardzo ma być złożona. Następnie określa długość procesu uczenia — w praktyce określa, ile razy komputer ma „studiować” zgromadzone wcześniej przykłady artykułów i ich streszczeń. Choć może brzmieć to dość tajemniczo, to nie jest to bardzo skomplikowane, o czym się w dalszej części książki przekonasz.
Z uwagi na to inne podejście do programowania sztucznej inteligencji mówi się raczej o trenowaniu sztucznej inteligencji niż o jej programowaniu. Nie zmienia to jednak faktu, że nadal jest to program komputerowy.
Zauważmy jeszcze, że główną trudnością przy klasycznym programowaniu byłoby wymyślenie przez programistkę, jak utworzyć streszczenia z artykułów prasowych, podczas gdy przy trenowaniu sztucznej inteligencji głównym problemem jest po pierwsze stworzenie pokaźnego materiału do uczenia komputera, nazwanego zbiorem treningowym, złożonego z artykułów prasowych i ich gotowych streszczeń, i po drugie dobranie odpowiedniej architektury sieci neuronowej oraz zdefiniowanie długości procesu uczenia.
Podsumowanie
Powiedzieliśmy, że:
-
Programowanie to sposób komunikacji człowieka z komputerem, którego celem jest rozwiązanie jakiegoś problemu.
-
Programista lub programistka to człowiek, który potrafi skutecznie prowadzić komunikację z komputerem.
-
Program komputerowy to zbiór instrukcji, które mówią komputerowi, co ma robić krok po kroku, zgodnie z intencją programisty lub programistki.
-
Inteligencja to złożony zestaw różnych procesów myślowych, które umożliwiają przetwarzanie informacji, rozwiązywanie problemów, rozumienie emocji, podejmowanie decyzji i wykonywanie różnych działań.
-
Nie ma jednej inteligencji, jest ich wiele.
-
Programy komputerowe nazwiemy inteligentnymi, gdy automatyzują jakieś procesy myślowe standardowo wykonywane przez ludzi.
-
Programowanie (trenowanie) sztucznej inteligencji polega na tworzeniu w komputerze środowiska (najczęściej sztucznych sieci neuronowych), w którym komputer na podstawie wielu przykładów, nazywanych zbiorem treningowym, sam wypracowuje rozwiązanie zadanego problemu.
Robert Trypuz
Autor książki Prosto o AI. Jak działa i myśli sztuczna inteligencja?
Brak komentarzy:
Prześlij komentarz
Komentarze są moderowane.