S počítačmi komunikujeme dvoma spôsobmi. Najprv ich programujeme (hovoríme im, čo majú robiť) a potom ich používame (nejaké informácie pritom dodávame my im, nejaké zas oni nám). V obidvoch prípadoch prebieha väčšina tejto komunikácie v ľudskej reči.
Znamená to, že počítače rozumejú ľudskej reči? Nuž, rozumejú jej v tom zmysle, že niektoré jasne definované slová alebo vety vedia jednoznačným spôsobom interpretovať buď ako príkazy, alebo ako údaje – a s údajmi potom vykonajú to, čo dostali prikázané. Pritom však celkom jasne cítime, že počítače (zatiaľ) nerozumejú ľudskej reči v tom zmysle, v akom my rozumieme slovu rozumieť.
Lenže čo my vlastne chápeme pod porozumením? Asi sa zhodneme na tom, že nutným predpokladom naozajstného porozumenia je myslenie a že podstatnou súčasťou myslenia sú slová a pojmy, t. j. reč. To však znamená, že naozaj rozumieť ľudskej reči môže len ten, kto jej naozaj rozumie.
A kto jej teda môže rozumieť? Je myslenie a porozumenie vyhradené len nám ľuďom („som, teda myslím“), alebo ho môžu dosiahnuť aj počítače? Je možné, aby počítače rozumeli ľudskej reči rovnako dobre ako ľudia? Je možné, aby sa v nej dokázali vyjadrovať rovnako dobre ako ľudia? Je možné, aby počítače dokázali myslieť?
.turingov test
V roku 1950 vymyslel anglický matematik Alan Turing geniálne jednoduchý spôsob, ktorým by sa dalo testovať, či počítač reči rozumie a či ju vie používať rovnako dobre ako človek. Test spočíva v konverzácii. Jeden človek sa rozpráva s druhým, pričom na mieste toho druhého môže byť počítač, ktorý predstiera, že je človek.
Konverzácia prebieha prostredníctvom klávesníc a obrazoviek, takže vzhľad, farba hlasu alebo telesné pachy nehrajú nijakú úlohu. Ak človek pri jednej klávesnici a monitore nie je schopný na základe takejto konverzácie zistiť, či je na druhej strane človek alebo počítač, potom nám neostáva nič iné, len konštatovať, že na druhej strane sedí niekto, kto reči rozumie, kto vie reč používať a kto teda – súdiac podľa týchto príznakov – skutočne myslí.
Za viac ako polstoročie sa nijakému počítaču nepodarilo spoľahlivo prejsť Turingovým testom. Je však pravda, že počítače sú v takomto teste čoraz úspešnejšie. Obyčajné plechové škatule naplnené elektronikou sú čoraz viac schopné „rozumieť“ prirodzenému jazyku. A naučili sme ich to pomocou umelých jazykov.
Programovacie jazyky sú totiž úplne umelé výtvory, z ktorých mnohé síce obsahujú niektoré bežné slová (napríklad urob, priraď, zavolaj, opakuj, ...), ale ich význam je oveľa užší, než v prirodzenom jazyku. Programovacie jazyky sú vlastne súborom presných pravidiel slúžiacich na formuláciu presných návodov. A počítače nie sú nič iné, ako stroje určené na prácu podľa týchto rigidných návodov, stroje určené na otrocké vykonávanie príkazov.
Myšlienka, že by na takomto základe mohlo vzniknúť niečo ako myslenie, bude určite mnohým z nás pripadať úplne absurdná. Ale to len dovtedy, kým si neuvedomíme, že programovanie neznamená explicitné určenie všetkých krokov, ktoré má počítač vykonať. Ak napríklad chceme počítač naučiť hrať šach, nevkladáme do neho všetky možné pozície a nepredpisujeme mu, aký má urobiť v každej z týchto pozícií ďalší ťah. Nie, takto to nefunguje.
V skutočnosti počítaču predpíšeme len to, že má z každej pozície vygenerovať všetky možné pokračovania a zároveň mu prikážeme, aby určitým konkrétnym spôsobom ohodnotil nové pozície, ktoré vzniknú po jednotlivých ťahoch (jednotlivé šachové programy sa líšia najmä spôsobom ohodnocovania pozícií). No a okrem toho prikážeme počítaču, aby nakoniec uskutočnil ten ťah, ktorý vedie k pozícii s najlepším ohodnotením.
Výsledky všetci poznáme – najlepšie šachové počítače porážajú najlepších šachistov spomedzi ľudí. Nemyslím, že to znamená, že počítače myslia, ale myslím, že myšlienku o mysliacich strojoch to robí o poznanie menej absurdnou.
.turingov stroj
Keď už je reč o programovacích jazykoch, bolo by hriechom nespomenúť úplne prvý programovateľný počítač na svete. Vymyslel ho v roku 1936 Alan Turing a nikto ho nikdy neskonštruoval. Ale to nikomu neprekážalo, pretože úlohou tohto počítača vôbec nebolo počítať. Bol vymyslený na to, aby sa rozmýšľaním o jeho vlastnostiach ukázala jedna z hlbokých právd o najabstraktnejšej forme ľudského myslenia – o matematike a logike.
Univerzálny Turingov stroj – tak sa ten prvý programovateľný počítač volá – tvorí papierová páska a zariadenie, ktoré je schopné z tejto pásky čítať a tiež na ňu písať, prípadne gumovať. Na časti pásky je zapísaný program s presnými inštrukciami, zvyšok pásky slúži stroju na vlastnú prácu, ktorá spočíva v posúvaní pásky, čítaní, písaní a gumovaní.
Turing ukázal, že takýto primitívny stroj je v princípe schopný vyriešiť všetky úlohy, ktoré sa dajú vyriešiť pomocou presného návodu. A potom ukázal, že ak položíme takému stroju niektoré otázky týkajúce sa jeho samého, nedokáže na ne odpovedať (presnejšie povedané, nájdenie odpovede by mu trvalo nekonečne dlho). Toto na prvý pohľad nepríliš vzrušujúce konštatovanie sa v skutočnosti dotýka úplných základov matematiky a logiky.
Turingov výsledok totiž odhaľuje (podobne ako známe Gödelove vety o neúplnosti) zásadné vnútorné obmedzenia matematiky a logiky. Gödel s Turingom ukázali, že ani prísne logické myslenie ani postupy podľa presných návodov nedokážu odhaliť všetky matematické pravdy. A to bol pre matematiku hádam ešte väčší šok, ako bola pre fyziku teória relativity aj s kvantovou mechanikou.
Turingov stroj z roku 1936 sa objavil aj v článku o Turingovom teste z roku 1950, a to celkom zaujímavým spôsobom. V roku 1950 použil Turing svoje výsledky z roku 1936 ako jeden z možných argumentov proti svojej myšlienke mysliacich strojov. Ale podobne ako v prípade ďalších ôsmich argumentov proti tejto myšlienke uviedol Turing aj v tomto prípade veľmi presvedčivý protiargument.
Keď postupne vyvrátil alebo aspoň výrazne oslabil deväť argumentov proti mysliacim strojom, uviedol nakoniec Turing hlavný dôvod, prečo považoval mysliace stroje za mysliteľné. Týmto dôvodom bola schopnosť počítačov učiť sa.
Počítač totiž môže (ak mu to dovolíme) meniť svoj vlastný program na základe skúseností, ktoré postupne nadobudne. Napríklad po prehratej šachovej partii môže znížiť hodnotenia pozícií, ktoré viedli k prehre. Spôsob, akým bude počítač meniť svoj vlastný program, mu musíme, samozrejme, dopredu naprogramovať. Na začiatku musia byť vždy presné inštrukcie a príkazy, ale časť z nich si môže počítač postupne meniť. Výsledkom môže byť individualita, ktorá je tvorená jednak pôvodným programom a jednak celou ďalšou históriou konkrétneho počítača. Čo všetko sa tak počítač môže naučiť?
.turing
Alan Turing veril, že takýmto spôsobom by malo byť možné naučiť počítače používať ľudskú reč rovnako dobre, ako ju používame my – veril, že stroje sú v princípe schopné úspešne zvládnuť jeho test. Dnes ešte nevieme, či bol jeho optimizmus oprávnený, isté však je, že počítače sa toho musia o ľuďoch ešte veľa naučiť.
Dokážu napríklad počítače niekedy pochopiť osud Alana Turinga, tohto mimoriadne nadaného matematika, geniálneho počítačového vizionára a nadpriemerne zdatného atléta?
Alan Turing bol počas druhej svetovej vojny kľúčovou postavou prelomenia nemeckého kódu založeného na používaní šifrovacieho stroja Enigma. Právom sa o ňom hovorí ako o jednom zo záchrancov Británie.
Okrem toho bol Alan Turing homosexuál. A to bol ešte pred polstoročím v Británii závažný trestný čin. V roku 1952 jeden z jeho príležitostných milencov spolu s ďalším kumpánom vykradli Turingov byt. Polícia sa na základe Turingovho oznámenia pustila do vyšetrovania, čoskoro sa však namiesto vlámania začala zaujímať najmä o „neprístojnú nemravnosť medzi mužmi“. Turing nič nezapieral, a tak ho zatkli, obvinili a odsúdili buď do väzenia, alebo na chemickú kastráciu estrogénovými injekciami.
Vybral si tú druhú možnosť. Rok podstupoval potupnú „liečbu“, pri ktorej sa jeho vyšportované telo zaobľovalo a začali mu rásť prsia. Výsledkom boli nielen fyzické, ale aj psychické zmeny a v konečnom dôsledku v roku 1954 samovražda.
Vojna, intolerancia, zrada, tuposť, krutosť, samovražda – majú sa tie stroje od nás ešte veľa čo učiť.
Znamená to, že počítače rozumejú ľudskej reči? Nuž, rozumejú jej v tom zmysle, že niektoré jasne definované slová alebo vety vedia jednoznačným spôsobom interpretovať buď ako príkazy, alebo ako údaje – a s údajmi potom vykonajú to, čo dostali prikázané. Pritom však celkom jasne cítime, že počítače (zatiaľ) nerozumejú ľudskej reči v tom zmysle, v akom my rozumieme slovu rozumieť.
Lenže čo my vlastne chápeme pod porozumením? Asi sa zhodneme na tom, že nutným predpokladom naozajstného porozumenia je myslenie a že podstatnou súčasťou myslenia sú slová a pojmy, t. j. reč. To však znamená, že naozaj rozumieť ľudskej reči môže len ten, kto jej naozaj rozumie.
A kto jej teda môže rozumieť? Je myslenie a porozumenie vyhradené len nám ľuďom („som, teda myslím“), alebo ho môžu dosiahnuť aj počítače? Je možné, aby počítače rozumeli ľudskej reči rovnako dobre ako ľudia? Je možné, aby sa v nej dokázali vyjadrovať rovnako dobre ako ľudia? Je možné, aby počítače dokázali myslieť?
.turingov test
V roku 1950 vymyslel anglický matematik Alan Turing geniálne jednoduchý spôsob, ktorým by sa dalo testovať, či počítač reči rozumie a či ju vie používať rovnako dobre ako človek. Test spočíva v konverzácii. Jeden človek sa rozpráva s druhým, pričom na mieste toho druhého môže byť počítač, ktorý predstiera, že je človek.
Konverzácia prebieha prostredníctvom klávesníc a obrazoviek, takže vzhľad, farba hlasu alebo telesné pachy nehrajú nijakú úlohu. Ak človek pri jednej klávesnici a monitore nie je schopný na základe takejto konverzácie zistiť, či je na druhej strane človek alebo počítač, potom nám neostáva nič iné, len konštatovať, že na druhej strane sedí niekto, kto reči rozumie, kto vie reč používať a kto teda – súdiac podľa týchto príznakov – skutočne myslí.
Za viac ako polstoročie sa nijakému počítaču nepodarilo spoľahlivo prejsť Turingovým testom. Je však pravda, že počítače sú v takomto teste čoraz úspešnejšie. Obyčajné plechové škatule naplnené elektronikou sú čoraz viac schopné „rozumieť“ prirodzenému jazyku. A naučili sme ich to pomocou umelých jazykov.
Programovacie jazyky sú totiž úplne umelé výtvory, z ktorých mnohé síce obsahujú niektoré bežné slová (napríklad urob, priraď, zavolaj, opakuj, ...), ale ich význam je oveľa užší, než v prirodzenom jazyku. Programovacie jazyky sú vlastne súborom presných pravidiel slúžiacich na formuláciu presných návodov. A počítače nie sú nič iné, ako stroje určené na prácu podľa týchto rigidných návodov, stroje určené na otrocké vykonávanie príkazov.
Myšlienka, že by na takomto základe mohlo vzniknúť niečo ako myslenie, bude určite mnohým z nás pripadať úplne absurdná. Ale to len dovtedy, kým si neuvedomíme, že programovanie neznamená explicitné určenie všetkých krokov, ktoré má počítač vykonať. Ak napríklad chceme počítač naučiť hrať šach, nevkladáme do neho všetky možné pozície a nepredpisujeme mu, aký má urobiť v každej z týchto pozícií ďalší ťah. Nie, takto to nefunguje.
V skutočnosti počítaču predpíšeme len to, že má z každej pozície vygenerovať všetky možné pokračovania a zároveň mu prikážeme, aby určitým konkrétnym spôsobom ohodnotil nové pozície, ktoré vzniknú po jednotlivých ťahoch (jednotlivé šachové programy sa líšia najmä spôsobom ohodnocovania pozícií). No a okrem toho prikážeme počítaču, aby nakoniec uskutočnil ten ťah, ktorý vedie k pozícii s najlepším ohodnotením.
Výsledky všetci poznáme – najlepšie šachové počítače porážajú najlepších šachistov spomedzi ľudí. Nemyslím, že to znamená, že počítače myslia, ale myslím, že myšlienku o mysliacich strojoch to robí o poznanie menej absurdnou.
.turingov stroj
Keď už je reč o programovacích jazykoch, bolo by hriechom nespomenúť úplne prvý programovateľný počítač na svete. Vymyslel ho v roku 1936 Alan Turing a nikto ho nikdy neskonštruoval. Ale to nikomu neprekážalo, pretože úlohou tohto počítača vôbec nebolo počítať. Bol vymyslený na to, aby sa rozmýšľaním o jeho vlastnostiach ukázala jedna z hlbokých právd o najabstraktnejšej forme ľudského myslenia – o matematike a logike.
Univerzálny Turingov stroj – tak sa ten prvý programovateľný počítač volá – tvorí papierová páska a zariadenie, ktoré je schopné z tejto pásky čítať a tiež na ňu písať, prípadne gumovať. Na časti pásky je zapísaný program s presnými inštrukciami, zvyšok pásky slúži stroju na vlastnú prácu, ktorá spočíva v posúvaní pásky, čítaní, písaní a gumovaní.
Turing ukázal, že takýto primitívny stroj je v princípe schopný vyriešiť všetky úlohy, ktoré sa dajú vyriešiť pomocou presného návodu. A potom ukázal, že ak položíme takému stroju niektoré otázky týkajúce sa jeho samého, nedokáže na ne odpovedať (presnejšie povedané, nájdenie odpovede by mu trvalo nekonečne dlho). Toto na prvý pohľad nepríliš vzrušujúce konštatovanie sa v skutočnosti dotýka úplných základov matematiky a logiky.
Turingov výsledok totiž odhaľuje (podobne ako známe Gödelove vety o neúplnosti) zásadné vnútorné obmedzenia matematiky a logiky. Gödel s Turingom ukázali, že ani prísne logické myslenie ani postupy podľa presných návodov nedokážu odhaliť všetky matematické pravdy. A to bol pre matematiku hádam ešte väčší šok, ako bola pre fyziku teória relativity aj s kvantovou mechanikou.
Turingov stroj z roku 1936 sa objavil aj v článku o Turingovom teste z roku 1950, a to celkom zaujímavým spôsobom. V roku 1950 použil Turing svoje výsledky z roku 1936 ako jeden z možných argumentov proti svojej myšlienke mysliacich strojov. Ale podobne ako v prípade ďalších ôsmich argumentov proti tejto myšlienke uviedol Turing aj v tomto prípade veľmi presvedčivý protiargument.
Keď postupne vyvrátil alebo aspoň výrazne oslabil deväť argumentov proti mysliacim strojom, uviedol nakoniec Turing hlavný dôvod, prečo považoval mysliace stroje za mysliteľné. Týmto dôvodom bola schopnosť počítačov učiť sa.
Počítač totiž môže (ak mu to dovolíme) meniť svoj vlastný program na základe skúseností, ktoré postupne nadobudne. Napríklad po prehratej šachovej partii môže znížiť hodnotenia pozícií, ktoré viedli k prehre. Spôsob, akým bude počítač meniť svoj vlastný program, mu musíme, samozrejme, dopredu naprogramovať. Na začiatku musia byť vždy presné inštrukcie a príkazy, ale časť z nich si môže počítač postupne meniť. Výsledkom môže byť individualita, ktorá je tvorená jednak pôvodným programom a jednak celou ďalšou históriou konkrétneho počítača. Čo všetko sa tak počítač môže naučiť?
.turing
Alan Turing veril, že takýmto spôsobom by malo byť možné naučiť počítače používať ľudskú reč rovnako dobre, ako ju používame my – veril, že stroje sú v princípe schopné úspešne zvládnuť jeho test. Dnes ešte nevieme, či bol jeho optimizmus oprávnený, isté však je, že počítače sa toho musia o ľuďoch ešte veľa naučiť.
Dokážu napríklad počítače niekedy pochopiť osud Alana Turinga, tohto mimoriadne nadaného matematika, geniálneho počítačového vizionára a nadpriemerne zdatného atléta?
Alan Turing bol počas druhej svetovej vojny kľúčovou postavou prelomenia nemeckého kódu založeného na používaní šifrovacieho stroja Enigma. Právom sa o ňom hovorí ako o jednom zo záchrancov Británie.
Okrem toho bol Alan Turing homosexuál. A to bol ešte pred polstoročím v Británii závažný trestný čin. V roku 1952 jeden z jeho príležitostných milencov spolu s ďalším kumpánom vykradli Turingov byt. Polícia sa na základe Turingovho oznámenia pustila do vyšetrovania, čoskoro sa však namiesto vlámania začala zaujímať najmä o „neprístojnú nemravnosť medzi mužmi“. Turing nič nezapieral, a tak ho zatkli, obvinili a odsúdili buď do väzenia, alebo na chemickú kastráciu estrogénovými injekciami.
Vybral si tú druhú možnosť. Rok podstupoval potupnú „liečbu“, pri ktorej sa jeho vyšportované telo zaobľovalo a začali mu rásť prsia. Výsledkom boli nielen fyzické, ale aj psychické zmeny a v konečnom dôsledku v roku 1954 samovražda.
Vojna, intolerancia, zrada, tuposť, krutosť, samovražda – majú sa tie stroje od nás ešte veľa čo učiť.
Ak ste našli chybu, napíšte na web@tyzden.sk.