Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves...
Transcript of Legyen Ön is milliomos, kedves Számítógép!...MI-1 Legyen Ön is milliomos, kedves...
MI-1
Legyen Ön is milliomos, kedves Számítógép!
Szeredi Pé[email protected]
BME Számítástudományi és Információelméleti TanszékNJSZT Mesterséges Intelligencia Szakosztály
Futurisztikus retro-party Neumann János nyomában
2011. május 27.
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-2
A gép és az ember vetélkedoje
A vetélkedo: Jeopardy– Magyarországon „Mindent vagy semmit” néven ismert
1964 óta sugározzák (megszakításokkal)
A legnagyobb össznyeremények: Ken Jennings – $2.520.700, Brad Rutter – $3.455.102
A kihívó: a Watsonszámítógéprendszer
Hardver: 90 db IBM Power 750 szerver, egyenként 4 chip, chipenként 8 db 3.5 GHz mag;16 Terabyte RAM
Szoftver: A DeepQA (mély kérdés-válasz) természetes nyelvu tudáskezelo rendszer
SUSE Linux Enterprise Server 11 operációs rendszerfo programozási nyelvek: Java, C++, de fontos részekben Prolog is
A meccs: 2011 február 14-16, résztvevok: Jennings, Watson, Rutter
Az elso forduló eredménye: Jennings – $4.800, Watson –$35.734, Rutter – $10.400.
Összesített végeredmény: Jennings – $24.000, Watson –$77.147, Rutter – $21.600.
(2011 február 28-án 5 kongresszusi képviselo ellen:Watson – $40.300, a képviselok – $30.000.)
További információ:http://www.research.ibm.com/deepqa/deepqa.shtml
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-3
A DeepQA rendszer architektúrája
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-4
A kérdés-válasz rendszerekrol általában
A megoldandó feladatok
A tudás ábrázolása – egyre inkább logikai alapokon (elsorendu logika, leíró logika, stb.)
Tények, adatok (adatdoboz): akár adatbázisban is tárolhatóSzabályok, háttértudás (terminológiai doboz): valamilyen logikai formalizmus
Természetes nyelvi interfészek
Szöveges információ nyelvtani elemzése→ elemzési fa→ logikai alak(mind az eltárolandó állítások, mind a kérdések esetén )Eredmények szöveggé alakítása: logikai eredmény→ szöveg
Válasz kinyerése – logikai következtetés
Példák – az eloadás fennmaradó részének tartalomjegyzéke
Egy nagyon egyszeru magyar nyelvu kérdés-válasz rendszer Prologban („Beszélgeto”)
Hogyan végzik a nyelvtani elemzést a Watson rendszerben
Tudáskezelés és következtetés leíró logikákban
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-5
Egy kis RETRO: vissza 1977-be
A SZÁMOLÓGÉP c. folyóirat 1977. évi 3-4. számának 44. oldaláról:
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-6
Egy kis RETRO: vissza 1977-be
A SZÁMOLÓGÉP c. folyóirat 1977. évi 3-4. számának 45. oldaláról:
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-7
Egy párbeszéd a Prolog nyelvu „Beszélgeto” rendszerrel
| ?- párbeszéd.|: Magyar legény vagyok én.Felfogtam.|: Ki vagyok én?Magyar legény|: Péter kicsoda?Nem tudom.|: Péter tanuló.Felfogtam.|: Péter jó tanuló.Felfogtam.|: Péter kicsoda?tanulójó tanuló|: Boldog vagyok.Felfogtam.
|: Én vagyok Jeromos.Felfogtam.|: Te egy Prolog program vagy.Felfogtam.|: Ki vagyok én?Magyar legényBoldogJeromos|: Okos vagy.Felfogtam.|: Ki vagy te?egy Prolog programOkos|: Valóban?Nem értem|: Unlak.Én is.
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-8
A „Beszélgeto” rendszer Prologban – a mondatszerkezet elemzése
Ez a kóddarab a teljes kód kb. 25%-a, három további dián elféra program fennmaradó része.
% mondat(Alany, Áll, L0, L): L0-L kielemezhet o egy Alany alanyból és Áll% állítmányból álló mondattá. Alany lehet els o vagy második személyu% névmás, vagy egyetlen szóból álló (harmadik személyu) al any.mondat(Alany, Áll) -->
{én_te(Alany, Ige)}, én_te_perm(Alany, Ige, Áll).mondat(Alany, Áll) -->
szó(Alany), szavak(Áll).
% én_te(Alany, Ige):% Az Alany els o/második személyu névmásnak megfelel o létige az Ige.én_te("én", "vagyok").én_te("te", "vagy").
% én_te_perm(Ki, Ige, Áll, L0, L): L0-L kielemezhet o egy Ki% névmásból, Ige igealakból és Áll állítmányból álló mondat tá.én_te_perm(Alany, Ige, Áll) -->
( szó(Alany), szó(Ige), szavak(Áll); szó(Alany), szavak(Áll), szó(Ige); szavak(Áll), szó(Ige), szó(Alany); szavak(Áll), szó(Ige)).
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-9
Nyelvtani elemzés a Watson rendszerben – egy példakérdés
Példa kérdésre a POETS & POETRY kategóriában:He was a bank clerk in the Yukon before he published „Songs of aSourdough” in 1907.
Az elemzési fa Prolog tényállítások formájában (a számok a fa csomópontjainak felelnek meg):
lemma(1, "he"). partOfSpeech(1, pronoun).lemma(2, "publish"). partOfSpeech(2, verb).lemma(3, "Songs of a Sourdough"). partOfSpeech(2, noun).
subject(2, 1). object(2, 3).
A „szerzoje” kapcsolat leírása Prolog szabályokkal (leegyszerusítve):
authorOf(Author, Composition) :- % Az Author a Composition mu szerz oje hapublishing(Verb), % Verb egy publikálást kifejez o ige egy állításban,subject(Verb, Author), % Author ennek az állításnak az alan ya,author(Author), % Author egy szerz o,object(Verb, Composition), % Composition ennek az állítás nak a tárgya,composition(Composition). % Composition egy szerzemény.
publishing(Verb) :- % Verb egy publikálást kifejez o ige hapartOfSpeech(Verb, verb), % Verb szófaja igelemma(Verb, VerbLemma), % Verb (lemmaként rögzített) szöv eges alakja VerbLemmamember(VerbLemma, ["write","publish",...]).
% VerbLemma szerepel az adott listában.
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-10
Nyelvtani elemzés a Watson rendszerben – a tények kezelése
Tegyük fel, hogy a Watson rendszer háttértudásában szerepel ez a mondat:Songs of a Sourdough by Robert W. Service.
Az authorOf Prolog predikátumhoz több szabály is tartozik, köztük ez:
authorOf(Author, Composition) :- % Az Author a Composition mu szerz oje hacomposition(Composition), % Composition egy szerzemény.argument(Composition, Preposition),
% Composition a Preposition argumentuma,lemma(Preposition, "by"), % a Preposition szöveges alakja "by",objectOfPreposition(Preposition, Author),
% Author ennek az elöljárószónak a tárgya,author(Author), % Author egy szerz o.
A fenti példamondat elemzését ezzel a szabállyal elvégezveegy olyan állítást nyerünk, amellyela "Robert W. Service" egy plauzibilis válasznak bizonyul.
A keresési fák illesztésére az IBM-nél korábban többféle saját mintaillesztot fejlesztettek.
„ These frameworks tend to end up replicating some of the features of Prolog but lack the fullfeature set of Prolog or the efficiency of a good Prolog implementation. Using Prolog for thistask has significantly improved our productivity in developing new pattern matching rules andhas delivered the execution efficiency necessary in order tobe competitive in a Jeopardy! game.”
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
LEIRÓ LOGIKÁK
MI-12
Leiró logikák mint a tudásreprezentáció eszközei
TBox
ABox
LeiroNyelv
Kovetkez−
tetesek
Tudasbazis
Tudásbázis (KB, knowledge base) = T-doboz (TBox) + A-doboz (ABox):
T-doboz = terminológiai doboz = terminológiai axiómák halmaza:fogalmakról (és szerepekrol) szóló állítások (anya az aki nonemu és van gyereke)
A-doboz = adatdoboz = adataxiómák halmaza: tudásunk az objektumokról (Éva anya)
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-13
Példa leiró logikai következtetésre
T-dobozanya = ember és nõnemû
és gyereke van
Éva emberÉva nõnemûÉva gyermeke Miklós
Tudásbázis
Ki anya?
Éva kicsoda?
Kö-vet-kez-te-tõ
Éva
embernõnemûanya...
A-doboz
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-14
Példa tiszta T-doboz következtetésre
T-dobozanya = ember és nõnemû és van gyereke.nõ ember és nõnemûférfi ember és nem nõnemûszülõapa
Tudásbázis
Kö-vet-kez-te-tõ
emberz
és van gyerekeférfi és s ülõ
====
(1) Konzisztens-e a T-doboz?(2) Minden anya szülõ?(3) Minden szülõ férfi?(4) Lehet-e férfi anya?(5) Mi a fogalmak hierarchiája?
Igen.Igen.Nem.Nem.
(1)(2)(3)(4)(5)ember
nõ szülõ férfi
anya apa
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-15
Példák terminológiai axiómákra
Az Anya nem más, mint olyanEmber aki Nonemu és vangyereke.
Anya ≡ Ember ⊓ Nonemu ⊓ ∃gyereke.⊤
MindenTigris Emlos.
Tigris ⊑ Emlos
A boldog emberek gyerekei is boldogak.
Boldog ⊓ Ember ⊑ ∀gyereke.Boldog
A gyermektelen emberek boldogak
∀gyermeke.⊥ ⊓ Ember ⊑ Boldog
A gyereke viszonyban levok egybenleszármazottja viszonyban is vannak.
gyereke ⊑ leszármazottja
A szüloje kapcsolat agyereke kapcsolat megfordítottja (inverze).
szüloje ≡ gyereke−
A leszármazottja reláció tranzitív
Trans(leszármazottja)
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-16
Nyílt és zárt világ szemantikák
Legyen egy egyetlen adatállítást tartalmazó adatdobozunk: gyereke(PÉTER,PÁL)
Adatbázis esetén (zárt világ szemantika): Péternek egyetlen gyermeke van, Pál
A-doboz esetén (nyílt világ szemantika): Péternek van egy Pál nevu gyermeke. Ha emellettmég azt is közölni szeretnénk, hogy Pál az egyetlen gyermeke, akkor pl. kijelenthetjük, hogyPéternek pontosan egy gyermeke van.
Az Oidipusz példa:
gyereke(IOKASZTÉ,OIDIPUSZ) gyereke(IOKASZTÉ,POLÜNEIKÉSZ)gyereke(OIDIPUSZ,POLÜNEIKÉSZ) gyereke(POLÜNEIKÉSZ,THERSZANDROSZ)Apagyilkos(OIDIPUSZ) ¬ Apagyilkos(THERSZANDROSZ)
Erre azAOI A-dobozra vonatkozóan az alábbi kérdést szeretnénk feltenni:
Van-e Iokaszténak olyan gyermeke, aki apagyilkos, és akinek van egy gyermeke, aki nemapagyilkos?
azaz:
AOI |= (∃gyereke.(Apagyilkos⊓ ∃gyereke.¬Apagyilkos))(IOKASZTÉ)?
A válasz: igen, de a bizonyításhoz eset-szétválasztás szükséges!
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-17
Összefoglalás
A jövo: intelligens, emberközeli, tudásalapú informatika
a tudásábrázolásrégen jelen levo formája: (matematikai) logika
a tudáskezelés: (logikai) következtetés
Logika a jelenben – néhány példa:
Logikai programozás
magasszintu, jól párhuzamosítható (többmagos processzorok)korlát-kiterjesztései (constraint) kiugróan eros következtetést adnak (pl. ILOG – IBM)
Szemantikus technológiák
Szemantikus világháló – a keresok, ne csak olvassák, értsék is a világhálót!Szemantikus integráció – alkalmazások automatikus összeépítéseTudásalapú (szakérto) rendszerek – pl. az orvostudományban (Watson javasoltalkalmazása)
Végül egy kis retro: hogyan is álltunk ez ügyben a 70-es években?
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-18
Összefoglalás - retro
Egy rövid idézet a „KNOWLEDGE BASED SYSTEMS –Overview and Selected Examples” c.tanulmányból (E. Weigkricht és L. Winkeibauer, IIASA, December 1987)
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-19
Példa: „természetes” nyelvu beszélgetés — szavak elemzése
% szó(Sz, L0, L): L0-L egy Sz betusorozatból álló (nem üres) szó.szó(Sz) -->
betu(B), szómaradék(SzM), {illik([B|SzM], Sz)}, köz.
% szómaradék(Sz, L0, L): L0-L egy Sz kódlistából álló (esetl eg üres) szó.szómaradék([B|Sz]) -->
betu(B), !, szómaradék(Sz).szómaradék([]) --> [].
% illik(Szó0, Szó): Szó0 = Szó, vagy a kezd o kis-nagy betuben különböznek.illik([B0|L], [B|L]) :-
( B = B0 -> true; abs(B-B0) =:= 32).
% köz(L0, L): L0-L nulla, egy vagy több szóköz.köz --> ( " " -> köz ; "" ).
% betu(K, L0, L): L0-L egy K kódú "betu" (különbözik a " .?" j elekt ol)betu(K) --> [K], {\+ member(K, " .?")}.
% szavak(SzL, L0, L): L0-L egy SzL szó-lista.szavak([Sz|Szk]) -->
szó(Sz), ( szavak(Szk); {Szk = []}).
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-20
Példa: „természetes” nyelvu beszélgetés — párbeszéd-szervezés
% :- type mondás ---> kérdez(szó) ; kijelent(szó,list(szó) ) ; un.
% Megvalósít egy párbeszédet.párbeszéd :-
repeat,read_line(L), % beolvas egy sort, L a karakterkódok listája( menet(Mondás, L, [])-> feldolgoz(Mondás); write(’Nem értem\n’), fail),
Mondás = un, !.
% menet(Mondás, L0, L): Az L0-L kielemzett alakja Mondás.menet(kérdez(Alany)) -->
{kérd o(Szó)}, mondat(Alany, [Szó]), "?".menet(kijelent(Alany,Áll)) -->
mondat(Alany, Áll), ".".menet(un) -->
szó("unlak"), ".".
% kérd o(Szó): Szó egy kérd oszó.kérd o("mi").kérd o("ki").kérd o("kicsoda").
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!
MI-21
Példa: „természetes” nyelvu beszélgetés — válaszok eloállítása
:- dynamic tudom/2.
% feldolgoz(Mondás): feldolgozza a felhasználótól érkez o Mondás üzenetet.feldolgoz(un) :-
write(’Én is.\n’).feldolgoz(kijelent(Alany, Áll)) :-
assertz(tudom(Alany,Áll)),write(’Felfogtam.\n’).
feldolgoz(kérdez(Alany)) :-tudom(Alany, _), !,válasz(Alany).
feldolgoz(kérdez(_)) :-write(’Nem tudom.\n’).
% Felsorolja az Alany ismert tulajdonságait.válasz(Alany) :-
tudom(Alany, Áll),( member(Szó, Áll), format(’~s ’, [Szó]), fail; nl),fail.
válasz(_).
Futurisztikus retro-party Neumann János nyomában Legyen Ön is milliomos, kedves Számítógép!