Kompiuteriui kalbėtis su žmogum

Apie Onofą, kaip apie kalbą, niekas nekalba jau kelis dešimtmečius. Net patyrusiems programuotojams jis neatrodo panašus į kalbą (populiari beprasmybė – „mašininis kodas – tai ne kalba„), nors kaip matėm iš aiškinimųsi apie Tiuringo mašiną, bet kuri metakalba, suteikianti priemones matematinės teorijos aprašymui, yra metakalba, o tuo pačiu – ir kalba, bent jau tiek, kiek galime spręsti apie tai, kas išvis yra kalba.

Aptilo ir kadaise populiarūs svaičiojimai apie kompiuterius, kalbančius su žmonėmis, dirbtinį intelektą ir kitas pusės šimtmečio senumo svajones. Kai Arthur C. Clarke 1968 metais parašė savo garsiąją „2001-ųjų kosminę odisėją“, kurioje buvo dirbtinis intelektas HAL-9000, atrodė, kad viskas įmanoma. Na, gal būt ne tolimos kosminės kelionės, bet mąstančios mašinos – tai jau tikrai. 2001 jau seniai praėjo.

Dabar galime paprastai suformuluoti problemą, kurios sprendimas būtinas dirbtinio intelekto sukūrimui: žmogus gali išmokti kalbą, kuria programuojamas kompiuteris, o ar įmanomas atvirkščias variantas?

On-Off ir kalbinės matematikos pradžia

Onofas – tai pavadinimas iš angliškų žodžių On ir Off – tai kalba, kuri tiesiog aprašo viską bitais. Bitas įjungtas, bitas išjungtas. Kalba, skirta dvejetaines komandas vykdančios mašinos programavimui. Su Onofu iki šiol dirba tokie aparatūros hakeriai, kaip Vabolis, gal būt net ir nežinodami tos kalbos pavadinimo. Onofas labai paprastas – jūs paspaudėte lemputės jungiklį kambaryje – komanda perduota neįtikėtinai primityviam automatui. Įjungėte elektrinį virdulį – ir vėl perduota komanda, tiesa, jau vos vos sudėtingesniam automatui – turinčiam termojungiklį. Ir taip toliau. Bet kuris kompiuteris – tai irgi tam tikras automatas, net jei jis yra Tiuringo mašina. Jam irgi galima perdavinėti komandas.

Onofas yra neįtikėtinai paprastas. Ir kartu onofas bet kokiame pavidale yra klaikus, siaubingas dvejetainis loginių grandinių košmaras, kurio žmogus tiesiog negali įsisavinti, kaip pilnaverčio kalbinio koncepto. Jis pernelyg išskaidytas, nors ir įdomus, kai palygini su gyvosiomis kalbomis. Ženklas čia tėra bito didumo atminties ląstelė. Reikšmės tenumatytos dvi – nulis arba vienetas. Tačiau rezultatų begalybė – neišpasakyta, kaip ir bet kurioje kitoje Tiuringo mašinoje. Įsivaizduojate žmogišką kalbą su dviem ženklais, perduodamais tiesiai į konkrečius neuronus ir teturinčiais po vieną reikšmę? Tai ir būtų Onofas. Aš neįsivaizduoju, kaip tokia kalba galėtume bendrauti ar bent jau formuluoti kokias nors sveiku protu suvokiamas funkcijas. Pabandžius Onofu ekrane užrašyti sakinį „Marytė spaudo mygtuką“ (tai būtų tiesiog žmogiškos kalbos gabalėlio ekvivalentas), gausis nežmoniškai didelė nulių ir vienetų seka, kurią žmogui suprasti neįmanoma. Net nebandysiu užrašyti tos sekos.

1000110011101010110001101101011

O taip, žinau, kad ENIAC onofas buvo kitoks – jis buvo dešimtainis. Taip, pirmas garsus pilnavertis kompiuteris buvo ne dvejetainis, o dešimtainis. Vietoj nulių ir vienetų ten buvo normalesni skaičiai. Bet onofas ir ten buvo onofas – nesuvokiamas ir nenormalus. Gal netgi nenormalesnis – dėl dešimtainiškumo.

Bent truputį suprantamai – asembleriai ir tiesinė transliacija

Natūralu, kad onofai užknisa. Dėl to ganėtinai greitai atsirado aukštesnio lygio kalbiniai konceptai, pirmiausiai išreikšti žemo lygio abstraktais perfojuostose ir perfokortose, o vėliau – ir įprastesniais žodiniais ženklais. Tai išsivystė į asemblerius – kalbas, kurios pakankamai artimos aparatūrai, kuriamos, atsižvelgiant į konkrečias kompiuterių realizacijas, bet paslepiančios visą tą onofinį klaikumą. Asembleriu visvien baisiai sunku formuluoti bet kokius natūraliai kalbai būdingus konceptus, tačiau jis bent jau iš principo suprantamas. Kai norime asembleriu užrašyti tą patį sakinį ekrane, turime parašyti komandų seką, panašią į tokią:

:START
Jmp CODE ; perėjimas į kodą
DATA EQC ‘Marytė spaudo mygtuką’ ; duomenys
DATA_END EQ CURRADDR ; einamasis adresas
SCREEN CONST 1000h ; ekrano adresas
:CODE
Mov A1, DATA ; duomenų adresas į adresų registrą 1
Mov A2, SCREEN ; ekrano adresas į adresų registrą 2
:LOOP
Movd D1, A1 ; duomenys pagal adresą registre perkeliami į duomenų registrą
Add A1, 1 ; duomenų adresas inkrementuojamas
Movd A2, D1 ; duomenys iš duomenų registro perkeliami į ekraną
Add A2, 1 ; ekrano adresas inkrementuojamas
Cmp A1, DATA_END ; palyginame adresus dėl duomenų pabaigos
Jz END ; jei nulis – baigiame
Jmp LOOP ; kitu atveju einam į ciklo pradžią
:END

Kaip matom, nors atrodo kaip visiška beliberda (populiari beprasmybė – „asembleris – tai mašininis kodas„), jau galime suprasti, kad kažkokie kažkur duomenys, kažkur kažkokie kintamieji, kažkur kažkokios sudėtys, kažkur – maustymai, o dar kažkur – šokinėjimai. Visi asembleriai pakankamai panašūs, tad ir šitas išgalvotos mašinos asembleris nesunkiai būtų suprantamas tiems, kas yra jais programavę – pagal tokią programėlę net ir mašinos architektūrą jau įmanoma būtų dalinai atkurti. O truputį pasėdėjus ir paskukus galvą, tokią programą įstengtų suprasti ir išvis niekad neprogramavę.

Esminis pasiekimas čia – tai transliatoriuose esantys metakalbiniai apibrėžimai, leidžiantys vienareikšmiškai analizuoti bet kokį asembleriu parašytą tekstą, išskaidyti jį gramatiškai į elementus, suteikti pagal prasmes konkrečias reikšmes ženklams ir tada sukonvertuoti (išversti) į tą patį onofą. Kai kada tos konversijos gali būti net kelios – pirma į dvejetainį procesoriaus kodą, o paskui jau procesoriuije – į kažkokį mikrokodą, o dar paskui – į konkrečias dvejetaines komandas paskiroms loginėms grandinėms. Taip ar anaip, kalbinė analizė lemia viską – jos dėka asembleris leidžia naudoti procesoriaus logiką, nesigilinant į dvejetainio vykdymo specifikas.

Kita vertus, vienareikšmiška asemblerių atitiktis onofams reiškia ir kitą – kalbos struktūra savo esme lieka tapati atitinkamos mašinos onofo struktūrai.

Trečiosios kartos programavimo kalbos – Fortran, Algol, Pascal ir kitos

Akivaizdu, kad ir asembleriai programuotojams atrodo, kaip nykus daiktas, tiktai trukdantis formuluoti užduotis. Tad natūralu, jog gan greitai (jau apie 1960 metus) atsirado kardinaliai aukštesnio lygio kalbos – pirmiausia Fortranas, pradžioj daug kuo buvęs panašiu į asembleri, o paskui – ir konceptualus Algolas, išradęs duomenų tipus ir struktūravimą. Apie 1970 atsirado BASIC. Pascal, C ir daugybė kitų programavimo kalbų, kurios jau gražiai išvystė Algol kūrėjų idėjas, o nuo asemblerių atitrūko tiek, kiek asembleriai atitrūko nuo visokių onofų. Kokiu nors tipišku BASIC mūsų sakinį galim parašyti išvis paprastai:

PRINT ‘Marytė spaudo mygtuką’

Atrodo jau gan žmogiškai, tiesa? Bet išties tai ir vėl tie patys pokštai – vienareikšmė bet kurio tam tikra kalba parašyto teksto analizė ir vertimas į tą patį onofą. Nenuostabu, kad apie 1960 metus IT specialistus ir matematiškų pakraipų lingvistus jau buvo beapimanti euforija. Vos pora dešimtmečių nuo pirmųjų onofų – ir kompiuteris kalba jau beveik, kaip žmogus. Ir ne kokia perkeltine prasme, o tiksliai ir vienareikšmiškai realizuojant visus Tiuringo mašinos reikalavimus. Taip, prisiminkim, kad bet kuri programavimo kalba išties yra Tiuringo mašina.

Formaliau žvelgiant, kardinalus pokytis čia susijęs su tuo, kad kalbos struktūra jau neturi atitikti konkrečios mašinos. Pačios kalbos įveda savo konstruktus, formas, išsprendžia vienas problemas ir sukuria kitas. Bet kuri trečiosios kartos programavimo kalba – tai metakalba, tikslumu nenusileidžianti tam pačiam onofui, tačiau leidžianti neribotą kiekį įvairiausių praktinių realizacijų.

Šventa transliacijos trejybė

Pabandę išanalizuoti giluminius pokyčius, šioje trijų kalbos lygių sekoje atrandame eilinę suknistą trejybę. Tai jau gali kelti paranoją. Nors ne, tai tik sutapimai, tiesa? Vargu, ar galėtume reikalą pagrįsti rimčiau, nei panašumų magijomis (oj, ir ten trejybės…). Kita vertus, įdomu.

Onofų tipo kalbos, kaip abstraktai, atitinka reikšminę paradigmą. Net nagrinėjant realizacijos kontekste, prasminiai aspektai nueina į antrą planą, jie tampa reikšmių priedu, netgi dar daugiau – kontekstualinėmis reikšmėmis. Ženklinės savybės čia išvis teegzistuoja, kaip priedėlis prie reikšmės. Vykdymas yra realybė, visa kita – tiktai šešėlis.

Asembleriai žengia kardinalų žingsnį: išlaikydami tą pačią reikšmių sistemą, jie suteikia visai nepriklausomas priemones manipuliuoti ženklais. Ženklas – tai asemblerio, o ne architektūros ar vykdomojo kodo priemonė. Nepaisant to, ženklų sistema aiškiai susiejama su reikšmių sistema. Prasmių sistema tuo tarpu nepakinta ir kaip anksčiau, lieka priklausoma nuo reikšmių sistemos. Įvedama ženklų sistemos paradigma – ko gero, fundamentaliausias asemblerių skirtumas nuo onofų.

Trečiosios kartos programavimo kalbos atsieja reikšmes nuo prasmių. Prasmės tampa nepriklausoma sistema, reikšminė vykdančiosios mašinos sistema telieka galutiniu vykdymo įrankiu, galinčiu ir kisti – ta pati Pascal programa gali puikiai dirbti visiškai skirtinguose kompiuteriuose, duodama vienodus rezultatus. Ženklų sistema tampa net lankstesne, nei asembleriuose. Prasminė paradigma, kalbai, o ne vykdančiai mašinai priklausantys abstraktai bei struktūros tampa esmine naujove, kurią įveda trečioji kalbų karta.

Klausimas, ar yra ketvirtoji paradigma? Ar ji išvis gali būti suformuluota? Ar ji būtina? Ar galime be jos apsieiti?

Ketvirtosios kartos kalbos ir stuporas

Apie 1970 metus buvo imta kalbėti apie ketvirtosios kartos arba superaukšto lygio kalbas. Tokias, kurios jau leistų kompiuteriams užduotis formuluoti beveik taip pat, kaip ir natūralia žmogiška kalba. Na, gal su šiokiais tokiais apribojimais, tačiau maždaug taip. Tačiau čia visa matematika ir užstrigo. Bandymų būta įvairių – ir kurti tam tikrus filtrus, kurie gyvąją kalbą priartintų prie kompiuterinės, ir parašyti nepaprastai išvystytas bibliotekines funkcijas, ir bandymų iš naujo, jau visai kitaip apibrėžti kompiuterinės kalbos vykdymo mechanizmus.

Visi bandymai klimpo įvairiose subtilybėse, kur taip ir nepavykdavo aiškiai suformuluoti, kas gi ne taip ir ką gi reikia padaryti. Kildavo smulkios bėdos, kuriose nudusdavo viskas. Pradedant tuo, kad atsirasdavo formulavimo nevienareikšmiškumai transliuojamose kalbose, baigiant tuo, kad kildavo poreikis neįmanomai (netgi teoriškai neįmanomai) didelių apimčių programinėms bibliotekoms (po funkciją kiekvienam įmanomam gyvosios kalbos prasminiam konstruktui – kiek čia gautųsi?). Gan ilgai atrodė, kad siekiamybė jau visai kažkur šalia, tačiau kuo toliau, tuo labiau ėmė aiškėti, kad susiduriama ne su uždaviniais, kuriuos įmanoma suformuluoti, o su kažkuo alternatyviu, sunkiai analizuojamu. Gal būt, su riba, kur tektų išeiti už kažkokių ribų, kurių negalim apibrėžti. Taip – nepavyko netgi aiškiai ir vienareikšmiškai suformuluoti, kas per velnias tos ketvirtos kartos kalbos turėtų būti.

Ar neprimena tų neišsprendžiamų problemų, kurių kažkada negalėjo peržengti geometrija? Ten viską išsprendė metapožiūris, tačiau čia jau problema kitur – problema, kad Tiuringo mašina pati yra meta. Ar būtinai reikia metametateorijos, įvedančios ir ketvirtąją paradigmą? Deja, atrodo, kad metateorijos, tinkamos metaautomatų generavimui – vis dar daugiau idėjų, nei formuluočių lygyje. Galim daryti ir kitą nelabai rišlią ir vargu ar pagrindžiamą, tačiau įdomią prielaidą – pakankama metameta galimai privalėtų būti pakankama ir žmogaus apibrėžimui. O kaip matėm, šitai kardinali problema, kurios negalime išspręsti savo teorijos ribose, nes patys esame žmonės.

Nerišlūs judesiai toliau

Per paskutinę pusę šimtmečio atsirado objektinės programavimo kalbos, netgi toks keistas konceptas, kaip Forth (saviapsibrėžimai ten įprasti), tokia deklaratyvinė kalba, kaip Lisp (kur einama nuo aukšto lygio konceptų prie jų realizacijos – atvirkščiai, nei įprasta kitose kalbose), buvo sukurta ir loginių kalbų, kaip Prolog, taikomųjų kalbų, kaip Cobol ir netgi toksai sintaksei nejautrus ir kontekstais besiremiantis monstras, kaip Perl. Tačiau nei viena iš šių kalbų netapo kažkuo, kas leistų tarti, jog įvyko kardinalus pokytis, priartinantis kompiuterinę kalbą prie žmogiškos, sulyginamas su tais pokyčiais, kurie įvyko pereinant nuo onofų prie asemblerių ar nuo asemblerių prie aukšto lygio programavimo kalbų.

Bandymai sukurti automatinio gramatinių ir leksinių analizatorių generatorius iš esmės baigėsi dar apie 1980, o kardinalių pokyčių nuo to laiko lyg ir nebuvo. Kaip paaiškėjo, kardinaliai patobulinti BNF (Backus-Naur Form) nesigauna, nors Pascal kūrėjas Niklaus Wirth, spręsdamas BNF problemas ir sukūrė savo formą – kiek galingesnę ir galinčią apsirašyti pačią save.

Viena didelė keistenybė buvo tai, kad bandant kurti žmogiškumą ir metageneratorius, vos ne prievarta buvo naikinamas bet kokios užuominos į polimorfizmą. Netgi naivi COBOL konstrukcija „ALTER X TO PROCEED TO Y“ buvo paskelbta blogio šaltiniu. Jau nekalbant apie paprastutį GOTO (įžymusis Dijkstra „Goto considered harmful“), teikusį tiek pasitenkinimo interpretuojamų kalbų mėgėjams. Tas pats į praktines metų realizacijas visa galva pasinėręs Niklaus Wirth pagarsėjo, kaip vienas iš aršiausių polimorfizmo priešų. Paaiškėjo, kad būtent tos save modifikuojančios konstrukcijos, buvusios tokiomis žmogiškomis, buvo ir pagrindinis klaidų šaltinis programose. Tačiau praėjo vos dešimtmetis ir polimorfizmai atsargiai ėmė lįsti per kitus galus – atsirado objektinės kalbos.

Buvo bandoma eiti ir iš kitos pusės – kurti analizės ir interpretacijos priemones įprastoms kalboms, per daug nesigilinant į vykdymą. Elisa botas buvo sukurtas bene prieš 40 metų, tačiau ir čia susidurta su taip pat sunkiai apibrėžiama bėda: kompiuterinė sistema lyg ir analizuoja žmogiškus tekstus, lyg ir sugeba kalbėtis, tačiau nėra bent kiek rimtesnių įrodymų, kad ji vykdytų žmogiškas programas – panašios sistemos daugų daugiausiai įvykdo kokias nors pagal išankstinį šabloną identifikuojamas komandas ar kreipiasi į išorinius pagalbininkus.

Besikapstydami kalbos įmantrybėse kai kurie net bandė išbruteforsinti semantines struktūras ir jas užmapint ant ženklų. „Žodis žodžiui, žmogus žmogui, gaidys gaidžiui, varnas varnui, vilkas vilkui“ – o dabar pabandykit atrasti semantinius ryšius ir prie jų prikabinti bendrą sakinio mintį. Taip, panašių, žmogui suprantamų ir net gerokai natūralesnių pavyzdžių galime surasti begales, o kuo jų daugiau surandame, tuo beviltiškiau tai ima atrodyti.

Vienu metu atrodė, kad surastas sprendimas iš šalies – esperanto kalba pasirodė turinti kardinaliai griežtesnį taisyklių rinkinį, nei bet kuri gyvoji kalba, tačiau leidžia ir žmogiškai bendrauti. Rezultatai itin džiugino automatinių vertimo sistemų kūrėjus – paaiškėjo, kad kartais automatinis literatūrinių tekstų vertimas pvz., iš anglų į esperanto, o tada jau iš esperanto į prancūzų – žymiai tikslesnis, nei tiesioginiai bandymai versti iš anglų į prancūzų kalbą. Kartais pavykdavo net ir frezeologizmus teisingai išversti.

Tačiau ir čia ėmė lįsti bėdos: paaiškėjo, kad kai kuriais kitais atvejais vertimų tikslumas visgi mažėja, o ir tą patį esperanto interpretuoti, kaip programavimo kalbą – nepavyksta. Nepavyko ir bandymai esperanto ar dar kokią kitą kalbą patobulinti iki lygio, kuris būtų suprantamesnis kompiuteriams, išlikdamas tinkamu žmonėms. Kita vertus, triukšmas apie natūralių kalbų nevienaprasmiškumus ir nevienareikšmiškumus buvo nemažas, tad iš šios bangos kilo keistokas kalbinis ultrapurizmas, kai įvairių šalių kalbainiai ėmė smulkmeniškai kabinėtis prie žodžių etimologijos, prasmių, reikšmių, vartosenos, formalius kriterijus iškeldami aukščiau visko, bet neretai net neįtardami, nuo ko ta jų beprotybė prasidėjo.

Beje, dar apie kalbas ir kompiuterius – kai juokiatės iš Google vertėjo rezultatų, neužmirškite, kad tai pusės šimtmečio darbų pasekmė. Lyginant su tuo, kas būdavo anksčiau, Google vertėjas tiesiog nuostabus.

Kelionė į pievas

Likimo ironija – patys to nepastebėję, programuotojai bei marketingistai ketvirtosios kartos kalbų problemą išsprendė kalbiniu būdu – tiesiog ėmė ir sugalvojo, kad ketvirtąja karta galima vadinti bet kokias progrmavimo kalbas, bent kiek labiau atitrūkusias nuo algoritmizacijų ir orientuotas į duomenis. Pavyzdžiui, kokį nors SQL. Labai greitai šitaip buvo išspręsta ir 5-ojo lygio kalbų problema – šioms buvo priskirti visi nenusisekę bandymai sukurti 4-osios kartos kalbas. Pavyzdžiui, Lisp ir Prolog. Lyg kalbos imperatyvumą pakeitus į deklaratyvumą, įvyktų pokytis, didesnis, nei įprastą matematinę notaciją pakeitus į lenkiškąją (čia jau net ne lol, o megalol išties). Taip paprastėliai kalbiniai pokštai sudorojo kalbų kūrėjus.

Bandymai sukurti kalbą, kuri kompiuteriui leistų aiškiai suprasti žmogų, o žmogui – savo kalba programuoti kompiuterį – iki šiol bevaisiai. Taip, kompiuteriai atpažįsta jau ir balsu ištartus žodžius, vykdo balsu ištartas komandas, tačiau tai toli gražu net neartėja prie tos tikrosios, ketvirtosios kartos kalbų. Tokių kalbų, kurios leistų žmogiškai susišnekėti su kompiuteriu. Kompiuteriui perkelti žmogiškas programas, o žmogui perkelti kompiuterines.

Taigi, neišspręstas klausimas: ar Tiuringo mašina gali vykdyti žmogaus vykdomas programas? Kad žmogus gali įvykdyti bet kurią kompiuterio programą (aišku, esant pakankamam laiko ir atminties kiekiui) – faktas. O kompiuteris žmogišką? Naivus Tiuringo testas, pagal kurį vykdymas įrodomas, jei žmogus negali atskirti, ar bendrauja su kompiuteriu, ar su žmogumi – lyg ir nepagrįstas, bet kita vertus, ar galėtume suformuluoti kokį nors rimtesnį patikrinimą? Gal nebent, jei įvestume privalomą kalbinės savigeneracijos testą.

Galų gale, ar bent jau įmanomas vienpusis suderinamumas, t.y., ar galima formuluoti kompiuterines programas taip, kad žmogus jas suvoktų kaip natūralia kalba parašytą, natūraliai suprantamą tekstą? Panašu, kad atsakymo kol kas neturime, nors jau praėjo pusė šimtmečio nuo to laiko, kai atsirado Fortranas, Algolas ir panašios trečiojo lygio kalbos. O bandymai priartėti prie žmogiško suprantamumo tokiomis kalbomis, kaip BASIC ar Logo buvo greičiau primityvūs, nei grakštūs – mechanistiniai ir ribojantys pačią kalbą, o ne konceptualūs.

Kita vertus, ir apie savo kalbą vis dar žinome nedaug, tačiau faktas akivaizdus: daugelį tekstų galime visai neblogai skaidyti ir analizuoti, atrasdami jų struktūrą. Dar lengviau galime skaidyti sakinius. Visai panašiai, kaip tai daro kompiuteriniai programavimo kalbų parseriai. Gal būt kažkada visgi pavyks sukurti ir vieningą teoriją?

Rokiškis Rabinovičius rašo jūsų džiaugsmui

Aš esu jūsų numylėtas ir garbinamas žiurkėnas. Mano pagrindinis blogas - Rokiškis Rabinovičius. Galite mane susirasti ir ant kokio Google Plus, kur aš irgi esu Rokiškis Rabinovičius+.

11 thoughts on “Kompiuteriui kalbėtis su žmogum

  1. Pingback: Eksceptologija, metageneracija ir vėl semiotika « Rokiškis

  2. skirtumas

    Man regis turi retą talentą versti mintis tekstu. Matyt patirtis daro savo. Kiek žinau esi labai senas senas bebras pasiruošęs suėsti bet kurio vargšo, kad ir praeivio smegenis.

    Reply
  3. jurgis

    > kompiuteriui leistų aiškiai suprasti žmogų…

    hmm, čia slidžiai pasakyta…
    juk kompiuteris neturi sąmonės -- kam jam kažką suprasti? 🙂

    o jo turima pseudosąmonė stipriai determinuota…
    imo, kol kompai nemokės patys susieti pojūčių su žodžiais (ne skaičiais, bet kategorijom), tol iki žmonių kalbos netemps… ir šiaip tie pojūčiai pas juos kiek riboti…

    ***

    apskritai, žmogus kalbos mokosi kiek kitaip. Jo aplinkoje yra daug įvairiausių „sampl’ų“, kuriuos tėvai mokina įvardinti (susieti su pojūčiais -- prasme!?)…

    ir kompo veikimo principas yra dažniausiai nuoseklus,
    tuo tarpu žmogaus smegenėlėse vyksta belenkiek lygiagrečių procesų… tai gal daugiau šansų, kad žmogų supras ne kompiuteris, o koks klasteris 🙂
    na tiesiog reik daug daugiau CPU galios, kad galima būt virškint informaciją tiap, kaip žmonės.

    Reply
    1. Rokiškis Post author

      Tamsta negalite įvardinti, kas yra sąmonė ir kuo ji skiriasi nuo pseudosąmonės, ar kaip tą bepavadintumėte. Kiti tamstos kriterijai išvis neapibrėžtiniai (t.y., realiai -- ne kriterijai išvis), o mokymosi būdai čia nieko nereiškia.

      Likusi tamstos beliberda apie lygiagretumą ar nuoseklumą, ar tai, kad tiesiog kiekybiškai (o dabar prisiminkim, ką prieš tai sakėt) reikia daugiau CPU galios -- beprasmiai.

      Reply
      1. jurgis

        > kas yra sąmonė ir kuo ji skiriasi nuo pseudosąmonės

        imo -- tai pažinimo/mąstymo procesų visuma
        (savęs suvokimas šiam kontekste gal(?) ne tiek svarbu)…

        o kompuose pasigendu pažinimo (žinių konstravimo) dedamosios… jie gali gauti duomenis, bet juos interpretuos pagal užrodytas taisykles… ir kol kas tos taisyklės turbūt tiesiog neatitinka žmonių (intuityvaus) pažinimo/suvokimo dėsnių…

        Pvz, žmogui ir kompui su webcam’u stebint tą patį saulėlydį, turbūt kils skiringi įspūdžiai?…
        ko reikia, kad kompas ir žmogus juos kuo panašiau apibūdintų (žodžiais, garsais)?
        tada formaliai būt galima sakyt, kad jie viens kitą supranta.

        Reply
        1. Rokiškis Post author

          Ponas Jurgi, žmonės irgi viską interpretuoja pagal kažkokias taisykles, kurių ir patys kartais nesupranta. Maždaug ne mažiau nesupranta, nei tamsta nesuprantate tų taisyklių, pagal kurias kompai interpretuoja 🙂

          Skirtingiems žmonėms stebint tą patį saulėlydį irgi neretai įspūdžiai skirtingi, o jau juo labiau skirtingi įspūdžiai būna katėms, šikšnosparniams ir žuvims.

          Vat kita vertus, tasai apibūdinimų panašumas -- tai, iš esmės, gana artimas požiūris į Tiuringo proto kriterijų.

          Reply
  4. jurgis

    dar svarbus momentas -- daugiaprasmiškumas…

    žmonės maždaug sugeba išgvildenti tiek žodžių, tiek sakinių sintaksės daugiaprasmiškumus… (nors nesusipratimų nutinka)

    Jeigu kompai gan sėkmingai imtų su tuo tvarkytis (ypač sintaksės prasme), tai jau būtų teisinga linkmė 🙂

    čia būtų tarsi sintaksės autocorrect’as:
    pvz, pasakai (parašai)
    „Labas rytas“ print
    o jam viskas aišku 🙂

    Reply
    1. Rokiškis Post author

      O vat dėl daugiaprasmiškumo -- taip, čia viena iš funadamentalių bėdų, su kuria buvo susidurta dar apie kokius 1960-1970. Nesigauna padaryti vienareikšmės transliacijos.

      Savo ryškiausiu atveju tai apibrėžiama kaip poetinių tekstų vertimo problema, kur automatizuotai nepavyksta padaryt.

      Reply
  5. skr

    dar į čia numasakotą schemą reikėtų įtraukti ir taip vadinamas HDL (Hardware Description Language) programavimo kalbas. Iš kurių labiausiai paplitusios dvi: VHDL ir Verilog. Šiom kalbom modeliuojamos o po to ir daromos taip vadinamos geležys (procesoriai, kontroleriai ir kiti SoC). Pvz. anksčiau kažkuriame straipsnyje minėta x86 transformacija iš RISC taip ir gaunama: imamas koks nors RISC ‘coras’, kuris pavirsta juoda dėže (black box) ir padaromas anstatas su greičiausiai Verilogu, kuris emuliuoja norimą komandų rinkinį.
    Kadangi straipsnis šviečiamasis, manau autorius nesupyks jei tai paminėsiu bent jau komentaruose.

    Reply

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *