Sztuczna inteligencja - przegląd zagadnień dr inż. Sławomir Samolej email: [email protected] WWW: ssamolej.prz-rzeszow.pl 1 Definicja SI • Sztuczna inteligencja (ang. Artificial Intelligence – AI) – Nauka obejmująca zagadnienia logiki rozmytej, obliczeń ewolucyjnych, sieci neuronowych, sztucznego życia i robotyki. Sztuczna inteligencja to dział informatyki, którego przedmiotem jest badanie reguł rządzących inteligentnymi zachowaniami człowieka, tworzenie modeli formalnych tych zachowań i – w rezultacie – programów komputerowych symulujących te zachowania. 2 Zadania SI • • • • • • • Głównym zadaniem badań nad sztuczną inteligencją w drugim znaczeniu jest konstruowanie maszyn i programów komputerowych zdolnych do realizacji wybranych funkcji umysłu i ludzkich zmysłów niepoddających się prostej numerycznej algorytmizacji. Problemy takie bywają nazywane AI-trudnymi i zalicza się do nich między innymi: podejmowanie decyzji w warunkach braku wszystkich danych analiza i synteza języków naturalnych rozumowanie logiczne/racjonalne, dowodzenie twierdzeń, gry logiczne, jak np. szachy czy go zarządzanie wiedzą, preferencjami i informacją w robotyce systemy eksperckie i diagnostyczne. 3 Podstawowe podejścia do SI • Pierwsze to tworzenie modeli matematyczno-logicznych analizowanych problemów i implementowanie ich w formie programów komputerowych, mających realizować konkretne funkcje uważane powszechnie za składowe inteligencji. W tej grupie, tzw. podejścia symbolicznego, są np. algorytmy genetyczne, metody logiki rozmytej i wnioskowania bazującego na doświadczeniu. • Drugie to podejscie subsymboliczne polegające na tworzeniu struktur i programów "samouczących się", bazujących na modelach sieci neuronowej i sieci asocjacyjnych, oraz opracowywanie procedur "uczenia" takich programów, rozwiązywania postawionych im zadań i szukania odpowiedzi na wybrane klasy "pytań". • Najnowsze podejście do problemów AI to rozwijanie różnych form inteligencji rozproszonej (wzorowanej na organizacjach ludzkich, np. personoidy oraz tzw. agentów autonomicznych i "inteligentnych". Dziedzina ta nosi nazwę Technologii Agentów Inteligentnych (ang. Intelligent Agent Technology)4 Współczesne praktyczne zastosowanie SI (1) • Technologie oparte na logice rozmytej – powszechnie stosowane do np. sterowania przebiegiem procesów technologicznych w fabrykach w warunkach "braku wszystkich danych". • Systemy ekspertowe – systemy wykorzystujące bazę wiedzy (zapisaną w sposób deklaratywny) i mechanizmy wnioskowania do rozwiązywania problemów. • Maszynowe tłumaczenie tekstów – systemy tłumaczące nie dorównują człowiekowi, robią intensywne postępy, nadają się szczególnie do tłumaczenia tekstów technicznych. • Sieci neuronowe – stosowane z powodzeniem w wielu zastosowaniach łącznie z programowaniem "inteligentnych przeciwników" w grach komputerowych. • Uczenie się maszyn – dział sztucznej inteligencji zajmujący się algorytmami potrafiącymi uczyć się podejmować decyzje bądź nabywać wiedzę. • Eksploracja danych – omawia obszary, powiązanie z potrzebami informacyjnymi, pozyskiwaniem wiedzy, stosowane techniki analizy, oczekiwane rezultaty. 5 Współczesne praktyczne zastosowanie SI (2) • Rozpoznawanie obrazów – stosowane są już programy rozpoznające osoby na podstawie zdjęcia twarzy lub rozpoznające automatycznie zadane obiekty na zdjęciach satelitarnych. • Rozpoznawanie mowy i rozpoznawanie mówców – stosowane już powszechnie na skalę komercyjną. • Rozpoznawanie pisma (OCR) – stosowane już masowo np. do automatycznego sortowania listów, oraz w elektronicznych notatnikach. • Sztuczna twórczość – istnieją programy automatycznie generujące krótkie formy poetyckie, komponujące, aranżujące i interpretujące utwory muzyczne, które są w stanie skutecznie "zmylić" nawet profesjonalnych artystów, w sensie, że nie rozpoznają oni tych utworów jako sztucznie wygenerowanych. • W ekonomii, powszechnie stosuje się systemy automatycznie oceniające m.in. zdolność kredytową, profil najlepszych klientów, czy planujące kampanie reklamowe. Systemy te poddawane są wcześniej automatycznemu uczeniu na podstawie posiadanych danych (np. klientów banku, którzy regularnie spłacali kredyt i klientów, którzy mieli 6 z tym problemy). Porażki SI (1) Nie udało się zbudować: • Programów skutecznie wygrywających w niektórych grach. Jak dotąd nie ma programów skutecznie wygrywających w go, brydża sportowego i polskie warcaby, mimo że podejmowano próby ich pisania. Trzeba jednak przyznać, że programy do gry w szachy, w które zainwestowano jak dotąd najwięcej wysiłku i czasu spośród wszystkich tego rodzaju programów, osiągnęły bardzo wysoki poziom, ogrywając nawet mistrza świata Garriego Kasparowa w maju 1997. • Programu, który by umiał idealnie naśladować człowieka, rozmawiając przy użyciu tekstu i potrafiłby przejść test Turinga. Istnieją programy do konwersacji z komputerem, ale każdy człowiek, który miał z nimi wcześniej do czynienia, w krótkim czasie jest w stanie zorientować się, że rozmawia z maszyną, a nie innym człowiekiem. 7 Porażki SI (2) • Programu, który potrafiłby skutecznie generować zysk, grając na giełdzie. Problemem jest masa informacji, którą taki program musiałby przetworzyć i sposób jej kodowania przy wprowadzaniu do komputera. Mimo wielu prób podejmowanych w tym kierunku (zarówno w Polsce jak i na całym świecie), z użyciem sztucznej inteligencji nie da się nawet odpowiedzieć na pytanie, czy jest możliwe zarabianie na giełdzie, bez podawania samego przepisu jak to zrobić. Prawdziwym problemem w tym przypadku może być fakt, że nie istnieje żadna zależność między danymi historycznymi, a przyszłymi cenami na giełdzie (taką tezę stawia hipoteza rynku efektywnego). Gdyby hipoteza ta była prawdziwa, wtedy nawet najlepiej przetworzone dane wejściowe nie byłyby w stanie wygenerować skutecznych i powtarzalnych zysków. Mimo wszystko, cel wydaje się bliski osiągnięcia. Na rynku istnieją fundusze hedgingowe, które osiągają regularne zyski a ich decyzjami inwestycyjnymi nie kieruje człowiek, lecz metoda matematyczna. • Programu skutecznie tłumaczącego teksty literackie i mowę potoczną. Istnieją programy do automatycznego tłumaczenia, ale sprawdzają się one tylko w bardzo ograniczonym stopniu. Podstawową trudnością jest tu złożoność i niejasność języków naturalnych, a w szczególności brak zrozumienia przez program znaczenia tekstu. 8