Begreper & referanser
Alle nøkkelbegrepene, formlene og referansene fra Intelligente agenter, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.
Begreper
Sentrale begreper fra kapittelet med korte definisjoner.
Alt som oppfatter omgivelsene sine gjennom sensorer og påvirker dem gjennom aktuatorer. Et menneske, en termostat og en autonom ferje er alle agenter (agent).
Det agentens sensorer leverer på ett tidspunkt, for eksempel ett kamerabilde og én GPS-posisjon (percept).
Hele historikken av alt agenten har oppfattet så langt. Agentens valg kan avhenge av hele sekvensen og av innebygd kunnskap, men ikke av noe den aldri har oppfattet (percept sequence).
Den matematiske avbildningen fra enhver persepsjonssekvens til en handling, . Den beskriver agentens atferd utenfra (agent function).
Den konkrete koden som implementerer agentfunksjonen og kjører på agentens maskinvare. Programmet får nåværende persepsjon som input og må selv lagre det det trenger fra tidligere (agent program).
Målestokken designeren bruker for å gi et forløp en score, for eksempel antall minutter med riktig klornivå i et basseng. Scoren hentes fra tilstanden i miljøet, ikke fra hva agenten gjorde eller mener om seg selv (performance measure).
Å velge handlingen med høyest forventet ytelse ut fra det agenten har oppfattet så langt og det den vet fra før. Valget dømmes etter hva agenten kunne vite da den valgte, ikke etter utfallet, så en rasjonell agent kan fortsatt være uheldig (rationality).
Hvor mye agentens atferd formes av det den selv oppfatter og lærer, sammenlignet med det designeren la inn på forhånd. Jo mer autonom agenten er, desto bedre kan den rette opp en innstilling som viser seg å være feil (autonomy).
Beskrivelsen av et oppgavemiljø i fire deler: ytelsesmål (Performance), miljø (Environment), aktuatorer (Actuators) og sensorer (Sensors). Den er første steg når en agent skal designes (PEAS, task environment).
Et miljø er fullt observerbart når sensorene på hvert tidspunkt gir agenten alt som er relevant for valget. Ellers er det delvis observerbart, og agenten må holde rede på det den ikke ser (fully / partially observable).
I et episodisk miljø består hver episode av én persepsjon og én handling, og valget påvirker ikke senere episoder. I et sekvensielt miljø kan hver handling få følger for alle senere valg (episodic / sequential).
Deterministisk: neste tilstand er helt gitt av nåværende tilstand og handlingen. Stokastisk: utfallene har oppgitte sannsynligheter. Ikke-deterministisk: de mulige utfallene er kjent, men uten sannsynligheter (deterministic / nondeterministic / stochastic).
Statisk: miljøet endrer seg ikke mens agenten tenker. Dynamisk: miljøet endrer seg underveis. Semidynamisk: miljøet står stille, men poengsummen endrer seg med tiden agenten bruker (static / dynamic / semidynamic).
Skillet gjelder tilstander, tid, persepsjoner og handlinger. Et brettspill har endelig mange tilstander (diskret), mens fart og posisjon for en ferje varierer kontinuerlig (discrete / continuous).
Et miljø er et fleragentmiljø når andre aktører best beskrives som agenter som maksimerer et mål som avhenger av vår agents handlinger. Andre agenter kan være motstandere (konkurrerende miljø) eller samarbeidspartnere (samarbeidende miljø) (single-agent / multiagent).
Gjelder agentens kunnskap om «fysikken» i miljøet: i et kjent miljø vet agenten hva handlingene fører til, eller sannsynlighetene for det. Et kjent miljø kan likevel være delvis observerbart (known / unknown).
En agent som velger handling bare ut fra nåværende persepsjon, med betingelse-handling-regler. Den virker bare godt når riktig handling kan avgjøres fra det agenten ser akkurat nå (simple reflex agent).
En refleksagent med en intern tilstand som holder rede på det den ikke ser nå. Den oppdaterer tilstanden med en overgangsmodell (hvordan verden endrer seg og hva handlingene gjør) og en sensormodell (hvordan verden viser seg i persepsjonene) (model-based reflex agent).
En agent som har en beskrivelse av ønskede tilstander og bruker søk eller planlegging for å finne handlinger som fører dit. Endres målet, endres atferden uten nye regler (goal-based agent).
En agent som rangerer tilstander med en nyttefunksjon og velger handlingen med høyest forventet nytte. Den kan veie mål som står mot hverandre, og ta hensyn til usikkerhet (utility-based agent).
En agent med fire deler: ytelseselementet velger handlinger, kritikeren vurderer dem mot en fast ytelsesstandard, læringselementet forbedrer ytelseselementet, og problemgeneratoren foreslår utforskende handlinger (learning agent).
Atomisk: tilstanden er en udelelig svart boks. Faktorisert: tilstanden er et sett variabler med verdier. Strukturert: tilstanden består av objekter og relasjoner mellom dem (atomic / factored / structured representation).
Formler
Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.
Agentfunksjonen
Agentfunksjonen er en abstrakt beskrivelse av atferd: én handling for hver mulig persepsjonssekvens. En vanlig feil er å forveksle den med agentprogrammet, som er koden som realiserer den og bare får nåværende persepsjon som input.
Rader i en tabelldrevet agent
En tabelldrevet agent har én rad per mulig persepsjonssekvens med lengde 1 til . Summen vokser eksponentielt med levetiden, så tabellen blir umulig å lagre selv for små . En vanlig feil er å glemme de korte sekvensene og bare regne .
Nyttebasert valg
En nyttebasert agent bruker modellen sin til å forutsi utfallene av hver handling, vekter nytten med sannsynligheten og velger den største summen. Formelen krever både en overgangsmodell () og en nyttefunksjon (); en målbasert agent har bare et mål som er nådd eller ikke.
Kodesnutter
Kodesnutter fra kapittelet, vist literal.
Hvor stor blir agenttabellen?
antall_persepsjoner = 4 # @param 2..10levetid = 6 # @param 1..12 # Én rad per mulig persepsjonssekvens med lengde 1, 2, ..., levetidrader = sum(antall_persepsjoner ** t for t in range(1, levetid + 1))nye = antall_persepsjoner ** levetid # sekvensene med full lengde def med_mellomrom(n): return f"{n:,}".replace(",", " ") print(f"Rader i agenttabellen: {med_mellomrom(rader)}")print(f"Rader per ny tidsenhet: {med_mellomrom(nye)}")Prøv: øk levetid med 1 og se at Rader i agenttabellen: blir omtrent antall_persepsjoner ganger større, og at Rader per ny tidsenhet: alene er det meste av tabellen.
Refleksagent mot modellbasert agent i svømmehallen
import random forsinkelse = 2 # @param 0..4p_bading = 0.5 # @param 0.0..1.0 0.1 random.seed(4)minutter = 30# Samme besøk for begge agentene: klor som brukes opp hvert minutt (0, 1 eller 2)forbruk = [(random.random() < p_bading) + (random.random() < p_bading) for _ in range(minutter)] def kjor(modellbasert): klor, logg, doser, riktig, for_mye = 5, [], [], 0, 0 for t in range(minutter): logg.append(klor) anslag = logg[max(0, t - forsinkelse)] # måleren viser nivået for en stund siden if modellbasert: # legg til doser måleren ikke har sett, trekk fra ventet forbruk anslag += 3 * sum(doser[max(0, t - forsinkelse):]) - 2 * p_bading * min(t, forsinkelse) doser.append(anslag < 4) klor = max(0, klor + 3 * doser[-1] - forbruk[t]) riktig += 3 <= klor <= 6 for_mye += klor > 6 return riktig, for_mye refleks_riktig, refleks_mye = kjor(False)modell_riktig, modell_mye = kjor(True)print(f"Minutter med riktig klornivå, refleksagent: {refleks_riktig}")print(f"Minutter med riktig klornivå, modellbasert agent: {modell_riktig}")print(f"Minutter med for mye klor, refleksagent: {refleks_mye}")print(f"Minutter med for mye klor, modellbasert agent: {modell_mye}")Prøv: sett forsinkelse til 0 og se at de to linjene Minutter med riktig klornivå blir like, og sett den så til 4 og se at Minutter med for mye klor, refleksagent: stiger, fordi refleksagenten doserer på nytt før måleren har sett forrige dose.
Læringsmål
Hva du skal kunne etter å ha lest kapittelet.
- 01Skriv en PEAS-beskrivelse for et nytt system og skill aktuatorer fra sensorer
- 02Klassifiser et oppgavemiljø langs de sju egenskapene og begrunn hver av dem
- 03Skill agentfunksjonen fra agentprogrammet, og regn ut tabellstørrelsen
- 04Forklar hvorfor en rasjonell agent ikke er allvitende, og hvorfor ytelsesmålet måles på miljøtilstander
- 05Velg en passende agenttype for et gitt miljø og begrunn valget
- 06Beskriv rollene i en lærende agent og forskjellen på atomisk, faktorisert og strukturert representasjon