Azert ez a stilus nem kene.
Szerintem Ciklotron nagyon jol latja a dolgokat.
"a legnehezebb problemat abban latom hogy a rendszer milyen algoritmust hasznal a tanulashoz"
HAt valoban ez a legnehezebb. :)
Annyiban mondanek ellent Ciklotronnak, hogy amig csak koznolos beszelgetoprogramrol van szo, addig talan tenyleg kicsit tobb elore huzalozott dolgot kellene beleepiteni, hiszen egy gyerek lat hall tapint stb... nagyobb mozgasteret ad mint a sima konzol.
off
--ne haragudj, azt hiszem Te nagyon fiatal vagy !
--ezt abbol a lelkesedesbol es nagyvonalusagbol gondolom, amellyel kezeled a problemat :)
on
"Te miket pötyögnél be a konzolon egy olyan rendszernek amely tanulásra képes ugyan de semmilyen tudással sem rendelkezik még ?"
Először elkezdem neki megtanítani a szavakat, majd elmagyarázom a megtanított szavak jelentését, azután megtanítom a nyelvtanra - és szép lassan egy kommunikációképes rendszerhez jutok,
elkezdem neki megtanítani a szavakat .. de hogyan ? egyszeruen csak felsorolod oket, a rendszer meg mindent 1xuen megjegyez ?
elmagyarázom a megtanított szavak jelentését ... az elso megmagyarazando szot hogyan mgyarazod meg, hiszen meg egy szonak sem ismeri az ertelmet ?
azután megtanítom a nyelvtanra ... ha eddig nem tudott nyelvtant egyaltalan hogyan tudsz valamit is megmagyarazni ?
és szép lassan egy kommunikációképes rendszerhez jutok ... valoban, szep lassan :) gondold meg mennyi munka minden szot megtanitani, ertelmezni. (a letezo ertelmezo szotarakat nem hasznalhatod mert azok feltetelezik hogy mar van egy eleg jo megertesed a vilagrol). ezzel a modszerrel meg tobbet kell dolgoznod mint ha 'behuzaloznal' egy kiindulo 'intelligenciat'. itt a programozast helyettesited tanitassal de ezzel munkat nem sporolsz meg, sot.
imho a 'helyes' megoldas valahol a ket veglet - a teljesen ures, ill. a tul 'felokositott' rendszer - kozott van.
a legnehezebb problemat abban latom hogy a rendszer milyen algoritmust hasznal a tanulashoz: milyen modon boviti a tudasat az uj informaciok altal, a tudasat milyen strukturaban tarolja, hogyan kepes kovetkeztetesekre, stb. ha sikerulne egy valoban hatekony altalanos tanuloalgoritmust talalni akkor az mar onmagaban is nagy attorest jelentene. innen mar izles dolga hogy ki mennyi 'veleszuletett' tudast epit az MI-be.
Lenne egy nagy baj a nyelvi oldalról elkészitett ai-val:a te módszered egy tükéletesen zárodó nyelvi kört feltételez,csak a gond az,hogy ilyen nem létezik!És mivel fogja kitölteni a lukakat?
Vagy valami egyszerűbb:hogy tanitod meg neki az euklidészi geometriát?Ugye ott vannak az alap posztulátumok és axiomák."két pont között egy és csakis egy egyenes huzható","két pont között huzható egy egyenes"
A második az eredeti,de az első a 100%-osan helyes.A második az eredeti euklidészi poszt.
Hogy fogja ezt értelmezni az ai,ugy hogy le tudja belőle vezetni a teljes euklidészi geometriát,és hogy alapot szolgáljon a gauss és reimann tenzor alapú geometriájához?
Szvsz itt inkább a valós idejűség a lényeg,és az,hogy az élőlényekéhez hasonló reakcióidői legyenek ai ai-nak.Ellenkező esetben nem müködnek a régi tapasztalatok az idomitás/tanitás terén.
"S velünk hajlandó lennél-e megosztani tudásod, ó guru :)"
:->
Nem azért jöttem ide, hogy kifecsegjem a titkaimat... inkább én szeretnék másoktól ötleteket gyűjteni :-)
"a kisbaba sok eltéro 'kanálison' érkezo információt hoz korrelációba. egy szó értelmét abból tanulja meg hogy közben mi mit mutatunk neki, stb."
Szerintem nem az a lényeg, hogy hányfajta csatornán keresztül kapja meg az adott info leírását, hanem az hogy megkapja. Ha a kisbabának pl. felmutatsz egy almát és azt mondod neki "alma", akkor ő kap egy információcsomagot, amelynek a központi eleme az "alma" szó (amiről akkor még fogalma nincs, hogy mit jelent), de ezzel együtt lát egy piros, gömbölyű valamit, amibe hogyha beleharap, akkor édes ízt érez a szájában. Így megjelenik benne egy információcsomag, amelyben a számára akkor még idegen hangzású "alma" szóhoz a piros, gömbölyű és édes információk társulnak.
Pontosan ugyanezt az információcsomagot az MI-nek is át lehet adni, csak a módszer más.
Egyszerűen megmondod neki, hogy az alma egy piros, gömbölyű, édes gyümölcs. (Később persze finomítani fogja ezt az információköteget /lásd egzakt információ problémája/, de végül ugyanazt a tudásanyagot fogja magába szívni, mint a kisbaba.
A lényeg, hogy a kisbaba a tudása jórészét tapasztalati úton szerzi meg, az MI-nél viszont mindez direktben átadott információkkal történik. Ez utóbbi egyébként szerintem korrektebb is, hiszen a tapasztalati úton szerzett infok kevésbé egzaktak (pl. észlelési hibák miatt), a direktben megtanított infok viszont sokkal pontosabbak lehetnek.
"Te miket pötyögnél be a konzolon egy olyan rendszernek amely tanulásra képes ugyan de semmilyen tudással sem rendelkezik még ?"
Először elkezdem neki megtanítani a szavakat, majd elmagyarázom a megtanított szavak jelentését, azután megtanítom a nyelvtanra - és szép lassan egy kommunikációképes rendszerhez jutok, amely az ismeretanyaga folyamatos bővülésével egyre intelligensebb beszélgetőpartnerré válik. Ekkor már teljesen alkalmas lesz arra, hogy a tudomány (vagy pl. a művészet) bármilyen területén szakmai képzést kapjon. Így létrehozhatunk majd különféle kutatási területekre szakosodott MI-ket. De alkalmasak lesznek akár a szórakoztatóiparban, vagy bármely más területen is tevékenykedni, ha azirányba neveljük őket.
A lehetőségeknek csak a fantázia szab határt.
"meglehet, hogy egy gép tanitása évtizedeket venne igénybe amig eljut akár egy 3 éves gyerek szintjére. még akkor is ha éjjel-nappal tanul; az emberi agy azért még mindig sokkal erosebb processzor"
Szerintem meg éppen ellenkezőleg! A gép tanítása sokkal hatékonyabb lehet, mint az emberé!
Gondolj bele, este felküldöd a netre pl. a "világkép adatbázisra", és reggelre már az amerikai terrortámadás politikai hátterét elemezgeti magában...
Az ember nem tud napi 24 órában tanulni, az MI viszont igen. Szerintem rekordidő alatt hihetetlen intelligenciaszintre fog tudni eljutni. Rövid idő alatt olyan hiperintelligens lesz, hogy az emberek már nem is fogják érteni, miről beszél... :-)
"ezért lehet, hogy nem olyan nagy ostobaság 'behuzalozni' egy-két dolgot egy MI-be hogy ne kelljen kivárni amig a nullából indulva mindezt megtanulja"
A behuzalozás azért rossz stratégia (többek között), mert mire így vérverejtékkel összeizzadsz egy úgy-ahogy működő MI-féleséget, addigra a számítógéparchitektúrák olyan fejlődésen mennek keresztül, hogy már semmi szükség nem lesz azokra a behuzalozott modulokra.
Felesleges munka és időpazarlás.
"Az en megoldasomhoz, csakis kenyelmi szempontbol teszek egy Magyar interpretert, ami Magyarrol egy spec. nyelvre fordit. Kizarolag kenyelmi szempontbol!"
Így már értem.
Azt viszont nem értem, miért kényelmesebb hónapokig (neadj isten évekig) kódolni egy fordító interpretert, mint néhány hét alatt megtanítani neki egy nyelvet. :-o
"Egyszeruen elutasitod, hogy egy MI mukodhet egy nyelvi interpreter ('vagy inkabb fordito') kozbeiktatasaval!"
Működhet, csak nagyon korlátozottnak érzem a rendszert a későbbi továbbfejlődése szempontjából - hiszen minden egyes nyelv megtanulásához új fordítót kell belekódolnod.
Én csak annyit mondok az MI-nek: "menj, keress az interneten néhány kínai nyelvtankönyvet és holnapra tanulj meg kínaiul!", te meg nekiülsz két évig kínai fordítót kódolni, hogy aztán nagy nehézségek árán implementáld a rendszerbe...
Ez így nem hangzik túl jól.
"Szvsz itt van egy bizonyos határ,ami a neuronháló elemszámát és sebességét illeti.Amig ez nincs meg,addig nem lehet komolyabb tanulmányokat folytatni."
Miért nem? Ha egy korlátozott tudásanyaggal (vagyis viszonylag kis elemszámú neuronhálóval) rendelkező MI-t sikerül összehozni az "komoly tanulmány", hiszen azt már csak bővíteni kell - maga a működőképes rendszer már elkészült!
Valójában egy igen részletesen kidolgozott MI rendszertervem van - csak (sok) idő és (sok) pénz kellene ahhoz, hogy nekikezdhessek a gyakorlati rész megvalósításának, a rendszer felépítésének, a kódolásnak és a tesztelésnek. S velünk hajlandó lennél-e megosztani tudásod, ó guru :) nagyon kiváncsiak vagyunk legalább az alapelvekre (bocsi a bohóckodásért :)
"Nem veletlen, hogy a kisbaba lat, szagol erez, hall... Ilyen inputokkal, ezekre epulo bonyolult elofeldolgozo rendszerekkel EGYUTT kepes a kisbaba megerteni egy adott nyelvet."
Ez nem más, mint a probléma misztifikálása. A nyelvértésben semmi szerepe nincs a látásnak, hallásnak, szaglásnak. A nyelvtanulás valójában információbővítés, és mint ilyen egy egyszerű konzol-inputon keresztül vígan megvalósítható. (Vakok, süketek is megtanulják a nyelvet.)
azt hiszem itt nem misztifikálásról van szó.
a kisbaba sok eltéro 'kanálison' érkezo információt hoz korrelációba. egy szó értelmét abból tanulja meg hogy közben mi mit mutatunk neki, stb.
Te miket pötyögnél be a konzolon egy olyan rendszernek amely tanulásra képes ugyan de semmilyen tudással sem rendelkezik még ?
Azal egyébként egyetértek, hogy a tanulásra nagy hangsúlyt fektetsz. ám meglehet, hogy egy gép tanitása évtizedeket venne igénybe amig eljut akár egy 3 éves gyerek szintjére. még akkor is ha éjjel-nappal tanul; az emberi agy azért még mindig sokkal erosebb processzor :)
ezért lehet, hogy nem olyan nagy ostobaság 'behuzalozni' egy-két dolgot egy MI-be hogy ne kelljen kivárni amig a nullából indulva mindezt megtanulja.
Szerinted kb. mennyi ez a hatar?
Csak azert kerdezem, mert soros gepekkel ugyanazokat a feladatokat meg lehet oldani, mint neuronhalokkal, egyetlen egy kulonbseg lehet, az pedig a sebesseg. Tehat, ha a tezised igaz lenne, akkor mar leteznie kellene olyan intelligens rendszereknek, amik mar jol mukodnek, csak nagyon lassuak.
"Ez bizony nem MI, legfeljebb szakértői rendszer."
Egesz egyszeruen egy logikai ellentmondas van abban, amit mondassz.
Fogd fel a dolgot a kovetkezokeppen:
- Te csinalsz egy MI-t, amit magyarul beszelve tanitassz.
- En csinalok egy MI-t, amit egy specialis, gepkozeli nyelven tanitok, amiben minden szonak egy jelentese van.
Idaig semmi elvi kulonbseg, csak annyi, hogy masik nyelven tanitjuk.
Az en megoldasomhoz, csakis kenyelmi szempontbol teszek egy Magyar interpretert, ami Magyarrol egy spec. nyelvre fordit. Kizarolag kenyelmi szempontbol!
Allitasod szerint az en rendszerem igy nem lehet intelligens. Ebbol logikusan kovetkezik, hogy nem letezhet olyan spec. nyelv, amin egy intelligens rendszerrel kommunikalni lehetne, es nem magyar. Tegyuk fel, hogy a spec belso nyelvem az angol! Akkor ezek szerint angolul sem lehet tanitani a rendszert!
Egyszeruen elutasitod, hogy egy MI mukodhet egy nyelvi interpreter ('vagy inkabb fordito') kozbeiktatasaval!
"Ugy erzem, te oldalakon keresztul gyakorlatilag azt az elvet irod le, hogy "Az MI-nek mindent tanulnia kell, semmit sem szabad belelkodolni." Ez igy szep, filozofikus gondolat, de ezt leirni konnyu, nincs mogotte semmilyen konkret gondolat egy MI architekturara"
Lehet, hogy túl sokszor tértem ki a tanulás mint kulcsfontosságú mozzanat hangoztatására, de úgy érzem ezt nem lehet elégszer hangsúlyozni.
Az viszont nem teljesen igaz, hogy nincs mögötte konkrét architektúra-elképzelés. Valójában egy igen részletesen kidolgozott MI rendszertervem van - csak (sok) idő és (sok) pénz kellene ahhoz, hogy nekikezdhessek a gyakorlati rész megvalósításának, a rendszer felépítésének, a kódolásnak és a tesztelésnek.
(És persze az MI tanításának :-)
"Nem veletlen, hogy a kisbaba lat, szagol erez, hall... Ilyen inputokkal, ezekre epulo bonyolult elofeldolgozo rendszerekkel EGYUTT kepes a kisbaba megerteni egy adott nyelvet."
Ez nem más, mint a probléma misztifikálása. A nyelvértésben semmi szerepe nincs a látásnak, hallásnak, szaglásnak. A nyelvtanulás valójában információbővítés, és mint ilyen egy egyszerű konzol-inputon keresztül vígan megvalósítható. (Vakok, süketek is megtanulják a nyelvet.)
Nem értem, miért akarjátok ott is bonyolítani a problémát ahol nem az?...
"Nem beszelve arrol, hogy meggyozodesem, hogy az evolucio soran olyan szerkezetek alalkultak ki az agyban, amelyek kifejezetten segitik a nyelvi ertest, hivhatjuk "nyelverzeknek""
Ez így számomra megfoghatatlan.
A nyelvérzéket egyrészt értelmezhetjük egyfajta fizikai tulajdonságnak, vagyis hogy azért tudunk könnyen megtanulni beszélni, mivel a hangképző szerveink erre álltak rá az évtízezredek során. Ez azonban az MI szempontjából - különösen egy text input/output esetében - teljesen indifferens.
De ha nem fizikai, hanem agyi szintű nyelvértési specializálódásra gondolsz, akkor sem állja meg a helyét az elképzelésed, hiszen pl. a csimpánzok is többszáz szavas, emberi fogalmakat reprezentáló (telefon, asztal, szék, stb.) szókinccsel képesek kommunikálni, noha nem estek át azon a több tízezer éves kommunikációs fejlődésen mint az ember.
Szerintem az egyetlen speciális szerkezet az agyban, amely kifejezetten segíti a nyelvértést az a tanuló algoritmus ;-)
"Egyreszt tehat a kisbaba nem konzolszeruen kommunikal a kulvilaggal, egesz mas tanitasi modszerek lehetnek hatekonyak az eseteben"
Ez oké, a tanítási módszer másmilyen, de a lényeg mégis ugyanaz: tanítani kell, és nem beleoperálni a fejébe :-)
"Maszreszt az emberi agyban is vannak bizonyos bekodolt reszek. Minden rendszerben vannak elore kodolt reszek"
Ez természetes. Azok a bizonyos előrekódolt részek végzik az adatbázis speciális, dinamikus szervezését és az aktuális állapot kiértékelését - de semmilyen magas szintű funkciót nem tudnak ellátni (nyelvértés és hasonlók).
A belső nyelvvel - mint már említettem - semmi gond nics, a baj csak az, hogy (amint Bomlat_ is célzott rá) te egy meglehetősen egysíkú, célorientált beszélő szótárat akarsz létrehozni.
A Duda által írtak jellemzik legjobban a rendszer-elképzelésedet: egy meghatározott inputra egy meghatározott output...
Ez bizony nem MI, legfeljebb szakértői rendszer.
Dehát én nem akarok erőszakoskodni. Ha ti mindenáron nyelvi modulokat akartok kódolgatni, hát tessék. Igaz, hogy az elmúlt évtizedek alatt több tucatnyi kutatócsoport sétált bele ugyanebbe a zsákutcába, amibe most ti készültök behajtani, dehát ha ti úgy érzitek hogy mindenáron fel akarjátok találni a viaszmentes spanyolviszat, hát tegyétek! ;-P
"A probléma,hogy a mai infoelmélet fényévekre van attól,hogy akár a közelébe kerüljön ennek."
Én azért nem vagyok ennyire pesszimista. Ráadásul az MI fejlesztés éppen azt jelenti, hogy minél inkább elszakadjunk ettől a mai infoelmélettől. Persze ez nehéz, hiszen a számítógépes architektúrák adottak és ezek elég rendesen bekorlátozzák az MI-kutató mozgásterét, de ennek ellenére akár neuronhálót is meg lehet valósítani (emulálni) egy mai soros kiértékelésű rendszeren, csak lassú lesz mint állat. De azért működni fog! És az MI esetében - első körben - az elv _működőképessége_ a lényeg, nem a sebesség. Nemsokára úgyis felváltják a mai "primitív" bináris, soros architektúrákat az idegsejt-alapú processzorok.
Naadam!
Te egy olyan ai-t akarsz léthrehozni,ami képes komunikálni emberekkel,kérdésekre válaszolni.De ez soha nem lessz ilyen módon ai,mivel a személyisége hihetetlenül egysiku lesz.
Mondjuk egy tankba épitett ai-t el tudok késpzelni,de minden más csak üres váz lesz.
Egyébként amig a progi a jelenlegi metódusokat használja,addig nem fog müködni az ai.Szvsz csak neuronhálozatokkal lesz müködőképes.
Ugy erzem, te oldalakon keresztul gyakorlatilag azt az elvet irod le, hogy "Az MI-nek mindent tanulnia kell, semmit sem szabad belelkodolni." Ez igy szep, filozofikus gondolat, de ezt leirni konnyu, nincs mogotte semmilyen konkret gondolat egy MI architekturara.
A kisbabas peldat rosszul ertelmezed. Ne veletlen, hogy a kisbaba lat, szagol erez, hall... Ilyen inputokkal, ezekre epulo bonyolult elofeldolgozo rendszerekkel EGYUTT kepes a kisbaba megerteni egy adott nyelvet. Nem beszelve arrol, hogy meggyozodesem, hogy az evolucio soran olyan szerkezetek alalkultak ki az agyban, amelyek kifejezetten segitik a nyelvi ertest, hivhatjuk "nyelverzeknek". Es emellett az agy asszocial kepeket, szagokat, hangsulyerzeteket a szavakhoz.
- Egyreszt tehat a kisbaba nem konzolszeruen kommunikal a kulvilaggal, egesz mas tanitasi modszerek lehetnek hatekonyak az eseteben.
- Maszreszt az emberi agyban is vannak bizonyos bekodolt reszek. Minden rendszerben vannak elore kodolt reszek. Te, a te modelled eseten ezekrol semmit nem mondtal, tehat nehez veled vitatkozni.
Ha a rendszerem 'elolvas' egy szoveget, akkor azt elso korben az en belso nyelvemen tarolja. Mivel ezt a nyelvet kicsit kenyelmetlen hasznalni, es ugyis irok egy interpretert angolrol, vagy magyarrol, ezert angolul vagy magyarul tanitom. De tanithatnam a belso nyelvemen is. Ez csak egy kenyelmi funkcio nekem, de semmikeppen sem zsakutca. Miert lenne zsakutca, hogy megkimelem a rendszeremet a magyar ragozastol? Ez olyan, minthogy te megkimeled a rendszeredet a "karakterfelismerestol, beszedertestol". Igy lehet a lenyegre koncentralni.
Ja ja.Ami a lényeg,a tanulás.Ami nekünk meg van születéskor,az nem más mint egy egyszerű algoritmus,ami lehetővé teszi a tanulást.A probléma,hogy a mai infoelmélet fényévekre van attól,hogy akár a közelébe kerüljön ennek.
"De azt nem értem, hogy hogyan akarsz a programmal komunikálni, ha nem tud egy nyelvet sem"
A kisbabával hogyan kommunikálsz? Ő sem tud egyetlen nyelvet sem!
Épp arról van szó, hogy legelőször a nyelvértést kell neki megtanítani, csakúgy mint az embernek. Ehhez semmi másra nincs szükség, csak egy konzol-kapcsolatra és egy tanulóképes MI-re.
"És milyen nyelven tanítod meg nyelvet beszélni?"
A kisbabát milyen nyelven tanítod meg nyelvet beszélni amikor egyetlen nyelvet sem tud?...
Gondolkozz egy kicsit!
Újra és újra ugyanabba a csapdába esel! Úgy röpködsz ekörül a nyelvi probléma körül mint lepke a lámpa körül... :-)
Az MI-nek az emberi modellből egyetlen fontos dologra van szüksége: és ez a tanulási képesség. Márpedig ez független a látástól, hallástól, szaglástól, és egyéb érzékelő képességektől. Ezek az embernél csupán plusz inputok (melyek segíthetik ugyan a tanulási folyamatot), de a tanulás _mint képesség_ szempontjából tök feleslegesek. (Egy vak, vagy süket emberből sem lesz kretén, csak azért mert nem működnek ezek az inputjai.)
Mindenképpen külön kell választani a hardver-modulokat (ilyen pl. a kép- és hangfelismerés), amely az embernél is modul-szintű hardver-funkció, és a tanulás folyamán megszerzett képességeket, mint pl. a nyelvértés, ami egyfajta "adatbázis-fejlesztési" metódus. Te a nyelvértést is modulként akarod belekódolni, és ez óriási logikai hiba.
General failure... :-)
Még egyszer: az ember alaphelyzetben (kisbaba) egy _árva szót_ sem ért abból, amit a környezete gügyög neki. Semminemű ilyenirányú hardver-modul nincs belehuzalozva az agyába. Tehát gaykorlatilag tök mindegy hogy a kisbabának azt mondod hogy "alma" vagy azt hogy "prüntyi-prüntyi", számára mindkettő totálisan értelmetlen információ. Akkor kezdenek értelmet nyerni ezek a szavak, amikor más fogalmakkal összekapcsolva ismételgeted neki ("finom alma", "jujj de finom ez az alma", ízletes, édes alma", stb.)
Az MI esetében pontosan ugyanígy kell majd eljárni.
"Ezt a programrészt először én írom meg, de később ha elég komplex az MI, akkor már módosíthatja is ezt a részt"
Ez így tuti bukás.
"A tanulást se tanuljuk, hanem az velünk született képesség."
Hát éppen ez az! _A tanulási képességre_ kell felkészítenünk az MI-t - de semmi másra!
A tanulást nem tanuljuk, hanem velünk született képesség. A nyelvértés viszont már nem velünk született képesség, azt tanulnunk kell. Ha kész a tanulóképes MI, akkor semmi akadálya ennek megtanulásának.
"A különbség annyi, hogy a kezdeti (teszt) szakaszban a kommunikáció elsődleges felülete egy egyszerű konzolszintű kapcsolat lesz." De azt nem értem, hogy hogyan akarsz a programmal komunikálni, ha nem tud egy nyelvet sem. Tanítás során majd képződik egy adatbázis, amit a program hoz létre. Mi lesz az adatbázisban? Nyílván amilyen információkat megadsz a programnak.
Tökéletesen értem amit írsz, csakhogy én éppen arról beszélek, hogy minderre semmi szükség! :-) Akkor nem érted. :)
Te egy nyelvi értelmezőt akarsz írni, hogy majd aztán azon keresztül kommunikálj az MI-vel, én viszont azt mondom, hogy ha az MI képes a tanulásra, akkor a nyelvértést nem belekódolni kell, hanem megtanítani neki! És milyen nyelven tanítod meg nyelvet beszélni? Ha már ragaszkodsz az emberi modellhez, akkor a programba kellene látást, hallást, szaglást, hideget, meleget, fájdalmat, stb. érzékelő rész is. Ezek mind velünk született képességek. Így könnyű okosnak lenni :) De a programba ezekez az érzékszerveket meg kellene írni. Az agyunkba is bele van kódolva egy csomó minden. Azok a programok, amik az evolúció alatt kifejlődtek. A legegyszerűbb ha csak az írott szöveget érti meg először a program. Ezt a szöveg - belső adatmodell - szöveg részt először nekünk kell megírni. Ezután jöhet csak az a rész, hogy megtanítod programot írni.
Az én modellemben maga az MI az, aki létrehozza a különféle token-definíciókat (tehát az említett "egy_mennyiség"-et, "egy_névelő"-t, stb...) Az én modellemben is majd az MI fogja létrehozni. Ezt a programrészt először én írom meg, de később ha elég komplex az MI, akkor már módosíthatja is ezt a részt.
Totális bukás, ha ez direktben bele van kódolva a rendszerbe! Ez az MI dolga! Majd én megtanítom neki, hogy az "egy" az lehet számnév, lehet névelő, stb... Az első verziót mindenképpen nekünk kell megírnunk. Utána majd felül tudja magát írni, ha már tud kódot is generálni. Mellesleg a kódgenerálás első verzióját is kézzel kell megírni. A tanulást se tanuljuk, hanem az velünk született képesség.
A válasz kézenfekvő: az ismeretanyagából.
Tehát minél kiterjedtebb az ismeretanyag, az MI annál többet fog tudni mesélni a nem benzinnel működő autókról.
A kulcsszó: tanulás... Az én olvasatomban: Az ismeretanyag egy adatbázisban van. A tanulás csak egy adatbázison végzett művelet.
"Jelen esetben a programírás lenne a tanítás a modelled szerint"
Távolról sem! Épp ellenkezőleg!
A programírási fázis a tanulásnak "csupán" a lehetőségét teremti meg. Az én modellemben maga a tanítás folyamata már nem programírást jelent, hanem információátadást - pontosan úgy mint az ember tanítása esetén. A különbség annyi, hogy a kezdeti (teszt) szakaszban a kommunikáció elsődleges felülete egy egyszerű konzolszintű kapcsolat lesz. (De ez a tanulás szempontjából mellékes.)
"Olyan programot akarunk írni, ami az összes információt kiszedi egy adott nyelvből. Eddig érthető?"
Tökéletesen értem amit írsz, csakhogy én éppen arról beszélek, hogy minderre semmi szükség! :-)
Te egy nyelvi értelmezőt akarsz írni, hogy majd aztán azon keresztül kommunikálj az MI-vel, én viszont azt mondom, hogy ha az MI képes a tanulásra, akkor a nyelvértést nem belekódolni kell, hanem megtanítani neki!
A belső szavas (tokenes) tárolási elv egyébként rendben van. Ezt jól tudja majd használni az MI a tanulással felépülő szókincse (és az ahhoz kapcsolódó nyelvtani szabályok) tárolására.
"A hetvenes években a legnagyobb gondot a hatalmas adatbázisok kezelése jelentette."
Igen ám, csakhogy az ezirányú kutatásokat nem hagyták abba a hetvenes években. :-)
(A későbbiekben pedig egyre hatékonyabb adatbáziskezelők jelentek meg.)
Talán a Siskind-féle, 1990-ben kifejlesztett nyelvi modul áll a legközelebb az MI lényegéhez (ő nem a "hagyományos" pszicholingvisztikus mondatértelmező metódust fejlesztette tovább, hanem azt az elvet próbálta lemodellezni, ahogyan egy kisgyermek érti meg a mondatok, szavak jelentését). Sajnos az ő modellje is túl beton ahhoz, hogy egy tanulásra képes MI programvázába illeszkedjék. Egyszóval: mellékvágány.
"Te látsz itt olyan problémát, amit én nem?"
A problémám a Te modelleddel (ill. amire abból rálátásom van az Általad elmondottakból) is az hogy rettenetesen kötött a rendszered. Az én modellemben maga az MI az, aki létrehozza a különféle token-definíciókat (tehát az említett "egy_mennyiség"-et, "egy_névelő"-t, stb...)
Totális bukás, ha ez direktben bele van kódolva a rendszerbe! Ez az MI dolga! Majd én megtanítom neki, hogy az "egy" az lehet számnév, lehet névelő, stb...
Visszatérve kedvenc szlogenemhez: "az ember is így működik" :-)
Szóval nem kell ide semmiféle nyelvi modul! Hacsak nem egy interaktív félintelligens szótárat akarsz létrehozni. De gondolom nem ez a célod... :-)
"Nem csináltad meg a házit :) Szedd ki az összes információt a korábban említett hozzászólásból."
Ez a büntetésem, amiért rossz voltam? ;-)
Komolyra fordítva: semmi értelme ezzel foglalkozni!
Ráadásul több kidolgozott elv is létezik már erre a problémára. Nincs értelme újból feltalálni a spanyolviaszt!
Szerintem te meg nem figyelsz:)
Korábban írtam: Hogy MI is legyen a dologból, az adatbázisban szerepelnie kell magának a programnak. És itt megint egy probléma, hogy a programnak röptében kellene generálódni az állandóan változó adatbázisból. Nyílván amíg változik az adatbázis, addig nem generálódhat kód. Itt felmerül a filozofikus gondolat, hogy vajon azért alszunk, hogy álmunkban kód generálódjon a nappal szerzett információkból? Kétségkívül izgalmas terület. Szóval én ezt úgy képzelem el, hogy ha az adatbázisban benne van a processzor leírása is, akkor a tanult információbol tud futtatható kódot is generálni, amire ráadhatja a vezérlést vagy új proceszt indíthat.
Ez nem neuronháló (habár egy hentesnek minden vágóhíd :))
Igen, az MI nyílván tanuló autómata, ami az én olvasatomban azt jelenti, hogy módosíthatja saját adatbázisát. Kell egy minimális világkép mindenképpen az MI-nek, hogy el tudjunk indulni. Nem mindent én akarok belekódolni. Mindenképpen az elején bele kell kódolni az adatbázis kezelést, minimális nyelvtant, stb... Az első lépcső mindenképpen az, hogy értelmes szövegből adatbázist hozzon létre, tehát kiszedje valahogy az információt. Ezért kértem meg valakit, hogy próbáljon minden információt saját maga kiszedni egy szövegből.
Tényleg az kell, hogy egy kezdő szókészlettel (és a mögöttes információkkal) rendelkezzen a progi. A tanítás itt az lesz, amíg el nem érünk egy olyan komplexitást, ahol már tud válaszolni, tanulni, stb..
"Vagyis olyan info tarolo modszert kell talalni, ahol az infok kicsit asszociacio jelleguek, elmosodottak, megis eleg erosek ahhoz, hogy kovetkeztetesek levonasara valamilyen szinten alkalmasak."
Pontosan erről van szó. Viszont ha idáig eljutottál, nem értem miért akarod külön letárolni az info forrását, megbízhatósági fokát, stb?!... hiszen pl. Te sem tudod, kitől hallottad azt hogy "az autó benzinnel működik", mégis elég nagy biztonsággal meg tudod ítélni, hogy ez az info mennyire egzakt.
Szóval nem kell semmi ilyesmit letárolni! Inkább azon kell elgondolkodni, vajon az ember hogyan dönti el, hogy egy info mennyire egzakt.
A válasz kézenfekvő: az ismeretanyagából.
Tehát minél kiterjedtebb az ismeretanyag, az MI annál többet fog tudni mesélni a nem benzinnel működő autókról.
A kulcsszó: tanulás...
"Szerintem a nyelvi megértést az MI-nél nem programozni kell, hanem tanítani (de ezt már korábban említettem)."
Ezt nem értem.
Tenyleg nem erted! :)
Egy igazi MI tanulo automata is. Ez nem azt jelenti, hogy mindent tud amire felprogramoztad, hanem 'futas kozben' tanul, bovulnek az ismeretei.
A te megoldaso hasonlit a regi MI favoritra, a neuronhalora. Itt a vegcel egy fuggveny volt ami absztrakt modon marmilyen outputkent ertelmezhet (pl szoveges valasz, ha akarod). Itt a tanitas azt jelentette, hogy a fuggvenyre par diszkret pont megadasaval megtanitottak a halot, hogy a megfelelo inputra a megfelelo outputot adja. A neuronhalo tulajdonsagai miatt feltetelezheto volt, ha 'jol' tanitottuk meg erre a fuggvenyre, akkor azokban a pontokban is koveti a fuggvenyt amire nem tanitottuk meg. Ok ezt tudasnak hivjak. En nem. Ujabb info bovuleshez (tehat ha valtozik a fuggveny) ujra tanitani (programozni) kell a halot.
Kb ez jelenti a ciklotron altal emlitett tanitas/programozas problemat.
Az igazi MI-vel menet kozben bovulnek az ismeretek. Tehat futas kozben. NEm kell leallitani es a programozonak beprogramozni az uj tudast.
Na ez az a bagatell problema amit meg senki nem tudott megcsinalni.
"Szerintem a nyelvi megértést az MI-nél nem programozni kell, hanem tanítani (de ezt már korábban említettem)."
Ezt nem értem. Ez olyan filozofálgatásnak tűnik. Jelen esetben a programírás lenne a tanítás a modelled szerint. Olyan programot akarunk írni, ami az összes információt kiszedi egy adott nyelvből. Eddig érthető? Ha az összes információt kiszedtük, akkor azt bármilyen nyelvre le tudjuk képezni. Ez lenne egy fordítóprogram vázlata.
A tanulás folyamata már jóval egyszerűbb. Ha más értelemben használunk egy szót vagy új szó bukkan fel, akkor a korábbi ismeretanyaggal tudjuk majd jellemezni.
Én az adatbázist úgy képzelem el, hogy van egy belső világképe az adatbázisnak. Ez a világképnek nevezett valami olyan mint egy értelmező szótár. Vannak a belsőszavak, amik szintén belsőszavakkal vannak megmagyarázva. Amikor az információt írjuk le, akkor ezekkel a belsőszavakat
Példa belső szavakra:
egy_mennyiség
egy_névelő
Itt éppen arra utalok, hogy egy szónak több jelentése lehet az emberi nyelvben, míg egy adatbázisban minden elemnek pontosan egy jelentése van. Ezeket hívod te tokeneknek.
"A mondatok szavakra bontásának, azok tipizálásának és értelmezésének problematikájával a hetvenes évek elejétől több kutatócsoport is behatóan foglalkozott. Szerintem ilyeneken abszolút nem érdemes gondolkodni, egyrészt mivel többféle elvet is kidolgoztak erre, és így sok újat már nem nagyon lehet kitalálni ebben a témakörben, másrészt mert egyikből sem tudtak MI-t kifejleszteni, éppen a fentebb leírtak miatt."
A hetvenes években a legnagyobb gondot a hatalmas adatbázisok kezelése jelentette. Szerintem igenis ez az egyetlen járható út. Tulajdonképpen olyan hatalmas nehézség sem merült föl, amit ne lehetne megoldani. Te látsz itt olyan problémát, amit én nem?
Nem csináltad meg a házit :) Szedd ki az összes információt a korábban említett hozzászólásból. Én elkezdtem, próbáld befelyezni.
"vajon milyen adat (ill. fogalomtároló) elv lenne e leghatékonyabb erre a célra és hogyan is nézne ki ennek a tárolónak a működtetése!"
Hat igen, ez a NAGY kerdes. Ezen belul is van egy problema, amin sokat gondolkodtam, most megkerdezem, hogy masoknak erre milyen otletei vannak:
Szoval kepzeljuk el az agyban (vagy az MI-ben) levo informaciokat egy nagy halom atomi informaciokent, ahol egy atomi informacio olyan, mint: "Az auto benzinnel mukodik." "A fust szurke." ...
Ezekkel kapcsolatban az a meglepo teny, hogy ugy am-blokk szinte egyik mondat sem igaz, mert nem eleg egzakt, masreszt ha eleg egzakt is, nem biztos hogy igaz (Az osember a majombol fejlodott ki)...
Tehat az informaciok tarolasi elvenek alapeleme kell hogy legyen, hogy az informaciok nem abszolut ertelemben igazak. Pl. tarolni kell, hogy honnan szarmazik az info. Milyen szinten csak iranyado jellegu az info? (Pl a fust szurke, holott lehet piros fust is, de mindenki szurket kepzel elsore maga ele). Milyen szinten lehet kovetkezteteseket levonni az infokbol?
Es ami a legfontosabb, hogy hogyan lehet meguszni a kovetkezteteseket ellentmondasok generalasa nelkul. Valami nagyon zsenialis ellentmondas kikuszobolo vedekezo mechanizmus kell, hogy legyen. (Pl. ha tul sok az ellentmondas, le kell allni a kovetkeztetesekkel, es vissza kell menni a fogodzohoz, azokhoz a dolgokhoz, amit eleg biztosnak 'erez' a rendszer. (Vilagkep???))
Vagyis olyan info tarolo modszert kell talalni, ahol az infok kicsit asszociacio jelleguek, elmosodottak, megis eleg erosek ahhoz, hogy kovetkeztetesek levonasara valamilyen szinten alkalmasak.
(Ezert mondogatom mar regen, hogy a matematikai logika teljes csod, mert tul egzakt, ezekkel a problemakkal koszonoviszonyban sincsen, pedig ez az MI lenyege.)
Szerintem a nyelvi megértést az MI-nél nem programozni kell, hanem tanítani (de ezt már korábban említettem). Én - jobb híján - mindig az emberből indulok ki, ha egy MI-specifikus problémán gondolkodom. Márpedig a nyelvértés az embernél is a tanítással fejlődik ki. Szóval egy MI esetében nincs értelme olyan programot írni, amely "megérti az emberi beszédet", hiszen ez lenne maga az MI! És ebben az esetben a szókészlet, a nyelvtan, stb. változása sem jelent gondot: akárcsak az ember, az MI is megjegyzi, megtanulja ezeket a változásokat. Ez persze csak akkor működik, ha a tárolási elv rugalmas, dehát az MI esetében ez alapkövetelmény.
Milyen nyelvű legyen az adatbázis? Egyértelmű. Nem élő nyelven kell eltárolni az adatokat (a fogalmakat), hanem speciális tokenekben, hiszen csak ilyen módon tehető a rendszer teljesen nyelvfüggetlenné.
A mondatok szavakra bontásának, azok tipizálásának és értelmezésének problematikájával a hetvenes évek elejétől több kutatócsoport is behatóan foglalkozott. Szerintem ilyeneken abszolút nem érdemes gondolkodni, egyrészt mivel többféle elvet is kidolgoztak erre, és így sok újat már nem nagyon lehet kitalálni ebben a témakörben, másrészt mert egyikből sem tudtak MI-t kifejleszteni, éppen a fentebb leírtak miatt.
A nyelvértés helyett szerintem inkább az MI taníthatóságára kellene koncentrálni - mert ha ezt sikerül elérni, akkor gyakorlatilag minden meg van oldva.
Az "öngeneráló kódot" én némileg tágabban értelmezem. Számomra ez azt jelenti, hogy az adatszerkezet változása a kisebb, egyszerűbb, különálló algoritmusokat magasabb logikai egységbe szervezi (vagyis tényleges kódgenerálás nem történik). Ebben az a szép, hogy ezek a kapcsolatok az adatszerkezet változásával (azaz új információk megtanulásával) dinamikusan változnak, és így az MI egy adott kidolgozottsági szintje fölött már nem a kódnak a programozó által történő piszkálgatása jelenti majd a fejlesztést, hanem az MI tanítása.
Szóval az igazán izgalmas kérdés szerintem az, hogy vajon milyen adat (ill. fogalomtároló) elv lenne e leghatékonyabb erre a célra és hogyan is nézne ki ennek a tárolónak a működtetése!
Néhány felmerült probléma. Írjunk egy programot, ami megérti az emberi beszédet. A nehézségek ott kezdődnek, hogy egyetlen emberi nyelv sincs precízen definiálva. Állandóan változik a szókészlet, nyelvtan, jelentés stb. Illetve a filozofikus kérdés, hogy hogyan tároljuk az emberi szöveget.
Hogy ne menjünk messzire nézzük meg alaposabban a Te hozzászólásodat:
"Ahhoz, hogy egy kicsit konkrétabban közelítsünk az MI gyakorlati része felé, van egy javaslatom: mondjátok el, mi az ami a kutatásaitok, kísérleteitek - vagy a témával kapcsolatos töprengéseitek - során felmerült mint probléma(akár programozástechnikai, akár elvi, logikai vagy algoritmikus), és amire eddig még nem találtatok választ!"
A feladat: szeddjük ki a létező összes információt a fenti szövegből!
Most én megpróbálok hevenyészve felvázolni egy lehetséges szerkezetet.
((objektum: javaslat)
(mennyiség: egy)
((ok: MI)
...
)
A fenti meta szerkezetből kb. a következő szöveg lenne:
Javaslat egy MI miatt.
Ezt kellene tovább finomítani, ahhoz, hogy a fenti mondattal megegyező jelentésű mondatot (vagy mondatokat) kapjunk.
A program adatbázisában szerepelnie kell a
javaslat, egy, MI, stb szónak.
Itt újabb probléma, hogy milyen nyelvű legyen az adatbázis.
A következő feladat, hogy a meta szerkezetből állítsunk elő értelmes mondatot.
Hogy MI is legyen a dologból, az adatbázisban szerepelnie kell magának a programnak. És itt megint egy probléma, hogy a programnak röptében kellene generálódni az állandóan változó adatbázisból. Nyílván amíg változik az adatbázis, addig nem generálódhat kód. Itt felmerül a filozofikus gondolat, hogy vajon azért alszunk, hogy álmunkban kód generálódjon a nappal szerzett információkból? Kétségkívül izgalmas terület.