Miért erőltetik az MI-t, ha nyílvánvalóan a vesztünkbe sorsunkba rohanunk?
Még két megállapítás:
Szakértői rendszerek igenis használatban vannak, nem múltak ki, ahogy azt te gondolod.
"Az SAP a világ vezető integrált vállalatirányítási rendszere (ERP). Integrált vállalatirányítási rendszer alatt egy adott vállalat minden vállalati folyamatát lefedő programcsomagot értünk. Az SAP ágazatspecifikus megoldásait több mint 120 országban, hozzávetőleg 32 000 vállalat használja, kis- és középvállakozások, nagyvállalatok egyaránt."
Ezen cégnek jelenleg 53 és fél-ezer alkalmazottja van és csak 2007-ben 10 milliárd euró volt az éves árbevétele.
A másik:
A PC-k ma már hihetetlenül nagy számítási teljesítménnyel bírnak a legelső IBM PC-hez képest. Nagyságrendileg több 10 ezerszeres.
Azonban mindez semmi a Google szuperszámítógépéhez vagy a kínai sunway-hez képest, amely 40 ezer processzort, 10 millió processzormagot (!) foglal magába és nem giga, hanem terabájtokban mért memóriával bír. Egyetlen node-ja 32 GB memóriát címez.
Valószinűleg te el sem tudod képzelni ezt a számítási teljesítményt és az ebben rejlő lehetőségeket.
"Jelen állás szerint a Sunway TaihuLight szuperszámítógépet CFD (számítógépes folyadékdinamika), CAE (számítógéppel segített tervezés), big data, illetve időjárás és élettudományi kutatáshoz használja majd a Vuhszi városában található Nemzeti Szuperszámítógépes Központ."
Kopipésztelnél még pár teljesen irreleváns dolgot?
Olyan jó olvasni.
> Hogy mi az intelligencia? Ebben a viszonylatban és úgy általában is, önálló döntési képesség.
> A kávé automata eldönti a maga szerény módján, hogy megfelelő összeget dobtál -e bele, eldönti, hogy jár-e vissza pénz […]
Nem teljesen helytelen értelmezés, de némileg problémás. Ebben az esetben egyetlen kérdésem van, hogy akkor milyen egy olyan szoftver, automata, ami nem mesterséges intelligencia… Mert kvázi egy izzóval sorba kötött kapcsoló is mestersége intelligencia ezek alapján, hiszen a „berendezés” „a maga szerény módján” „eldönti”, hogy neked szükséged van-e fényre. „Ellenőrzi”, hogy a lámpagyújtáshoz szükséges előfeltételek – megnyomták-e a kapcsolót – hiánytalan meglétét, és ehhez „alkalmazkodva” fényt ad.
~ ~ ~
> Vicces, hogy te kivánnád meghatározni, hogy mi tekinthető mesterséges intelligenciának s mi nem.
Oké, vegyünk elő némi szakirodalmat. Az, hogy mit jelent az a kifejezés, hogy mesterséges intelligencia, az alapvetően definitív kérdés. Nézzük, hogy hogyan definiálták ezt a fogalmat neves szakemberek:
„A gépi intelligencia emulálja, vagy lemásolja az emberi ingerfeldolgozást (érzékletfeldolgozást) és a döntéshozó képességet számítógépekkel. Az intelligens rendszereknek autonóm tanulási képességekkel kell bírniuk és alkalmazkodniuk
kell tudni bizonytalan, vagy részlegesen ismert környezetekhez.” (Cihan H. Dagli, a Missouri Egyetem professzora, a számítógépes intelligencia, a neurális hálózatok, a fuzzy logika és az evolúciós programozás elismert kutatója.)
(Nem tudom feltűnik-e definícióban az emulálja szó. Ő pl. kritériumként tekint arra, hogy az MI-nek legyen autonóm tanulási képessége.)
„A mesterséges intelligencia a számítógéptudomány azon részterülete, amely az ember olyan kognitív (megismerő) képességeit emuláló számítógépi programok tervezésével és alkalmazásával foglalkozik, mint a problémamegoldás, vizuális érzékelés és a természetes nyelvek megértése.” (Peter Eric Jackson, a Thomson Reuters kutatás-fejlesztés vezetője, a szakértői és tudás alapú rendszerek, valamint a természetes nyelvek feldolgozásának szakértője)
(Szintén előkerül az emuláció fogalma, a kognitív képességek emulálása. Bár ez már nem jelenti egyértelműen az önálló, nem felügyelt, nem előre beprogramozott tanulást, még ha elsősorban mégis ez az ember értelmezése.)
„A mesterséges intelligencia kutatásának célja az, hogy a számítógépeket alkalmassá tegyük az emberi intelligenciával megoldható feladatok ellátására.” (Yoshiaki Shirai (a Ritsumeikan Egyetem kutató professzora) - Jun-ichi Tsujii (a Kiotói Egyetem professzora, a természetes nyelvek feldolgozásának, valamint a bioinformatikának a szakértője))
(Ez már egy kicsit tágabban értelmezett definíció, aminek már nem kimondott kritériuma az önálló tanulás.)
„A mesterséges intelligencia egy nagyon általános kutatási irány, mely az intelligencia természetének kiismerésére és megértésére, valamint a megértéséhez és lemásolásához szükséges alapelvek és mechanizmusok feltárására irányul.” (Aaron Sloman, University of Hull illetve University of Sussex, filozófus és a mesterséges intelligencia illetve a kognitív tudományok kutatója.)
(Szó szerint ebben sem szerepel a tanulás, bár az intelligencia egyik jellemzője a tanulásra való képesség, és ezen definíció szerint a mesterséges intelligencia ennek lemásolását – jaj! emulálását? – célozza.)
Persze Pistike is, te is, én is adhatunk egészen más definíciót arra, hogy mit jelent a mesterséges intelligencia fogalma – törvény nem tiltja –, a viszont már kérdéses, hogy mennyire fog elterjedni ennek a definíciónak az alkalmazása.
~ ~ ~
Kétségtelen, hogy kvázi 10-20 évvel ezelőtt még a tágabb értelemben vett definíciók is használatban voltak. De az elmúlt cirka egy évtizedben olyan mértékben fejlődött ez a tudományág, hogy ma már a szakemberek inkább a szűkebb értelemben vett mesterséges intelligencia definícióját alkalmazzák. Egy deep learning mellett ma már egy egyszerű útkereső, vagy mintafelismerő algoritmust mesterséges intelligenciának hívni kb. annyira megmosolyogtató, mint számológépnek hívni az abakuszt, még akkor is, ha régen valóban az volt „A” számológép. Lehet persze annak hívni, csak nem szokás.
Ha mostanság olvasol cikkeket szaklapokban, a mesterséges intelligencia alatt mindig valami olyasmit értenek, ami képes tanulásra, fejlődésre, újabb ismeretekkel (adatokkal) gazdagodva változik a működése, ugyanarra az inputra már egy kicsit más, jobb választ fog adni. Pl. kb. egy éve volt hír, hogy a Google Fordító mesterséges intelligencia támogatást kapott. Ergo az addigi egy kicsit szemantikai elemzésen és javarészt szótáron alapuló működést nem tekintik ma már mesterséges intelligenciának, pedig a te értelmezésedben az is MI, sőt 20-30 éve a tágabb értelemben vett definíció alapján még erősen annak számított volna.
Kétségtelen, hogy az egyetemeken pl. a szakértői rendszereket, a szabály- és tudás alapú rendszereket, a mintaillesztő, útkereső algoritmusokat stb. a „mesterséges intelligencia” – vagy hasonló nevű – tantárgyak keretében tanítják (jobb híján, illetve még), de ez már lassan inkább történelmi visszatekintés.
~ ~ ~
> Az is nevetésre ingerelt, amikor azzal a 28-szor 28-as mátrix-szal jöttél, meg a kismacskával.
> Ezt a szintet már gyermekkoromban túllépte a magyar fejlesztésű recognita program, amely bármilyen betűtipussal írt szöveget képes volt digitalizálni, annak méretétől teljesen függetlenül. 28x28.. LoL
Lehet, hogy lemaradtál az előzményekről. Vagy nem tudtad értelmezni a leírtak lényegét. Belinkeltem egy videót, amiben a neurális hálózatok működését magyarázzák el, még laikusoknak is érthető módon. Ebben pont az írásfelismerés volt a kiszemelt példa, amiben történetesen 28x28-as méretűre átméretezett kép pixeleiből építettek neurális hálót. Minden további példálózás ezen példa tükrében értelmezendő.
Ilyen szempontból teljesen mindegy, hogy mi a mesterséges intelligencia által elvégzett feladat, nem ez a lényeg, hanem a működése. Hozhattam volna egy még primitívebb példát is. Mondjuk tíz darab 1 és 100 közé eső szám számtani vagy mértani közepét – átlagát – kellene kiszámolni. Nem bonyolult feladat, a programozásban ujjgyakorlat, kvázi beugró feladat még középiskolában is. Sőt számítógép sem kellene hozzá, 1000 éve egy írni tudó tízéves is el tudta végezni a feladatot.
Mégis meg lehet ezt oldani a mesterséges intelligencia módszerével is, amiben nem az a pláne, hogy milyen bonyolult feladatot old meg, hanem az, hogy nem írtuk bele a programba, hogy hogyan kell kiszámolni a számtani illetve mértani közepet. A pláne a dologban az, hogy a tanulás folyamán beadtunk neki egy tíz elemű rendezetlen tömböt, aminek az elemei 1 és 100 közé eső valós számok, meg beadtuk megtanulandó outputként a számtani vagy a mértani közepet. A rendszer maga találja meg az input és output közötti összefüggést, és pár tízezer betanult input-output pár után egy számára addig be nem adott input tömbből mondjuk ±0,8 pontossággal megmondja a számtani közepet, ±1,3 pontossággal a mértani közepet, anélkül, hogy leprogramoztuk volna, hogy az inputból hogyan kell előállítania az outputot. A pláne a dologban, hogy 100 betanult input-output pár után mondjuk ±30,8 pontossággal találja el a mértani közepet, 1000 betanult input-output pár után már ±5,6 pontossággal, 10 000 betanított input-output pár esetén meg ±1,3 pontossággal. Tanul… A pláne a dologban, hogy míg a mértani közép kiszámítása magában foglalja a jelen esetben a tizedik gyökvonás műveletét, addig a mesterséges intelligenciánk egyáltalán nem végez gyökvonást, amihez képest mégis egész pontos eredményt ad.
Nyilván egy ilyen program nem sok mindenre jó. Maximum illusztrációnak ahhoz, hogy nem fogja outputként kiadni a kismacska szót, mert az output csak egy 1 és 100 közé eső szám lehet, nem egy szöveg. És nem fog tojást sütni sem. Persze mindjárt érdekesebb a dolog, ha ugyanezt a programot olyan input-output párokkal tanítjuk be, ahol van összefüggés az input és az output között, de az összefüggés túl komplex ahhoz, hogy az ember felismerje. A programunk ekkor is egészen pontos eredményeket fog adni, sőt annak ellenére, hogy helyes eredményeket ad, még nem biztos, hogy abból meg fogjuk tudni, hogy mi volt az az összefüggés, amit a mesterséges intelligenciánk megtalál. Ha mákunk van, akkor a neurális háló állapotából esetleg vissza lehet következtetni dolgokat, de a legtöbbször még ez sem járható út.
Illetve van itt még valami. A pontosság sem szempont. A számtani közepet a beprogramozott képlet alapján kiszámoló program teljesen pontos eredményt ad, de nem mesterséges intelligencia. A neurális hálózat meg az, pedig van pontatlansága. Nyilván ezért alkalmazunk ott neurális hálózatot – vagy más MI megoldást –, ahol a hagyományos programozással már nem tudjuk megoldani a problémát, ahol viszont igen, arra meg nem írunk MI-t.
~ ~ ~
> Egyik ipari erősségű MI sem emulál, pláne nem szimulál. Végzi a dolgát és VALÓDI felhasználható EREDMÉNYT nyújt, szimuláció (meg emuláció) helyett.
Valódi eredményt ad. De a működése mégis az emberi gondolkodás valamilyen szintű utánzása (emulálása), és ha tanulásra alkalmas szoftverről van szó, mondjuk egy genetikus algoritmuson alapuló szoftverről, akkor a tanulás folyamán folyamatosan szimulál különböző eseteket, ezekből tanul, majd az így megszerzett tudása alapján válik képessé arra – már nem a tanulási, hanem az alkalmazási szakaszban –, hogy valódi eredményt nyújtson.
Vagy mit csinál egy brute force-ra épülő sakkprogram? Megnézi az összes lehetséges lépési lehetőségét. Aztán megnézi ezek mindegyikére az ellenfél összes lépési lehetőségét. Még ha bizonyos ágak levágásával optimalizálva is, de játékfolytatási lehetőségek millióit szimulálja le magában 3-4-8-12 lépéssel előre „gondolkodva”, és ezek eredményeit elemzi valamiféle szempontrendszer szerint, és ezen elemzés eredményeként választja ki azt az egyetlen lépést, amit már valóban lépni is fog. A statisztikai módszerekre vagy a mintafelismerésekre alapozott sakkprogram, de még a neurális hálózatokon alapuló sakkprogram is minden lépés előtt játékfolytatások millióit szimulálja magában, mielőtt azt a bizonyos „valódi eredményt” kiköpi.
> Szakértői rendszerek igenis használatban vannak
Nem akartam ennek az ellenkezőjét állítani. Rosszul fejeztem ki magam, mikor azt írtam, hogy „A dolog egyébként hamar el is halt”. Nem a szakértői rendszerek tűntek el. Azok voltak, vannak, meg lesznek is. A lelkesedés volt az, ami elhalt. Anno a szakértői rendszerek koncepciója óriási lelkesedéssel járt együtt. Hiszen nincs más dolgunk, mint leprogramozni az addig emberek által végzett döntési folyamatokat, belapátolni azt a rengeteg szaktudást, ami alapján az emberek bizonyos területeken döntéseket hoznak, és máris egy gép állítható az ember helyére.
A felmerült probléma – amire elsőre a legtöbben nem gondoltak –, hogy bizonyos tudásszint felett az ember már nem racionálisan, nem tudatos következtetések mentén dönt. Vegyük elő újra példaként a sakkot. Egy bizonyos szintig egy játékos meg tudja indokolni a lépéseit. „Azért léptem a bástyával, mert…”. De egy bizonyos tudásszint felett már képtelen racionális magyarázatot rendelni a döntéséhez. Ilyenkor jönnek az olyan indoklások, hogy „Azért léptem a bástyával, mert jó ötletnek tűnt, bár ha jobban belegondolok így sokkal szimmetrikusabb az állás, meg eszembe jutott az X és Y között játszódó játszma egy adott lépése, és bár a jelen szituáció egészen más, mégis ez a lépés ugrott be hirtelen.”. Ez már nem egy racionális döntési mód, elég bajos lenne algoritmizálni.
A szakértői rendszerek ettől még használhatóak, egy bizonyos szintű emberi tudást és tevékenységet tudnak helyettesíteni, de már nem várjuk tőlük azt, hogy olyan szintű tudást hordozzanak magukba, mint amire az ember képes. Bizonyos területeken így is nagyon hasznosak, de bizonyos területeken meg már eszünkbe se jut, hogy szakértői rendszerekkel támogassuk a döntéshozatalt.
Kezdetben azt hittük, ez majd elhoz egy egészen új jövőt, de csak egy többé-kevésbé jól használható, de korántsem tökéletes és univerzális eszközzé vált.
(Az SAP óriási előnye, hogy moduláris, testre szabható, így egy cég a saját speciális működésére tudja szabni a rendszert. Csak sajnos – főleg nagyobb cégeknél – ez olyan irányba szokott történni, hogy az így kialakított rendszerre nem is a mesterséges intelligencia, hanem a mesterséges idiotizmus lenne a helyesebb kifejezés. :-) )
~ ~ ~
> A PC-k ma már hihetetlenül nagy számítási teljesítménnyel bírnak a legelső IBM PC-hez képest. Nagyságrendileg több 10 ezerszeres.
És azt tudtad, hogy ha a „személyi számítógép” betűit összekeverjük, abból kirakható az, hogy „szipózás émelyít még”?
Oké, ecsetelted a szuperszámítógépek számolási kapacitását, de hogy kapcsolódik ez a témához? A számítási teljesítmény egy dolog. A gót például 19*19-es táblán játsszák, az 361 különböző pont. Ha már van lent 61 kő, akkor is marad max. 300 lépési lehetőség, amelyek mindegyikére max. 299 válaszlépés lehetséges. Ha csak 5 lépéspárral előre akarod kiszámolni az összes lehetséges folytatást, az 300^10 = 5,9*10^24 nagyságrendű játékállást jelent. A Sunway TaihuLight 125,4 petaflopsos kapacitását alapul véve még ha egy lépésben ki is tudna számolni és egyben ki is tudna értékelni egy játékállást – ami ugye lehetetlen –, akkor is másfél év alatt tudná kiszámolni az összes lehetséges folytatást. Márpedig öt lépéspár nem sok. A góban van olyan alakzat, ami bár csak a 20. lépéspár után válik egyértelműen vesztes állássá, az ember mégis képes fél másodperc alatt átlátni és felismerni ezt a mintázatot, hogy ez egy vesztes állás. Pont ezért volt igazán keménydió a gó, mert a sakkal ellentétben még optimalizációk árán is reménytelen lett volna nyers erővel próbálkozni. Hagyományos eszközökkel, mintafelismeréssel, meg sok-sok trükkel és adatbázissal is a maximum amit ki tudtak hozni, az egy már egész erős, de a profik szintjét meg sem közelítő amatőr játékos szintje volt.
Az AlphaGo legyőzte a világ legjobb játékosát 4-1-re. Az AlphaGo Zero meg 40 napnyi tanítás után jutott el oda, hogy 100-0-ra győzte le az eredeti AlphaGo-t. És mekkora szuperszámítógép kellett ehhez? Az AlphaGo Lee 48 TPU-n működött. Az AlphaGo Zerohoz már csak 4 TPU kell, a maga 180 tflops számítási kapacitásával és a 64 GB memóriájával, ami három nagyságrenddel kisebb az általad említett szuperszámítógépek számítási kapacitásának, és ami 16 darab Nvidia GTX 1080 Ti számítási kapacitásának felel meg.
~ ~ ~
Igen, már a PC-k is, hát még a szuperszámítógépek óriási számítási kapacitással bírnak. Csak a számítási kapacitás nem minden, és adott esetben még mindig borzasztóan kevés. Az modern mesterséges intelligenciák óriási előnye pont az, hogy nincs is szükség óriási számítási kapacitásra. Egy világbajnokot is megizzasztó erősségű sakkprogram ma már akár elfut akár egy mobiltelefonon is. Persze bizonyos feladatokhoz kell a számítási kapacitás, de a modern mesterséges intelligencia eszköztára ennél sokkal nagyobb erőt képvisel. Többet ésszel, mint erővel, azaz az algoritmus sokkal fontosabb, mint az nyers erő.
Ha én készítek egy valamit, sok-sok lábbal, ami úgy néz ki, mintha egy 6502-es processzor lenne, az szimuláció. Ha a PC-men írok egy programot, amely alkalmas lesz arra, hogy 6502-es processzorra írt programokat futtasson, akkor az emuláció.
A különbség, hogy a szimuláció csak olyan, mintha 6502 lenne, az emuláció meg képes kiváltani a 6502-es processzort, funkcionalitás szintjén.
Amiket te idézel az emulációról, azok a megállapítások nagyon régiek és onnan keletkeztethetők, hogy a korai MI-k egy részét úgy próbálták megalkotni, hogy az emberi agy működését próbálták lemodellezni (neuron hálók). Máskor is így tesz az ember. A természetben már működő dolgokat másolja (repülőgép szárnyai, stb.)
Azonban ez a kitétel, hogy az MI emuláció, nem állja meg a helyét, hiszen MI létezik neuronháló nélkül is, ráadásul ami neuronhálós, az sem egészen úgy működik, mint az emberi, sőt.
Tanulás:
Az MI nem kell, hogy képes legyen tanulni, ahhoz, hogy MI-nek nevezhessük, mert van egy rakat rendszer, amely úgy képes az emberi döntési folyamatot kiváltani, hogy kizárólag a saját adataiból dolgozik (pl. jog, nyelvészet, kémia egyes területei).
"de bizonyos területeken meg már eszünkbe se jut, hogy szakértői rendszerekkel támogassuk a döntéshozatalt. Kezdetben azt hittük, ez majd elhoz egy egészen új jövőt, "
Na, ez a jövő már itt is van:
"Miközben a telefonunk, számítógépünk, sőt, még az autónk is egyre okosabbá válik, egy másik területen is egyre erősebben érezteti hatását a technolgóia fejlődése. Az ipar 4.0 nemcsak a termékek gyártására, de a gazdaságra és a társadalomra is komoly hatással lesz a következő néhány évtizedben. Mindennek alapja a mesterséges intelligencia, amely sok más mellett olyan feladatok elvégzésére is képes, amit az ember nem, vagy csak drágábban és nagyon lassan tudna megcsinálni."
"A 4.0-sként emlegetett ipari forradalom alapját a mesterséges intelligencia, az azon alapuló gépi látás és az egyre olcsóbb szenzorok hálózata jelentik, amelyek adatait olcsón gyűjthetjük és azonnal elemezhetjük. A munkát irányító neurális hálózatot mi tanítjuk be az adott feladatra, de a tanítási folyamat közben nem kell explicit szabályokat megfogalmaznunk az adatokkal kapcsolatban.
A hatalmas előrelépés az, hogy szabályok definiálása helyet, a mesterséges intelligencia már képes rá, hogy egy nagy elemszámú tanulóhalmazból összefüggéseket tanuljon meg automatikusan."
"Fogta magát a mesterséges intelligencia, és egy nap alatt megtanult angolról franciára fordítani – emberi segítség nélkül"
> Azonban ez a kitétel, hogy az MI emuláció, nem állja meg a helyét
Nem tudok mit mondani erre. Tessék ezzel a kérdéssel Cihan H. Dagli-hez, vagy Peter Eric Jackson (†2011) definícióját átvevő tanítványokhoz, kollégákhoz fordulni, nyilván ők csak a mesterséges intelligencia különböző területeit kutató, elismert szaktekintéllyel rendelkező egyetemi professzorok, így bizonyára rosszul látják a dolgot.
> Az MI nem kell, hogy képes legyen tanulni, ahhoz, hogy MI-nek nevezhessük
Ahogy írtam, ez nem egy következtetésből levonható megállapítás, hanem definíció kérdése. Most mondok egy példát, az, hogy a paradicsom az zöldség, vagy gyümölcs, az annak a kérdése, hogy hogyan definiáljuk a zöldség és a gyümölcs fogalmát. Ha így definiáljuk, akkor zöldség, ha úgy definiáljuk, akkor gyümölcs. Itt tehát azt kell megnézni, hogy úgy általában az emberek, illetve a szakemberek az MI kritériumának tekintik-e azt, hogy képes legyen tanulni. És azt lehet látni, hogy rendszerint igen, de legalábbis az mindenképpen kritériuma a mai értelemben vett MI-nek, hogy képes legyen olyan problémákat is valamilyen szinten megoldani, kezelni, amit nem tanítottak meg neki. Na ez az, amire a klasszikus, előre leprogramozott szabályrendszerre épülő szakértői rendszer nem képes.
Mikor a legutóbbi válaszomat megírtam, utána ugrott be egy jó példa. Anno a Commodore 64 idejében volt egy un. Hi-Res (High Resolution) felbontás. Ez 320*200 pixeles felbontást jelentett 16 színnel. És akkoriban ez valóban egy nagy felbontásnak számított, szemben mondjuk egy 160*200-as, vagy 40*25 grafikus karakterből összetákolt képhez képest ( [link] )
Akkor ez volt a magas felbontás. Ma viszont tudod-e röhögés nélkül magas felbontásúnak nevezni ezt – [link] – a képet? Az idő szalad, a szekér halad, ma már a magas felbontásnak a 4K-t, meg egy ideig még a FullHD-t hívnánk, de ma már egy 480p-s – de lassan már egy 720p-s – videó alacsony felbontásnak számít, pedig több, mint négyszer annyi pixelről és néhány milliószor több színről van szó, mint a Commodore „High Resolution” felbontása esetén.
Vagy ott a CGA (!COLOR! Graphics Adapter). És hiába volt a PC hőskorában ez „A” színes monitor (a maga négy színével), ma már kicsit megmosolyogtató egy ilyen képet – [link] – színes képnek nevezni ehhez – [link] – képest. Bár kétségtelen, hogy vannak rajta színek, de a 4 szín még mindig jóval közelebb van a monokróm monitor 2 színéhez, mint a mára megszokott és minimumnak számító 16 millió színhez.
Hogy mi számít MI-nek és mi nem, annak a kritériumai is változnak idővel. Ami 30 éve még az MI csúcstechnológiájának számított, arra ma már nem használjuk a mesterséges intelligenciát, mint fogalmat. Ki tudja? Lehet, hogy 50 év múlva meg a mai neurális hálókon alapuló legmodernebb célrendszereket is csak igen tág értelemben, és igencsak nagy jóindulattal fogják mesterséges intelligenciának nevezni, de a legtöbben már nem fogják annak tartani, mert az akkori technológiához képest a mai legcizelláltabb neurális hálók is végtelenül primitív és buta megoldásoknak fognak majd tűnni.
~ ~ ~
> A különbség, hogy a szimuláció csak olyan, mintha 6502 lenne, az emuláció meg képes kiváltani a 6502-es processzort, funkcionalitás szintjén.
Itt is eléggé eltérnek a definíciók. Talán azért is, mert az angol nyelvű szakirodalomban az emuláció fogalma kevésbé szerepel, sokszor az emulátor megfogalmazásánál is a szimuláció fogalmát használják. De összességében a szimuláció a rendszer belső működésének pontos modellezését jelenti, aminek az elsődleges célja a szimulálás alapjául szolgáló rendszer – mondjuk egy híd – viselkedésének vizsgálata a szimulált modellen keresztül, anélkül, hogy magát a tényleges, megépített hidat kellene vizsgálni. Az emuláció deklarált célja meg az, hogy valamiféle kompatibilis működést mutasson, az emulációt használó személy benyomása az legyen, hogy az emuláció funkcionálisan azonos legyen a emulált rendszer funkcionalitásával. A belső működés már teljesen más lehet, minket csak a működés eredményének az azonossága érdekel, a működés módjának az azonossága indifferens.
A kollégám – így hirtelen nekiszegezve a kérdést – úgy fogalmazta meg, hogy szimulálni általában valamilyen működést szoktunk, emulálni meg valamilyen eszközt. Nem egy egzakt és pontos megfogalmazás, bele lehet kötni, de a legtöbbször valóban így van. Mikor a híd viselkedését szimuláljuk, akkor a belső működést vizsgáljuk, egy a tényleges rendszer belső működését a vizsgálat szempontjából pontosan utánozó számítógépes modellen keresztül. Nem az a cél, hogy elhitessük, hogy a számítógépen futó szimuláció egy valódi híd, hanem hogy a valódi híd esetleges viselkedéséről tudjunk meg valamit annak a modelljén keresztül. Az emulációnál a belső működés lényegtelen, akár teljesen más alapokon is nyugodhat. Mondjuk egy Commodore emulátor esetén a cél az, hogy a felhasználó azt az élményt kapja, hogy ténylegesen egy Commodore előtt ül.
A szimuláció mivel a rendszer belső működését is pontosan szimulálja, ezért annak a hibát, hiányosságait, sajátosságait is szimulálja. Egy VirtualBox a számítógép belső működését is pontosan utánozza, így az abból fakadó hibákat is. Egy emulátor esetén viszont lehet, hogy valami az eredeti rendszerben hibásan működött, az emulátorban viszont nem jelenik meg ez a hiba, cserébe viszont teljesen más jellegű hibák bukkanhatnak fel.
Lexikon:
„Szimuláció: Valamely vizsgálandó jelenség, folyamat, rendszer (közös néven objektum) alapvető tulajdonságaival rendelkező modellen végzett kísérlet. A modellezés célja, hogy a fizikailag világos viszonyok között nehezen kezelhető objektumokat részletes vizsgálatra alkalmassá tegye.”
„Simulation is the imitation of the operation of a real-world process or system over time. The act of simulating something first requires that a model be developed; this model represents the key characteristics, behaviors and functions of the selected physical or abstract system or process. The model represents the system itself, whereas the simulation represents the operation of the system over time.
[…]
A computer simulation (or »sim«) is an attempt to model a real-life or hypothetical situation on a computer so that it can be studied to see how the system works. By changing variables in the simulation, predictions may be made about the behaviour of the system. It is a tool to virtually investigate the behaviour of the system under study.”
„Emuláció: Egy adott működési környezetet más körülmények között utánzó technológia. Az emuláció lényege, hogy az emulált környezethez készült szoftverek és adatok feldolgozását lehetővé teszi az attól eltérő jellemzőkkel rendelkező környezetben is.”
~ ~ ~
A dolog talán azért is keveredik, mert minden rendszer komplex, különböző szintekre tagolható. Pl. az internet működésére jól ráhúzható az OSI modell, ami hét különböző réteget különít el, még ha az internet felépítésében bizonyos rétegek valamennyire keverednek is.
Ilyen szempontból egy adott vizsgálódási szempontból lehet valami szimuláció, míg egy alacsonyabb szinten nézve már nem az. Mondjuk egy oprendszer emulátora lehet, hogy kernel szinten nem csak emulálja, hanem pontosan szimulálja is a működést, de hardver szinten már csak emulálja azt.
A repülőgép szimulátor esetén is kérdéses, hogy szimulációról, vagy emulációról van szó. Nézőpont kérdése. A berendezés nem szimulálja, inkább emulálja a repülőgép működését. Viszont más nézőpontból nézve mivel a vizsgálat szempontjából a dolog teljes egészében analóg, így szimulálni lehet vele mondjuk különböző időjárási, látási viszonyokat, géphibákat, a pilóták döntéseit, és ilyen módon már nem az a cél, hogy a berendezés elhitesse veled, hogy te egy repülőgépen ülsz, hanem a cél mindjárt az, hogy megtudjunk valamit a repülőgép viselkedéséről bizonyos környezeti és emberi paraméterek tükrében, ilyen módon már nem az élmény és a használhatóság, kompatibilitás a lényeges, hanem egy modellben – a repülőgép működését modellező eszközben – való történések alapján a valódi repülőgép várható viselkedéséről tudunk következtetéseket levonni. Ott van ugyanaz az eszköz, ugyanazzal a működéssel, amit ha szórakozásra, kikapcsolódásra használunk, akkor emulátornak, ha a repülés körülményeinek, a repülőgép viselkedésének vizsgálatára használunk, akkor szimulátornak minősül.
Vagy pl. még az emulátor wikipédiás meghatározásánál is keveredik a két fogalom: „Az emulátor egy olyan számítógépes program vagy hardver, ami más programoknak vagy eszközöknek a környezetét (vagy annak részét) „szimulálja”, vagyis lehetővé teszik az adott rendszerrel nem kompatibilis programok (vagy operációs rendszerek) vagy számítógépek futtatását.”
Itt tulajdonképpen le is zárhatjuk a vitát azzal, hogy egészen más definíciókkal dolgozunk, elég megértenünk azt, hogy a másik mit ért az általa használt fogalom alatt, és akkor nyugodtan eltekinthetünk a szóhasználat különbözőségétől. Már csak azért is, mer úgy tűnik a szakirodalomban sem ellentmondásmentesen vannak ezek a fogalmak definiálva, kevésbé egységesen, mint mondjuk a mesterséges intelligencia fogalma esetén, ahol a szavak mögötti jelentéstartalom azért jórészt a legtöbb embert nézve ugyanazt fedi le.
~ ~ ~
> "de bizonyos területeken meg már eszünkbe se jut, hogy szakértői rendszerekkel támogassuk a döntéshozatalt. Kezdetben azt hittük, ez majd elhoz egy egészen új jövőt, "
> Na, ez a jövő már itt is van:
Elbeszélünk egymás mellet. Én a szakértői rendszerekről beszélek, amelyek előre meghatározott, lekódolt szabályrendszer alapján működnek. Te meg úgy általában a mesterséges intelligenciáról szóló írást idéztél be.
Ahogy te is idézted: „[…] A munkát irányító neurális hálózatot mi tanítjuk be az adott feladatra […]”
Na pont a neurális hálózat az, ami nincs benne egy klasszikus szakértői rendszerben. Persze lehet egy klasszikus szakértői rendszert és egy modern neurális hálót ötvözni, ami egy újfajta mesterséges intelligencia elvén működő szakértő rendszert eredményez, de ettől a klasszikus szakértői rendszerek önmagukban a mai szóhasználatban már annyira nevezhetőek mesterséges intelligenciának, mint a 320*200-as felbontás magas felbontásnak.
Idézlek:
"A repülőgép szimulátor esetén is kérdéses, hogy szimulációról, vagy emulációról van szó. Nézőpont kérdése. A berendezés nem szimulálja, inkább emulálja a repülőgép működését."
Megint idézlek:
"Az emuláció deklarált célja meg az, hogy valamiféle kompatibilis működést mutasson, az emulációt használó személy benyomása az legyen, hogy az emuláció funkcionálisan azonos legyen a emulált rendszer funkcionalitásával. A belső működés már teljesen más lehet, minket csak a működés eredményének az azonossága érdekel, a működés módjának az azonossága indifferens."
Hát banyek, te olyan szépen megmajmolod saját magadat az állításaiddal, okoskodásaiddal, hogy az na.
1. Az emuláció során nem kell, hogy a használó személynek bármiféle olyan benyomása legyen, amiről hablatyolsz. Az emuláció ráadásul el sem térhet működésében az eredetitől. Hogy a repedésbe lehetne futtatni egy 6502-re írt szoftvert egy olyan 6502 emulátoron, amelynek nem annyi regisztere van, mint egy eredeti 6502-nek? Az emuláció célja éppen az, hogy pontosan megegyezzen az emulált eszközzel.
A szimuláció pedig, mint az a nevében is benne foglaltatik, csak HASONLÓ az eredetihez, de nem az.
Ennek a lényege, hogy csak hasonlóság áll fenn a szimulált tárgy és a szimuláció között, nem pedig azonosság. A két dolog - ellentétben az emulációval - nem felcserélhető. Ez még akkor is így van, ha a szakzsargon nagyon helytelenül, sok esetben keveri a kettőt.
"Na pont a neurális hálózat az, ami nincs benne egy klasszikus szakértői rendszerben. "
Aha, tehát azt sem tudod, mi az, hogy szakértői rendszer.
Jó, én itt befejeztem..
A tévedéseid mindegyikét korrigálni sem időm, sem kedvem de azt elárulom, hogy
a CGA nem 4, hanem 16 színt volt képes megjeleníteni, a virtualbox pedig nem szimulál, hanem emulál. Olvasd el a helpjét.
emulátor egy olyan számítógépes program vagy hardver, ami más programoknak vagy eszközöknek a környezetét (vagy annak részét) „szimulálja”, vagyis lehetővé teszik az adott rendszerrel nem kompatibilis programok (vagy operációs rendszerek) vagy számítógépek futtatását. Természetesen (a szükséges átalakítások miatt) az emulátorok lassabban működnek, mint az eredeti környezet. Tesztelésre viszont ideálisak (hiszen hiba esetén csak az álkörnyezet fagy le).
A számítástechnikában az emulátor egy olyan hardver, szoftver vagy mindkettő, amely lemásolja ill. utánozza (emulálja) egy kiinduló számítástechnikai rendszer funkcióit egy második, eltérő számítógépes rendszeren, úgy, hogy a második rendszer viselkedése minél jobban megközelítse a kiinduló rendszer viselkedését. A hangsúly a külső viselkedés pontos visszaadásán van, ellentétben a szimulációval, amelyben egy rendszer absztrakt modelljét állítják elő. Emiatt például egy hurrikán vagy kémiai reakció szimulációja nem emuláció.
Jó, akkor fussunk neki még egyszer.
Mondjuk mire jó egy Commodore emulátor? Arra, hogy Commodore-ra írt programok fussanak rajta, hogy az az élményed legyen, hogy olyan, mintha egy tényleges Commodore előtt ülve játszanál mondjuk az International Karate nevű játékkal. Ehhez a funkcionalitást, a működést kell leutánozni. Nem kell, hogy ugyanúgy vezérelje a billentyűzetet, hanem csak utánoznia kell azt.
Vagy mondjuk Linux alatt akarsz emulálni egy DOS parancssort. Ugyanúgy kell működnie, ugyanazoknak az utasításoknak ugyanazt az eredményt kell adnia. Funkcionálisan persze, hogy minél tökéletesebben utánoznia az eredeti DOS-t. De működésében nem. Lehet, hogy a „sort” parancs ugyanúgy sorba rendez valamit, a végeredmény meg kell, hogy egyezzen az eredeti DOS ugyanazon utasításának ugyanazon bemenetre adott kimenetével. De a működés szempontjából nem kell azonosnak lennie, pl. lehet, hogy a DOS-ban a sort utasítás egy shell sort algoritmussal rendezte az elemeket, míg az emulátor meg egy merge sort algoritmussal teszi mindezt. Ha csak a DOS parancssorát akarjuk emulálni, és nem a gépet magát, akkor ebből a felhasználó úgysem érzékel semmit, számára lényegtelen, hogy milyen rendezési algoritmussal működik a sort parancs, a lényeg, hogy sorba rendez. Ahogy idézted is: „lehetővé teszik az adott rendszerrel nem kompatibilis programok (vagy operációs rendszerek) vagy számítógépek futtatását”. Ez a lényeg. Hogy hogyan? Az már nem lényeges, persze egy komplett számítógép emulálása során muszáj gépikód és hardver szinten utánozni.
Az emulációnak nem feltétele, hanem célja az „olyan, mintha” élmény minél tökéletesebb elérése. De nem feltétlenül kritériuma, hogy „pontosan ugyanúgy, mint”.
~ ~ ~
Miért futtatunk szimulációt? Mondjuk valaki hülye a valószínűségszámításhoz, de tud programozni. Felmerül a kérdés, hogy mi az esélye, hogy valaki kockapókerben full house-ja legyen. Mit csinál? Futtat egy szimulációt, mondjuk egymilliószor „dob” öt kockával, és megnézi, hogy az egymillió esetből hány esetben lett full house. A szimuláció célja a rendszer – jelen esetben az öt kockával való dobás – viselkedésének elemezése. Ami ebből vizsgálódási szempontból releváns, azt minél pontosabban kell lemásolni. Nem dolgozhatsz egy rossz karakterisztikájú véletlen szám generátorral, mert fals eredményt fogsz kapni. A véletlen szám generátornak nagyon pontosan kell utánoznia a tényleges véletlent. Nyilván nem kell megrajzolni a kockákat, lényegtelen a kocka színe, anyaga, mérete, hőmérséklete, elektromos ellenállása stb… Ezek a vizsgálódás szempontjából nem befolyásolják az kapott eredményt, így ezektől el lehet vonatkoztatni, azaz elegendő a rendszer egy absztrakt, de a vizsgálódás szempontjából lényeges viselkedést a lehető legpontosabban leíró matematikai modellel dolgozni.
A szimuláció célja nem az, hogy „olyan legyen, mintha”. A fenti szimuláció során egyetlen kockát sem fogsz látni a képernyőn, a szimuláció eredménye egyetlen szám lesz: 3,85%. Az emulációval szemben a szimulációnak nem célja, hanem feltétele az „olyan legyen, mintha”, pontosabban az „a lehető legpontosabban ugyanúgy viselkedjen, mintha” de csak a vizsgálódás szempontjából releváns paraméterekben.
~ ~ ~
És talán pont ezért mosódik össze a két fogalom, mert céljaiban más, de eszközeiben hasonló a kettő. Egy emulátor nem fog tökéletesen mindent utánozni, van az a szint, amitől már csak hasonló a működése, de lényegi szempontból azért mégis analóg. Pont mint a szimulációnál, csak a céljában más a kettő.
~ ~ ~
> "Na pont a neurális hálózat az, ami nincs benne egy klasszikus szakértői rendszerben. "
> Aha, tehát azt sem tudod, mi az, hogy szakértői rendszer.
A szakértői rendszereknek van egy tudásbázisa. A szakértő bizonyos döntési folyamatokat elmesél a programozónak, a programozó meg ezt formalizálja. A következtető mechanizmus ezen összefüggések alapján találja meg a választ a feltett kérdésre. A szakértő mond egy hosszú mesét, hogy hát mi alapján lehet következtetni a cukorbetegségre, elmeséli, hogy néha elrontják a vérvizsgálatot, és amit pl. onnan lehet tudni, hogy bizonyos értékek esetén a beteg már régen nem élne. Elmondja, hogy egy hónapnál régebbi vérkép eredményekből nem szabad diagnosztizálni, ilyenkor el kell küldeni a beteget vérvételre. A programozó aztán ezt formalizálva létrehoz egy tudásbázist, am ilyen jellegű összefüggésekből épül fel:
HA a legutóbbi vérvétel időpontja egy hónapnál régebbi, AKKOR a vérkép eredmények elavultak.
HA a vérképben a triglicerid érték > 1000, AKKOR a vérkép vizsgálatot elrontották.
HA a vérkép eredmények elavultak VAGY a vérkép vizsgálatot elrontották, AKKOR teendő = a beteget vérvételre küldeni.
HA a vérkép eredményen nem elavultak ÉS a vérkép vizsgálatot nem rontották el, AKKOR a vérkép eredmények használhatóak
HA a vérképben a triglicerid érték > 1.7 ÉS a vérkép eredmények használhatóak AKKOR triglicerid szint = magas
…
A következtető gép felé többféle kérdést lehet intézni. Pl. meg lehet kérdezni, hogy mi a teendő, ha a ez és ez a helyzet áll fenn. A következtető gép előveszi azokat a szabályokat, amelyek tartalmazzák a kérdésben szereplő adatokat, ezeket az összefüggéseket összefűzi, és így kiad egy választ, hogy a teendő az, hogy a beteget vérvételre kell küldeni. (Induktív működés)
Fordítva is lehet kérdezni, meg lehet kérdezni pl. azt, hogy kell-e a beteget vérvételre küldeni. Ilyenkor megint sorra veszi a szabályokat, és megállapítja, hogy ez szükséges-e vagy sem. (Deduktív működés)
A szakértői rendszer nem csak választ tud adni a kérdésre, de képes indoklást is fűzni hozzá, hogy azért kell a beteget vérvételre küldeni, mert a legutóbbi vérkép eredmények egy hónapnál régebbiek.
A rendszer lényege, hogy a szakértők döntési mechanizmusának egyes lépései össze vannak gyűjtve egy tudásbázisba. Nyilván csak olyan problémákkal képes megbirkózni a rendszer, amely problémák megoldásához szükséges elemi lépések benne vannak a tudásbázisban.
~ ~ ~
A neurális hálók esetén viszont szó sincs ilyenről. Ott a tanulás során betápláljuk az egyik oldalon a kiinduló értékeket (pl. vérkép eredmények egyes értékeit, a vérkép korát), a másik oldalon meg a kimenetet (a beteget vérvételre kell küldeni, a beteget diabétesz szakrendelésre kell küldeni). Minél több esetet tanítunk meg neki, annál pontosabb összefüggéseket fog magában kialakítani. Hogy mi az összefüggés az input és az output oldal között, azt nem mondjuk meg, nem adunk neki egy szabályrendszert, a neurális háló maga alakítja ki az input és output adatok közötti összefüggést. Innentől kezdve bármilyen inputot adunk neki, arra tud adni egy outputot. (Hogy aztán az mennyire jó, az más kérdés.) Képes olyan összefüggéseket is megtalálni, amiről nem is tudtunk. Viszont nem képes megindokolni a döntését, illetve ahogy írtam már, ugyan a neurális háló állapotának elemzéséből elvileg akár ki lehet következtetni, de ez sokszor a háló mérete és komplexitása miatt nem járható út.
~ ~ ~
A két megközelítés üti egymást. Most vagy megadunk egy bár a későbbiekben bővíthető, de mégiscsak merev, előre bedrótozott, megírt, leírt szabályrendszert, vagy nem adunk meg szabályrendszert, hanem az összefüggések feltárását a tanulási mechanizmusra bízzuk. A kettő üti egymást. Persze lehet a két megközelítést párhuzamosan, egymást segítő, kiegészítő módon alkalmazni, csak az már egy hibrid és nem egy klasszikus értelemben vett szakértői rendszer lesz, aminek a lényegét a tudásbázis és a következtető gép adja.
A különbség a két rendszer között az, hogy míg a szakértői rendszer nem intelligens, csak az intelligencia látszatát kelti, és igazából a tudásbázis felépítéséhez szükséges ismereteket adó szakember az, aki intelligens. Ez is valami, nem véletlenül tartozik a mesterséges intelligencia tárgykörébe, de ma már ennél többet várunk el egy rendszertől ahhoz, hogy igazán mesterséges intelligenciának nevezhessük. Bár a szakértői rendszer a szabályrendszer olyan láncolatát is képes alkalmazni, amire a szakember nem feltétlenül gondolt, de valójában ez a tudás is része volt a szakembernek, csak nem tudott róla tudatosan. Viszont ha egy következtetési lánc egyetlen szabályelemét kiveszed a rendszerből, máris összedől a kártyavár. A rendszer ugyanarra a kérdésre – azaz ugyanazon bemenő adatokra – az első és az egymilliomodik alkalommal is ugyanazt a választ fogja adni, akkor is, ha a formalizálásban történt hiba miatt a válasz hülyeség. A rendszer nem fogja túlszárnyalni az ember elméleti tudását, mert az emberek által összegyűjtött tudáson alapszik, nem tud olyan szabályt kialakítani, amit nem tápláltak be előtte neki.
Ezzel szemben a neurális háló már ténylegesen rendelkezik az intelligencia néhány ismérvével. Ugye képes tanulni. Emellett képes hiányos információkból, addig számára ismeretlen információhalmazból is helyes következtetéseket levonni. Képes arra, hogy komplex összefüggések megtalálásával túlszárnyalja az emberi tudást, olyan problémákat is meg tudjon oldani, ahol a leghozzáértőbb emberekből álló szakértőgárda is csak széttárja a kezét.
~ ~ ~
> a CGA nem 4, hanem 16 színt volt képes megjeleníteni
Na jó, fogjuk rá, hogy tudta. Karakteres üzemmódban persze tudta, igaz egy karakteren belül csak két színt tudott megjeleníteni. Meg a karakteres üzemmód megerőszakolásával – 2 pixel magasságú karakterekkel – el lehetett érni, hogy 160*100-as felbontásban képes legyen egyetlen képen 16 színt megjeleníteni – képet és nem csak karaktereket –, de ezt is csak bizonyos korlátokkal. Pl. egy 4*2-es képrészleten nem lehetett mind a 8 pixel különböző színű, csak két szín szerepelhetett. (Sőt további trükközéssel, meg a rendszer durva megerőszakolásával – pl. a pontos időzítéssel való palettaváltással, vagy a pixelpozíció manipulálásával – akár 1024 színt is meg lehetett jeleníteni – a felbontás csökkenése nélkül, de szintén erős megszorításokkal, illetve csak NTSC kijelző esetén –, de ez már tényleg csak technológiai zsonglőrködés volt, ténylegesen nem használták ezt a módszert, mert például a a kép nagyon vibrált.) De a standard, támogatott grafikus üzemmódokban teljes szabadsággal csak 4 színt volt képes megjeleníteni 320*200-as felbontásban, vagy 2 színt 640*200-as felbontásban.
"egy 4*2-es képrészleten nem lehetett mind a 8 pixel különböző színű, csak két szín szerepelhetett"
Ezt leírhatnád, miért... szerintem simán működik. Ki is próbáltam: bármelyik képpont bármilyen színű lehet.
Érdekesség: Mono képernyőn is tud 9 árnyalatot (de itt tényleg vannak kötöttségek a szomszédos pixelekre - és a képnagyság is csak 4KB).
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!