AI-For-Beginners/translations/sv/lessons/2-Symbolic
localizeflow[bot] 0d26476214 chore(i18n): sync translations with latest source changes (chunk 1/1, 9 changes) 2026-02-28 09:09:20 +00:00
..
Animals.ipynb chore(i18n): sync translations with latest source changes (final snapshot) 2026-01-16 02:45:17 +00:00
FamilyOntology.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
MSConceptGraph.ipynb chore(i18n): sync translations with latest source changes (chunk 1/1, 9 changes) 2026-02-28 09:09:20 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:00:53 +00:00
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:00:53 +00:00

README.md

Kunskapsrepresentation och expertsystem

Summary of Symbolic AI content

Sketchnote av Tomomi Imura

Jakten pÄ artificiell intelligens bygger pÄ en sökning efter kunskap, för att skapa mening i vÀrlden pÄ liknande sÀtt som mÀnniskor gör. Men hur kan man gÄ till vÀga för detta?

För- förelÀsningsquiz

I AI:s tidiga dagar var den top-down-baserade metoden för att skapa intelligenta system (diskuterad i föregÄende lektion) populÀr. Idén var att extrahera kunskap frÄn mÀnniskor till nÄgon maskinlÀsbar form, och sedan anvÀnda den för att automatiskt lösa problem. Denna metod baserades pÄ tvÄ stora idéer:

  • Kunskapsrepresentation
  • Resonemang

Kunskapsrepresentation

Ett av de viktiga begreppen inom Symbolisk AI Àr kunskap. Det Àr viktigt att skilja kunskap frÄn information eller data. Till exempel kan man sÀga att böcker innehÄller kunskap, eftersom man kan studera böcker och bli expert. Men vad böcker egentligen innehÄller kallas data, och genom att lÀsa böcker och integrera dessa data i vÄr vÀrldsmodell omvandlar vi data till kunskap.

✅ Kunskap Ă€r nĂ„got som finns i vĂ„rt huvud och representerar vĂ„r förstĂ„else av vĂ€rlden. Den erhĂ„lls genom en aktiv inlĂ€rningsprocess, som integrerar informationsbitar vi fĂ„r till vĂ„r aktiva modell av vĂ€rlden.

Ofta definierar vi inte kunskap strikt, utan vi relaterar det till andra nÀrliggande begrepp med hjÀlp av DIKW Pyramid. Den innehÄller följande begrepp:

  • Data Ă€r nĂ„got representerat i fysisk media, sĂ„som skriven text eller talade ord. Data existerar oberoende av mĂ€nniskor och kan överföras mellan personer.
  • Information Ă€r hur vi tolkar data i vĂ„rt huvud. Till exempel, nĂ€r vi hör ordet dator, har vi nĂ„gon förstĂ„else av vad det Ă€r.
  • Kunskap Ă€r information som integrerats i vĂ„r vĂ€rldsmodell. Till exempel, nĂ€r vi lĂ€r oss vad en dator Ă€r, fĂ„r vi idĂ©er om hur den fungerar, hur mycket den kostar och vad den kan anvĂ€ndas till. Detta nĂ€tverk av sammanlĂ€nkade begrepp bildar vĂ„r kunskap.
  • Visdom Ă€r en ytterligare nivĂ„ av vĂ„r förstĂ„else av vĂ€rlden, och representerar meta-kunskap, t.ex. nĂ„gon insikt om hur och nĂ€r kunskapen bör anvĂ€ndas.

Bild frÄn Wikipedia, Av Longlivetheux - Egna arbeten, CC BY-SA 4.0

SÄledes Àr problemet med kunskapsrepresentation att finna ett effektivt sÀtt att representera kunskap i en dator i form av data, för att göra den automatiskt anvÀndbar. Detta kan ses som ett spektrum:

Knowledge representation spectrum

Bild av Dmitry Soshnikov

  • Till vĂ€nster finns mycket enkla typer av kunskapsrepresentationer som datorer kan anvĂ€nda effektivt. Den enklaste Ă€r algoritmisk, dĂ€r kunskap representeras av ett datorprogram. Detta Ă€r dock inte det bĂ€sta sĂ€ttet att representera kunskap, eftersom det inte Ă€r flexibelt. Kunskap i vĂ„rt huvud Ă€r ofta icke-algoritmisk.
  • Till höger finns representationer som naturlig text. Det Ă€r den mest kraftfulla, men kan inte anvĂ€ndas för automatiskt resonemang.

✅ TĂ€nk en minut pĂ„ hur du representerar kunskap i ditt huvud och omvandlar den till anteckningar. Finns det nĂ„got sĂ€rskilt format som fungerar bra för att hjĂ€lpa dig att minnas?

Klassificering av datorbaserade kunskapsrepresentationer

Vi kan klassificera olika datorbaserade metoder för kunskapsrepresentation i följande kategorier:

  • NĂ€tverksrepresentationer baseras pĂ„ att vi har ett nĂ€tverk av sammanlĂ€nkade begrepp i huvudet. Vi kan försöka reproducera samma nĂ€tverk som en graf i en dator – ett sĂ„ kallat semantiskt nĂ€tverk.
  1. Objekt-Attribut-VÀrde-tripletter eller attribut-vÀrde-par. Eftersom en graf kan representeras i en dator som en lista av noder och kanter kan vi representera ett semantiskt nÀtverk med en lista av tripletter som innehÄller objekt, attribut och vÀrden. Exempelvis bygger vi följande tripletter om programmeringssprÄk:
Objekt Attribut VĂ€rde
Python Àr Untyped-Language
Python uppfunnet-av Guido van Rossum
Python block-syntax indentering
Untyped-Language har inte typedeklarationer

✅ Fundera pĂ„ hur tripletter kan anvĂ€ndas för att representera andra typer av kunskap.

  1. Hierarkiska representationer betonar att vi ofta skapar en hierarki av objekt i vÄrt huvud. Till exempel vet vi att kanariefÄgel Àr en fÄgel, och alla fÄglar har vingar. Vi har ocksÄ en uppfattning om vilken fÀrg en kanariefÄgel brukar ha och dess flyghastighet.

    • Ramrepresentation (frame) baseras pĂ„ att varje objekt eller objektklass representeras som en ram som innehĂ„ller fack (slots). Facken har möjliga standardvĂ€rden, vĂ€rderestriktioner eller lagrade procedurer som kan anropas för att hĂ€mta ett vĂ€rde. Alla ramar bildar en hierarki liknande en objektklasshierarki i objektorienterade programmeringssprĂ„k.
    • Scenarier Ă€r en speciell typ av ramar som representerar komplexa situationer som kan utvecklas över tid.

Python

Fack VÀrde StandardvÀrde Intervall
Namn Python
Är Untyped-Language
Variabelstil CamelCase
ProgramlÀngd 5-5000 rader
Blocksyntax Indent
  1. Procedurala representationer baseras pÄ att representera kunskap som en lista av ÄtgÀrder som kan utföras nÀr ett visst villkor intrÀffar.

    • Produktionsregler Ă€r om-dĂ„-uttalanden som gör att vi kan dra slutsatser. Till exempel kan en lĂ€kare ha en regel som sĂ€ger att OM en patient har hög feber ELLER hög nivĂ„ av C-reaktivt protein i blodtest SÅ har patienten inflammation. NĂ€r vi stöter pĂ„ ett av villkoren kan vi dra en slutsats om inflammation och anvĂ€nda den i fortsatta resonemang.
    • Algoritmer kan ses som en annan form av procedural representation, men de anvĂ€nds nĂ€stan aldrig direkt i kunskapsbaserade system.
  2. Logik föreslogs ursprungligen av Aristoteles som ett sÀtt att representera universell mÀnsklig kunskap.

    • Predikatlogik som matematisk teori Ă€r för rik för att kunna berĂ€knas, dĂ€rför anvĂ€nds normalt en delmĂ€ngd, som Horn-klasuler i Prolog.
    • Deskriptiv logik Ă€r en familj av logiska system som anvĂ€nds för att representera och resonera om objektshierarkier och distribuerade kunskapsrepresentationer sĂ„som semantiskt web.

Expertsystem

En av de tidiga framgĂ„ngarna för symbolisk AI var de sĂ„ kallade expertsystemen – datasystem utformade för att agera som experter inom ett begrĂ€nsat problemomrĂ„de. De byggde pĂ„ en kunskapsbas extraherad frĂ„n en eller flera mĂ€nskliga experter, och innehöll en slutledningsmotor som utförde resonemang ovanpĂ„ den.

Human Architecture Knowledge-Based System
Förenklad struktur av ett mÀnskligt nervsystem Arkitektur för ett kunskapsbaserat system

Expertsystem byggs som det mÀnskliga resonemangssystemet, som innehÄller korttidsminne och lÄngtidsminne. PÄ liknande sÀtt skiljer vi inom kunskapsbaserade system följande komponenter:

  • Problemminne: innehĂ„ller kunskap om det problem som för nĂ€rvarande löses, t.ex. patientens temperatur eller blodtryck, om han har inflammation eller inte etc. Denna kunskap kallas Ă€ven statisk kunskap, eftersom det Ă€r en ögonblicksbild av vad vi för nĂ€rvarande vet om problemet – det sĂ„ kallade problemets tillstĂ„nd.
  • Kunskapsbas: representerar lĂ„ngtidskunskap om ett problemomrĂ„de. Den extraheras manuellt frĂ„n mĂ€nskliga experter och Ă€ndras inte mellan konsultationer. Eftersom den lĂ„ter oss navigera frĂ„n ett problemstillstĂ„nd till ett annat kallas den Ă€ven dynamisk kunskap.
  • Slutledningsmotor: orkestrerar hela processen att söka i problemets tillstĂ„ndsrum, stĂ€ller frĂ„gor till anvĂ€ndaren vid behov. Den ansvarar ocksĂ„ för att hitta rĂ€tt regler att applicera pĂ„ varje tillstĂ„nd.

Som exempel, lÄt oss betrakta följande expertsystem för att bestÀmma ett djur baserat pÄ dess fysiska egenskaper:

AND-OR Tree

Bild av Dmitry Soshnikov

Detta diagram kallas för ett AND-OR-trÀd och Àr en grafisk representation av en uppsÀttning produktionsregler. Att rita ett trÀd Àr anvÀndbart i början nÀr kunskap ska extraheras frÄn experten. För att representera kunskap i datorn Àr det oftare lÀmpligare att anvÀnda regler:

IF the animal eats meat
OR (animal has sharp teeth
    AND animal has claws
    AND animal has forward-looking eyes
) 
THEN the animal is a carnivore

Du kan notera att varje villkor pÄ vÀnstra sidan av regeln och ÄtgÀrden i princip Àr objekt-attribut-vÀrde (OAV) tripletter. Arbetsminnet innehÄller uppsÀttningen av OAV-tripletter som motsvarar det problem som för nÀrvarande löses. En regelmotor söker efter regler vars villkor uppfylls och tillÀmpar dem, och lÀgger till en ny triplet i arbetsminnet.

✅ Skriv ditt eget AND-OR-trĂ€d om ett Ă€mne som intresserar dig!

FramÄt- vs bakÄtslutledning

Processen som beskrivs ovan kallas framÄtslutledning. Den startar med viss initial data om problemet som finns i arbetsminnet och utför sedan följande resonemangsloop:

  1. Om mĂ„l-attributet finns i arbetsminnet – stoppa och ge resultatet
  2. Leta efter alla regler vars villkor för nĂ€rvarande Ă€r uppfyllda – fĂ„ en konfliktsats av regler.
  3. Utför konfliktlösning – vĂ€lj en regel som ska köras i detta steg. Det kan finnas olika strategier:
    • VĂ€lj den första tillĂ€mpliga regeln i kunskapsbasen
    • VĂ€lj en slumpmĂ€ssig regel
    • VĂ€lj en mer specifik regel, d.v.s. den som uppfyller flest villkor i vĂ€nstra sidan (LHS)
  4. TillÀmpa vald regel och lÀgg till en ny kunskapsbit i problemets tillstÄnd
  5. Upprepa frÄn steg 1.

I vissa fall kanske man vill börja med tom kunskap om problemet och stÀlla frÄgor som hjÀlper oss att nÄ en slutsats. Till exempel vid medicinsk diagnos utförs vanligtvis inte alla medicinska analyser pÄ förhand innan diagnos. Vi vill snarare göra analyser nÀr ett beslut behöver fattas.

Denna process kan modelleras med bakĂ„tslutledning. Den styrs av mĂ„let – det attributvĂ€rde vi söker:

  1. VĂ€lj alla regler som kan ge mĂ„l-vĂ€rdet (d.v.s. med mĂ„let pĂ„ högersidan (RHS)) – konfliktmĂ€ngd
  2. Om det inte finns nĂ„gra regler för detta attribut, eller det finns en regel som sĂ€ger att vĂ€rdet ska frĂ„gas frĂ„n anvĂ€ndaren – frĂ„ga efter det, annars:
  3. AnvĂ€nd konfliktlösningsstrategi för att vĂ€lja en regel som anvĂ€nds som hypotes – vi försöker bevisa den
  4. Upprepa processen rekursivt för alla attribut i vÀnstra sidan av regeln som mÄl
  5. Om processen misslyckas – anvĂ€nd en annan regel i steg 3

✅ I vilka situationer Ă€r framĂ„tslutledning mest lĂ€mplig? Hur Ă€r det med bakĂ„tslutledning?

Implementering av expertsystem

Expertsystem kan implementeras med olika verktyg:

  • Programmera dem direkt i nĂ„got högnivĂ„programmeringssprĂ„k. Detta Ă€r inte bĂ€sta idĂ©n eftersom den största fördelen med ett kunskapsbaserat system Ă€r att kunskap separeras frĂ„n slutsatsdragningsprocessen, och potentiellt ska en Ă€mnesexpert kunna skriva regler utan att nödvĂ€ndigtvis förstĂ„ inferensens detaljer.
  • AnvĂ€nda ett expertsystemskal, alltsĂ„ ett system speciellt utformat för att fyllas med kunskap via nĂ„got kunskapsrepresentationssprĂ„k.

✍ Övning: Djurslutledning

Se Animals.ipynb för ett exempel pÄ implementering av framÄt- och bakÄtslutande expertsystem.

Notera: Detta exempel Àr ganska enkelt och ger bara en idé om hur ett expertsystem ser ut. NÀr du börjar skapa ett sÄdant system kommer du först att mÀrka nÄgot intelligent beteende frÄn det nÀr du nÄr ett visst antal regler, runt 200+. Vid en viss punkt blir regler för komplexa för att komma ihÄg alla, och dÄ kan du börja undra varför systemet gör vissa beslut. Men viktiga egenskaper hos kunskapsbaserade system Àr att du alltid kan förklara exakt hur ett beslut fattades.

Ontologier och det semantiska webben

I slutet av 1900-talet fanns en initiativ för att anvÀnda kunskapsrepresentation för att annotera internetresurser, sÄ att det skulle vara möjligt att hitta resurser som motsvarar mycket specifika frÄgor. Denna rörelse kallades semantiskt web och byggde pÄ flera koncept:

  • En sĂ€rskild kunskapsrepresentation baserad pĂ„ deskriptiv logik (DL). Den liknar ramkunskapsrepresentation eftersom den bygger en hierarki av objekt med egenskaper, men har formell logisk semantik och inferens. Det finns en hel familj av DL:er som balanserar mellan uttrycksfullhet och algoritmisk komplexitet i inferens.
  • Distribuerad kunskapsrepresentation, dĂ€r alla begrepp representeras av en global URI-identifikator vilket gör det möjligt att skapa kunskapshierarkier som strĂ€cker sig över internet.
  • En familj av XML-baserade sprĂ„k för kunskapsbeskrivning: RDF (Resource Description Framework), RDFS (RDF Schema), OWL (Ontology Web Language).

Ett kÀrnbegrepp inom det semantiska webben Àr begreppet Ontologi. Det avser en explicit specifikation av ett problemomrÄde med hjÀlp av nÄgon formell kunskapsrepresentation. Den enklaste ontologin kan bara vara en hierarki av objekt i ett problemomrÄde, men mer komplexa ontologier inkluderar regler som kan anvÀndas för slutsatser.

I det semantiska webben baseras alla representationer pĂ„ tripletter. Varje objekt och varje relation identifieras unikt med URI. Till exempel, om vi vill ange faktumet att detta AI-lĂ€roplan har utvecklats av Dmitry Soshnikov den 1 januari 2022 – hĂ€r Ă€r tripletterna vi kan anvĂ€nda:

http://github.com/microsoft/ai-for-beginners http://www.example.com/terms/creation-date “Jan 1, 2022”
http://github.com/microsoft/ai-for-beginners http://purl.org/dc/elements/1.1/creator http://soshnikov.com

✅ HĂ€r Ă€r http://www.example.com/terms/creation-date och http://purl.org/dc/elements/1.1/creator nĂ„gra vĂ€lkĂ€nda och universellt accepterade URI:er för att uttrycka begreppen skapare och skapelsedatum.

I ett mer komplext fall, om vi vill definiera en lista av skapare, kan vi anvÀnda vissa datastrukturer definierade i RDF.

Diagram ovan av Dmitry Soshnikov

Utvecklingen av det semantiska webben fördröjdes delvis av framgÄngen för sökmotorer och tekniker för naturlig sprÄkbearbetning, som tillÄter att extrahera strukturerad data frÄn text. Men inom vissa omrÄden pÄgÄr fortfarande betydande insatser för att underhÄlla ontologier och kunskapsbaser. NÄgra projekt som Àr vÀrda att nÀmna:

  • WikiData Ă€r en samling maskinlĂ€sbara kunskapsbaser kopplade till Wikipedia. Mest data hĂ€mtas frĂ„n Wikipedias InfoBoxes, delar av strukturerat innehĂ„ll inne i Wikipediasidor. Du kan frĂ„ga wikidata med SPARQL, ett speciellt frĂ„gesprĂ„k för det semantiska webben. HĂ€r Ă€r ett exempel som visar de vanligaste ögonfĂ€rgerna bland mĂ€nniskor:
#defaultView:BubbleChart
SELECT ?eyeColorLabel (COUNT(?human) AS ?count)
WHERE
{
  ?human wdt:P31 wd:Q5.       # human instance-of homo sapiens
  ?human wdt:P1340 ?eyeColor. # human eye-color ?eyeColor
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
GROUP BY ?eyeColorLabel
  • DBpedia Ă€r ett annat initiativ liknande WikiData.

✅ Om du vill experimentera med att bygga dina egna ontologier, eller öppna befintliga sĂ„dana, finns en utmĂ€rkt visuell ontologiredigerare kallad ProtĂ©gĂ©. Ladda ner den eller anvĂ€nd den online.

Web Protégé-editor öppen med Romanov Family-ontologin. SkÀrmdump av Dmitry Soshnikov

✍ Övning: En familjeontologi

Se FamilyOntology.ipynb för ett exempel pÄ hur man anvÀnder tekniker frÄn det semantiska webben för att resonera om familjerelationer. Vi tar ett slÀkttrÀd representerat i vanligt GEDCOM-format och en ontologi av familjerelationer och bygger en graf över alla familjerelationer för en given mÀngd individer.

Microsoft Concept Graph

I de flesta fall skapas ontologier noggrant för hand. Det Àr dock ocksÄ möjligt att utvinna ontologier frÄn ostrukturerad data, till exempel frÄn naturliga sprÄkliga texter.

Ett sÄdant försök gjordes av Microsoft Research, vilket resulterade i Microsoft Concept Graph.

Det Ă€r en stor samling entiteter grupperade med is-a Ă€rftlighetsrelation. Den möjliggör att svara pĂ„ frĂ„gor som "Vad Ă€r Microsoft?" – svaret kan vara nĂ„got i stil med "ett företag med sannolikhet 0,87 och ett varumĂ€rke med sannolikhet 0,75".

Grafen finns tillgÀnglig som REST API eller som en stor nedladdningsbar textfil som listar alla entitetsparet.

✍ Övning: En konceptgraf

Prova MSConceptGraph.ipynb för att se hur vi kan anvÀnda Microsoft Concept Graph för att gruppera nyhetsartiklar i olika kategorier.

Slutsats

Numera betraktas AI ofta som ett synonym för MaskininlÀrning eller Neurala nÀtverk. Men en mÀnniska uppvisar ocksÄ explicit resonemang, vilket Àr nÄgot som neurala nÀtverk för nÀrvarande inte hanterar. I verkliga vÀrldens projekt anvÀnds explicit resonemang fortfarande för att utföra uppgifter som krÀver förklaringar, eller för att kunna modifiera systemets beteende pÄ ett kontrollerat sÀtt.

🚀 Utmaning

I Family Ontology-notebooken kopplad till denna lektion finns möjlighet att experimentera med andra familjerelationer. Försök att upptÀcka nya samband mellan personer i slÀkttrÀdet.

Quiz efter förelÀsning

GenomgÄng & SjÀlvstudier

Gör en undersökning pÄ internet för att upptÀcka omrÄden dÀr mÀnniskor försökt kvantifiera och kodifiera kunskap. Ta en titt pÄ Blooms taxonomi och gÄ tillbaka i historien för att lÀra dig hur mÀnniskor försökte förstÄ sin vÀrld. Utforska Linnés arbete med att skapa en taxonomi av organismer och studera hur Dmitrij Mendelejev skapade ett sÀtt att beskriva och gruppera kemiska element. Vilka andra intressanta exempel kan du hitta?

Uppgift: Bygg en ontologi


Ansvarsfriskrivning: Detta dokument har översatts med hjÀlp av AI-översÀttningstjÀnsten Co-op Translator. Trots att vi strÀvar efter noggrannhet, var vÀnlig observera att automatiska översÀttningar kan innehÄlla fel eller brister. Det ursprungliga dokumentet pÄ dess modersmÄl bör betraktas som den auktoritativa kÀllan. För kritisk information rekommenderas professionell mÀnsklig översÀttning. Vi ansvarar inte för nÄgra missförstÄnd eller feltolkningar som uppstÄr till följd av anvÀndningen av denna översÀttning.