CMD + K

Kapittel 1Begreper & formler · Intelligente agenter
Referanseside · Kapittel 1

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.

Øv med flashcards27 kort fra dette kapittelet

Begreper

Sentrale begreper fra kapittelet med korte definisjoner.

01Agent

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).

02Persepsjon

Det agentens sensorer leverer på ett tidspunkt, for eksempel ett kamerabilde og én GPS-posisjon (percept).

03Persepsjonssekvens

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).

04Agentfunksjon

Den matematiske avbildningen fra enhver persepsjonssekvens til en handling, . Den beskriver agentens atferd utenfra (agent function).

05Agentprogram

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).

06Ytelsesmål

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).

07Rasjonalitet

Å 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).

08Autonomi

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).

09PEAS-beskrivelse

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).

10Fullt og delvis observerbart

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).

11Episodisk og sekvensiell

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).

12Deterministisk, ikke-deterministisk og stokastisk

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).

13Statisk, dynamisk og semidynamisk

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).

14Diskret og kontinuerlig

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).

15Én agent og fleragent

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).

16Kjent og ukjent miljø

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).

17Enkel refleksagent

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).

18Modellbasert refleksagent

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).

19Målbasert 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).

20Nyttebasert 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).

21Lærende 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).

22Atomisk, faktorisert og strukturert representasjon

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.

agentfunksjon

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.

fagentfunksjonen
𝒫*alle endelige persepsjonssekvenser
𝒜mengden mulige handlinger
tabellstorrelse

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 .

|𝒫|antall mulige persepsjoner per tidssteg
Tagentens levetid i tidssteg
forventet-nytte

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.

a*handlingen agenten velger
P(s′ | s, a)sannsynligheten for utfallet s′ når a gjøres i s
U(s′)nytten av utfallet s′

Kodesnutter

Kodesnutter fra kapittelet, vist literal.

Kode

Hvor stor blir agenttabellen?

Python
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.

Kode

Refleksagent mot modellbasert agent i svømmehallen

Python
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.

  1. 01Skriv en PEAS-beskrivelse for et nytt system og skill aktuatorer fra sensorer
  2. 02Klassifiser et oppgavemiljø langs de sju egenskapene og begrunn hver av dem
  3. 03Skill agentfunksjonen fra agentprogrammet, og regn ut tabellstørrelsen
  4. 04Forklar hvorfor en rasjonell agent ikke er allvitende, og hvorfor ytelsesmålet måles på miljøtilstander
  5. 05Velg en passende agenttype for et gitt miljø og begrunn valget
  6. 06Beskriv rollene i en lærende agent og forskjellen på atomisk, faktorisert og strukturert representasjon