Wprowadzenie do Sztucznej Inteligencji w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach Przemysław Kobylański Instytut Matematyki i Informatyki Politechnika Wrocławska P. Kobylański Wprowadzenie do Sztucznej Inteligencji 1 / 155 Plan wykładu 1 Wprowadzenie (2g) 2 Inteligentni agenci (2g) 3 Rozwiązywanie problemów przez przeszukiwanie (4g) 4 Nieklasyczne sposoby przeszukiwania (4g) 5 Przeszukiwanie z adwersarzem (4g) 6 Problem spełnienia ograniczeń (2g) 7 Logiczni agenci (4g) 8 Planowanie akcji (4g) 9 Planowanie i działanie w rzeczywistym świecie (4g) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 2 / 155 Literatura Lektura podstawowa 1 2 S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach. Pearson Education Inc., 2010. I. Bratko. Prolog Programming for Artificial Intelligence. Addison-Wesley Publishing Company Inc., 1986. Lektura uzupełniająca 1 W.F. Clocksin, C.S. Mellish. Prolog. Programowanie. Helion, 2003. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 3 / 155 Wprowadzenie (2g) Wykład 1 Wprowadzenie w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach P. Kobylański Wprowadzenie do Sztucznej Inteligencji 4 / 155 Wprowadzenie (2g) Wprowadzenie co to jest sztuczna inteligencja? podstawy sztucznej inteligencji historia sztucznej inteligencji P. Kobylański Wprowadzenie do Sztucznej Inteligencji 5 / 155 Wprowadzenie (2g) Wprowadzenie Co to jest sztuczna inteligencja? Thinking Acting Humanly "The exciting new effort to make computers think ...machines with minds, in the full and literal sense." (Haugeland, 1985) "[The automation of] activities that we associate with human thinking, activities such decision-making, problem solving, learning..." (Hellman, 1978) "The art of creating machines that perform functions that require intelligence when performed by people." (Kurzweil, 1990) "The study of how to make computers do things at which, at the moment, people are better." (Rich and Knight, 1991) P. Kobylański Rationally "The study of mental faculties through the use of computational models. (Charniak and McDermott, 1985) "The study of the computations that make it possible to perceive, reason, and act." (Winston, 1992) "Computational Intelligence is the study of the design of intelligent agents." (Poole et at, 1998) "AI ...is concerned with intelligent behavior in artifacts." (Nilsson, 1998) Wprowadzenie do Sztucznej Inteligencji 6 / 155 Wprowadzenie (2g) Wprowadzenie Co to jest sztuczna inteligencja? Ludzkie działanie Test Turinga zaproponowany przez Alana Turinga w roku 1950. przetwarzanie języka naturalnego reprezentacja wiedzy automatyczne wnioskowanie maszynowe uczenie Pełny test Turinga komputerowe widzenie robotyka P. Kobylański Wprowadzenie do Sztucznej Inteligencji 7 / 155 Wprowadzenie (2g) Wprowadzenie Co to jest sztuczna inteligencja? Ludzkie myślenie Jak działa ludzki umysł? poznawanie przez introspekcję eksperymenty psychologiczne obrazowanie mózgu Example Allen Newell i Herbert Simon opracowali w 1961 roku program GPS (General Problem Solver). Byli bardziej zainteresowani porównaniem sposobu rozwiązywania problemów przez ich program i przez człowieka niż tylko poprawnością działania ich programu. Interdyscyplinarna kognitywistyka (nauki kognitywne, cognitive science) łączy komputerowe modele z AI oraz techniki eksperymentalne z psychologii aby stworzyć precyzyjną i sprawdzalną teorię ludzkiego umysłu. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 8 / 155 Wprowadzenie (2g) Wprowadzenie Co to jest sztuczna inteligencja? Racjonalne myślenie Podejście oparte o prawa poprawnego rozumowania. Sylogizm Arystotelesa dostarczają wzorce wnioskowania, które zawsze dostarcza poprawne wnioski z poprawnych przesłanek (np. "Sokrates jest człowiekiem, wszyscy ludzie są śmiertelni; zatem, Sokrates jest śmiertelny"). Badanie praw poprawnego rozumowania zainicjowało dziedzinę nazywaną logiką. Od 1965 roku istnieją programy, które potrafią rozwiązać każdy rozwiązywalny problem opisany w języku logiki (jeśli nie istnieje rozwiązanie, to taki program może wpaść w nieskończoną pętlę). Nawet problemy opisane kilkuset faktami mogą wykraczać poza możliwości współczesnego komputera, jeśli nie dostarczy się mu wskazówek które kroki wnioskowania wykonać w pierwszej kolejności). P. Kobylański Wprowadzenie do Sztucznej Inteligencji 9 / 155 Wprowadzenie (2g) Wprowadzenie Co to jest sztuczna inteligencja? Racjonalne działanie Agent to coś co działa. Każdy program komputerowy coś robi, ale oczekuje się, że agent komputerowy działa autonomicznie, postrzega środowisko, utrzymuje się przez dłuższy czas, adaptuje się do zmian, wyznacza i osiąga cele. Racjonalny agent to taki, który działa tak aby osiągnąć najlepszy wynik albo, w przypadku niepewności, najlepszy oczekiwany wynik. Książka Russela i Norviga (AIMA) koncentruje się na ogólnych zasadach racjonalnych agentów oraz na komponentach do ich tworzenia. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 10 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: filozofia Czy można użyć formalne reguły do wyprowadzania poprawnych wniosków? Jak umysł wyłania się z fizycznego mózgu? Skąd bierze się wiedza? Jak wiedza prowadzi do działania? * sylogizm Arystoteles 384-322 p.n.e.; projekt mechanicznego kalkulatora Leonardo da Vinci 1452-1519; pierwszy kalkulator Wilhelm Schickard 1592-1635; kalkulator dodający i odejmujący Blaise Pascal 1623-1662; kalkulator dodający, odejmujący, mnożący, pierwiastkujący Gottfried Wilhelm Leibniz 1646-1716 * racjonalizm Rene Descartes (Kartezjusz) 1596-1650 * empiryzm Francis Bacon 1561-1626; zasada indukcji David Hume 1711-1776; logiczny pozytywizm Ludwig Wittgenstein 1889-1951, Bertrand Russell 1872-1970 i Rudolf Carnap 1891-1970 * logiczny związek celu i wiedzy o wynikach akcji Arystoteles 384-322 p.n.e; GPS Newell i Simon P. Kobylański Wprowadzenie do Sztucznej Inteligencji 11 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: matematyka Jakie są formalne reguły wyprowadzania poprawnych wniosków? Co może być obliczone? Jak wnioskować na podstawie niepewnej informacji? * rachunek zdań George Boole 1815-1864; rachunek predykatów pierwszego rzędu Gottlob Frege 1848-1925; relacja między obiektami w logice a obiektami rzeczywistego świata Alfred Tarski 1902-1983 * procedura dowodząca każde prawdziwe twierdzenie z logiki pierwszego rzędu oraz twierdzenie o niezupełności Kurt Gödel 1906-1978; pojęcie obliczalności Alan Turing 1912-1954; problemy wielomianowe i ponadwielomianowe Cobham 1964 i Edmonds 1965; NP-zupełność Steven Cook 1971 i Richard Karp 1972 * idea prawdopodobieństwa Gerolamo Cardano 1501-1576; jak przewidywać wynik gry hazardowej i oczekiwaną wygraną Blaise Pascal 1623-1662; metody statystyczne James Bernoulli 1654-1705 i Pierre Laplace 1749-1827; wyliczanie prawdopodobieństwa na podstawie obserwacji Thomas Bayes 1702-1761 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 12 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: ekonomia Jak powinniśmy podejmować decyzje aby zmaksymalizować zysk? Jak powinniśmy to robić gdy inni nie współdziałają z nami? Jak powinniśmy to robić gdy zysk będzie odległy w przyszłości? * początek ekonomii Adam Smith 1723-1790; teoria użyteczności Leon Walras 1834-1910, Frank Ramsey 1931, John von Neumann i Oskar Morgenstern * teoria gier John von Neumann i Oskar Morgenstern * formalizacja decyzyjnych procesów Markowa Richard Bellman 1957 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 13 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: neurobiologia Jak mózg przetwarza informację? Jednostka obliczeniowa Jednostka pamięci Cykl czasu Operacje/sekundę Aktualizacji pamięci/sek Superkomputer1 104 CPUs 1012 tranzystorów 1014 bitów RAM 1015 bitów na dysku 10 9 sekundy 1015 1014 Komputer osobisty2 4 CPUs 109 tranzystorów 1011 bitów RAM 1013 bitów na dysku 10 9 sekundy 1010 1010 Mózg człowieka3 1011 neuronów 1011 neuronów 1014 synaps 10 3 sekundy 1017 1014 1 IBM BLUE GENE 2 Typowy komputer w 2008 roku. 3 Dane o mózgu są stałe, natomiast dane o komputerach rosną o rząd co 5 lat. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 14 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: neurobiologia Każdy neuron składa się z ciała komórki zawierającej jądro. Z komórki wystaje pewna liczba wypustek nazywanych dendrytami i jedna długa wypustka nazywana aksonem. Typowy akson ma długość 1 cm ale może osiągać do 1 metra. Neuron tworzy połączenia z 10 do 100,000 innymi neuronami za pomocą synaps. Sygnały są przekazywane z jednego neuronu do drugiego przez skomplikowaną reakcję chemiczną. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 15 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: neurobiologia Axonal arborization Axon from another cell Synapse Dendrite Axon Nucleus Synapses Cell body or Soma P. Kobylański Wprowadzenie do Sztucznej Inteligencji 16 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: psychologia Jak ludzie i zwierzęta myślą i działają? * początki psychologii Hermann von Helmholtz 1921-1894 i jego uczeń Wilhelm Wundt 1832-1920; behawioryzm zwierząt Herbert Spencer Jennings 1868-1947; behawioryzm John Watson 1878-1958; kognitywna psychologia postrzegająca mózg jako urządzenie przetwarzające informacje William James 1842-1910; podstawy agentów opartych na wiedzy Kenneth Craik 1943 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 17 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: inżynieria komputerowa Jak możemy budować efektywne komputery? * pierwsza programowalna maszyna tkacka Joseph Marie Jacquard 1752-1834; maszyna analityczna4 Charles Babbage 1792-1871; * elektromechaniczny komputer do łamania kodu Enigmy Heath Robinson z zespołu Alana Turinga 1940; pierwszy ogólnego zastosowania komputer lampowy Colossus zespół Alana Turinga 1943; pierwszy programowalny komputer Z-3 Konrad Zuse 1941 * z AI wywodzą się takie paradygmaty programowania jak programowanie symboliczne, funkcyjne, deklaratywne czy obiektowe 4 Pierwsza programowalna maszyna obliczeniowa. Pierwsze programy pisała Ada Lovelace córka poety Lorda Byrona. Przewidywała ona również, że maszyna analityczna mogłaby w przyszłości grać w szachy albo komponować muzykę. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 18 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: teoria sterowania i cybernetyka Jak artefakty5 mogą działać pod własną kontrolą? * zegar wodny - pierwsza samokontrolująca się maszyna Ktesibios z Aleksandrii ok. 250 p.n.e.; teoria sterowania Norbert Wiener 1894-1964; idea inteligencji jako homeostatycznego urządzenia zawierającego pętlę sprzężenia zwrotnego dla osiągnięcia stabilnego zachowania adaptacyjnego William Ross Ashby 1940; optymalne sterowanie stochastyczne Andriej Kołmogorow 1941, Rudolf Kalman 1960 5 Przedmioty stworzone ludzką ręką. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 19 / 155 Wprowadzenie (2g) Wprowadzenie Podstawy sztucznej inteligencji: lingwistyka Jak się ma język do myśli? * behawioryzm Burrhus Frederic Skinner 1904-1990; struktury syntaktyczne Noam Chomsky; przetwarzanie języka naturalnego; reprezentacja wiedzy P. Kobylański Wprowadzenie do Sztucznej Inteligencji 20 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: "ciąża" sztucznej inteligencji 1943-1955 Warren McCulloch i Walter Pitts (1943) stworzyli model sztucznego neuronu, w którym każdy neuron charakteryzuje się byciem "włączonym" albo "wyłączonym" przełączenia do stanu "włączony" odbywa się przez stymulację wystarczającej liczby sąsiednich neuronów pokazali, że każda obliczalna funkcja może być policzona przez pewną sieć połączonych neuronów każdy logiczny spójnik (i, lub, nie itp.) może być wyrażony przez prostą sieć neuronów zasugerowali, że sztuczna sieć neuronów mogłaby się uczyć P. Kobylański Wprowadzenie do Sztucznej Inteligencji 21 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: "ciąża" sztucznej inteligencji 1943-1955 Donald Hebb (1949) zaproponował prostą regułę aktualizacji wag połączeń między neuronami umożliwiającą uczenie się sieci Hebbian learning stosowane jest do dziś Marvin Minsky i Dean Edmonds (1950) zbudowali pierwszą sztuczną siecią neuronową Snarc (3000 lamp elektronowych i sieć 40 neuronów symulowanych mechanizmem autopilota z bombowca B-52) Alan Turing (1947) wygłosił wykład oparty o własny artykuł Computing Machinery and Intelligence wprowadził w nim Test Turinga, uczenie maszynowe, algorytmy genetyczne i uczenie z pozytywnym wzmocnieniem zaproponował symulowanie umysłu dziecka zamiast symulowania umysłu dorosłego P. Kobylański Wprowadzenie do Sztucznej Inteligencji 22 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: narodziny sztucznej inteligencji 1956 John McCarthy, Marvin Minsky, Claude Shannon i Nathaniel Rochester (1956) zorganizowali dwumiesięczny workshop w Dartmouth College McCarthy po raz pierwszy użył nazwę Sztuczna Inteligencja (Artificial Intelligence) Allen Newell i Herbert Simon z Carnegie Tech (obecnie Carnegie Mellon University CMU) przedstawili swój program LogicTheorist (LT), który miał możliwość symbolicznego myślenia (opracowali język przetwarzania list IPL, w którym zaimplementowali LT) program LogicTheorist był w stanie udowodnić większość twierdzeń z drugiego rozdziału Principia Mathematica Rusella i Whiteheada workshop spowodował, że sztuczna inteligencja przez następne 20 lat była zdominowana przez pracowników i studentów MIT, CMU, Stanford i IBM P. Kobylański Wprowadzenie do Sztucznej Inteligencji 23 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: wczesny entuzjazm, wielkie oczekiwania 1952-1969 CMU: Newell i Simon (1957) opracowali General Problem Solver (GPS), który w przeciwieństwie do LogicTheorist od początku miał naśladować ludzkie podejście do rozwiązywania problemów IBM: Herbert Gelernter (1959) stworzył Geometry Theorem Prover IBM: Arthur Samuel (1952) stworzył serię programów grających w warcaby, które nauczyły się grać na wysokim poziomie amatorskim(szybko grały lepiej niż ich twórca) MIT: John McCarthy (1958) stworzył język LISP, który przez następne 30 lat stał się dominującym językiem programowania w Sztucznej Inteligencji MIT: John McCarthy uruchamia AI lab na Stanford University Rice University: John Alan Robinson (1965) odkrywa zasadę rezolucji P. Kobylański Wprowadzenie do Sztucznej Inteligencji 24 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: wczesny entuzjazm, wielkie oczekiwania 1952-1969 MIT: Minsky promuje serię prac studenckich: James R. Slagle (1963) program SAINT całkujący na poziomie kursu Analiza 1 Tom Evans (1968) program ANALOGY rozwiązujący zadania z testów IQ dotyczące analogii geometrycznych Daniel Bobrow (1967) program STUDENT rozwiązujący proste zadania z algebry zadane językiem naturalnym Terry Winograd i Jack D. Cowan (1963) pokazali jak duża liczba współdziałających elementów może wspólnie reprezentować indywidualne pojęcia jednocześnie zwiększając równoległość i odporność Bernard Widrow i Ted Hoff (1962) tworzą sieć sztucznych neuronów nazwaną Adaline Frank Rosenblatt (1962) tworzy perceptron P. Kobylański Wprowadzenie do Sztucznej Inteligencji 25 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: wczesny entuzjazm, wielkie oczekiwania 1952-1969 Blue Red Red Green Blue Green Green Red P. Kobylański Wprowadzenie do Sztucznej Inteligencji 26 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: dawka rzeczywistości 1966-1973 coś co sprawdza się na małych przykładach najczęściej nie zadziała w praktyce dla większej liczby obiektów (planowanie akcji) automatyczne dowodzenie twierdzeń nie sprawdziło się dla kilkudziesięciu faktów (dowodzenie twierdzeń) naiwna wiara, że serią małych mutacji kodu programu można tworzyć programy rozwiązujące dowolne zadania (ewolucja maszynowa) zbyt prosta reprezentacja uniemożliwia osiągnięcie często najprostszych wyników (perceptron o dwóch wejściach nie potrafi wykryć czy są one różne) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 27 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: systemy oparte na wiedzy 1969-1979 system ekspercki DENDRAL wnioskujący o strukturze molekularnej na podstawie danych ze spektrometru (Buchanan et al. 1969) system ekspercki MYCIN do diagnozowania zakażeń krwi (Feigenbaum et al. początek lat 70-tych) w regułach systemu MYCIN zastosowano współczynniki pewności aby wyrazić niepewne wnioskowanie do reprezentacji wiedzy zastosowano koncepcję ram opracowaną przez Minsky’ego P. Kobylański Wprowadzenie do Sztucznej Inteligencji 28 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: AI staje się przemysłem 1980-teraz system ekspercki R1 opracowany przez firmę DEC do wspomagania konfigurowania komputerów VAX-11/780 (rocznie 40 milionów dolarów oszczędności) w 1981 Japonia ogłasza projekt komputerów piątej generacji (opracowanie komputerów z Prologiem jako językiem maszynowym) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 29 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: powrót sieci neuronowych 1986-teraz w połowie lat 80-tych co najmniej cztery różne zespoły na nowo odkryły algorytm uczenia sieci oparty na wstecznej propagacji (odkryty przez Brysona w roku 1969) badania nad sieciami neuronowymi podzieliły się na dwa obszary: opracowanie architektury i algorytmów oraz zrozumienie ich matematycznych własności modelowanie empirycznych własności rzeczywistych neuronów i ich sieci P. Kobylański Wprowadzenie do Sztucznej Inteligencji 30 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: AI adaptuje metody naukowe 1987-teraz ukryte modele Markowa (HMM) zastosowane do rozpoznawania mowy i pisma ręcznego z takich obszarów jak statystyka, rozpoznawanie wzorców i maszynowe uczenie wyłonił się nowy obszar badań jakim jest eksploracja danych (data mining) na potrzeby wyrażania i operowania niepewną informacją opracowano sieci bayesowkie (Bayesian network) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 31 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: pojawienie się inteligentnych agentów 1995-teraz opracowanie architektury SOAR dla inteligentnych agentów (John Laird, Allen Newell, Paul Rosenbloom 1987) internet jako jedno z najważniejszych środowisk dla inteligentnych agentów (tzw. boty) Human Level Artificial Intelligence (HLAI) – na fali rozczarowania osiągnięciami w zakresie sztucznej inteligencji zaproponowano powrót do jej korzeni, czyli do prac nad maszynami, które myślą, uczą się i tworzą Artificial General Intelligence (AGI) – poszukiwania uniwersalnego algorytmu na uczenie się i działanie w dowolnym środowisku P. Kobylański Wprowadzenie do Sztucznej Inteligencji 32 / 155 Wprowadzenie (2g) Wprowadzenie Historia sztucznej inteligencji: dostępność wielkich zbiorów danych 2001-teraz główny obiektem dotychczasowych badań informatyki był algorytm, jednak w ostatnich badaniach z zakresu sztucznej inteligencji sugeruje się, że dla wielu problemów ważniejsze byłoby martwienie się o dane niż o wybór odpowiedniego algorytmu internet źródłem ogromnej liczby danych (1012 słów i 109 obrazów) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 33 / 155 Wprowadzenie (2g) Wprowadzenie The State of the Art Autonomiczny samochód projekt STANLEY (Stanford University) projekt BOSS (CMU) Rozpoznawanie mowy rezerwacja lotu w United Airlines Autonomiczne planowanie i harmonogramowanie REMOTE AGENT (NASA) autonomiczny program planujący sterowanie w statkach kosmicznych MAPGEN (NASA) planowanie operacji w Mars Exploration Rovers MEXAR2 (ESA) planowanie logistyczne i naukowe dla misji European’s Space Agency’s Mars Express Granie w gry komputer IBM DEEP BLUE był pierwszym komputerem, który pokonał arcymistrza Garry Kasparova wynikiem 3.5 : 2.5 Zwalczanie spamu systemy uczące się rozpoznawania spamu Sahami et al 1998, Goodman i Heckerman 2004 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 34 / 155 Wprowadzenie (2g) Wprowadzenie The State of the Art Planowanie logistyczne projekt DART (Dynamic Analysis and Replanning Tool) dla automatycznego planowania i harmonogramowania na potrzeby transportu dla 50,000 pojazdów (Konflikt w Zatoce Perskiej 1991) Robotyka sprzedano ponad dwa miliony robotów Roomba, które odkurzają mieszkania (The iRobot Corporation) roboty PackBot wykorzystane w Iraku i Afganistanie do obsługi materiałów niebezpiecznych, rozbrajania min i pułapek, identyfikacji położenia snajperów (The iRobot Corporation) Tłumaczenie maszynowe program do automatycznego tłumaczenia z języka arabskiego na angielski (program oparty na modelach statystycznych, sam uczy się na podstawie przykładów, żaden z członków zespołu nie zna języka arabskiego) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 35 / 155