*

Historia Sztucznej InteligencjiArtificial Intelligence Experts

Kontrowersje i alternatywne paradygmaty

Trudności, takie jak te, o których właśnie pisałem, rozpaliły wiele kontrowersji wśród samych badaczy AI. Sfrustrowani spowolnieniem sztucznej inteligencji ludzie z różnymi podejściami do AI chętnie podeszli do przodu, twierdząc, że to, czego AI potrzebowało, było więcej z tej lub innej alternatywy dla panującego paradygmatu AI {paradygmat, który John Haugeland nazywał "good-old-fashioned AI" lub GOFAI. GOFAI, GOFAI, oczywiście jego głównym uzasadnieniem było przekonanie Newella i Simona, że fizyczny system symboli ma niezbędne i wystarczające środki do inteligentnego działania. " Ale w latach 80. GOFAI wydawało się, że zaczyna brakować, co czyni go wrażliwym na wyzwania samych badaczy AI - wyzwania, które należało potraktować poważniej niż Searle, Dreyfus, Penrose i inni spoza grupy.

O logice

Wśród osób stosujących podejście GOFAI byli ci, którzy stosowali logiczne reprezentacje i logiczne metody wnioskowania {pomysły zapoczątkowane przez Johna McCarthy′ego. Ludzie ci byli czasami nazywani "logikami". Drew McDermott, profesor na Uniwersytecie Yale (doktorat z MIT), był jednym z tych, którzy zaczęli mają wątpliwości co do roli logiki w AI. Fakt ten był znaczący, ponieważ sam McDermott był wybitnym logikiem, ale w wpływowej pracy z 1987 r. Stwierdził, że założenie, że "wiele argumentów można analizować jako dedukcyjne lub w przybliżeniu dedukcyjne, jest błędne". Powiedział dalej

Niestety, im bardziej próbujesz popchnąć projekt logiki, tym mniej dedukcji. Zamiast tego jest ich wniosków, które wydają się tak proste, że muszą być odliczenia, które okazują się mieć elementy niededukcyjne.



Pomyśl o ostatnim planie i zadaj sobie pytanie, czy mógłbyś udowodnić, że plan zadziała. Możliwe, że z łatwością powołasz się na dziesięć prawdopodobnych okoliczności, w których plan nie zadziała, ale mimo to i tak go wprowadziłeś."

Kilku ludzi, logików () i bliskich logików, zaproszono do przesłania "komentarzy" i zostały one opublikowane wraz z artykułem McDermotta. Dyskusje na temat roli logiki w sztucznej inteligencji pomogły przekształcić wykorzystanie logiki przez AI, a w rozszerzonej formie nadal służy jako podstawowy sposób reprezentowania wiedzy deklaratywnej. Kolejny sprzeciw wobec użycia reprezentacji logicznych opierał się na fakcie, że zdania logiczne muszą być prawdziwe lub fałszywe, podczas gdy tak duża część ludzkiej wiedzy jest niepewna. Zarówno MYCIN, jak i PROSPECTOR (wraz z niektórymi innymi systemami eksperckimii) byli w stanie uwzględnić niepewność - MYCIN z jego "współczynnikami pewności" i PROSPECTOR z wykorzystaniem wartości prawdopodobieństwa. Zaproponowano kilka innych pomysłów na rozwiązanie problemu niepewności. Wspomnę o dwóch alternatywach dla prawdopodobieństwa. Jedną z nich jest tak zwana teoria Dempstera - Shafera (D-S) służąca do przypisywania stopni przekonań oświadczeniom i łączenia stopni przekonań w oparciu o niezależne dowody. Teoria D-S była szeroko stosowana w problemach, w których dane z kilku źródeł muszą być łączone (lub "łączone", termin używany przez ludzi z D-S) do podejmowania decyzji. Inną alternatywą dla korzystania z prawdopodobieństw jest "logika rozmyta", wynaleziona przez informatyka Lota Zadeha. Logika rozmyta pozwala na wartości prawdy instrukcji, które przyjmują dowolną wartość od 1 (z pewnością prawda) do 0 (z pewnością fałsz). Opiera się na teorii zbiorów rozmytych, w których członkostwo w zestawie może przyjmować wartości pośrednie między "w zestawie" a "nie w zestawie". Oznacza to, że coś może być" częściowo w zestawie. "Zadeh używa, jako jednego przykładu, zestawu wysokich ludzi. W zależności od definicji wysokiego, powiedzmy, John, który ma 17 stóp (177,8 cm) , może być opisany jako znajdujący się w zestawie "wysoki"do stopnia 0,7. Następnie stwierdzenie" John jest wysoki "miałby wartość prawdy równą 0,7. Na przykład wartość prawdy wynosząca 0,95 może odpowiadać stwierdzeniu "John jest dość wysoki". Modyfikatory takie jak "nieznacznie", "umiarkowanie" i "bardzo" można łatwo przekonwertować na niewyraźne wartości prawdy dla instrukcji, które je wykorzystują. Oto, w jaki sposób wartości prawdy kombinacji wyrażeń są obliczane w logice rozmytej: jeśli A i B są dwoma wyrażeniami, to wartość prawdy kombinacji "spójnej" (A i B) jest mniejsza z wartości prawdy A i B. Wartość prawdy kombinacji "rozłącznej" (A lub B) jest większą z wartości prawdy A i B. Zadeh wskazuje, że jego wartości prawdy i ustalonych wartości członkostwa nie można interpretować jako prawdopodobieństwa. Jego powody nie muszą nas tutaj dotyczyć; w każdym razie sprawa jest kontrowersyjna. (Większość statystyk twierdzi, że teoria prawdopodobieństwa jest jedynym matematycznie rygorystycznym sposobem radzenia sobie z niepewnością.) Wystarczy powiedzieć, że istnieje obszerna literatura na temat logiki uzzy i jej wielu zastosowań, szczególnie w systemach sterowania. Jednym z często cytowanych przykładów użycia sterowania rozmytego jest zmywarka "IntelliSense" firmy Maytag Company. Według relacji prasowej Maytag Co., Newton, Iowa, opracowała, jak twierdzi, pierwszą na świecie inteligentną zmywarkę. Po naciśnięciu jednego przycisku skomputeryzowana maszyna określa optymalny cykl zmywania dla każdego ładunku. umiejętność rozumowania wynika ze sterowania logiką rozmytą i zaawansowanego modułu czujnika, który znajduje się w pompie, mierząc cząsteczki żywności, temperaturę wody, detergent i obroty ramienia myjącego. Według Zadeha logika rozmyta jest jednym z elementów większego wysiłku nazywa "soft computing" - dyscypliną, która " różni się od konwencjonalnego (twardego) przetwarzania tym, że w przeciwieństwie do przetwarzania twardego jest tolerancyjny w przypadku niedokładności, niepewności i częściowej prawdy. W efekcie wzorem do naśladowania dla miękkiego przetwarzania jest ludzki umysł. W przeciwieństwie do tych alternatyw dla teorii prawdopodobieństwa, wynalazek sieci bayesowskich, zrewitalizował metody oparte na prawdopodobieństwach reprezentowania i wnioskowania z niepewnymi informacjami.

"Kludginess"

Kolejna kontrowersja dotyczyła samej natury mechanizmu (lub mechanizmy) leżące u podstaw inteligentnego zachowania. Przeciwstawiając się tym, którzy szukali jednolitej ogólnej zasady opartej na wyszukiwaniu, uczeniu się, logice lub ogromnej ilości zdrowego rozsądku, Marvin Minsky twierdził, że inteligencja (przynajmniej taka, jaką wykazuje ludzki mózg) była "kludge ". (Wśród różnych słowników Istnieją następujące wersje "kludge": 1. System, zwłaszcza system komputerowy, który składa się ze źle dopasowanych elementów lub elementów pierwotnie przeznaczonych do innych zastosowań. Nieudolne lub nieeleganckie rozwiązanie problemu.) Według Minsky′ego inteligencja wynikały być może z setek lub tysięcy ad hoc mechanizmów specjalnych, luźno oddziałujących, czasem współpracujących, a czasem konkurujących, w celu rozwiązania niezliczonych problemów ewoluujących ludzi. Mówiąc słowami Minsky'ego, funkcje mózgu po prostu nie są oparte na żadnym małym zestawie zasad. Zamiast tego bazują na setkach, a może nawet tysiącach. Innymi słowy, mówię, że każda część mózgu jest tym, co inżynierowie nazywają kludge - jest to rozwiązywane przez jury rozwiązanie problemu, osiągane poprzez dodawanie fragmentów maszyn tam, gdzie jest to potrzebne, bez ogólnego ogólnego planu: rezultatem jest to, że ludzki umysł - taki jest mózg robi - należy traktować jako zbiór kludges. Dowody na to są całkowicie jasne: jeśli spojrzysz na indeks dowolnego dużego podręcznika neuronauki, zobaczysz, że ludzki mózg ma wiele setek części - to znaczy podkomputerów -to robią różne rzeczy. Dlaczego nasz mózg potrzebuje tak wielu części? Z pewnością, gdyby nasze umysły opierały się tylko na kilku podstawowych zasadach, nie potrzebowalibyśmy takiej złożoności. Oczywiście to, że mózg jest kludge, nie oznacza, że inteligencja komputerowa musi być. Niemniej jednak niektórzy badacze AI preferowali systemy składające się ze zbiorów eksperymentalnie opracowanych procedur ad hoc zaprojektowanych w celu rozwiązania określonych problemów. Ci ludzie nazywali siebie "zaniedbaniami", aby odróżnić się od "schludnych", którzy faworyzowali programy oparte na teoretycznych zasadach (te terminy najwyraźniej były używane przez Rogera Schanka w latach 70. XX wieku w celu zestawienia jego podejścia do budowania systemów przetwarzania języka naturalnego z bardziej oparte na teoretycznych pracach McCarthy′ego i innych.) W swoim głównym przemówieniu podczas dorocznego spotkania Cognitive Science Society w 1981 r. Robert Abelson porównał oba obozy, mówiąc: "Podstawową troską starannego jest to, że rzeczy powinny być uporządkowane i przewidywalne, podczas gdy niechlujny poszukuje trudnego życia…".Wierzę, że zarówno schludne, jak i zadrapania są potrzebne na polu tak niedojrzałym jak AI. Niechlujstwa lepiej eksplorują granice poza granicami ugruntowanej teorii. Zadbanie pomaga kodyfikować nowo zdobytą wiedzę, aby można ją było uczyć, pisać, i tak zapamiętał.

Informacje o zachowaniu

Roboty oparte na zachowaniu

Stosując podejście nawiązujące do "żółwi Graya Waltera", informatyk z MIT, Rodney Brooks, uniknął złożonych przedstawień i procesów wnioskowania i zamiast tego skupił się na tym, co nazwał "opartym na zachowaniu podejściem do budowania robotów działających w prawdziwym świecie". Brooks napisał, że jego podejście zainspirowało się próbą dekapitulacji ewolucji lub jej przybliżeniem, jako metodologią projektowania, polegającą na tym, że poprawa wydajności polega na stopniowym dodawaniu kolejnych obwodów specyficznych dla sytuacji [lub oprogramowania zorganizowanego jak układy obwodów] podczas opuszczania starego zespołu obwodów na miejscu, zdolny do działania, gdy nowy zespół obwodów nie działa (najprawdopodobniej dlatego, że warunki percepcyjne nie odpowiadają warunkom wstępnym działania). Każda dodatkowa kolekcja obwodów nazywana jest nową warstwą. Każda nowa warstwa powoduje pewne obserwowalne nowe zachowanie w systemie wchodzącym w interakcje z jego środowiskiem. Czyngis, był wczesnym przykładem jednego z robotów Brooksa wykorzystującego obwody warstwowe. Był to sześcionożny robot o długości około 35 cm, rozpiętości nóg 25 cm i wadze około kilograma. Był w stanie czołgać się w trudnym terenie i podążać za osobą za pomocą czujników podczerwieni. Jego czujniki obejmowały dwa przednie wąsy, dwa inklinometry (do pomiaru skoku i przechylenia) oraz sześć do przodu wyglądające pasywne czujniki podczerwieni. Obwód pokładowy kontrolujący Czyngis został zbudowany poprzez stopniowe dodawanie modułów jeden na drugim. Każda warstwa obsługiwała coraz bardziej skomplikowane tryby chodzenia i "zastępowała" (w razie potrzeby zastępowała) warstwę poniżej, gdy warstwa poniżej nie była w stanie poradzić sobie z bieżącą sytuacją. Brooks nazwał ten rodzaj organizacji warstwowej "architekturą subsumpcji". Zespół obwodów składał się z prostych urządzeń obliczeniowych zwanych "rozszerzonymi maszynami skończonymi" (realizowanymi przez 8-bitowe mikroprocesory). W przeciwieństwie do wcześniejszych podejść symbolicznych, podejście Brooksa do robotyki nie wykorzystywało centralnych modeli środowiska i programów do "planowania" kierunków działania. Twierdził, że "hipoteza systemu symboli, na której opiera się klasyczna sztuczna inteligencja, jest fundamentalnie zachwycona…" Zamiast tego, jak napisał Brook, konkretne cele robota nigdy nie są wyraźnie reprezentowane [w podejściu opartym na zachowaniu], ani nie ma żadnych planów - cele są pośrednie w powiązaniu działań z warunkami percepcyjnymi i pozornej realizacji planów rozwija się w czasie rzeczywistym, gdy jedno zachowanie zmienia konfigurację robota na świecie w taki sposób, że nowe warunki percepcyjne wyzwalają kolejny krok w sekwencji działań. W swoim artykule "Elephants Don't Play Chess" Brooks podaje przykłady kilku innych całkiem interesujących systemów robotów opracowanych w jego laboratorium MIT. Tytuł pracy Brooksa ma wskazywać, że dość złożone zachowanie (takie jak na przykład zachowanie słoni) można osiągnąć za pomocą systemów, które (prawdopodobnie) nie mają zdolności reprezentacyjnych i rozumowania wymaganych do inteligentnych działań, takich jak gra w szachy. Mimo że naukowcy zajmujący się sztuczną inteligencją z pewnością byliby zadowoleni z możliwości budowania maszyn z inteligencją słoni, osiągnięcie ostatecznych celów sztucznej inteligencji wymagałoby złożonych metod reprezentacji i rozumowania wykraczających poza możliwości podejścia oparte na zachowaniu. Chociaż myślę, że podążanie ścieżką (lub ścieżkami) ewolucji coraz bardziej zdolnych i inteligentnych zwierząt ma wiele do polecania, nie sądzę, abyśmy byli bardzo daleko w przejściu "od wkładek do ludzi" (do użyj tytułu jednego z artykułów Brooksa) {nie mówiąc już o wstawaniu do słoni.

Programy teleaktywne

Program TR to program kontroli agenta na poziomie pośrednim, który solidnie kieruje robota w kierunku celu w sposób, który stale uwzględnia postrzeganie przez robota jego dynamicznie zmieniającego się środowiska. Być może tolerujesz lekką dygresję w działaniu programów TR. Używam go do zilustrowania niektórych problemów, które pojawiają się w sterowaniu robotem ukierunkowanym na cel. Oto przykład programu TR, który kontroluje robota kopiącego piłkę nożną. ( Program jest naprawdę bardzo prosty; możesz spróbować uruchomić go ręcznie po tym, jak wyjaśnię, jak działają tego rodzaju programy.) Ten program naśladuje, jak początkujący piłkarz (powiedzmy sześciolatek) może zająć się kopaniem piłki nożnej Nie zwracając uwagi na to, co może się dziać, on lub biegnie, aby zbliżyć się do piłki, twarzą do niej, a następnie ją odciąga.

kick(x):
1. Close(x) AND Facing(x) -> foot-swing
2. Close(x) -> face(x)
3. Facing(x) -> move-forward
4. True -> moveto(x)
face(x):
1. Facing(x) -> do-nothing
2. Left(x) -> rotate-ccw
3. True -> rotate-cw
moveto(x):
1. Close(x) -> do-nothing
2. Facing(x) -> move-forward
3. True -> face(x)
Ten program składa się z trzech części, głównej, mianowicie kick (x) i dwóch "podprogramów", mianowicie face (x) i moveto (x). Aby zrozumieć, jak to działa, najpierw opiszę dwa ważne zestawy składników, "procedury percepcyjne" i "prymitywne czynności". Procedury percepcyjne określają, czy jakaś cecha sytuacji robota jest prawdziwa czy fałszywa. Prymitywne procedury działania kontrolują podstawowe działania motoryczne robota i zakłada się, że są wbudowane w robota (podobnie jak "odruchy" są wbudowane w zwierzęta).

•  Procedury percepcyjne
- Zamknij (x) określa, czy robot znajduje się w zasięgu
z x, gdzie x może być w ogóle czymkolwiek. W takich programach x jest nazywany "parametrem" lub "zmienną" programu. Gdy program jest faktycznie uruchomiony, x będzie mieć określoną wartość, taką jak Piłka, piłka nożna. Ale użycie parametru w programie zamiast określonej wartości pozwala nam używać tego samego programu dla różnych "wystąpień" x.
- W obliczu (x) określa, czy robot stoi w kierunku x.
- Lewy (x) określa, czy x jest gdzieś (gdziekolwiek) poza na lewo od kierunku, w którym skierowany jest robot. Jeśli to prawda, robot powinien obracać się w kierunku przeciwnym do ruchu wskazówek zegara, aby był skierowany w stronę x.

•  Prymitywne działania
v - huśtanie się stopy to podstawowa czynność, która szybko przesuwa "stopę" robota do przodu. Jeśli piłka stanie na przeszkodzie, piłka płynie.
- ruch do przodu powoduje, że robot porusza się w kierunku, w którym jest skierowany.
- rotate-ccw sprawia, że robot obraca się (na swoim miejscu) w kierunku przeciwnym do ruchu wskazówek zegara
- rotate-cw sprawia, że robot obraca się (na swoim miejscu) w kierunku zgodnym z ruchem wskazówek zegara.

Inne procedury akcji, mianowicie kick (x), face (x) i moveto (x) to nie prymitywne, ale składają się z innych programów. Zauważ, że ponumerowane linie programów T-R pokazane tutaj składają się z części po lewej stronie strzałki (→) i części po prawej stronie strzałki. Część po lewej stronie nazywana jest "częścią warunku", ponieważ polega na sprawdzeniu, czy jakiś warunek jest spełniony. Część po prawej nazywa się "częścią akcji". Moim pierwszym krokiem do wyjaśnienia, jak działają ogólnie programy T-R, jest pokazanie, jak działa kick (Ball) w konkretnej sytuacji. Załóżmy, że robot jest skierowany w stronę piłki, ale nie jest wystarczająco blisko, aby ją kopnąć. Robot chce kopnąć piłkę, więc aktywuje program kopnięcia (x) z parametrem x ustawionym na Piłka. Oto program aktywowany przez robota:

1. Close(Ball) AND Facing(Ball) → foot-swing
2. Close(Ball) &rar; face(Ball)
3. Facing(Ball) → move-forward
4. True → moveto(Ball)

Zwróć uwagę, że każde pojawienie się x w programie jest teraz zastępowane przez Ball, ponieważ to piłka ma zostać kopnięta. Programy T-R interpretuje się, patrząc na wiersze programu w kolejności numerycznej i identyfikując pierwszy wiersz w programie, którego część warunku jest prawdziwa. Część akcji tej linii jest następnie aktywowana. W tym konkretnym przypadku część warunku linii 1 nie jest prawdziwa, ponieważ robot nie znajduje się blisko piłki. Z tego samego powodu warunek w drugiej linii również nie jest spełniony. Jednak warunek części wiersza 3 jest prawdziwy, więc robot aktywuje skojarzone działanie pierwotne w przód. W międzyczasie i podczas wykonywania akcji ruchu do przodu (to jest ważne!), część systemu robota, która sprawdza, która jest pierwszą prawdziwą linią w programie, wciąż sprawdza (jakby w tle). Wcześniej czy później (jeśli założymy, że robot nie zmienia swojego "kierunku", gdy porusza się do przodu), warunek w części linii 1 stanie się prawdziwy. Właśnie w tym czasie linia 3 nie jest już pierwszą linią programu, którego warunek jest prawdziwy; wiersz 1 to tak więc część akcji linii 3 jest zawieszona, część akcji linii 1 jest aktywowana, a piłka zostaje wyrzucona. Teraz, aby zilustrować solidność programów TR i wyjaśnić, w jaki sposób aktywowane są podprogramy, załóżmy, że wszystko jest takie samo jak poprzednio (mianowicie, robot stoi twarzą do piłki i jest daleko od piłki), ale w tym czasie robot porusza się do przodu (ponieważ aktywowany jest ruch do przodu), robot niechcący zjeżdża z kursu, aby nie był już skierowany w stronę piłki. W momencie, gdy robot dostrzega tę zmianę, linia 3 programu nie jest już pierwszą linią, której częścią warunkową jest prawda - linia 4 jest (ponieważ jej warunek, a mianowicie prawda, zakłada się, że zawsze jest prawdą), aktywacja czasu przesuwania do przodu ustaje, a zamiast tego aktywowana jest funkcja ruchu (Ball) Aby aktywować moveto (Ball), program moveto (x) jest pobierany z "biblioteki programów", a jego parametr, x, jest zastępowany przez Ball, i aktywowany jest następujący program:

moveto(Ball):
1. Close(Ball) → do-nothing
2. Facing(Ball) → move-forward
3. True → face(Ball)

Pierwszą linią tego programu, której część warunku jest prawdziwa, jest linia 3 - co powoduje aktywację face(Ball), innego podprogramu. Jeśli założymy, że zejście robota z jego kierunku spowodowało, że piłka znalazła się po jego lewej stronie, aktywacja face(Ball) spowoduje obrót robota w kierunku przeciwnym do ruchu wskazówek zegara. Wcześniej czy później robot znów będzie skierowany w stronę piłki. Teraz dzieje się ciekawa rzecz. Podprogram moveto (Ball) wraz ze wszystkimi urządzeniami sprawdzającymi jego stan nadal działa w tle. Jego linia 2 jest teraz pierwszą linią w programie, której część warunku jest prawdziwa (zamiast linii 3 jak poprzednio). Tak więc program face(Balla) przestaje działać i program prymitywny do przodu jest aktywny. Jeśli nic więcej się nie wydarzy, linia 1 kopnięcia (x) będzie pierwszą linią w tym programie, którego warunek jest prawdziwy [moveto (piłka) zostanie zawieszona], i zostanie uruchomiona huśtawka. (Uff! Obwody, które kontrolują to wszystko, działają automatycznie, niż my o tym myślimy.) Jeśli nie jesteś wyczerpany, możesz rozważyć inne sposoby aktywacji tych programów. .

Obliczenia w stylu mózgu

Sieci neuronowe

Ponieważ najwyraźniej mózg robi to, co robi, przez masywną równoległość obliczenia realizowane przez sieci połączonych ze sobą neuronów, niektórzy ludzie zaczęli na nowo badać możliwości sieci neuronowych. Pod koniec lat siedemdziesiątych grupa na Uniwersytecie Kalifornijskim w San Diego (UCSD) kierowana przez psychologów poznawczych Davida E. Rumelharta i Jamesa L. McClellanda (rozpoczęła badanie sieci, które oni zwane systemami "równoległego przetwarzania rozproszonego" (PDP). Grupa stała się znana jako grupa PDP. Grupa PDP stwierdziła, że procesy umysłowe w mózgu były wynikiem interakcji między elementarnymi jednostkami neuronowymi połączonymi w sieci. Jednostki te pobudzają się i hamują równolegle. Ten widok obliczeń jest dość sprzeczny z obliczeniami szeregowymi wykonywanymi przez większość metod przetwarzania symboli oraz z hipotezą fizycznego systemu symboli Newella i Simona. Dlatego zamiast przechowywać informacje jako listy w zlokalizowanych strukturach danych, systemy PDP dystrybuowały informacje w połączeniach między jednostkami. Co więcej, sieci neuronowe PDP nie były ograniczone do sprzężonych, warstwowych układów. Nawiązując do pierwotnego poglądu Rosenblatta na ogólne perceptrony, niektóre systemy PDP zezwalały na tak zwane połączenia "rekurencyjne" (będące częściami pętli przez różne jednostki). Jak później zauważył Rumelhart: "Wspólnym tematem wszystkich tych wysiłków było zainteresowanie spojrzeniem na mózg jako na model równoległego urządzenia obliczeniowego, bardzo różniącego się od tradycyjnego komputera szeregowego". Prace PDP zyskały na znaczeniu dzięki publikacji dwóch tomów McClellanda, Rumelharta i grupy badawczej PDP. Ważny rozdział tomu pierwszego, zatytułowany "Uczenie się wewnętrznych reprezentacji przez propagację błędów" autorstwa Rumelharta, Geoffa Reya E. Hintona i Ronalda J. Williamsa, wprowadził nową technikę zwaną "propagacją wsteczną" w celu dostosowania wag sieci. Doprowadziło to do wielu nowych aplikacji. Fizyk John J. Hopfield wynalazł inny rodzaj sieci neuronowej. Każdy element neuronowy w sieci Hopfielda jest połączony ze wszystkimi pozostałymi. Ciężary tych połączeń są symetryczne; to znaczy, jednostka łącząca ciężary i do jednostki j ma taką samą wartość jak jednostka łącząca ciężary j do jednostki i. Działanie sieci jest procesem dynamicznym; to znaczy, wartości jednostek na każdym etapie czasu zależą od wartości na etapie poprzedzającym. Zbiór wartości jednostkowych jest powiązany z tym, co fizycy nazywają "funkcją energii" i (niezależnie od początkowego stanu sieci) wartości te mają tendencję do zbieżności z wartościami odpowiadającymi lokalnie minimalnemu stanowi energii. Są to tak zwane "stany stabilne" sieci i można je traktować jako zbiór pamięci przechowywanych w sieci. Sieci chmielowe zostały wykorzystane jako wspomnienia asocjacyjne i do niektórych prostych obliczeń. (Aby zobaczyć demonstrację sieci Hopfield rozwiązującej dziesięciomiejski problem "podróżującego sprzedawcy", odwiedź http://to-campos.planetaclix.pt/neural/hope.html.) Maszyna A "Boltzmanna " jest opracowaniem siatki pól chmielowych, w której wartości jednostkowe na każdym kroku czasowym zależą losowo od wartości jednostkowych na właśnie poprzedzającym kroku czasowym. Wiele badań sieci neuronowych w tym okresie nazwano obliczeniami "łączącymi" lub "w stylu mózgu", w przeciwieństwie do GOFAI. Inną osobą aktywną w tym ruchu był Jerome A. Feldman, który w 1974 r. Przeniósł się ze Stanford do University of Rochester, aby tam założyć Wydział Informatyki, a także prowadzić badania zorientowane na połączenie.

Procesy dynamiczne

Niektórzy badacze uważają, że procesy dynamiczne, podobne do tych, które wykazują sieci Hopfielda i Boltzmanna (w tym te opisane przez zestawy równań różniczkowych lub różnicowych), leżą u podstaw wielu obliczeń wykonywanych przez mózg. Na przykład w artykule w The MIT Encyclopedia of Cognitive Science napisał Tim van Gelder:

"System dynamiczny do bieżących celów jest zbiorem ilościowym zmiennych zmieniające się w sposób ciągły, równoległy i współzależny w czasie ilościowym zgodnie z prawami dynamicznymi opisanymi przez pewien zestaw równań. Wraz z tym pierwszym zobowiązaniem idzie przekonanie, że dynamika zapewnia odpowiednie narzędzia do zrozumienia procesów poznawczych. …

Centralny wgląd w teorię układów dynamicznych polega na tym, że zachowanie można rozumieć geometrycznie, to znaczy jako kwestię położenia i zmiany położenia w przestrzeni możliwych ogólnych stanów układu. Zachowanie można następnie opisać w kategoriach atraktorów, stanów nieustalonych, stabilności, sprzężenia, rozgałęzień, chaosu i tak dalej - cechy w dużej mierze niewidoczne z klasycznej perspektywy. Jednak w tym samym artykule van Gelder napisał: "Obecnie wiele aspektów poznania -np. rozumienie historii - jest znacznie poza zasięgiem dynamiki leczenie". Randall Beer, informatyk z University of Indiana, jest bardziej optymistyczny. W artykule zatytułowanym" Dynamiczne podejście do kognitywistyki ", Beer napisał, że" dynamiczne podejścia zaczynają angażować merytoryczne pytania empiryczne w kognitywistyce ". podaje trzy przykłady, z których jeden jest symulowanym środkiem, którego ruch poziomy jest kontrolowany przez układ dynamiczny realizowany przez czternasto-neuronową, powtarzalną sieć neuronową w czasie ciągłym. Zadaniem tego agenta jest rozróżnianie dwóch spadających obiektów o różnych kształtach {unikanie jednego kształtu (poprzez zejście z jego ścieżki) i zaangażowanie drugiego (poprzez zejście na jego ścieżkę). Nazywa to zachowanie "minimalnie poznawczym", które określa jako "najprostsze zachowanie, które zaczyna budzić pytania o znaczeniu poznawczym". wiedzy, systemy dynamiczne nie były jeszcze wykorzystywane w zadaniach wymagających więcej niż tych minimalnie poznawczych zachowań. Cechą podkreślaną przez Beer i innych jest znaczenie interakcji między siecią a jej środowiskiem. Rzeczywiście, samo środowisko stanowi ważny element większości dynamicznych systemów. Wykorzystanie właściwości środowiska, aby uprościć cały system, doprowadził do skrajności Mark W. Tilden, który wykonał część swojej pracy w Los Alamos National Laboratory. Na przykład, chodzące roboty Tilden w ogóle nie używają komputerów, ale są w stanie chodzić, wykorzystując rezystywny sygnał wejściowy z ich silników, gdy krążą po nierównym terenie.

Symulowanie ewolucji

Wcześniej omówiłem próby stworzenia inteligentnych artefaktów za pomocą ewolucyjnych procesów losowego generowania i selektywnego przetrwania. Spośród nich najbardziej obiecujące wydają się być algorytmy genetyczne Johna Hollanda (GA). GA próbują ewoluować ciągi znaków, które kodują rozwiązanie określonego problemu. Wiele wczesnych prac w GA używało symboli o wartości binarnej (0 i 1), chociaż można także stosować inne symbole. Problem sprzedawcy podróżującego jest często używany do zilustrowania zastosowania GA. W tym problemie mamy listę miast, które należy odwiedzić, i musimy znaleźć wycieczkę, która rozpoczyna się w jednym mieście, odwiedza wszystkie pozostałe tylko raz i wraca do miasta początkowego. Problem polega na znalezieniu porządku w miastach, który minimalizuje całkowitą odległość. Aby zakodować rozwiązanie, nazwy miast mogą być używane jako symbole. Jeśli na przykład istnieje czternaście miast nazwanych literami A, B ,. . . , N, a jeśli musimy zaczynać i kończyć w mieście C, to ciąg znaków (C, F, N, K, B, L, M, H, D, A, E, G, I, J, C) reprezentuje trasę, która zaczyna się od C, następnie odwiedza F i tak dalej. Zgodnie z terminologią ewolucyjną, całkowity dystans pokonany przez tę trasę jest związany z wytrzymałością tego ciągu. Chcemy, aby krótsze trasy miały większą przyczepność, więc ustawmy wartość trasy na minus jej przebytej odległości. Proces GA próbuje rozwinąć ciąg o maksymalnej sprawności. Proces ewolucyjny rozpoczyna się od zgromadzenia dużej populacji losowych ciągów. W naszym przykładzie problemu z handlowcem-sprzedawcą wszystkie zaczynają się i kończą na C, ale wszystkie inne nazwy mają tylko jeden raz w każdym ciągu. Populacje tych łańcuchów poddawane są dwóm różnym procesom - analogicznym do niektórych z tego, co dzieje się w ewolucji biologicznej. Po pierwsze, niektóre ciągi podlegają losowym mutacjom, w których zmieniane są wartości niektórych ich składników. Przykład mutacji wędrownego sprzedawcy może polegać na zamianie dwóch losowo wybranych symboli w ciągu. Po drugie, pary łańcuchów w populacji, które mają stosunkowo wysoką wiązanie, wybiera się do udziału w operacji zwanej "krzyżowaniem", która generuje łańcuch "potomstwa". W GA stosuje się różne rodzaje operacji krzyżowania. Na przykład podróżujący sprzedawca operacja musi zachować "legalność" łańcucha potomnego; to znaczy musi odpowiadać wycieczce, która odwiedza inne miasta tylko raz. Jednym ze sposobów na to jest powtórzenie w ciągu potomnym pierwszych k symboli jednego z rodziców, a następnie zeskanowanie symboli w drugim rodzicu w celu wykreślenia ciągu potomnego z symbolami, które już tam nie występują. Wartość k jest wybierana losowo. Ilustracja na pokazuje, jak działa ten styl crossovera.



Na każdym etapie procesu ewolucyjnego obecna generacja ciągu daje początek nowej generacji. Nowa generacja zawiera niektóre ciągi ze starej (preferujące ciągi o wysokiej sztywności), zmutowane ciągi i nowe ciągi powstałe w wyniku operacji krzyżowania. Co ciekawe, kolejne pokolenia ostatecznie zawierają ciągi, które coraz lepiej rozwiązują dany problem (w przypadku niektórych rodzajów problemów). GA zostały zastosowane do różnych problemów optymalizacji kombinatorycznej w informatyce, inżynierii, ekonomii, chemii i innych dziedzinach. Encyklopedia internetowa Wikipedia ma doskonałe materiały na temat GA, w tym wskaźniki do samouczków,. Możemy myśleć o algorytmie genetycznym jako procesie wyszukiwania, który próbuje zlokalizować wysokie punkty w "krajobrazie wytrzymałości". Każdy możliwy ciąg GA może być traktowany jako "miejsce" na mapie konturowej, przy czym ciągiem tego ciągu jest wysokość w tym miejscu. Początkowo "spadochroniarze" są losowo upuszczani na krajobraz, a te informują o ich wysokości. Niektóre z nich poruszają się na niewielkie odległości od swoich bieżących pozycji (odpowiadających mutacjom), a niektóre pary rakietowe do pozycji gdzieś pomiędzy ich aktualnymi pozycjami (odpowiadającymi krzyżowaniu). Następnie proces się powtarza. Krajobraz może mieć kilka szczytów, niektóre wyższe niż inne i może mieć kilka płaskowyżów. Po kilku pokoleniach proces GA może odnieść sukces jedynie w poszukiwaniu lokalizacji niewielkich pików lub może mieć trudności z wydostaniem się z dużego płaskowyżu. Ale czasami może to być najwyższy szczyt w krajobrazie. Sztuczna inteligencja zastosowała procedury matematyczne, które nazywają wspinaniem się na wzniesienia (lub wspinaniem się na wzniesienie), ale przed GA zwykle w technikach tych uczestniczył tylko jeden "wspinacz". GA wraz z innymi algorytmami ewolucyjnymi pozwalają kilku wspinaczom na jednoczesne wyszukiwanie, czego rezultatem jest tak zwane "wyszukiwanie równoległe". Jeden ze studentów Johna Holland′a, John Koza, opracował nieco inną procedurę ewolucyjną zwaną Programowaniem Genetycznym (GP). GP rozwija programy LISP zamiast ciągów. Proces rozpoczyna się od losowego zbioru programów zawierających niektóre podstawowe funkcje LISP i stałe uważane za ważne dla rozwiązania danego zadania. Ponownie, losowe mutacje i crossover są wykorzystywane do tworzenia nowej generacji programów. (Późniejsze wersje GP dodały biologicznie inspirowane operacje analogiczne do inwersji, duplikacji genów i usuwania genów). W części mutacji można zastosować różne techniki, w tym zastąpienie części programu losowo wybranymi nowymi komponentami programu. W zwrotnicy wybierane są dwa "programy nadrzędne" o względnie wysokiej dokładności. Losowo wybrane części każdego programu są następnie zamieniane, aby stworzyć dwa nowe programy dla następnej generacji programów. Koza zatrudnił GP do produkcji programów, które stworzyły między innymi nowe rodzaje filtrów elektrycznych, soczewek optycznych, anten i obwodów sterowania. Wiele z tych programów jest, jak sam mówi, "konkurencyjnych w stosunku do ludzkiej wydajności". Twierdzi, że ponieważ głównym celem sztucznej inteligencji jest tworzenie programów zdolnych do inteligentnego zachowania, należy zastosować technikę syntezy programów zdolną do bezpośredniego tworzenia takich programów i że GP jest (jak dotąd) najlepszą taką techniką syntezy. Jak to ujął, praktycznie wszystkie problemy związane ze sztuczną inteligencją, uczeniem maszynowym, systemami adaptacyjnymi i zautomatyzowanym uczeniem się można przekształcić w poszukiwanie programu komputerowego. Programowanie genetyczne zapewnia sposób na udane poszukiwanie programu komputerowego w przestrzeni programów komputerowych. "Od 1999 r. Koza używa swojego GP do pracy z 1000-Pentium "Beowulf-Cluster Computer". On i współautorzy napisali kilka książek i artykułów na temat GP. Istnieje specjalna grupa ds. Obliczeń genetycznych i ewolucyjnych (SIGEVO) Association for Computing Machinery (ACM). Sponsoruje konferencje dotyczące różnych aspektów obliczeń ewolucyjnych, w tym GA i GP. Interesującą narrację wideo pokazującą siłę symulowanej ewolucji, zaprezentowaną na konferencji SIGGRAPH w 1991 r. Jak opisano na stronie internetowej, A populacja kilkuset stworzeń jest tworzona w superkomputerze, a każde stworzenie jest testowane pod kątem jego zdolności do wykonania określonego zadania, na przykład zdolności do pływania w symulowanym środowisku wodnym.

Zmniejszenie celów AI

Podczas zimy AI wielu badaczy AI zaczęło koncentrować się na bardziej skromnych i osiągalnych celach niż na poprzednich latach. Słychać było mniej odważnych przekleństw na temat tego, co AI może ostatecznie osiągnąć. Coraz więcej wysiłku poświęcano temu, co AI (w tym czasie) mogło faktycznie osiągnąć. Rezultatem było więcej pracy na ograniczonej lub "słabej "AI i mniej na "silnej AI". Nacisk kładziono na wykorzystywanie sztucznej inteligencji do pomocy ludziom, a nie ich zastępowania. Firmy i agencje rządowe dysponujące środkami na wsparcie badań zwracały się ogólnie do technologii komputerowych (a nie do sztucznej inteligencji), aby pomóc rozwiązać swoje problemy. Środki na badania przeznaczono na ulepszenie systemów baz danych, interfejsów użytkownika, grafiki, sieci komputerowych, eksploracji danych, gier komputerowych, wyszukiwania informacji, wizji komputerowej oraz edytorów tekstu i programów do arkuszy kalkulacyjnych, aby wymienić tylko kilka obszarów. Technologie AI wyszukiwania i wnioskowania, systemy eksperckie, rozpoznawanie mowy i przetwarzanie języka naturalnego były stosowane, w stosownych przypadkach, jako elementy dużych zintegrowanych systemów. Naukowcy zajmujący się sztuczną inteligencją zaczęli być usatysfakcjonowani dodając do tych systemów odrobiny inteligencji, aby uczynić je bardziej użytecznymi i atrakcyjnymi.