Struktura agentów

Do tej pory mówiliśmy o agentach, opisując zachowanie – czynność wykonywaną po dowolnej sekwencji perceptów. Teraz musimy ugryźć kulę i porozmawiać o tym, jak działają wnętrzności. Zadaniem AI jest zaprojektowanie programu agenta, który implementuje funkcję agenta – mapowanie z perceptów na działania. Zakładamy, że ten program będzie działał na jakimś urządzeniu obliczeniowym z fizycznymi czujnikami i aktuatorami – nazywamy to architekturą agenta:

agent = architektura + program

Oczywiście wybrany przez nas program musi być odpowiedni dla architektury. Skoro program ma rekomendować takie akcje jak Walk, lepiej żeby architektura miała nogi. Architektura może być zwykłym komputerem PC lub zrobotyzowanym samochodem z kilkoma komputerami pokładowymi, kamery i inne czujniki. Ogólnie rzecz biorąc, architektura udostępnia programowi spostrzeżenia z czujników, uruchamia program i przekazuje wybory akcji programu do elementów wykonawczych w miarę ich generowania.

ZNANE VS. NIEZNANE

Ściśle mówiąc, to rozróżnienie nie odnosi się do samego środowiska, ale do stanu wiedzy agenta (lub projektanta) o „prawach fizyki” środowiska. W znanym środowisku podane są wyniki (lub prawdopodobieństwa wyniku, jeśli środowisko jest niedeterministyczne) dla wszystkich działań. Oczywiście, jeśli środowisko jest nieznane, agent będzie musiał nauczyć się, jak ono działa, aby podejmować dobre decyzje. Rozróżnienie między znanymi i nieznanymi środowiskami nie jest takie samo, jak między środowiskami w pełni i częściowo obserwowalnymi. Jest całkiem możliwe, że znane środowisko jest częściowo obserwowalne – na przykład w grach karcianych pasjans znam zasady, ale nadal nie widzę kart, które nie zostały jeszcze odwrócone. I odwrotnie, nieznane środowisko może być w pełni obserwowalne — w nowej grze wideo ekran może pokazywać cały stan gry, ale nadal nie wiem, co robią przyciski, dopóki ich nie wypróbuję. Jak zauważono na stronie 39, sama miara wydajności może być nieznana, albo dlatego, że projektant nie jest pewien, jak ją poprawnie zapisać, albo dlatego, że ostateczny użytkownik, którego preferencje mają znaczenie, nie jest znany. Na przykład taksówkarz zazwyczaj nie wie, czy nowy pasażer woli spokojną czy szybką podróż, ostrożny czy agresywny styl jazdy. Wirtualny osobisty asystent zaczyna nie wiedzieć nic o osobistych preferencjach swojego nowego właściciela. W takich przypadkach agent może dowiedzieć się więcej o mierze wydajności na podstawie dalszych interakcji z projektantem lub użytkownikiem. To z kolei sugeruje, że środowisko zadaniowe jest z konieczności postrzegane jako środowisko wieloagentowe. Najtrudniejszy przypadek jest częściowo obserwowalny, wieloagentowy, niedeterministyczny, sekwencyjny, dynamiczny, ciągły i nieznany. Jazda taksówką jest trudna pod każdym względem, z wyjątkiem tego, że środowisko kierowcy jest głównie znane. Jazda wynajętym samochodem w nowym kraju o nieznanej geografii, z różnymi przepisami ruchu drogowego i nerwowymi pasażerami jest o wiele bardziej ekscytująca.  Pamiętaj, że właściwości nie zawsze są cięte i suszone. Na przykład wymieniliśmy zadanie diagnozy medycznej jako jednoczynnikowe, ponieważ proces chorobowy u pacjenta nie jest opłacalnie modelowany jako czynnik; ale system diagnostyki medycznej może również mieć do czynienia z opornymi pacjentami i sceptycznym personelem, więc środowisko może mieć aspekt wieloagentowy. Co więcej, diagnoza medyczna jest epizodyczna, jeśli pojmujemy zadanie jako wybór diagnozy na podstawie listy objawów; problem jest sekwencyjny, jeśli zadanie może obejmować proponowanie serii testów, ocenę postępów w trakcie leczenia, obsługę wielu pacjentów i tak dalej. Nie uwzględniliśmy kolumny „znany/nieznany”, ponieważ, jak wyjaśniono wcześniej, nie jest to ściśle własnością środowiska. W niektórych środowiskach, takich jak szachy i poker, dość łatwo jest zapewnić agentowi pełną znajomość zasad, niemniej jednak warto zastanowić się, w jaki sposób agent może nauczyć się grać w te gry bez takiej wiedzy, umiejętności. Eksperymenty są często przeprowadzane nie dla pojedynczego środowiska, ale dla wielu środowisk zaczerpniętych z klasy środowiska. Na przykład, aby ocenić kierowcę taksówki w symulowanym ruchu, chcielibyśmy przeprowadzić wiele symulacji przy różnych warunkach ruchu, oświetlenia i pogody. Interesuje nas wtedy średnia wydajność agenta w klasie środowiska.

DYSKRETNY VS. CIĄGŁY

Rozróżnienie dyskretne/ciągłe dotyczy stanu środowiska, sposobu operowania czasem oraz spostrzeżeń i działań agenta. Na przykład środowisko szachowe ma skończoną liczbę odrębnych stanów (z wyłączeniem zegara). Szachy mają również dyskretny zestaw percepcji i działań. Prowadzenie taksówki jest problemem ciągłym i ciągłym: prędkość i lokalizacja taksówki oraz innych pojazdów przechodzą przez szereg ciągłych wartości i robią to płynnie w czasie. Działania związane z kierowaniem taksówką są również ciągłe (kąty skrętu itp.). Dane wejściowe z kamer cyfrowych są ściśle mówiąc dyskretne, ale zazwyczaj są traktowane jako reprezentujące stale zmieniające się natężenia i lokalizacje.

STATYCZNE VS. DYNAMICZNE

Jeśli środowisko może się zmienić, gdy agent rozważa, wtedy mówimy, że środowisko jest dynamiczne dla tego agenta; w przeciwnym razie jest statyczny. Ze środowiskami statycznymi łatwo sobie poradzić, ponieważ agent nie musi patrzeć na świat podczas podejmowania decyzji, ani martwić się upływającym czasem. Z drugiej strony środowiska dynamiczne nieustannie pytają agenta, co chce zrobić; jeśli jeszcze nie zdecydował, liczy się to jako decyzja o nierobieniu niczego. Jeśli samo środowisko nie zmienia się wraz z upływem czasu, ale zmienia się ocena wydajności agenta, wtedy mówimy, że środowisko jest semidynamiczne. Jazda taksówką jest wyraźnie dynamiczna: inne samochody i sama taksówka poruszają się, podczas gdy algorytm jazdy zastanawia się, co dalej. Szachy grane zegarem są półdynamiczne. Krzyżówki są statyczne.

Epizodyczne vs. sekwencyjne

W epizodycznym środowisku zadań doświadczenie agenta jest podzielone na epizody atomowe. W każdym odcinku agent otrzymuje percepcję, a następnie wykonuje pojedynczą akcję. Co najważniejsze, następny odcinek nie zależy od działań podjętych w poprzednich odcinkach. Wiele zadań klasyfikacyjnych ma charakter epizodyczny. Na przykład agent, który musi wykryć wadliwe części na linii montażowej, opiera każdą decyzję na bieżącej części, niezależnie od wcześniejszych decyzji; ponadto aktualna decyzja nie ma wpływu na to, czy kolejna część jest wadliwa. Z drugiej strony w środowiskach sekwencyjnych bieżąca decyzja może wpłynąć na wszystkie przyszłe decyzje. Prowadzenie szachów i taksówek odbywa się sekwencyjnie: w obu przypadkach działania krótkoterminowe mogą mieć długoterminowe konsekwencje. Środowiska epizodyczne są znacznie prostsze niż środowiska sekwencyjne, ponieważ agent nie musi myśleć z wyprzedzeniem.

Deterministyczny a niedeterministyczny

. Jeśli następny stan środowiska jest całkowicie określony przez stan bieżący i akcję wykonaną przez agenta(ów), wtedy mówimy, że środowisko jest deterministyczne; w przeciwnym razie jest niedeterministyczny. W zasadzie agent nie musi martwić się niepewnością w całkowicie obserwowalnym, deterministycznym środowisku. Jeśli jednak środowisko jest częściowo obserwowalne, może wydawać się niedeterministyczne. Większość rzeczywistych sytuacji jest tak złożona, że ​​niemożliwe jest śledzenie wszystkich niezauważonych aspektów; ze względów praktycznych należy je traktować jako niedeterministyczne. Jazda taksówką jest w tym sensie wyraźnie niedeterministyczna, ponieważ nigdy nie można dokładnie przewidzieć zachowania ruchu; co więcej, opony mogą niespodziewanie wybuchnąć, a silnik może zatrzymywać się bez ostrzeżenia. Świat próżni, jak go opisaliśmy, jest deterministyczny, ale jego odmiany mogą zawierać elementy niedeterministyczne, takie jak losowo pojawiający się brud i zawodny mechanizm ssący (Ćwiczenie 2.VFIN). Ostatnia uwaga: słowo stochastyczne jest używane przez niektórych jako synonim słowa „niedeterministyczny”, ale my dokonujemy rozróżnienia między tymi dwoma terminami; mówimy, że model środowiska jest stochastyczny, jeśli wyraźnie zajmuje się prawdopodobieństwami (np. „jutro jest 25% szans na deszcz”) i „niedeterministyczny”, jeśli możliwości są wymienione bez kwantyfikacji (np. „istnieje szansa na deszcz jutro”).

POJEDYNCZY AGENTA VS. MULTIAGENT

Rozróżnienie między środowiskami jedno- i wieloagentowymi może wydawać się dość proste. Na przykład agent rozwiązujący samodzielnie krzyżówkę jest wyraźnie w środowisku jednego agenta, podczas gdy agent grający w szachy jest w środowisku dwóch agentów. Są jednak pewne subtelne kwestie. Najpierw opisaliśmy, jak podmiot może być postrzegany jako agent, ale nie wyjaśniliśmy, które podmioty należy postrzegać jako agentów. Czy agent A (na przykład taksówkarz) musi traktować obiekt B (inny pojazd) jako agenta, czy może być traktowany jedynie jako obiekt zachowujący się zgodnie z prawami fizyki, analogicznie do fal na plaży lub liści wiejący wiatr? Kluczowym rozróżnieniem jest to, czy zachowanie agenta najlepiej opisać jako maksymalizację miernika wydajności, którego wartość zależy od zachowania agenta. Na przykład w szachach, przeciwnik B próbuje zmaksymalizować swoją miarę wydajności, która, zgodnie z zasadami szachów, minimalizuje miarę wydajności agenta. Szachy są więc konkurencyjnym środowiskiem wieloagentowym. Z drugiej strony, w środowisku kierowców taksówek unikanie kolizji maksymalizuje pomiar wydajności wszystkich agentów, więc jest to częściowo współpracujące środowisko wieloagentowe. Jest też częściowo konkurencyjny, bo np. tylko jeden samochód może zajmować miejsce parkingowe. Problemy z projektowaniem agentów w środowiskach wieloagentowych często różnią się od tych w środowiskach z jednym agentem; na przykład komunikacja często pojawia się jako racjonalne zachowanie w środowiskach wieloagentowych; w niektórych konkurencyjnych środowiskach zachowanie losowe jest racjonalne, ponieważ pozwala uniknąć pułapek przewidywalności

Właściwości środowisk zadaniowych

Zakres środowisk zadaniowych, które mogą powstać w AI, jest oczywiście ogromny. Możemy jednak zidentyfikować dość niewielką liczbę wymiarów, według których można kategoryzować środowiska zadań. Wymiary te w dużej mierze determinują odpowiedni projekt agenta i możliwość zastosowania każdej z głównych rodzin technik implementacji agenta. Najpierw wymieniamy wymiary, a następnie analizujemy kilka środowisk zadaniowych, aby zilustrować pomysły. Definicje tutaj są nieformalne; dalsze rozdziały zawierają bardziej precyzyjne stwierdzenia i przykłady każdego rodzaju środowiska.

W PEŁNI OBSERWOWALNE VS. CZĘŚCIOWO OBSERWOWALNE: Jeśli czujniki agenta dają mu dostęp do pełnego stanu środowiska w każdym momencie, wtedy mówimy, że środowisko zadania jest w pełni obserwowalne. Środowisko zadania jest skutecznie w pełni obserwowalne, jeśli czujniki wykryją wszystkie aspekty, które są istotne dla wyboru działania; znaczenie z kolei zależy od miary wydajności. W pełni obserwowalne środowiska są wygodne, ponieważ agent nie musi utrzymywać żadnego stanu wewnętrznego, aby śledzić świat. Środowisko może być częściowo obserwowalne z powodu zaszumionych i niedokładnych czujników lub dlatego, że części stanu po prostu brakuje w danych czujnika – na przykład odczynnik próżniowy z tylko lokalnym czujnikiem zabrudzenia nie może stwierdzić, czy jest brud w innych kwadratach, a zautomatyzowana taksówka nie widzi, co myślą inni kierowcy. Jeśli agent nie ma żadnych czujników, środowisko jest nieobserwowalne. Można by pomyśleć, że w takich przypadkach sytuacja agenta jest beznadziejna, ale, jak omawiamy w rozdziale 4, cele agenta mogą być nadal osiągalne, czasami z pewnością.

Określanie środowiska zadania

Teraz, gdy mamy już definicję racjonalności, jesteśmy prawie gotowi pomyśleć o budowaniu racjonalnych agentów. Najpierw jednak musimy pomyśleć o środowiskach zadaniowych, które są zasadniczo „problemami”, dla których racjonalni agenci są „rozwiązaniami”. Zaczynamy od pokazania, jak sprecyzować środowisko zadania, ilustrując proces kilkoma przykładami. Następnie pokazujemy, że środowiska zadaniowe występują w różnych odmianach. Charakter środowiska zadaniowego bezpośrednio wpływa na odpowiedni projekt programu agenta.

2.3.1 Określanie środowiska zadania

W naszej dyskusji na temat racjonalności prostego środka do odkurzacza musieliśmy określić miarę wydajności, środowisko oraz siłowniki i czujniki środka. Wszystkie te elementy grupujemy pod nagłówkiem środowiska zadaniowego. Dla osób myślących akronimicznie nazywamy to opisem PEAS (Performance, Environment, Actuators, Sensors). Projektując agenta, pierwszym krokiem zawsze musi być jak najpełniejsze określenie środowiska zadań. Świat próżni był prostym przykładem; rozważmy bardziej złożony problem: zautomatyzowany taksówkarz. Każdy element omawiamy bardziej szczegółowo w kolejnych akapitach. Po pierwsze, do jakiej miary wydajności chcielibyśmy, aby nasz zautomatyzowany kierowca dążył? Pożądane cechy obejmują dotarcie do właściwego celu; minimalizacja zużycia paliwa i zużycia; minimalizacja czasu lub kosztów podróży; minimalizowanie naruszeń przepisów ruchu drogowego i przeszkadzania innym kierowcom; maksymalizacja bezpieczeństwa i komfortu pasażerów; maksymalizacja zysków. Oczywiście niektóre z tych celów są sprzeczne, więc konieczne będą kompromisy. Następnie, jakie jest środowisko jazdy, z którym będzie musiała zmierzyć się taksówka? Każdy taksówkarz musi radzić sobie z różnymi drogami, od wiejskich i miejskich po 12-pasmowe autostrady. Na drogach jest inny ruch, pieszych, bezpańskie zwierzęta, roboty drogowe, samochody policyjne, kałuże i wyboje. Taksówka musi również wchodzić w interakcje z potencjalnymi i rzeczywistymi pasażerami. Istnieje również kilka opcjonalnych wyborów. Taksówka może potrzebować jechać w południowej Kalifornii, gdzie śnieg rzadko stanowi problem, lub na Alasce, gdzie rzadko go nie ma. Zawsze może to być jazda z prawej strony, lub możemy chcieć, aby była wystarczająco elastyczna, aby jechać lewą stroną w Wielkiej Brytanii lub Japonii. Oczywiście im bardziej ograniczone środowisko, tym łatwiejszy problem projektowy.

Siłowniki w zautomatyzowanej taksówce obejmują te dostępne dla kierowcy: sterowanie silnikiem za pomocą akceleratora oraz sterowanie kierowaniem i hamowaniem. Ponadto będzie potrzebować wyjścia na ekran wyświetlacza lub syntezatora mowy, aby porozmawiać z pasażerami i być może jakiś sposób komunikacji z innymi pojazdami, grzecznie lub w inny sposób. Podstawowe czujniki dla taksówki będą obejmować jedną lub więcej kamer wideo, aby mogła widzieć, a także czujniki lidarowe i ultradźwiękowe do wykrywania odległości do innych samochodów i przeszkód. Aby uniknąć mandatów za przekroczenie prędkości, taksówka powinna mieć prędkościomierz, a do prawidłowego prowadzenia pojazdu, zwłaszcza na zakrętach, powinna posiadać akcelerometr. Aby określić stan mechaniczny pojazdu, będzie on potrzebował zwykłego zestawu czujników silnika, paliwa i układu elektrycznego. Podobnie jak wielu ludzkich kierowców, może chcieć uzyskać dostęp do sygnałów GPS, aby się nie zgubić. Wreszcie, będzie potrzebować ekranu dotykowego lub wprowadzania głosowego, aby pasażer zażądał miejsca docelowego. Przykłady obejmują środowiska fizyczne i wirtualne. Zwróć uwagę, że wirtualne środowiska zadań mogą być tak samo złożone, jak „rzeczywisty” świat: na przykład agent oprogramowania (lub robot programowy lub softbot), który handluje na aukcjach i odsprzedaje witryny internetowe, obsługuje miliony innych użytkowników i miliardy obiektów, wiele z prawdziwymi obrazami.

Charakter środowisk

Teraz, gdy mamy już definicję racjonalności, jesteśmy prawie gotowi pomyśleć o budowaniu racjonalnych agentów. Najpierw jednak musimy pomyśleć o środowiskach zadaniowych, które są zasadniczo „problemami”, dla których racjonalni agenci są „rozwiązaniami”. Zaczynamy od pokazania, jak sprecyzować środowisko zadania, ilustrując proces kilkoma przykładami. Następnie pokazujemy, że środowiska zadaniowe występują w różnych odmianach. Charakter środowiska zadaniowego bezpośrednio wpływa na odpowiedni projekt programu agenta.