Ինչպես գրել արհեստական ​​բանականություն. Արհեստական ​​բանականություն. Ստեղծման հակասություններն ու խնդիրները. Ինչու՞ է արհեստական ​​ինտելեկտը հաղթում մարդկանց

Արհեստական ​​ինտելեկտը նեյրոնային ցանց է ստեղծել 2017 թվականի դեկտեմբերի 15-ին

Մենք հասել ենք այն կետին, երբ արհեստական ​​ինտելեկտը ստեղծում է իր նյարդային ցանցը։ Չնայած շատերը կարծում են, որ սա նույն բանն է։ Բայց իրականում ամեն ինչ այնքան էլ պարզ չէ, և հիմա մենք կփորձենք պարզել, թե ինչ է դա և ով կարող է ստեղծել ում:


Google Brain բաժնի ինժեներները ցուցադրեցին AutoML-ն այս գարնանը: Այս արհեստական ​​ինտելեկտը կարող է արտադրել իր եզակի AI առանց մարդու միջամտության: Ինչպես պարզվեց, AutoML-ն առաջին անգամ կարողացավ ստեղծել NASNet՝ համակարգչային տեսողության համակարգ։ Այս տեխնոլոգիան լրջորեն գերազանցում է բոլոր անալոգներին, որոնք նախկինում ստեղծվել են մարդկանց կողմից: Արհեստական ​​ինտելեկտի վրա հիմնված այս համակարգը կարող է հիանալի օգնական լինել, ասենք, ինքնավար մեքենաների մշակման գործում։ Այն կիրառելի է նաև ռոբոտաշինության մեջ՝ ռոբոտները կկարողանան հասնել բոլորովին նոր մակարդակի։

AutoML-ը մշակվել է եզակի ուժեղացման ուսուցման համակարգի միջոցով: Խոսքը նեյրոնային ցանցի մենեջերի մասին է, ով ինքնուրույն մշակում է բոլորովին նոր նեյրոնային ցանցեր, որոնք նախատեսված են որոշակի կոնկրետ խնդիրների համար։ Մեր նշած դեպքում, AutoML-ը նպատակ ունի ստեղծել համակարգ, որն առավել ճշգրիտ կերպով կճանաչի օբյեկտները տեսանյութում իրական ժամանակում:

Արհեստական ​​ինտելեկտն ինքնին կարողացավ վարժեցնել նոր նեյրոնային ցանց՝ հետևելով սխալների և շտկելով աշխատանքը։ Ուսուցման գործընթացը կրկնվել է բազմիցս (հազար անգամ), մինչև համակարգը գործարկվի։ Հետաքրքիրն այն է, որ այն կարողացել է շրջանցել ցանկացած նմանատիպ նեյրոնային ցանց, որը ներկայումս հասանելի է, սակայն մշակվել և վերապատրաստվել է մարդկանց կողմից:

Միևնույն ժամանակ, AutoML-ը գնահատում է NASNet-ի աշխատանքը և օգտագործում է այս տեղեկատվությունը դուստր ցանցը բարելավելու համար. այս գործընթացը կրկնվում է հազարավոր անգամներ: Երբ ինժեներները փորձարկեցին NASNet-ը ImageNet-ի և COCO պատկերների հավաքածուների վրա, այն գերազանցեց գոյություն ունեցող համակարգչային տեսողության համակարգերին:

Google-ը պաշտոնապես հայտարարել է, որ NASNet-ը ճանաչում է 82,7% ճշգրտությամբ։ Արդյունքը 1,2%-ով բարձր է նախորդ ռեկորդից, որը սահմանել էին Momenta-ի և Oxford-ի մասնագետների հետազոտողները այս տարվա սկզբին։ NASNet-ը 4%-ով ավելի արդյունավետ է, քան իր գործընկերները՝ 43,1% միջին ճշգրտությամբ:

Կա նաև NASNet-ի պարզեցված տարբերակը, որը հարմարեցված է բջջային հարթակների համար։ Այն գերազանցում է իր անալոգներին երեք տոկոսից մի փոքր ավելի: Մոտ ապագայում այս համակարգը հնարավոր կլինի օգտագործել ինքնավար մեքենաների արտադրության համար, ինչի համար կարեւոր է համակարգչային տեսողության առկայությունը։ AutoML-ը շարունակում է արտադրել նոր սերունդ նեյրոնային ցանցեր՝ ձգտելով նվաճել էլ ավելի մեծ բարձունքներ։

Սա, իհարկե, էթիկական հարցեր է առաջացնում՝ կապված AI-ի հետ կապված մտահոգությունների հետ. իսկ եթե AutoML-ն այնպիսի արագությամբ համակարգեր ստեղծի, որ հասարակությունը պարզապես չկարողանա հետևել: Այնուամենայնիվ, շատերը խոշոր ընկերություններփորձում են հաշվի առնել AI-ի անվտանգության մտահոգությունները: Օրինակ՝ Amazon-ը, Facebook-ը, Apple-ը և որոշ այլ կորպորացիաներ հանդիսանում են AI-ի օգտին օգուտներ քաղելու համար համագործակցության անդամներ: Էլեկտրական և էլեկտրիկ ինժեներների ինստիտուտը (IEE) առաջարկել է AI-ի էթիկական չափանիշներ, իսկ DeepMind-ը, օրինակ, հայտարարել է խմբի ստեղծման մասին, որը կզբաղվի արհեստական ​​ինտելեկտի կիրառման հետ կապված բարոյական և էթիկական հարցերով:

Այնուամենայնիվ, շատ խոշոր ընկերություններ փորձում են հաշվի առնել արհեստական ​​ինտելեկտի անվտանգության հետ կապված մտահոգությունները: Սա, իհարկե, էթիկական հարցեր է առաջացնում՝ կապված AI-ի հետ կապված մտահոգությունների հետ. իսկ եթե AutoML-ն այնպիսի արագությամբ համակարգեր ստեղծի, որ հասարակությունը պարզապես չկարողանա հետևել: Էլեկտրական և էլեկտրիկ ինժեներների ինստիտուտը (IEE) առաջարկել է AI-ի էթիկական չափանիշներ, իսկ DeepMind-ը, օրինակ, հայտարարել է խմբի ստեղծման մասին, որը կզբաղվի արհեստական ​​ինտելեկտի կիրառման հետ կապված բարոյական և էթիկական հարցերով: Օրինակ՝ Amazon-ը, Facebook-ը, Apple-ը և որոշ այլ կորպորացիաներ հանդիսանում են AI-ի օգտին օգուտներ քաղելու համար համագործակցության անդամներ:

Ի՞նչ է արհեստական ​​ինտելեկտը:

«Արհեստական ​​ինտելեկտ» տերմինի սկզբնավորողը Lisp լեզվի գյուտարար, ֆունկցիոնալ ծրագրավորման հիմնադիր և Թյուրինգ մրցանակի դափնեկիր Ջոն Մաքքարթին է՝ արհեստական ​​ինտելեկտի հետազոտության ոլորտում իր հսկայական ներդրման համար:
Արհեստական ​​ինտելեկտը համակարգիչ, համակարգչով կառավարվող ռոբոտ կամ ծրագիր ստեղծելու միջոց է, որը կարող է մտածել նույնքան խելացի, որքան մարդը:

AI-ի հետազոտությունն իրականացվում է ուսումնասիրելով մտավոր ունակություններմարդ, իսկ հետո այս հետազոտության արդյունքներն օգտագործվում են որպես խելացի ծրագրերի և համակարգերի մշակման հիմք:

Ի՞նչ է նեյրոնային ցանցը:

Նյարդային ցանցի գաղափարը շատ պարզ տարրերից բարդ կառուցվածք հավաքելն է: Քիչ հավանական է, որ ուղեղի միայն մի հատվածը կարող է խելացի համարվել, բայց մարդիկ սովորաբար զարմանալիորեն լավ են ստացվում IQ թեստերում: Այնուամենայնիվ, մինչ այժմ «ոչնչից» միտք ստեղծելու գաղափարը սովորաբար ծաղրվում էր. գրամեքենայով հազար կապիկների մասին կատակն արդեն հարյուր տարեկան է, և եթե կուզեք, նեյրոնային ցանցերի քննադատությունը նույնիսկ կարող է. կարելի է գտնել Ցիցերոնի մոտ, ով հեգնանքով առաջարկեց օդ նետել տառերով ժետոններ այնքան ժամանակ, քանի դեռ երեսդ կապտել է, որպեսզի վաղ թե ուշ իմաստալից տեքստ ստացվի: Սակայն 21-րդ դարում պարզվեց, որ դասականներն իզուր են հեգնում. դա ժետոններով կապիկների բանակ է, որը պատշաճ համառությամբ կարող է տիրել աշխարհը։
Իրականում, նեյրոնային ցանցը կարող է հավաքվել նույնիսկ լուցկու տուփերից. դա պարզապես պարզ կանոնների մի շարք է, որոնցով մշակվում է տեղեկատվությունը: «Արհեստական ​​նեյրոնը» կամ պերցեպտրոնը հատուկ սարք չէ, այլ ընդամենը մի քանի թվաբանական գործողություններ։

Պերցեպտրոնի աշխատանքը չի կարող ավելի պարզ լինել. այն ստանում է մի քանի սկզբնական թվեր, յուրաքանչյուրը բազմապատկում է այս թվի «արժեքով» (ավելին` ստորև), գումարում է այն և, կախված արդյունքից, տալիս է 1 կամ -1: Օրինակ, մենք նկարում ենք հստակ դաշտ և ցույց ենք տալիս մեր նեյրոնին ինչ-որ կետ այս նկարում, այսինքն՝ մենք նրան պատահական կոորդինատներ ենք ուղարկում որպես երկու ազդանշան: Եվ հետո մենք հարցնում ենք. «Սիրելի նեյրոն, սա երկի՞նք է, թե՞ երկիր»: «Մինուս մեկ», - պատասխանում է կեղծարարը, հանգիստ նայելով կուտակված ամպին: «Պարզ է, որ դա երկիր է»:

«Մատով դեպի երկինք ցույց տալը» պերցեպտրոնի հիմնական գործունեությունն է: Նրանից որևէ ճշգրտություն սպասել չես կարող. նույնքան հեշտությամբ կարող ես մետաղադրամ շրջել: Կախարդանքը սկսվում է հաջորդ փուլից, որը կոչվում է մեքենայական ուսուցում: Մենք գիտենք ճիշտ պատասխանը, ինչը նշանակում է, որ մենք կարող ենք այն գրել մեր ծրագրում: Այսպիսով, պարզվում է, որ յուրաքանչյուր սխալ գուշակության համար պերցեպտրոնը բառացիորեն տուգանք է ստանում, իսկ ճիշտ գուշակության համար՝ բոնուս՝ մուտքային ազդանշանների «արժեքը» մեծանում կամ նվազում է։ Դրանից հետո ծրագիրը գործարկվում է նոր բանաձեւ. Վաղ թե ուշ նեյրոնն անխուսափելիորեն «կհասկանա», որ լուսանկարում պատկերված երկիրը ներքևում է, իսկ երկինքը՝ վերևում, այսինքն՝ նա պարզապես կսկսի անտեսել այն ալիքի ազդանշանը, որով իրեն փոխանցվում են x-կոորդինատները: Եթե ​​դուք սայթաքեք ևս մեկ լուսանկար նման բարդ ռոբոտի վրա, ապա այն կարող է չգտնել հորիզոնի գիծը, բայց, իհարկե, չի շփոթի վերևը ներքևի հետ:

Իրական աշխատանքում բանաձևերը մի փոքր ավելի բարդ են, բայց սկզբունքը մնում է նույնը։ Պերցեպտրոնը կարող է կատարել միայն մեկ առաջադրանք՝ վերցնել թվեր և դնել դրանք երկու կույտի մեջ: Ամենահետաքրքիրը սկսվում է, երբ կան մի քանի նման տարրեր, քանի որ մուտքային համարները կարող են ազդանշաններ լինել այլ «շինարարական բլոկներից»: Ենթադրենք, մի նեյրոնը կփորձի տարբերել կապույտ պիքսելները կանաչից, երկրորդը կշարունակի կոորդինատները, իսկ երրորդը կփորձի դատել, թե այս երկու արդյունքներից որն է ավելի մոտ ճշմարտությանը: Եթե ​​կապույտ պիքսելների վրա միանգամից մի քանի նեյրոն դնեք և ամփոփեք դրանց արդյունքները, դուք կստանաք մի ամբողջ շերտ, որում «լավագույն ուսանողները» կստանան հավելյալ բոնուսներ։ Այսպիսով, բավականին տարածված ցանցը կարող է թիակով անցնել տվյալների մի ամբողջ լեռ և հաշվի առնել դրա բոլոր սխալները:

Նեյրոնային ցանց կարելի է ստեղծել լուցկու տուփերի միջոցով, այդ դեպքում ձեր զինանոցում կունենաք հնարք, որը կարող եք օգտագործել երեկույթների ժամանակ հյուրերին հյուրասիրելու համար: MirF-ի խմբագիրներն արդեն փորձել են դա և խոնարհաբար ընդունում են արհեստական ​​ինտելեկտի առավելությունը։ Սովորեցնենք իռացիոնալ նյութին խաղալ «11 փայտիկ» խաղը։ Կանոնները պարզ են. սեղանին դրված է 11 լուցկի, և յուրաքանչյուր քայլում կարող եք վերցնել կամ մեկը կամ երկուսը: Հաղթում է նա, ով վերցրել է վերջինը: Ինչպե՞ս խաղալ սա «համակարգչի» դեմ:

Շատ պարզ.

Վերցրեք 10 տուփ կամ բաժակ: Յուրաքանչյուրի վրա գրում ենք 2-ից մինչև 11-ը:

Յուրաքանչյուր տուփի մեջ երկու խճաքար ենք դնում՝ սև ու սպիտակ։ Դուք կարող եք օգտագործել ցանկացած առարկա, քանի դեռ դրանք տարբերվում են միմյանցից: Ահա և վերջ. մենք ունենք տասը նեյրոնների ցանց:

Նեյրոնային ցանցը միշտ առաջինն է: Նախ նայեք, թե քանի լուցկի է մնացել և վերցրեք այդ թվով տուփ։ Առաջին քայլում այն ​​կլինի համար 11 տուփը: Վերցրեք ցանկացած խճաքար ցանկալի տուփից։ Դուք կարող եք փակել ձեր աչքերը կամ մետաղադրամ նետել, գլխավորը պատահականորեն գործելն է:
Եթե ​​քարը սպիտակ է, նեյրոնային ցանցը որոշում է երկու լուցկի վերցնել։ Եթե ​​սև - մեկ: Տեղադրեք խճաքար տուփի կողքին, որպեսզի չմոռանաք, թե որ «նեյրոնն» է որոշում կայացրել: Սրանից հետո մարդը քայլում է, և այդպես շարունակ, մինչև լուցկիները վերջանան:

Այժմ գալիս է զվարճալի մասը՝ սովորելը: Եթե ​​ցանցը հաղթի խաղը, ապա այն պետք է պարգևատրվի. խաղի ընթացքում նույն գույնի ևս մեկ խճաքար գցեք այն «նեյրոնների» մեջ, որոնք մասնակցում էին այս խաղին: Եթե ​​ցանցը կորցնում է, վերցրեք վերջին օգտագործված տուփը և այնտեղից հանեք անհաջող քարը։ Կարող է պարզվել, որ տուփն արդեն դատարկ է, ապա «վերջին» նեյրոնը համարվում է նախորդը։ Հաջորդ խաղի ժամանակ, երբ այն հարվածում է դատարկ տուփին, նեյրոնային ցանցն ինքնաբերաբար կհանձնվի:

Այսքանը: Խաղացեք այսպիսի մի քանի խաղեր: Սկզբում կասկածելի ոչինչ չես նկատի, բայց յուրաքանչյուր հաղթանակից հետո ցանցն ավելի ու ավելի հաջող քայլեր կկատարի, և մոտ մեկ տասնյակ խաղերից հետո կհասկանաս, որ ստեղծել ես հրեշ, որին չես կարող հաղթել:

Աղբյուրներ:

Հոդվածների շարքում մենք կխոսենք AI-ի, անհատականության մոդելավորման և BIG տվյալների մշակման նոր մոտեցումների մասին, որոնք հասանելի չեն արհեստական ​​ինտելեկտի մասնագետների և հանրության համար: Այս տեղեկատվության արժեքն այն է, որ այն ամենը փորձարկվել է գործնականում, և տեսական զարգացումների մեծ մասը իրականացվել է կիրառական նախագծերում:

Ձեզանից շատերը լսել են ժամանակակից տեխնոլոգիաների մասին, որոնք այսօր կապված են արհեստական ​​ինտելեկտի հայեցակարգի հետ, մասնավորապես՝ փորձագիտական ​​համակարգեր, նեյրոնային ցանցեր, լեզվական ալգորիթմներ, հիբրիդային համակարգեր, ճանաչողական տեխնոլոգիաներ, սիմուլյացիա (չաթ բոտեր) և այլն։

Այո, շատ ընկերություններ օգտագործում են վերը նշված տեխնոլոգիաները՝ լուծելու իրենց հաճախորդների տեղեկատվության մշակման խնդիրները: Այդ ընկերություններից մի քանիսը գրում են, որ արհեստական ​​ինտելեկտի ոլորտում լուծումներ են ստեղծում կամ ստեղծել։ Բայց արդյո՞ք դա բանականություն է:

Առաջին բանը, որ մենք կանենք, սահմանելն է, թե ինչ է բանականությունը:

Պատկերացրեք, որ գոյություն ունի խելացի համակարգիչ: Եվ դուք հնարավորություն ունեք շփվելու նրա հետ ձայնային կամ տեքստային հաղորդագրություններով:
Հարցեր.
  • Արդյո՞ք անհրաժեշտ է համակարգչի հետախուզական ծրագրում լեզվական առանձնահատկություններ ներդնել (նկարագրել իմաստաբանությունը, քերականությունը, մորֆոլոգիան), թե՞ այն կարող է ինքնուրույն լեզուներ սովորել անձի հետ փոխազդեցության միջոցով:
  • Եթե ​​ձեզ հանձնարարեին համակարգչին լեզու սովորեցնել, ի՞նչ կանեիք:
  • Եթե ​​միայն դուք մասնակցեիք մարզմանը, ո՞ւմ նման կլիներ նա։
Հիմա նորից պատասխանեք այս հարցերին, միակ տարբերությամբ, որ դուք պետք է մարզվեք.
  • Մաքուր թութակ, տեսականորեն հաղորդակցվելու ընդունակ։
  • Նորածին երեխա.
Մենք հենց նոր ինտելեկտուալ աշխատանք ենք կատարել, և հուսով եմ, որ ձեզանից շատերը նոր գիտելիքներ են ձեռք բերել։ Եվ ահա թե ինչու.
  • Նախ, ես ձեզ խնդրեցի պատկերացնել (պատկերացրեք) «ինչ կլիներ, եթե ...»: Դուք գործել եք փոփոխված պայմաններում։ Երևի տեղեկատվության և գիտելիքների պակաս էիր, քեզ համար դժվար էր։
  • Երկրորդ, պարզվեց, որ դուք սովորելու, ճանաչելու ընդունակ եք, գտել եք ինքներդ ձեզ ծանոթ անալոգիա կամ հանդիպել եք տեքստում, կամ գուցե օգտվել եք ինտերնետից կամ ընկերոջից խորհուրդ եք խնդրել:
Խելացիությունը սահմանելու բազմաթիվ մոտեցումներ կան: Մենք կորոշենք նրա հիմնական հատկանիշները...

Նախ եւ առաջ ինտելեկտը սովորելու և պատկերացնելու կարողությունն է.

Հետախուզությունը մոդելավորող ալգորիթմ ստեղծելու համար առաջին բանը, որ դուք պետք է անեք, դա է տալ նրան սովորելու ունակություն, ձեզ հարկավոր չէ որևէ գիտելիք ներդնել դրա մեջ:

Եկեք վերադառնանք մեր երեխայի օրինակին, որպեսզի ավելի մանրամասն նկարագրենք ուսուցման գործընթացը:
Ի՞նչ սկզբունքներ են գործում, երբ երեխան սովորում է լեզու հասկանալ և խոսել:

  1. Որքան հաճախ նա լսի մի բառ տարբեր համատեքստերում, այնքան ավելի արագ կհիշի այն: Առաջին բառը, որը նա կասի, ամենայն հավանականությամբ կլինի «մայրիկ»:
    «Մայրիկը սիրում է քեզ»
    «Մայրիկը ձեռքերդ կլվանա»
    «Մայրիկը համբուրում է քեզ»
    «Որտե՞ղ է մայրիկը»:
    Ուսուցումը տեղի է ունենում տվյալների ավելորդության պատճառով:
  2. Որքան շատ լինեն տեղեկատվական հոսքի ուղիները, այնքան ավելի արդյունավետ կլինի ուսուցումը.
    երեխան լսում է. «Մայրիկը սիրում է քեզ»:
    երեխան տեսնում է մոր ժպիտը.
    երեխան զգում է մորից բխող ջերմությունը.
    Երեխան զգում է մայրական կաթի համն ու հոտը։
    երեխան ասում է «մայրիկ»:
  3. Երեխան անմիջապես չի կարողանա բառը ճիշտ վերարտադրել։ Նա կփորձի, կփորձի: «Մ», «Մամա», «Մայրիկ», «Մ»... «Մայրիկ»: Ուսուցումը տեղի է ունենում գործողության մեջ, յուրաքանչյուր հաջորդ փորձը ճշգրտվում է այնքան ժամանակ, մինչև մենք ստանանք արդյունքը: Փորձարկման և սխալի մեթոդ. Շատ կարևոր է իրականությունից հետադարձ կապ ստանալը։
  4. Մի մեծացրեք ձեր երեխաներին, նրանք դեռ ձեզ նման կլինեն: Երեխան ձգտում է նմանվել իրեն շրջապատող մարդկանց։ Նա ընդօրինակում է նրանց և սովորում նրանցից։ Սա անհատականության մոդելավորման մեխանիզմներից մեկն է, որի մասին ավելի մանրամասն կխոսենք հաջորդ հոդվածներում։

Ո՞րն է երևակայության դերը:

Պատկերացրեք, որ դուք մեքենա եք վարում անծանոթ մայրուղով։ Դուք անցնում եք 80 կմ/ժ արագության սահմանափակման նշանը։ Քշեք ավելի հեռու և տեսնում եք արագության սահմանափակման ևս մեկ նշան, բայց այն ցեխոտված է և գրեթե անհնար է նկատել: Դուք շարժվում եք 95 կմ/ժ արագությամբ։ ի՞նչ եք անելու։ Մինչ դուք որոշում էիք կայացնում, մի ոստիկան նայեց թփերի հետևից, և դուք տեսաք նրա դեմքին պայծառ ժպիտ։ Մի ակնթարթում գլխումդ «նշանի պատկեր» ստեղծվեց, և դու հասկացար, թե ինչու է այնտեղ ոստիկան կանգնած, և որ քեզ շտապ պետք է սեղմել արգելակը։ Դանդաղեցնում ես մինչև 55 կմ/ժ արագությունը, ոստիկանի դեմքի ժպիտն անմիջապես անհետանում է, և դու առաջ ես գնում։

Եվ ևս մեկ հետաքրքիր օրինակԿենդանական աշխարհից երևակայության գործերը կաչաղակների դիտարկումն են: Մի կաչաղակ, մյուս կաչաղակների աչքի առաջ, ուտելիքը թաղել է դատարկ տարածքում։ Բոլոր կաչաղակները թռան, բայց մեր կաչաղակը վերադարձավ անապատ և թաքցրեց ուտելիքը։ Ինչ է պատահել? Նա պատկերացրեց (պատկերացրեց) «ինչ կլիներ, եթե» մեկ այլ կաչաղակ թռչի ներս, ով տեսավ, թե որտեղ է թաքցրել ուտելիքը: Նա մոդելավորեց իրավիճակը և լուծում գտավ դրանից խուսափելու համար:

Երևակայությունը կամայական պայմանների վրա իրավիճակի մոդելավորումն է:

Ինչպես արդեն տեսաք, բանականությունը գիտելիքի բազա չէ, այն ծրագրավորված ռեակցիաների կամ կանխորոշված ​​կանոններին հետևելը չէ:

Բանականությունը դժվարությունների լուծման գործընթացում սովորելու, ճանաչելու և փոփոխվող պայմաններին հարմարվելու կարողությունն է:

Չե՞ք կարծում, որ ինտելեկտը սահմանելիս մենք կորցրել ենք ոմանց տեսադաշտը կարևոր բաղադրիչներկամ մոռացել եք մեզ ինչ-որ բան ասել:

Այո, մենք կորցրել ենք ընկալումը և մոռացել ենք խոսել հիշողության մասին:

Պատկերացրեք, որ նայում եք դիտակի անցքից և տեսնում եք նամակի մի մասը.

Սա ի՞նչ նամակ է։

Միգուցե «Կ».

Իհարկե ոչ, սա «հավերժության» ճապոնական կերպարն է:

Ձեզ հենց նոր առաջադրանք է տրվել (խնդիր): Ամենայն հավանականությամբ, դուք ձեր գլխում գտել եք «K» տառի նմանատիպ պատկեր և հանգստացել:

Ձեր ինտելեկտը պատկերների մեջ ընկալում է ամեն ինչ և հիշողության մեջ փնտրում է նմանատիպ պատկեր, եթե այն չկա, ապա գոյություն ունեցող պատկերների վրա խարիսխ է ձևավորվում և դրա շնորհիվ դուք հիշում եք նոր տեղեկություններ, ձեռք բերում հմտություններ կամ փորձ:

Պատկերը իրական աշխարհի սուբյեկտիվ տեսլականն է, որն ընկալվում է զգայարանների (տեղեկատվության ալիքների) միջոցով:

Ընկալումը սուբյեկտիվ է, քանի որ կախված է ուսուցման հաջորդականությունից, մարդու կյանքում պատկերների ի հայտ գալու հաջորդականությունից և դրանց ազդեցությունից:

Ընկալումը սկսվում է լույսի/մութ օրինաչափությունների ճանաչմամբ: Բացեք ձեր աչքերը - լույս է, փակեք ձեր աչքերը - մութ է: Հաջորդը, մարդը սովորում է ճանաչել ավելի ու ավելի բարդ պատկերներ՝ «մայրիկ», «հայրիկ», գնդակ, սեղան, շուն: Մենք ստանում ենք տեղեկատու տվյալներ, և բոլոր հետագա պատկերները վերնաշենք են նախորդների նկատմամբ:

Այս տեսանկյունից ուսուցումը ընկալվող պատկերների և արդեն հիշողության մեջ գտնվող պատկերների միջև նոր հարաբերություններ կառուցելու գործընթաց է:

Հիշողությունը ծառայում է պատկերների և դրանց փոխհարաբերությունների պահպանմանը.

Ա երևակայությունը անավարտ պատկերն ավարտին հասցնելու ունակությունն է.

Ամփոփելու համար, ահա ևս մեկ փորձ կենդանական աշխարհից.

Շիմպանզեին դրել են վանդակի մեջ, իսկ վանդակի ներսում հատակից բավականին բարձր կախել են բանանի փունջ։ Շիմպանզեն սկզբում թռավ, բայց արագ հոգնեց և կարծես կորցրեց հետաքրքրությունը բանանի նկատմամբ և նստեց՝ հազիվ ուշադրություն դարձնելով դրանց։ Բայց որոշ ժամանակ անց կապիկը վերցրեց վանդակում մնացած փայտը և թափահարեց բանանները, մինչև նրանք ընկան։ Մեկ այլ անգամ բանան ստանալու համար շիմպանզեին հաջողվել է երկու փայտիկ միացնել, քանի որ յուրաքանչյուր փայտն առանձին-առանձին բավարար չէր դրանց հասնելու համար։ Կենդանին հաղթահարել է նաև ավելի բարդ խնդիր՝ անսպասելիորեն տուփ դնելով բանանի տակ և օգտագործել այն որպես քայլ։

Շիմպանզեները ցույց տվեցին ծանոթ «բանանի փունջ» պատկերը։ Բայց նրա համար պատկերը թերի է ստացվել՝ դրանք հնարավոր չէ ձեռք բերել և ուտել։ Բայց քանի որ սա սննդի միակ աղբյուրն էր, անավարտ պատկերը մեծացրեց ներքին լարվածությունը և պահանջեց լրացնել:

Խնդիրը լուծելու միջոցները (լրացնել պատկերը) միշտ առկա էին, սակայն լուծման ի հայտ գալը պահանջում էր գոյություն ունեցող պատկերների փոխակերպում (անհրաժեշտ էր սովորել՝ օգտագործելով երևակայությունը): Շիմպանզեն պետք է պատկերացներ (մտավոր թվարկեր բոլոր հնարավոր տարբերակները). «Ինչ կլինի, եթե ես փայտ վերցնեմ», «Ինչ կլինի, եթե...» և գործնականում փորձարկեր ամենահավանական ենթադրությունները, փորձեր ստանալ հետադարձ կապ, նորից պատկերացրու, փորձել, ստանալ հետադարձ կապ և այլն, մինչև ավարտենք պատկերը (սովորենք):

Եթե ​​հիերոգլիֆի «հավերժություն» պատկերը ճանաչելը ձեզ համար կյանքի ու մահվան խնդիր լիներ, ապա դուք հաստատ կգտնեք դրա համար։

Եկեք ավելի հայտնի լեզվից անցնենք տեխնիկականի և ձևակերպենք այն հիմնական հասկացությունները, որոնք մենք կօգտագործենք հետագա.

  • Տարբեր տեղեկատվական ուղիներից ավելորդ տեղեկատվության հատումը պատկեր է ստեղծում:
  • Ուսուցումը փոխակերպում է տեղեկատվական հոսքերտեղեկատվական դաշտում:
  • Տեղեկատվական դաշտ (հիշողություն) – պատկերների և դրանց փոխհարաբերությունների պահպանում:
  • Երևակայություն -...
    – «Հարգելի՛ ընթերցող, լրացրո՛ւ ինքդ քո երևակայության պատկերը՝ օգտագործելով ավելորդ տեղեկատվություն քո կյանքի փորձից և այս հոդվածից»։
  • Բանականությունը սովորելու և պատկերացնելու կարողությունն է:

Հոդվածի սկզբում մենք թվարկեցինք արհեստական ​​ինտելեկտի հետ այսօր կապված տեխնոլոգիաները, այժմ կարող եք ինքնուրույն գնահատել, թե որքանով են դրանք համապատասխանում ինտելեկտի հայեցակարգին։

Հաջորդ հոդվածում մենք կդիտարկենք այնպիսի խնդիր, ինչպիսին է ինտերնետում տեղեկատվության խելացի որոնումը: Մենք կսահմանենք հետախուզության չափանիշներ, կմշակենք գործնական մոտեցումներ և «զգանք» իրական հավելված, որն իրագործում է այս հոդվածում նկարագրված սկզբունքները:

Հոդվածը չի հավակնում իրականությանը, այն մեր մշակումների և հետազոտության մի մասն է: Գրեք մեկնաբանություններ, լրացրեք նյութը ձեր սեփական օրինակներով կամ մտքերով: Սովորեք և պատկերացրեք...

Ոչ բոլորը գիտեն, թե ինչ է թաքնված «արհեստական ​​ինտելեկտ» կամ AI (Արհեստական ​​ինտելեկտ) արտահայտության հետևում: Մարդկանց մեծամասնությունը, հավանաբար, AI-ն համարում է համակարգիչ, որը ծրագրավորվել է իր համար «մտածելու», խելացի որոշումներ կայացնելու և գրգռիչներին արձագանքելու համար: Այս միտքը լիովին ճիշտ չէ։ Ոչ մի համակարգիչ կամ մեքենա չի կարող իսկապես մտածել, քանի որ դրա համար անհրաժեշտ է գիտակցություն, որը չունի «անհոգի մեքենան»: Համակարգիչը կարող է անել միայն այն, ինչ իրեն պատվիրում է:

Համառոտ AI ծրագրավորման մասին

Արհեստական ​​ինտելեկտի ծրագրավորումը համակարգչին մտածել սովորեցնելը չէ: Ավելի շուտ, այն ծրագրավորվելու է սովորելու և իր փորձի հիման վրա ինքնուրույն լուծելու կոնկրետ խնդիրներ: Բայց այստեղ էլ խոսքը ոչ թե սեփական մտածողության, այլ ընդօրինակման մասին է։ Սա վերաբերում է նաև AI-ի կայացրած որոշումներին: կարող է կշռել տարբերակները, ապա ընտրություն կատարել: Այնուամենայնիվ, դրա ընտրությունը միշտ հիմնված կլինի այն պարամետրերի վրա, որոնք ծրագրավորվել են ավելի վաղ:

Այսպիսով, արհեստական ​​ինտելեկտը կարող է անել միայն այն, ինչ կանխորոշված ​​էր համակարգչի համար, բայց ավելի լավ, ավելի ճշգրիտ և ավելի արագ, քան մարդը։ Ի դեպ, եթե ցանկանում եք սովորել, թե ինչպես ծրագրավորել, ուշադրություն դարձրեք սկսնակ ծրագրավորողների համար մեր խորհուրդներին։

Օգտագործելով արհեստական ​​բանականություն

Արհեստական ​​ինտելեկտն արդեն կիրառվում է բազմաթիվ ոլորտներում, օրինակ՝ բարդ Համակարգչային խաղերև որոնման համակարգեր: AI ծրագրավորելիս կարևոր դեր է խաղում մի շարք առարկաներ, այլ ոչ միայն համակարգչային գիտությունը կամ մաթեմատիկան: Մեծ նշանակություն ունեն փիլիսոփայությունը, հոգեբանությունը, նյարդաբանությունը և լեզվաբանությունը։

Արհեստական ​​ինտելեկտը բաժանվում է նյարդային և խորհրդանշական (ուժեղ և թույլ): Մարդու ուղեղի կառուցվածքներն ու գործառույթները ընդօրինակելու առաջին փորձերը։ Վերջինս կենտրոնանում է համապատասխան խնդրի և արդյունքի վրա։

Առօրյա կյանքում, օրինակ, արհեստական ​​ինտելեկտը ծրագրավորվում և օգտագործվում է ռոբոտաշինության մեջ։ Այն ծառայում է արտադրական գործընթացները վերահսկելու կամ պարզապես կատարելու համար կենցաղային առաջադրանքներ. օգտագործվում է նաև վիզուալիզացիայի համար: Ամենահայտնի օրինակը դեմքի կամ մատնահետքի ճանաչումն է:

Արհեստական ​​ինտելեկտի ստեղծման մեկ այլ քայլ գիտելիքի վրա հիմնված համակարգերն են: Այնուհետև ծրագրավորման հետ կապված տվյալները մուտքագրվում են ծրագրում։ Սա արհեստական ​​ինտելեկտին թույլ է տալիս տրամաբանորեն և ինքնուրույն պատասխաններ տալ տրված հարցերը. Այնուամենայնիվ, այս «անկախ պատասխանները» հիմնված են միայն այն գիտելիքի վրա, որով ի սկզբանե օժտված էր արհեստական ​​ինտելեկտը:

Այս հատվածը, ոչ ավել, ոչ պակաս, խոսում է ինտելեկտուալ գործունեության հիմքում ընկած ալգորիթմի մասին։ Միաժամանակ մենք կփորձենք պատասխանել այն հարցին, թե ինչպես կարող են նմանատիպ երեւույթներ առաջանալ բնական բանականության մեջ։ Իհարկե, մենք չենք բացահայտի հետախուզության բոլոր գաղտնիքները, մենք չենք ստեղծի սուպերուղեղ, բայց մենք կսովորենք սկզբունքները, հիմնական ուղղությունը, թե որտեղ պետք է փորել հաջորդը: Մենք ավելին կիմանանք մարդկային բանականության մասին։ Կլինեն նաև ալգորիթմների գործնական էսքիզներ, որոնք կարող են ծրագրավորվել համակարգչի վրա հենց հիմա:

Բայց նախ, հակիրճ, ինչին հասանք նախորդ մասերում (). Ես ինքս արդեն մոռացել եմ, թե ինչ կար այնտեղ, ուստի ստիպված կլինեմ հիշեցնել ինքս ինձ, հակառակ դեպքում ես նույնիսկ չեմ կարողանա ավելին պատմել: :) Հիշողների համար բաց թողեք այս բաժինը:

Ինչ եղավ նախորդ մասերում

Փենրոուզը իր հրաշալի գրքերում կարծում է, որ ուղեղը ունակ է բացարձակապես ճշմարիտ դատողություններ անել և պնդում է, որ մտավոր գործընթացների հիմքում ընկած են ֆիզիկական գործընթացները, որոնք կարող են հավերժական հաշվարկներ կատարել սահմանափակ ժամանակում: Ընդ որում, այդ գործընթացները հաշվարկում են ոչ թե որևէ բան, այլ բացարձակ և անհերքելի ճշմարտություն՝ բառի ամենաուղիղ իմաստով։ Եվ ուղեղը կարող է «կտրվել» այդ գործընթացները մտածելու համար: Եվ դրա համար էլ նման գործընթացներ են անհրաժեշտ ուղեղի գործելու համար։ Եվ, չնայած նման գործընթացները անհայտ են այսօրվա ֆիզիկային, Փենրոուզը կարծում է, որ տիեզերքի ավելի խորը մակարդակը մեկ այլ իրականություն է, որը հիմնված է նման գործընթացների վրա:

Շատ առումներով, Փենրոուզը իրավացի է այս այլ իրականության հարցում, և նույնիսկ ավելին, մի օր մենք կպատմենք ոչ պակաս հետաքրքիր և նմանատիպ գաղափարներ այն մասին, թե ինչ է թաքնված տիեզերքի հիմքերում: Բայց, այնուամենայնիվ, Փենրոուզը շտապեց, մի քանի քայլ, այսպես ասած, բաց թողեց։ Մտավոր գործունեության ճնշող (եթե ոչ բոլորը) մեծամասնությունը կարելի է բացատրել ավելի պրոզայիկ և առօրյա բաներով:

Պենրոուզի անկասկած արժանիքն այն է, որ նա համոզիչ կերպով բացատրեց, թե ինչու մտավոր գործունեությունոչ մի կերպ չի կարող հիմնվել ֆորմալ տրամաբանության վրա (կամ այլ կերպ ասած՝ խիստ ալգորիթմների վրա): Ավելի ճիշտ, Պենրոուզը ցույց տվեց, որ բացարձակապես ճշմարիտ տրամաբանությունը (որը նաև, Փենրոուզի ընկալմամբ, մտավոր գործունեությունը) անհնար է հայտնի ֆիզիկական գործընթացներով: Բայց մենք դա հասկացանք յուրովի, այն է՝ մտավոր գործունեության կարիքը բացարձակապես ճշմարիտ տրամաբանություն չէ։ Կամ, այլ կերպ ասած, մարդկային բանականությունը խելամիտ է, այն տալիս է ճշմարտության լավ մոտարկումներ, բայց սխալվելու հավանականությունը դեռ կա: Եվ սա արմատապես փոխում է իրերը, այն է՝ ամբողջությամբ փոխում է մոտեցումները, թե ինչպես բացատրել բնական ինտելեկտը և ինչպես կառուցել արհեստական ​​ինտելեկտ։ Եվ նման բանականությունը կարելի է մոդելավորել Թյուրինգի մեքենայի վրա՝ ծրագրավորված սովորական համակարգչի վրա, այնուամենայնիվ, ավելի լավ է ունենալ ավելի մեծ հզորության ճարտարապետություն և ներհատուկ զուգահեռականությամբ, օրինակ՝ քվանտային կամ օպտիկական:

Հիմա հիշեցնենք, թե ինչ աղմուկ է բարձրացել ճշմարտության և ոչ ճշմարտության տրամաբանության շուրջ։ Մաթեմատիկական և համակարգչային հաշվարկները, մարդկային դատողությունները, տրամաբանական կառուցումները և եզրակացությունները կապված են ալգորիթմի կամ ֆորմալ համակարգի հայեցակարգի հետ (իրականում դրանք նույն բանն են): Ալգորիթմի կատարումը (որը կոչվում է ֆորմալ համակարգի կանոնների կիրառում) բոլոր տեսակի հաշվարկների, մտքերի և այլ ֆիզիկական գործընթացների մոդել է (կամ, առնվազն, բավականին լավ մոտարկում): Ալգորիթմը հրահանգների մի շարք է, որը որոշ վերացական համակարգիչ (Turing մեքենա) կարող է կատարել հաջորդաբար քայլ առ քայլ:

Կա խիստ ալգորիթմի հասկացություն (դա նաև ամբողջական և հետևողական ֆորմալ համակարգ է)։ Մուտքային տվյալների նույն հավաքածուի վրա խիստ ալգորիթմ է եզրափակիչքայլերի քանակը նույն պատասխանը կտա: Երբ կիրառվում է ֆորմալ համակարգերի և տրամաբանական հիմնավորման վրա, դա նշանակում է, որ նախնական պայմանների համար վերջավոր ժամանակում կարելի է գտնել ճշմարիտ (հետևողական և միանշանակ) պատասխան: Նման հաշվարկները կոչվում են նաև դետերմինիստական:

Բայց կան նաև ոչ դետերմինիստական ​​(ոչ խիստ) ալգորիթմներ, որոնցում այդ պայմանները բավարարված չեն (դրանք նաև թերի/հակասական ֆորմալ համակարգեր են)։ Ալգորիթմի համար վերջավորության պայմանը չբավարարելը նշանակում է, որ անհայտ է, թե արդյոք ալգորիթմը կավարտի իր հաշվարկը, և անհասկանալի է, թե ինչպես կարելի է նախօրոք իմանալ դրա մասին: Ոչ դետերմինիստական ​​ալգորիթմը կարող է ավարտել իր հաշվարկը, կամ կարող է ընդմիշտ թափառել, բայց այն, ինչ նա կանի, առեղծված է, որը կարող է հավերժ տևել գուշակելու համար: Ֆորմալ համակարգերի համար սկզբնական հայտարարության ճշմարտացիության կամ կեղծիքի ապացույցը մի օր անհասկանալիորեն կավարտվի կամ կշարունակվի ընդմիշտ: Անհամապատասխանությունը նշանակում է, որ ֆորմալ համակարգում դուք կարող եք ընտրել կանոնների տարբեր շղթաներ, որոնք կտան ինչպես ճիշտ, այնպես էլ կեղծ պատասխան սկզբնական հայտարարության համար: Ալգորիթմի համար դա նշանակում է, որ նույն տվյալներից կարելի է տարբեր արդյունքներ ստանալ:

Շատերը, այդ թվում Փենրոուզը, ասում են, որ ինտելեկտուալ գործունեությունը հիմնված է խիստ ֆորմալ տրամաբանության վրա։ Բայց այստեղ համաշխարհային դարան է։ Գյոդելի երկար ժամանակ ապացուցված թեորեմն ասում է, որ ֆորմալ համակարգը չի կարող լինել և՛ ամբողջական, և՛ հետևողական: Ամբողջականությունը նշանակում է, որ ֆորմալ համակարգը գիտի ամեն ինչ իր գիտելիքների տիրույթի մասին: Ի թիվս այլ բաների, նման համակարգը կարող է դատել ինքնին ճշմարտության մասին: Եթե ​​ֆորմալ համակարգ ստեղծվի դրսից ինչ-որ մեկի կողմից, ապա այն կկարողանա աշխատել՝ տալով ճիշտ արդյունքներ և բոլորովին թքած ունենալով, թե արդյոք այս մեկը ճիշտ է ստեղծել այն։ Եթե ​​ֆորմալ համակարգը փորձի համոզվել, որ դա ճիշտ է արվում, ապա այն կձախողվի։ Որովհետև մեր համակարգը հետևողական է, բայց ոչ ամբողջական: Եթե ​​համակարգը կարողանա դատել իր կոռեկտության մասին (ամբողջական), ապա այդպիսի համակարգը կունենա ներքին հակասություններ, և նրա գործունեության արդյունքները պարտադիր չէ, որ ճիշտ լինեն: Ինչո՞ւ։ Այդ թվում այն ​​պատճառով, որ ինքնաստուգման (ինքնաճանաչման, ինքնամտածողության) հարցը պատկանում է հավերժական հաշվարկների կատեգորիային։

Ի՞նչ է հետևում սրանից։ Պարզվում է (ըստ Փենրոուզի), որ մարդկային բանականությունը ամբողջական և հետևողական համակարգ է, քանի որ այն կարող է առաջացնել ճշմարիտ հայտարարություններ և միևնույն ժամանակ վերահսկել իր ճիշտությունը: Սակայն Գյոդելի թեորեմի համաձայն՝ դա անհնար է։ Այսպիսով, մենք պետք է անհայտ ֆիզիկական գործընթացներ ներգրավենք ինտելեկտի աշխատանքի համար, որը կարճ պահի ընթացքում կարող է նայել հավերժության շուրջը, գտնել պատասխանը և այս պատասխանը վերադարձնել ուղեղին: Բայց, ինչպես արդեն նշեցինք, ինտելեկտը ամենևին էլ պարտադիր չէ, որ լինի ամբողջական և հետևողական, թեև այն կարող է շատ խելամիտ ձևացնել, թե ճշմարիտ է և անսխալական:

Երկրորդ դարանն այն է, որ ֆիզիկան չգիտի այն սուբյեկտները, որոնց վրա գործում է ֆորմալ տրամաբանությունը: Մասնավորապես, ֆորմալ դատողությունը հաճախ հիմնված է բնական թվերի, ճշմարտության և կեղծիքի հասկացությունների վրա։ Բնական թվերն են այն թվերը, որոնցում 1+1 = 2, 2+1 = 3 և այլն: Ճիշտ = 1, կեղծ = 0, ճշմարտության ժխտում = կեղծ: Բոլոր միավորները բացարձակապես հավասար են միմյանց, տերմինների վերադասավորումը չի փոխում գումարը և այլն։ Բայց խնդիրն այն է, որ մեր աշխարհում չկան այնպիսի մասնիկներ, այնպիսի իրեր կամ գործընթացներ, որոնք կարող են միանշանակ համեմատվել բնական թվերի հետ, և միևնույն ժամանակ, թվաբանության կանոնները կբավարարվեն այդ միավորների համար ցանկացած տիրույթում: Որոշ միջակայքերում թվաբանությունը մոտավորապես ճիշտ է, բայց դրանից դուրս սկսվում են գլոբալ խափանումները: Ուստի ֆորմալ տրամաբանությունը, կոպիտ ասած, գործում է առանց հասկանալու, թե ինչ, սուբյեկտների հետ, որոնց էությունը բավականին մշուշոտ է։ Ավելին, թվաբանությունն ինքնին չի առնչվում ամբողջական և հետևողական համակարգերի, ինչպիսիք են զվարճալի փաստ. Իսկ ընդհանրապես, թվում է, թե բացարձակ ճշմարտություն և բնական թվեր սկզբունքորեն չեն կարող գոյություն ունենալ։ Թե կոնկրետ ինչպես և ինչու՝ հաջորդ մասերում։

Ի՞նչ է հետևում սրանից։ Բոլոր գործընթացները, բոլոր հաշվարկները, որոնք տեղի են ունենում կա՛մ ուղեղում, կա՛մ համակարգիչներում, ըստ էության, կամ թերի են կամ հակասական, թեև դրանք ապահովում են լավ իրական մոտարկում ամբողջական և հետևողական հաշվարկների համար:

Ինչո՞ւ Փենրոուզը չի սիրում հակասական ֆորմալ համակարգեր, ինչո՞ւ է Փենրոուզը մերժում նրանց մտավոր գործունեության հիմքը լինելու իրավունքը։ Ինչպես հիշում ենք, հակասական ֆորմալ համակարգում, նույն տվյալների համար, հնարավոր է բխեցնել և՛ ճշմարիտ, և՛ կեղծ հայտարարություն, մինչև 1 = 2 և այլն: Այս հիման վրա Փենրոուզը ենթադրում է, որ հակասական համակարգերը կանեն Միշտ (!)առաջացնում են հակասական արդյունքներ: Այստեղից Փենրոուզը քաոսային գործընթացների շատ նեղ մեկնաբանություն ունի, նա կարծում է, որ դրանք պարզապես պատահական գործընթացներ են, որոնք միջին հաշվով կարող են մոդելավորվել խիստ ֆորմալ համակարգով:

Իրականում, հակասական համակարգերը շատ դեպքերում կարող են մերձենալ իրական արդյունքին, ամենևին էլ պարտադիր չէ, որ ներքին հակասությունները անմիջապես գերիշխեն և կործանեն համակարգը: Կարող են լինել համակարգեր, որոնցում հակասությունները նվազագույնի են հասցվում: Եվ նույնիսկ վերացական համակարգչի վրա գործարկվելիս, դրանք կմնան ոչ դետերմինիստական, կլինեն թերի և անհետևողական, բայց շատ դեպքերում դրանք կբերեն արժանահավատ արդյունք: Ինչո՞ւ Փենրոուզը որոշեց, որ հակասական համակարգերը միշտ կկործանվեն իրենց հակասություններով: Այս մասին Փենրոուզը լռում է...

Ավելին, ավելին: Ինչպես տեսանք նախորդ մասերում, մեր աշխարհի գործընթացները, լինի դա համակարգիչներում, թե ուղեղներում, բոլորն էլ իրենց էությամբ անորոշ են և հակասական: Բայց շատ դեպքերում նրանք զիջում են ճիշտ արդյունք. Դա պայմանավորված է նրանով, որ այս գործընթացները բաղկացած են կամ նմանատիպ հաշվարկների բազմակի կրկնություններից, կամ մեծ թվով նմանատիպ տարրերից, այնպես, որ այդ կրկնությունների կամ տարրերի համադրությունը շատ դեպքերում տալիս է կայուն և ճիշտ արդյունք: Միևնույն ժամանակ, իհարկե, մնում է շատ փոքր հնարավորություն, որ մի փոքր ներքին հակասություն կաճի և կկործանի ողջ համակարգը։ Բայց շատ դեպքերում համակարգը կարծես ներդաշնակված է, տարրերը, ազդելով միմյանց վրա, նվազագույնի են հասցնում ներքին հակասությունները։ Մեր աշխարհում ոչ բոլոր գործընթացներն են խիստ ներդաշնակված, բայց այդպիսի գործընթացներ գոյություն ունեն, և այն, ինչ տեղի է ունենում համակարգիչներում և ուղեղում, դրանցից մեկն է: Որտեղի՞ց է գալիս նման ներդաշնակությունը մեր աշխարհում - թեմա հետեւյալ մասերը. Մնում է մի փոքր հնարավորություն, որ մեր աշխարհայացքներում, մեր մտավոր գործունեության մեջ մենք ինչ-որ կերպ գլոբալ առումով սխալ ենք, որ մեր դատողություններում կա մի փոքրիկ որդանցք, որը կարող է ամբողջությամբ խաթարել տիեզերքի մեր ողջ պատկերացումը: Բայց դրա մասին ավելի շատ՝ հաջորդ մասերում։

Սկզբում մարդկային մտածողությունը հիմնված է հենց այսպիսի գործընթացների վրա։ Չկան երկար տրամաբանական շղթաներ, չկան հստակ կանոններ։ Փոխարենը կան իրավիճակ-արձագանքման կարճ շղթաներ՝ առանց երկար մշակման ցիկլերի: Այս շղթաների տարրերն ունեն մեծ թվով մուտքեր, և տարրի ներսում մուտքային տվյալները բաժանվում են բազմաթիվ զուգահեռ, իրար կրկնօրինակող, մշուշոտ ուղիների, որոնք ելքում տալիս են հստակ լուծում։ Նման տարրերը մենք անվանում ենք կարճ և լայն հավանական կանոններ: Նման կանոնները տրամաբանական եզրակացություն չեն անում, նրանք արդեն «հիշում են». պատրաստի լուծումիրենց հայտնի իրավիճակներին: Նման կանոններ սովորելու մեխանիզմը նույնպես հեռու է հստակ տրամաբանական եզրակացությունից և նկարագրված է նախորդ մասերում։

Նման գործընթացները լավ են իրական աշխարհի հետ շփվելու համար, սակայն ֆորմալ տրամաբանությունը նրանց համար դժվար է։ Այնուամենայնիվ, մարդկային բանականությունը կարող է գործել ֆորմալ տրամաբանական ռեժիմով և կարող է ընդօրինակել համակարգչային հաշվարկները: Գուցե, բայց շատ ավելի «ծանր» գործընթացների հաշվին։ Պարզ տրամաբանական շղթայի ուղեղում հաշվարկներ իրականացնելու համար օգտագործվում է պարզ ծրագիր, անհամար կարճ անորոշ կանոններ, որոնք իրենց համադրությամբ տալիս են խիստ տրամաբանության աշխատանքին նման արդյունք: Եվ քանի որ այս կանոններն ամենևին էլ նախատեսված չեն ֆորմալ տրամաբանության համար, նրանց թիվը, որոնք ներգրավված են ֆորմալ տրամաբանության ընդօրինակման մեջ, շատ ավելի մեծ կլինի, քան իրական աշխարհի հետ փոխգործակցության համար: Եվ հետևաբար, տարբեր կենդանիներ ունակ չեն տրամաբանական մտածելու, դրա համար անհրաժեշտ է մարդկային բարդ ուղեղ: Չնայած առօրյա խնդիրները, որոնք տարբեր կենդանիներ լուծում են անցողիկ, համակարգչի ուժերից վեր են։

Բայց նման «ծանր» գործընթացներն ունեն նաև առավելություն. Այն բաղկացած է նրանից, որ ուղեղը կարող է նոր տրամաբանական կոնստրուկցիաներ և համակարգչային ծրագրեր արտադրել բարձր աստիճանճշմարտանմանություն, մինչդեռ պարզ, բայց արդյունավետ ալգորիթմը կարող է անել իր աշխատանքը միայն անմիտ կերպով: Ստացված կոնստրուկցիաների բարդությունը մեծության աստիճաններով ավելի քիչ է, քան ուղեղում ի սկզբանե ներգրավված գործընթացների աստիճանը: Հենց այս բարդության տարբերությունն է լուծում այն ​​հակասությունը, որ հակասական ինտելեկտուալ գործընթացները ստեղծում են իրական տրամաբանական կառուցվածքներ: Եթե ​​բարդության այս տարբերությունը հաշվի չառնվի, ապա ոչ մի կերպ հնարավոր չէ հասկանալ, թե որտեղից են գալիս այդ իրական կոնստրուկցիաները:

Մարդիկ լուծում են այնպիսի խնդիրներ, որոնք պահանջում են բարդ տրամաբանական կոնստրուկցիաներ, բառացիորեն օգտագործելով «գիտական ​​պոկ» մեթոդը: Այսինքն՝ ինչ-որ պարզ տարբերակ ստեղծելու համար, կատարեք դրա հաշվարկը ուղեղում, տեսեք սխալ կետերը, եկեք հաջորդը (պարտադիր չէ, որ ճիշտ տարբերակը), նորից ընդօրինակեք հաշվարկը և այլն։ Լավ վերապատրաստման դեպքում նման կոնստրուկցիաները դառնում են արագ ավտոմատ գործողություններ, որոնք չեն պահանջում գիտակցության մասնակցություն (և, այնուամենայնիվ, դրանց բարդությունը դեռևս հսկայական է), հիշվում են բնորոշ իրավիճակներ, և կարծեսոր ուղեղն աշխատում է սովորական համակարգչի պես (ֆորմալ տրամաբանության համաձայն), չնայած դա ամենևին էլ այդպես չէ։

Դա տեղի է ունենում նաև այն ժամանակ, երբ ուղեղը երկար ժամանակ «աքլորանում է», «արագանում» ինչ-որ առաջադրանքի համար, դրվում են նախնական տվյալները, անհաջող փորձերը, անորոշ կանխազգացումներն ու տենչանքները, որ ճշմարտությունն ինչ-որ տեղ մոտ է։ Եվ հետո պայթյուն, և խորաթափանցության փայլ, ամեն ինչ ընկնում է իր տեղը և ծնվում է նոր ճշմարտություն: Կարող է թվալ, որ այս ճշմարտությունը ծնվել է ակնթարթորեն և եկել բարձրագույն ոլորտներից: Բայց իրականում էֆեկտը նույնն է, խորաթափանցության բռնկումին նախորդել է երկար ու տքնաջան աշխատանքը, որը ներգրավել, փոխել և ստեղծել է անհամար կարճ ու խելամիտ կանոններ, փորձել ինչ-որ կերպ համատեղել և ներդաշնակեցնել դրանք միասին, հիմնականում՝ անհաջող: Եվ հիմա գալիս է պահը, երբ այս բոլոր կանոնները ներդաշնակորեն համադրվում են միմյանց հետ, միաձուլվում մեկ ներդաշնակ գործընթացի մեջ և միասին դուրս են բերում նոր ճշմարտություն։

Արհեստական ​​ինտելեկտը, հետևելով այս սկզբունքներին, կարող է լավ ծրագրավորվել սովորական համակարգիչների վրա: Բնականաբար, այս ծրագիրն ի սկզբանե միտված է լինելու ինդետերմինիզմին և ներքին հակասությունների առկայությանը։ Մինչդեռ առկա համակարգչային ծրագրերը, թեև ոչ որոշիչ և անհամապատասխան են, բայց գրված են ժամանակակից ծրագրերդրանք ավելի քիչ անորոշ և հակասական դարձնելու նպատակով։ Իհարկե, արհեստական ​​ինտելեկտի համար ավելի լավ է օգտագործել ավելի արդյունավետ ճարտարապետություն, որը թույլ է տալիս մեծ թվովզուգահեռ և փոխազդող գործընթացներ: Օրինակ՝ քվանտային կամ օպտիկական։ Մեկ պրոցեսորով էլեկտրոնային համակարգիչները նույնպես կարող են ծրագրավորվել խելացի լինելու համար, բայց, ամենայն հավանականությամբ, նրանք կունենան էներգիայի պակաս:

«Ծանր» գործընթացները և ներդաշնակեցումը մանրամասն կքննարկվեն ավելի ուշ, բայց հիմա սկսենք արհեստական ​​ինտելեկտի կառուցումը:

Խելացիության աղյուսներ

Սկսենք համառոտ վերհիշելով, թե ինչի մասին ենք արդեն եկել այս ոլորտում և ինչն է պակասում։ Այս ամենը մանրամասն նկարագրված է նախորդ մասերում։ Այս մասին հիշեցնում ենք՝ հասկանալու համար, թե ինչու է այդպես և ոչ այլ կերպ։ Ի վերջո, հետախուզության ալգորիթմն ինքնին այնքան էլ բարդ չէ, դրա մեջ գլխավորը սկզբունքներն են, պետք է հասկանալ, թե որ ուղղությամբ շարժվել և ինչ արդյունքներ ակնկալել։

Ծրագրավորման լեզուներ. Կան ընթացակարգային և նախադատային: Ընթացակարգային լեզուներում ծրագիրը գրվում է որպես հրահանգների խիստ հաջորդականություն, որոնց միջև կարող են լինել պայմանական անցումներ։

Նախադրյալ լեզուներն ունեն մի շարք անկախ կանոններ, որոնցից յուրաքանչյուրն ունի իր շրջանակը: Նախադրյալ լեզուներով կատարողը ստուգում է ներկա իրավիճակին համապատասխանության բոլոր կանոնները և կիրառում անհրաժեշտ կանոններ, որոնք փոխում են իրավիճակը (ներքին վիճակ), և դրանով իսկ կարող են կանոններից երկար տրամաբանական շղթաներ կառուցել։ Բնականաբար, դա կատարողի համար ավելի դժվար է, քան ընթացակարգային ծրագիր կատարելը։

Ընթացակարգային լեզուները լավն են, որտեղ ալգորիթմը հստակ հայտնի է և պահանջում է արագ և արդյունավետ իրականացում. Նախադրյալ լեզուները լավն են, որտեղ դուք պետք է պահեք մարդկային գիտելիքները, տրամաբանական կանոնները, այնուհետև եզրակացություններ անեք գիտելիքների վերաբերյալ (օրինակ, գնահատեք տարբեր մուտքային իրավիճակներ): Դրանցում հարմար է նոր գիտելիքներ ավելացնել՝ առանց ամբողջ ծրագիրը վերաշարադրելու։ Կան նույնիսկ փոփոխություններ, որոնցում նոր գիտելիքների ներդրումից հետո ամբողջ գիտելիքների բազան բերվում է հետևողական վիճակի: Որոշ ժամանակ նախադրյալ լեզուները (ինչպես Prolog-ը) համարվում էին արհեստական ​​ինտելեկտի ապագան:

Բայց փաստն այն է, որ ընթացակարգային և նախադրյալ լեզուները փոխադարձաբար արտահայտելի են և ունեն ալգորիթմներին բնորոշ նույն խնդիրները (ֆորմալ համակարգեր, տես վերևում և ներքևում):

Նախ՝ կանգ առնելու խնդրի առաջ ենք կանգնում։ Ալգորիթմը կարող է ընդմիշտ թափառել լուծում փնտրելու համար, թեև այն կարող է ընկած լինել մոտակայքում, հաջորդ ճյուղում: Բայց ալգորիթմը կհամապատասխանի ամբողջական և հետևողական ֆորմալ համակարգին։ Բայց դա մեզ համար ոչ մի օգուտ չի տալիս (այժմ մենք հավատում ենք, որ չենք կարող հավերժական հաշվարկ կատարել սահմանափակ ժամանակում): Եթե ​​մենք կատարենք «երկար» ճյուղերի ինչ-որ էտում, ապա ալգորիթմը կդառնա ավելի գործնական, բայց կկորցնի ամբողջականությունն ու հետևողականությունը և կդառնա ոչ թե ճշմարիտ, այլ հավանական: Եվ այստեղ խոսքը ոչ թե այն մասին է, որ սխալ որոշման հավանականությունը մի փոքր կմեծանա, այլ այն մասին, որ ալգորիթմը կկարողանա արտադրել բոլորովին սխալ որոշումներ։

Երկրորդ, տրամաբանական միավորները կազմող պրեդիկատի կանոնները չափազանց «նեղ» են։ Բնական բանականության մեջ տրամաբանական միավորներն ունեն պատվերներավելի շատ մուտքային պայմաններ և այդ մուտքերը մշակվում են ըստ անորոշ չափանիշների: Ավելին, նման ներկայացմամբ գիտելիքը «քսվում» է և կորցնում է իր պարզությունն ու ձևականությունը։

Գոյություն ունեցող մշուշոտ տրամաբանությունը (գիտության մեջ կա այդպիսի բաժին) պիտանի չէ պրեդիկատային լեզուներում օգտագործելու համար, ինչի պատճառով։ Ցանկացած անորոշություն, երբ բախվում է մեկ այլ անորոշության հետ տրամաբանական եզրակացության ժամանակ, կարող է առաջացնել բազմաթիվ այլընտրանքային տարբերակներ, տարբեր տրամաբանական շղթաներ: Ավելին, այս տարբերակները հեշտությամբ կարող են աճել ավալանշի պես։ Գոյություն ունեցող մշուշոտ տրամաբանությունը, որքան ես գիտեմ, չի առնչվում ոչ շղթաների զուգահեռացմանը, ոչ էլ դրանց հակառակ համակցությանը: Այն ամենը, ինչ անում է անորոշ տրամաբանությունը, գործում է նույն տրամաբանական արտահայտությունների վրա, միայն տրամաբանական զրոյի և մեկի փոխարեն, այն օգտագործում է իրական միջակայքը զրոյից մինչև մեկ, և թվաբանական գործողություններ՝ այս միջակայքից թվերը միավորելու համար:

Գոյություն ունեն «բարդ» տրամաբանության տարբերակներ, որոնցում, երբ ենթատեքստը հակադարձվում է, առաջանում է անորոշություն, որն արտահայտվում է երևակայական միավորի նման մի բանով և որը մասնակցում է հետագա հաշվարկներին՝ շղթաների զուգահեռացման և միաձուլման հնարավորությամբ։ Բայց առայժմ այս թեման լրացուցիչ բացահայտում է պահանջում։

Երրորդ, մենք չունենք ալգորիթմ, որը կարող է վարժեցնել (ստեղծել) այլ ալգորիթմներ, մարդու բացակայության դեպքում, բայց երբ կա վերապատրաստման մի շարք իրավիճակներ (ճիշտ մուտքային և ելքային արժեքների զույգերի ներկայացուցչական հավաքածու):

Կաղապարների ճանաչման համակարգեր. Լավ հարմարեցված է մեր արհեստական ​​բանականության տրամաբանական միավորի դերին: Նրանք կարողանում են լավ դասակարգել մուտքային իրավիճակը և տալ ելքային լուծում։ Ճիշտ է, միայն այն դեպքում, եթե երկարաժամկետ մշակման կարիք չկա, քանի որ նման համակարգերը չունեն ներքին հիշողություն (վիճակ) և այս վիճակի փոխակերպումը, որը ներկայացնում է ավելի շուտ «խթան-արձագանք» ռեֆլեքս: Սակայն ճանաչման շարժիչները դասակարգման գերազանց աշխատանք են կատարում: Նրանք նույնիսկ կարող են մշակել բարդ պատկերներ (օրինակ՝ ճանաչել մարդուն դեմքի պատկերից): Կաղապարների ճանաչման համակարգերի վերապատրաստման մեթոդներն արդյունավետ են և հայտնի: Վերապատրաստված մի շարք հայտնի օրինակների վրա՝ ճանաչման շարժիչը կարող է գրավել թաքնված օրինաչափությունները և որակապես ընդհանրացնել փորձը անհայտ օրինակների վրա:

Վերապատրաստման սկզբունքները. Երբ հայտնի է ցանկալի (տեղեկանք) արդյունքը և խելացի համակարգի իրական արդյունքը, հնարավոր է հաշվարկել այս համակարգի սխալը և կարգավորել համակարգը այնպես, որ այն աշխատի ճիշտ ուղղությամբ:

Ուղղման (վերապատրաստման) մեթոդները կարող են լինել ճշգրիտ (դրանք նաև կոչվում են տեղական) կամ գլոբալ: Տեղական մեթոդներն ի վիճակի են հաշվարկել սխալը ամբողջ համակարգում, և, հետևաբար, արագ և արդյունավետ են: Գլոբալ մեթոդները չեն կարող դա անել, նրանք պատահականորեն փոխում են ամբողջ համակարգի պարամետրերը, նայում են, թե որքանով է փոփոխությունը հաջողությամբ ազդել համակարգի աշխատանքի վրա, և դրա հիման վրա որոշում են, թե արդյոք պահպանել այս փոփոխությունը:

Տեղական մեթոդը ներառում է գրադիենտ վայրէջքի մեթոդը, երբ սխալի դեպքում կարող եք հաշվարկել դրա ուղղությունը և տարածել այն մուտքից հակառակ ուղղությամբ ամբողջ համակարգում: Այս մեթոդը, թեև «միայն» հավանական է, բայց գործնականում լավ արդյունքներ է տալիս, օրինակ՝ բազմաշերտ պերցեպտրոններ (որոնք հաճախ անվանում են նեյրոնային ցանցեր) վարժեցնելու համար։ Բայց դա (ինչպես այլ տեղական մեթոդները) միշտ չէ, որ կիրառելի է, քանի որ սխալի կառուցվածքը և այն շտկելու մեթոդը կարող են հայտնի չլինել:

Բայց մենք ունենք գլոբալ ուսուցման մեթոդներ, գենետիկական ալգորիթմ և սիմուլյատոր կռում, դրանք ամենակեր են, բայց հաշվողական ռեսուրսների մեջ շատ անկուշտ են: Նրանք կարող են աշխատել, երբ գործնականում ոչինչ հայտնի չէ, թե ինչպես շտկել սխալը: Գենետիկական ալգորիթմն ավելի արդյունավետ է, հատկապես, եթե դուք ինչ-որ բան գիտեք լուծվող խնդրի կառուցվածքի մասին:

Սանդղակի սկզբունքը. Դա նշանակում է, որ նմանատիպ գործընթացները բազմիցս կրկնելով կամ մեծ թվով նմանատիպ տարրեր միավորելով՝ կարելի է հասնել խիստ կայուն (կամ խիստ հավանական) արդյունքի։ Նմանատիպ տարրը/գործընթացը չի նշանակում միջինում նման, դա նշանակում է, որ տարրերը կարող են հակասել և մրցակցել միմյանց հետ, կարող են լինել անկայուն, բայց ի վերջո դրանք դեռ համակցված (ներդաշնակեցված) են մի լուծման բարձր հավանականության աստիճանով: Օրինակ՝ համակարգիչների տրամաբանական սխեմաներում բոլոր տարրական մասնիկները անկայուն են, բայց դրանց կիսատ կյանքը կա՛մ շատ երկար է, կա՛մ տրամաբանական տարրի մասնիկների թիվը շատ մեծ է, այնպես որ առանձին մասնիկի քայքայումը գործնականում չի լինում։ առաջացնել տրամաբանական սխեմաների խափանում: Մեկ այլ օրինակ այն է, որ արհեստական ​​նեյրոնային ցանցերում անհատական ​​նեյրոնային կապը քիչ ազդեցություն ունի որոշումների վրա, կապերն իրենք կարող են հակասական լինել, բայց ի վերջո նեյրոնային ցանցը հիմնականում ճիշտ որոշումներ է ընդունում:

Եկեք ամփոփենք. Մենք ունենք նախադրյալ լեզուներ, որոնք հարմար են բարդ դատողությունների և ներքին վիճակի մշակման համար: Կան օրինաչափությունների ճանաչման համակարգեր, որոնք կարող են օգտագործվել որպես պրեդիկատ լեզուների տրամաբանական միավորներ: Կան ամենակեր ուսուցման մեթոդներ, որոնք մենք հույս ունենք ավտոմատ կերպով ստեղծել (մարզել) նոր ալգորիթմներ: Գոյություն ունի մասշտաբի սկզբունք, որը ամբողջականության և հետևողականության կորստով թույլ կտա մեզ պահպանել մեր արհեստական ​​ինտելեկտի որոշումների բարձր հավաստիությունը:

Հետախուզական ալգորիթմ

Հակիրճ հիշեցնեմ գենետիկական ալգորիթմի էությունը։ Նման մեթոդ կա՝ պատահական որոնում։ Պատահական լուծում է ստեղծվում, գնահատվում և այնուհետև պատահականորեն փոխվում է: Եթե ​​արդյունքն ավելի լավ է, որոշումը հիշվում է: Որից հետո ցիկլը կրկնվում է: Այս մեթոդը օգտագործվում է այն դեպքում, երբ պարզ չէ, թե ինչպես կարելի է հաշվարկել լուծումը «գիտականորեն»: Շատ երկար ժամանակ է ստացվում։ Եվ եթե դուք ստեղծեք մեծ թվով զուգահեռներ տարբեր լուծումներ? Նրանց համար, ովքեր հաջողությամբ են առաջադիմում (լուծումների որակը լավ է կամ բարելավվում է ժամանակի ընթացքում կամ համեմատվում է «հարևանների» հետ), մենք ստեղծում ենք պատճենների օրինակներ և կամաց-կամաց փոխում ենք (պատահականորեն) այդ օրինակները: Այն լուծումները, որոնք վատ տեսք ունեն մնացածի համեմատ, կամ ժամանակի ընթացքում չեն բարելավում լուծման որակը, մենք այդ դեպքերը ենթարկում ենք ավելի ու ավելի պատահական փոփոխությունների կամ ամբողջությամբ ջնջում, իսկ դրանց փոխարեն դնում ենք նոր ստեղծված պատահական լուծումներ։ Բնականաբար, վատ որոշումներն ավելի քիչ հավանական են կրկնվելու: Կա ևս մեկ գործողություն (նաև օգտագործվում է պատահականորեն), երբ մի կտոր կծում են երկու տարբեր լուծույթներից, և այս երկու կտորները սոսնձվում են նոր լուծույթի մեջ: Դա կոչվում է հատում: Որքան լավ է լուծումը, այնքան ավելի հավանական է, որ այն ենթարկվի խաչասերման: Արդյունքում, դուք կարող եք հանկարծ ձեռք բերել լուծում, որն ունի լավագույն արդյունքըքան նրա երկու ծնողները: Բայց կարող է տեղի ունենալ նաև հակառակը. Եթե ​​լուծումն ավելի լավ է ստացվել, ապա հետագայում այն ​​բազմապատկվում է, եթե ավելի վատ է, ապա այդպիսի լուծում՝ հետ մեծ հավանականությունջնջված է։ Նման որոնումն ամենաարդյունավետն է, երբ գիտենք լուծման կառուցվածքը և կիրառում ենք պատահական փոփոխության (մուտացիայի) և հատման գործողությունները՝ առանց լուծումը հատ-հատ կտրելու, բայց այս կառուցվածքը հաշվի առնելով։

Հաշվի առնելով այն հանգամանքը, որ լուծումները ոչ միայն կատարվում են զուգահեռ, այլ անընդհատ համեմատվում և փոխանակվում են միմյանց հետ, նման որոնումը տալիս է կատարողականի ֆանտաստիկ թռիչք՝ համեմատած պատահական որոնման հետ և պարզվում է, որ կարող է մանրացնել ամենադժվարը: խնդիրներ. Թվում է, թե տիպիկ պատահական լուծումը, միջին հաշվով, հետաքրքիր չէ, և դրա արդյունավետությունը չափազանց ցածր է: Բայց հենց որ շատ լուծումներ սկսում են փոխազդել միմյանց հետ, արագ ի հայտ է գալիս և առաջադիմում անտիպ արդյունք (լավ լուծում): Ի դեպ, Փենրոուզը խորհուրդ է տալիս միջինում ուսումնասիրել քաոսային գործընթացները, ուսումնասիրել բնորոշ դեպքերը, ընդգծելով, որ բացի տիպիկ դեպքերից ոչինչ չեն կարող գեներացնել, ինչն, իհարկե, անարդար է։ Այս որոնումը մասշտաբի սկզբունքի օրինակ է, բնորոշ ներդաշնակեցման գործընթացներից մեկը:

Սա այն է, ինչ կոչվում է գենետիկական ալգորիթմ, որը կարող է արդյունավետ լուծումներ գտնել տարբեր ոլորտներում, երբ նույնիսկ հայտնի չէ, թե ինչպես ճիշտ լուծում փնտրել «ըստ գիտության»: Կամ ընդհանրապես նման «գիտական» մեթոդ չկա, ինչպես դա ծրագրերի ավտոմատ գրման դեպքում է։ Գենետիկական ալգորիթմի արդյունավետության մասին է վկայում առաջին հերթին այն, որ կյանքը Երկրի վրա (իսկ հետո՝ բանականությունը) հայտնվել է հենց այս սկզբունքներով։ Թե ինչու է հնարավոր նման ներդաշնակեցման գործընթացը, հաջորդ մասերի թեման է։

Արհեստական ​​բանականության մեջ կա նման ուղղություն՝ գենետիկ ծրագրավորում։ Յուրաքանչյուր լուծում ոչ թե պարամետրերի հավաքածու է, այլ ընթացակարգային ծրագրավորման լեզվով գրված մի ամբողջ ծրագիր։ Իր բոլոր օղակներով, պայմանական թռիչքներով և փոփոխականներում ներքին վիճակով: Ըստ այդմ, որոշման արդյունքը այս ծրագրի կատարման արդյունքն է։ Ծրագիր ստեղծելու համար օգտագործվել է գենետիկ ալգորիթմ, որը պատահականորեն ստեղծված մեծ թվով ծրագրերից ստեղծել է ծրագիր. լավագույն միջոցըլուծելով այս խնդիրը: Այն հոդվածում, որը ես տեսա, խնդիր էր դրված կառավարել մեքենայի ղեկը։ Նրանք. Որոշման արդյունքը ներածման մեկ պատասխան չէ, այլ ժամանակի ընթացքում երկարաձգված գործընթաց: Գենետիկական ալգորիթմը հաջողվեց և ստեղծեց ծրագիր, որը ճիշտ կառավարում էր ղեկը։ Խնդիրն այնքան էլ դժվար չէ, նրանք նման բան են անում նեյրոնային ցանցերի հետ (չնայած դեռ կա ինչ-որ ներքին վիճակ, և ցանցի հետ վիճակի փոխազդեցության կանոնները գրված են անձի կողմից): Բայց հատկանշական է, որ ինքնաբերաբար ստեղծվել է մի ծրագիր, որն ուներ ներքին վիճակ, տարբեր օղակներ ու ճյուղեր։

Ցավոք սրտի, ես այս թեմայով այլևս չհետևեցի գործերի վիճակին և ավելին ձեզ չեմ կարող ասել: Ցանկացողները կարող են որոնել «գենետիկ ծրագրավորում» արտահայտությունը։ Հետևաբար, մենք դուրս ենք գալիս ուսումնասիրվածից և մտնում ենք ենթադրությունների տիրույթ։ Միանգամայն հնարավոր է, որ այս ենթադրություններից մի քանիսն արդեն հայտնի են, և ես նորից եմ հորինում անիվը։ Բայց դեռ հետաքրքիր է. :)

Տեսնենք, թե ինչ հատկություններ ունեն գենետիկական ալգորիթմի միջոցով ստացված ծրագրերը։ Նման ծրագրերը կարող են ունենալ անսահման (կամ շատ երկար) օղակներ, ուստի համապատասխանության գնահատումը պետք է դուրս մղի այն ծրագրերը, որոնք աշխատում են շատ երկար ժամանակ՝ առանց արտադրելու: տեսանելի արդյունք. Քայլը, ընդհանուր առմամբ, ճիշտ է, բայց, ցավոք, այն դուրս է շպրտում պոտենցիալ հետաքրքիր երկար տրամաբանական շղթաներ (թե ինչպես կարելի է դրանք հաշվի առնել, մնում է տեսնել): Ավելին, հատելիս ծրագրի ճյուղերը անմիտ կերպով կփշրվեն՝ առաջացնելով հաճախ անիմաստ կոդ: Եվ եթե պարզ խնդրի համար սա նման խնդիր չէ, ապա ավելի բարդ խնդիրների դեպքում դուք կհայտնվեք մեծ քանակությամբ ոչ պիտանի լուծումների հետ, քանի որ ամենափոքր փոփոխությունը կարող է ամբողջությամբ փչացնել ծրագրի կատարումը, և, հավանաբար, վերջում քիչ օգտակար կլինի: Կամ ծրագիրը կունենա մեծ թվով ավելորդ ճյուղեր՝ «աղբ», որոնք աներևակայելի կերպով կմիավորվեն միմյանց հետ՝ ճիշտ լուծման մեջ: Էվոլյուցիայի գործընթացում այս «աղբը» սովորում է գոյատևել կատարված փոփոխություններից, որպեսզի փոփոխությունը մահացու չխախտի ծրագիրը: Բայց ամեն դեպքում, մենք ստիպված կլինենք հրաժեշտ տալ «բարակ» տրամաբանական շղթաների գաղափարին, որը կներկայացնի նույն հստակ ծրագրերը, որոնք մարդը գրում է: Այն, ինչ տեղի է ունենում ավտոմատ կերպով ծրագրեր գրելու արդյունքում, հեռու կլինի նման շղթաներից։ Իհարկե, կհայտնվեն տվյալների արդյունահանման ալգորիթմներ, որոնք կկարողանան նվազագույնի հասցնել այս հակասական կույտը հստակ ալգորիթմի մեջ, բայց այս հստակ ալգորիթմը հետագա կատարելագործման համար: ավտոմատ ռեժիմ, անհրաժեշտ կլինի այն վերադարձնել «քսած» ձևին (կամ քսելը տեղի կունենա ինքնուրույն՝ հետագա վերապատրաստման ընթացքում)։ Եվ կասկած կա, որ տվյալների մայնինգի միջոցով դուրս բերված ալգորիթմն ավելի նեղ «հայացք» կունենա, քան իր սկզբնական, «լղոզված» տարբերակը։ Նմանատիպ երևույթ նկարագրվել է օրինաչափությունների ճանաչման վերաբերյալ նախորդ մասերում:

Ինչպես հիշում ենք, պրեդիկատ լեզուներն ավելի ճկուն են փոփոխվելու և հարմարեցված մարդկային գիտելիքների գրանցման համար, քանի որ դրանք կազմված չեն կոշտ ծրագրի շրջանակից, այլ անկախ կանոններից, որոնք ավտոմատ կերպով գործարկվում են, երբ տեղի է ունենում հարմար իրավիճակ (պայմաններ): Գենետիկական ալգորիթմն ավելի արդյունավետ է աշխատում, եթե դրա գործողությունները հաշվի են առնում լուծման կառուցվածքը: Ընթացակարգային ձևով գրելը ստիպում է գենետիկական ալգորիթմին անմիտ կերպով կտրել ծրագիրը՝ առաջացնելով բազմաթիվ անգործունակ տարբերակներ: Հետևաբար, մենք ծրագիրը կգրենք պրեդիկատի տեսքով և գենետիկական ալգորիթմը կկազմաձևենք այնպես, որ այն հաշվի առնի նման կառուցվածքը։ Մասնավորապես, տարբեր ծրագրային լուծումները կկարողանան փոխանակել ոչ թե բիթերի կտորներ, այլ ամբողջովին անկախ կանոններ։ Պատահական փոփոխությունները կաշխատեն կանոնների մակարդակով: Ավելին, մեկ ծրագրի շրջանակներում դուք կարող եք ունենալ տարբեր թվով կանոններ, անկախ նրանից, թե ինչ հերթականությամբ: Եվ այս կանոնները կարող են լինել շատ նմանատիպ ընկերմիմյանց, և բոլորովին այլ: Դուք կարող եք վերարտադրել և խաչասերել ոչ միայն բուն ծրագրերը, այլև կանոնները մեկ ծրագրի շրջանակներում: Եվ ամեն ինչ, քանի որ ծրագիրը կատարելիս նրանք իրենք կշարվեն ճիշտ շղթայում, քանի որ կատարողը հիմարաբար չի հետևում ծրագրի ճյուղերին (ինչպես ընթացակարգային լեզվով), այլ ընտրում է կանոններ՝ ըստ ընթացիկ իրավիճակի (յուրաքանչյուր կանոն փոխվում է իրավիճակը):

Բայց ամենահետաքրքիրը կլինի կանոնների բանկը բոլոր ծրագրերի համար ընդհանուր դարձնելը։ Ծրագիրն այս դեպքում կներկայացնի տվյալներ, թե որ կանոններն է նա նախընտրում ընդհանուր բանկից, և, հնարավոր է, տեղեկատվություն դրանց կիրառման նախընտրելի հաջորդականության մասին: Այս դեպքում կատարողական չափանիշները կարող են կիրառվել ոչ միայն ծրագրերի, այլև կանոնների նկատմամբ: Ի վերջո, յուրաքանչյուր կանոն նպաստում է մի քանի տարբեր ծրագրերի, և հնարավոր է հաշվարկել, թե այդ ծրագրերից քանիսն են հաջողակ, իսկ քանիսը` ոչ: Եվ դրա հիման վրա եզրակացություններ արեք կանոնների արդյունավետության մասին և, համապատասխանաբար, զարգացրեք ոչ միայն ծրագրերը, այլև կանոնները (այսինքն՝ վերարտադրել, խաչել, պատահականորեն փոխել կանոնները): Արդյունավետության բարձրացումը գալիս է նրանից, որ նմանատիպ կանոններն այլևս չեն կրկնվում տարբեր ծրագրերում, յուրաքանչյուր ծրագիր հասանելի է կանոնների ավելի լայն բանկ: Բայց ամենակարևորը, կանոնները գնահատվում են միասին, խաչաձև օգտագործվում տարբեր ծրագրերում, ինչը (ենթադրաբար) կտրուկ բարելավում է կանոնների գնահատման և էվոլյուցիայի որակը:

Այսպիսով, մենք ունենք արհեստական ​​ինտելեկտի ամենապարզ տարբերակը, որը բավականին կիրառելի է Հայաստանում տարբեր խաղեր, ներառյալ համակարգչային, փորձագիտական ​​համակարգերում և գործընթացների կառավարման համակարգերում: Սա նաև հարմար է ներքին հիշողությամբ սև արկղի պրոցեսների մոդելավորման համար, Մարկովյան մոդելների փոխարեն (դրանք գործընթացներ են, որոնց համար պարզ է, թե ինչ կա մուտքի և ելքի մեջ, բայց ներքին վիճակն ու գործընթացները պարզ չեն, մեր կարծիքով սև արկղ է )

Այստեղ կարող է առաջանալ տրամաբանական առաջարկ, որ գենետիկական ալգորիթմը կարող է ծրագրի մասերը բաժանել անկախ ենթածրագրերի և հաշվի առնել դրանց կառուցվածքը ծրագիրը փոխելու ժամանակ: Ընթացակարգային նշումների համար սա կարող է բարձրացնել արդյունավետությունը, բայց դեռ չի վերացնի դրա բնորոշ թերությունները, քանի որ ձեզ դեռ պետք է հրահանգների կոշտ հաջորդականություն, պայմանական հայտարարություններ և հանգույցներ, որոնք կարող են կոտրվել պատահական փոփոխությամբ: Նախադրյալ նշումներում ընթացակարգերը, որպես այդպիսին, ընդհանրապես գոյություն չունեն: Բայց կա գլոբալ իրավիճակը բաժանելու հնարավորություն հիերարխիկ իրավիճակների և իրավիճակների հաջորդականության, այնպես որ յուրաքանչյուր ենթադրյալ զբաղվի միայն իր կանոններով: Մոտ ապագայում նման բաժանումը պետք է բարելավի գենետիկական ալգորիթմի արդյունավետությունը։ Բայց փաստն այն է, որ իրական բանականության մեջ կանոնների փոխազդեցությունն ավելի բարդ է, որին նման բաժանումը և՛ բնորոշ է, և՛ ոչ բնորոշ: Ուստի, իրավիճակի նման բաժանում պարտադրելով՝ կարճաժամկետ հեռանկարում կարող ենք օգուտներ ստանալ, բայց հետագայում դա կխանգարի։ Այս մասին ավելի մանրամասն կհետևեն։

Արհեստական ​​ինտելեկտ, տարբերակ 2.0

Նախադրյալ լեզուներում (օրինակ՝ Prolog) ծրագրում քայլերի հաջորդականություն չկա: Կան միայն մի շարք կանոններ, և այդ կանոնների կատարման հաջորդականությունը ի սկզբանե նշված չէ:

Այն կարծես այսպիսին է.
կանոն n. արդյունք, եթե պայման;
կանոն m. արդյունք, եթե պայման;
եւ այլն։

Պայմանը կարող է բավականին բարդ լինել՝ ներառելով ինչպես ամենապարզ արտահայտությունները, այնպես էլ այլ կանոններ, ներառյալ փոխադարձ ռեկուրսիվ կիրառումը։ Կանոնի կատարման արդյունքը նույնպես բարդ պայման է, որը կարող է նշանակել և՛ վերջնական իրավիճակը, և՛ այլ կանոնների (և ինքն իրեն) կիրառելիությունը ստուգելու պայմանի մի մասը։ Այս արդյունքները պարզ են և միանշանակ:

Պրեդիկատային ծրագիր իրականացնելիս գլոբալ իրավիճակ չկա: Գոյություն ունի նախնական պայման, որի դեպքում թարգմանիչը փնտրում է առաջին կանոնը, որը հանդիպում է համապատասխան պայմանի, այս կանոնի արդյունքը ավելացվում է սկզբնական պայմանին: Նոր պայմանի համար հարմար կանոնի որոնումը կրկնվում է։ Արդյունքը եզրակացությունների շղթա է, որը կարող է հանգեցնել մի կանոնի, որը ցույց է տալիս վերջնական արդյունքի հասնելը: Եթե ​​թարգմանիչը սպառի բոլոր հասանելի շղթաները, այն կսկսի հետ գլորվել՝ փնտրելով հաջորդը յուրաքանչյուր օղակի համար: հարմար կանոն, կառուցելով նոր շղթաներ։

Խնդրում ենք ևս մեկ անգամ նկատի ունենալ, որ վիճակը (իրավիճակը) ներկայացնում է նախնական պայմանը գումարած կիրառվող կանոնների շղթան: Հետ գլորվելիս համապատասխանաբար փոխվում է կիրառվող կանոնների շղթան։

Կանոնները միասին շղթայելիս թարգմանիչը կարող է հայտնվել անվերջ որոնման մեջ, թեև լուծումը կարող է մոտակայքում լինել: Հետևաբար, եթե թարգմանիչը «խելացի» է, ապա նա կարող է կամ ճանաչել պոտենցիալ օղակի վայրերը, կամ կարող է զուգահեռ անցկացնել որոշումների մի քանի շղթա՝ ի վերջո ընտրելով դրանցից մեկը, որն արագ կհանգեցնի վերջնական իրավիճակին: Մյուս կողմից, ով գրում է կանոնակարգը, պետք է հոգ տանի, որ նվազագույնի հասցնի պտտվելու հավանականությունը:

Օրինակ՝ միսիոներների և մարդակերների հետ կապված խնդիր, երբ մի նավով դուք պետք է միսիոներների և մարդակերների ամբոխը տեղափոխեք մյուս կողմ: Նավը կարող է տեղավորել միայն երկու հոգու։ Եթե ​​ափին մարդակերներն ավելի շատ լինեն, քան միսիոներները, ապա միսիոներներին կուտեն: Նախադրյալ լեզվով խնդիր լուծելիս նկարագրվում են ընդունելի իրավիճակներ, որպեսզի միսիոներներին չուտեն (այդ թվում՝ ռեկուրսիվ) և նավակի ընդունելի շարժումները (նավում միշտ պետք է լինի մեկ կամ երկու հոգի): Այնուհետև թարգմանիչն ինքն է կառուցում իրագործելի լուծումների ծառը, մինչև գա մի իրավիճակի, երբ ամբողջ ամբոխը հայտնվում է մյուս կողմում: Կանոնների շղթան այս դեպքում կրում է միսիոներներին և մարդակերներին գետով տեղափոխելու հաջորդականությունը:

Քանի որ կանոնները հստակորեն կապված են միմյանց հետ լուծում գտնելու գործընթացում, պրեդիկատ լեզուներում դրանց կիրառման հիերարխիան և հաջորդականությունը արդեն հստակեցված են կանոնների մակարդակով, ինչը նման է ընթացակարգային լեզուների ընթացակարգերի խմբավորմանը: Բայց հենց որ մենք պակաս պարզ դարձնենք կանոնների միջև համախմբվածությունը, նման խմբավորումը կորչում է։ Իսկ թե կոնկրետ ինչպես այն նորից կառաջանա (կամ ինչպես օգնել ձևավորվել), նոր հարց է։

Նախադրյալ լեզուներում չկան հանգույցներ, պայմանական թռիչքներ և գործողությունների խիստ սահմանված հաջորդականություն: Կատարողը միշտ «գիտի» ինչ անել, քանի որ հաջորդ քայլն ընտրում է՝ ելնելով ներկա իրավիճակից։ Կատարողն ընտրում է միայն մեկ քայլ, քանի որ հաջորդ քայլին նա կգնահատի փոխված իրավիճակը և կընտրի նոր քայլ, որքան էլ անսպասելիորեն փոխվի իրավիճակը։ Սա նաև կօգնի կատարողին դուրս գալ, եթե նրա ծրագրի մի մասը ձախողվի կամ սխալ որոշում կայացնի: Կատարողն աղետալիորեն սխալ ուղղությամբ ընկնելու փոխարեն կվերագնահատի իրավիճակը, և, հնարավոր է, հաջորդ քայլը կբարելավի այս իրավիճակը:

Իհարկե, ներգրավված գործընթացները շատ ավելի ուժասպառ են ծրագրի ընթացակարգային գրելու համեմատ: Եվ նախադրյալ լեզուներում իր սկզբնական ձևով ամեն ինչ այնքան հարթ չէ, ինչպես նկարագրված է նախորդ պարբերությունում:

Նախադրյալ լեզուների թերությունն այն է, որ կանոնների շրջանակը շատ նեղ է, և դրանք կառուցված են չափազանց երկար շղթաներով: Հետախուզության մեջ, ընդհակառակը, գերակշռում են ելքի կարճ շղթաները, որոնցում տրամաբանական միավորը գնահատում է ներածման պայմանների շատ լայն զանգված և ըստ մշուշոտ և ոչ գծային չափանիշների:

Հետևաբար, արհեստական ​​ինտելեկտի ստեղծման հաջորդ քայլը նեղ, հստակ կանոնների փոխարինումն է մշուշոտ և լայն կանոններով, և եզրակացությունների շղթան ավելի կարճ դարձնելը:

Նախ, եկեք ստեղծենք ծրագրի գլոբալ վիճակը (թվերի կանոնավոր զանգված): Այս զանգվածի մի մասը մուտքային տվյալներն են: Դրանք պարբերաբար թարմացվում են արտաքինից: Արդյոք ծրագրին թույլ տալ փոխել դրանք հիմնարար հարց չէ, գլխավորն այն է, որ դրանք պարբերաբար թարմացվում են: Այս զանգվածի մի մասը ծրագրի ներքին վիճակն է: Մնացած մասը ելքային տվյալներն են: Ներքին և ելքային բջիջները տարբերվում են միայն նրանով, որ լուծումը կարդացվում է ելքային բջիջներից: Ե՛վ մուտքերը, և՛ ելքերը միշտ օգտագործվում են նույն պարամետրը գրելու/կարդալու համար: Օրինակ, մուտքագրում թիվ 1 - արագություն, մուտքային թիվ 2 - վառելիքի սենսոր, ելք թիվ 3 - ղեկի դիրքի փոփոխություն, ելք թիվ 4 - արագության փոփոխություն: Մենք թվեր ենք նշանակում կամայականորեն, ուսուցման գործընթացում ծրագիրն ինքը պետք է սովորի հասկանալ, թե որտեղ են մուտքագրված և ելքային մուտքերը:

Որպես կանոնի հիմք՝ վերցնենք, օրինակ, բազմաշերտ պերցեպտրոնը (որը հաճախ կոչվում է պարզապես նեյրոնային ցանց): Խնդրում ենք նկատի ունենալ, որ ծրագրի ներսում նման նեյրոնային ցանց պատրաստելու ալգորիթմը մեզ համար դեռ անհայտ է: Նման շատ նեյրոնային ցանցեր կունենանք։ Նրանք բոլորը միասին կկազմեն ծրագրի մի շարք կանոններ: Յուրաքանչյուր նեյրոնային ցանց ստանում է ծրագրի ողջ գլոբալ վիճակը որպես մուտք (մուտքերի թիվը հավասար է վիճակի բջիջների թվին): Նեյրոնային ցանցը քիչ ելքեր ունի։ Յուրաքանչյուր ելք նույնպես համապատասխանում է վիճակի բջիջներից մեկին: Յուրաքանչյուր կրկնության ժամանակ այն, ինչ ստացվում է յուրաքանչյուր նեյրոնային ցանցի ելքում, ավելացվում է գլոբալ վիճակին (ելքային արժեքները կարող են լինել բացասական): Բոլոր ցանցերը միաժամանակ հարցում են անցկացնում՝ հիմնվելով ներկա վիճակի վրա, և դրանց ընդհանուր ազդեցությունը ստեղծում է նոր վիճակ:

Յուրաքանչյուր ցանցի համար ելքերի քանակը և դրանց կապը սկզբնապես ընտրվում է պատահականության սկզբունքով: Մենք էվոլյուցիոն փոփոխությունները կառուցում ենք այնպես, որ շատ դեպքերում դրանք անփոփոխ են թողնում գլոբալ վիճակի բջիջների և նեյրոնային ցանցի մուտքեր/ելքեր: Եվ միայն փոքր հավանականության դեպքում փոփոխությունները կարող են վերադասավորել ցանցի մուտքը կամ ելքը մեկ այլ բջիջ: Սա անհրաժեշտ է, քանի որ առայժմ մենք կարծում ենք, որ յուրաքանչյուր բջիջ որոշակի պարամետր է (նույնիսկ ներքին), հետևաբար, եթե ցանցի մուտքային/ելքը փոխարկենք մեկ այլ պարամետրի, որին այն սովոր չէ, արդյունքը, ամենայն հավանականությամբ, անհաջող կլինի: Ցավոք, այս մանևրով մենք կրկին կորցնում ենք մի մասը հետաքրքիր հատկություններիրական հետախուզություն, բայց մենք արդյունավետություն ենք ստանում հենց հիմա: Այս հատկություններին մենք կանդրադառնանք ավելի ուշ:

Էվոլյուցիայի գործընթացում կարող է փոխվել նաև գլոբալ պետության բջիջների թիվը։ Այնուհետև բոլոր նեյրոնային ցանցերը համապատասխանաբար ճշգրտվում են: Եթե ​​բջիջները կլոնավորվում են, ապա կլոնավորվում են նեյրոնային ցանցերի համապատասխան մուտքերն ու ելքերը։ Եթե ​​բջիջները ջնջված են, ապա համապատասխան մուտքերը/ելքերը ջնջվում են բոլոր ցանցերից:

Կան նաև էվոլյուցիոն փոփոխություններ, որոնք կարող են մեծացնել կամ նվազեցնել որոշակի նեյրոնային ցանցի ելքերի քանակը:

Ինչպե՞ս ճիշտ նման նեյրոնային ցանցերից բաղկացած ծրագիրը լուծում կտա: Ավելի ճիշտ, ինչպե՞ս կարող եք հաջորդ կրկնությունից հետո հասկանալ, որ ծրագիրը կայացրել է իր որոշումը, և կարդալ այս որոշումը մուտքային բջիջներից: Սա նույնպես հետաքրքիր հարց է, որը պահանջում է փորձեր։ Առաջին նկատառումները հետեւյալն են. Արդյունքների արժեքները կայունացված են: Կամ կան հատուկ ելքեր, որոնք ազդանշան են տալիս, որ պատասխանը պատրաստ է: Այս ելքերը ինքնորոշվում են էվոլյուցիայի գործընթացում:

Որոշումները հանելուց հետո ծրագիրը պետք է շարունակի աշխատել՝ ամենայն հավանականությամբ ելնելով իր ներքին վիճակից։ Ինչպե՞ս մղել այն հետագա աշխատանքի, քանի որ ծրագիրը կայունացել է կոնկրետ լուծման մեջ: Նախ, որոշումը հեռացնելուց հետո մուտքային բջիջները կվերագրվեն ընթացիկ տվյալներով (մենք ենթադրում ենք, որ մինչ ցանցը որոշում է կայացնում, մուտքային տվյալները գրեթե անփոփոխ են մնացել): Երկրորդ, դուք կարող եք ստեղծել հատուկ մուտքային բջիջ, որի մեջ մեծ թվեր տեղադրեք կրկնության սկզբում: Հաջորդը, դուք կարող եք կամ սովորել փոխել այս թիվը ինքներդ, կամ կարող եք կրճատել այն դրսից՝ ցանցին հայտնելով, որ ժամանակն անցնում է: Ընդհանուր առմամբ, փորձերի համար բավականաչափ գաղափարներ կան։

Հիմա բացատրություն, թե ինչու է դա այդպես:

Առաջին հերթին մենք թողեցինք կանոնների շղթաներ կառուցելը և ստիպեցինք յուրաքանչյուր կանոն իր աշխատանքի արդյունքը գրել համաշխարհային պետությանը: Դրանով մենք անհնար դարձրեցինք երկար ելքային շղթաներ և հետադարձ կապեր կառուցելը, սակայն ստացանք ավելի արագ արձագանք և իրավիճակի լայն ու անհասկանալի գնահատական: Խնդրում ենք նկատի ունենալ, որ մի քանի տարբերակների զուգահեռ մշակումը, որտեղ յուրաքանչյուր տարբերակ ունի իր գլոբալ վիճակը, չի վերացել: Բայց մենք չունենք այնպիսի լայն ճյուղավորում, ինչպիսին սկզբնական պրեդիկատի թարգմանիչում է: Եթե ​​մենք փորձեինք ճյուղավորել եզրահանգման շղթաները՝ հիմնված լայն մշուշոտ կանոնների վրա, ապա տարբերակների թիվը աղետալիորեն կհեռանա մասշտաբից նույնիսկ լուծում կառուցելու վաղ փուլերում:

Արդյունքում մենք բոլորովին այլ բան ստացանք, չնայած թվում էր, որ այն նման էր պրեդիկատների վերաբերյալ նախնական եզրակացությանը: Այս ինչ-որ բանն այլևս ի վիճակի չէ կառուցել բարդ և հստակ եզրակացություններ, բայց այն ի վիճակի է գործել բարդ, արագ փոփոխվող միջավայրում և նույնիսկ ունի խելամիտ տրամաբանական եզրակացության որոշ հիմքեր, ինչը չի կարող անել սկզբնական տարբերակը: Այնուամենայնիվ, բարդ և հստակ եզրակացությունների ստացումը մեզ կվերադառնա անսպասելի կերպով, բայց առայժմ ստացված հետախուզությունը առանց դրա կլինի։

Այնուամենայնիվ, ստացված ինչ-որ բան կարող է լուծել տրամաբանական խնդիրները (ինչպես շախմատ խաղալը) յուրովի, ինչպես դա անում է մարդը: Այսպիսի մտածողությունը կարելի է անվանել իրավիճակային։ Այն սկսվում է ոչ թե երկար տրամաբանական շղթաներ կառուցելուց, այլ գնահատելուց, թե ինչպիսին է ներկա իրավիճակը և ինչպես փոխել այս իրավիճակը։ Իրավիճակը ներառում է և՛ արտաքին տվյալներ, և՛ ներքին վիճակ, ինչ «մտածել» է համակարգը ներկա պահին։ Գնահատումը և որոշումների ընդունումը, թե ուր գնալ հաջորդը, կատարվում է բոլորինքայլ՝ ի տարբերություն ընթացակարգային ալգորիթմների և տրամաբանական եզրակացությունների, որոնք կարող են թաղվել երկար դատողությունների մեջ՝ դուրս գալով իրականությունից։ Հետևաբար, նման ծրագրի պատահական փոփոխությունները ճակատագրական չեն լինի դրա կատարման համար, ի տարբերություն ընթացակարգային ձայնագրության: Եթե ​​նույնիսկ հայտնվի անհասկանալի իրավիճակում, կամ սխալվի, նման ծրագիրը չի ընկնի ապուշության մեջ, այլ կփորձի ինչ-որ բան անել, քանի որ դա ալգորիթմի փոքր ճյուղ չէ, որը մասնակցում է իրավիճակի գնահատմանը, բայց կանոնների ամբողջ փաթեթը: Եվ եթե նույնիսկ ծրագիրը սկզբում քաոսային փոփոխություններ կատարի, վաղ թե ուշ այն կհայտնվի ծանոթ իրավիճակում և կկարողանա այն ճիշտ ուղղությամբ շրջել։

Իրավիճակային մտածողությունը հիմնված է երեք բանի վրա. Առաջինը իրավիճակի ընդհանրացումն է ծանոթ դեպքի (ինչպես օրինակների ճանաչման համակարգերում): Օրինակ՝ շախմատի տախտակի վրա խաղաքարերի բազմազան դասավորությունից մտածող համակարգը ընդհանուր բան է գտնում, տալիս է իրավիճակի գնահատական՝ վտանգ կա՞ իր խաղաքարերին, կա՞ հնարավորություն առանց կորուստների գրոհելու, ապա. կարող են լինել ավելի կոնկրետ համակցված իրավիճակներ: Երկրորդ, դա փորձն է (կարճ, արժանահավատ կանոնների գրադարան, որոնք կիրառվում են իրավիճակը դեպի լավը փոխելու համար՝ առանց երկար տրամաբանական նվազեցման): Ելնելով իրավիճակի գնահատումից՝ առաջարկվում են իրավիճակը փոխելու այլընտրանքային տարբերակներ, օրինակ՝ մոտավոր տվյալներ, թե ինչպես պետք է տեղափոխել խաղաքարերը։ Վերլուծիչը այս մոտավոր տվյալները թարգմանում է շախմատի տախտակի վրա խաղաքարերի ճիշտ շարժումների (եթե ճիշտ շարժումները հնարավոր չէ գտնել, ապա վերցվում է հաջորդ այլընտրանքը): Նմանատիպ իրավիճակներ (և, համապատասխանաբար, դրանց լուծումները) կարող են առաջանալ խաղի ցանկացած փուլում, և մենք անմիջապես լուծում ենք ստանում դրանց համար՝ առանց տարբեր քայլերի տարբերակների երկար փնտրտուքի: Այո, այս տարբերակները «միայն» հավանական են, բայց դրանք ներառում են իրական կուսակցությունների հսկայական փորձ և միանգամայն կիրառելի են նոր կուսակցությունների համար: Ավելին, այս իրավիճակները ներառում են որոշակի գիտելիքներ այն մասին, թե ինչպես խաղը կզարգացնի շատ քայլեր առաջ, բայց ոչ շարժվող խաղաքարերի մակարդակով, այլ մարտավարական իրավիճակի փոփոխության մակարդակով (որը կարող է ներառել անվերջ ցիկլեր, օրինակ՝ հավասարակշռության պահպանումը՝ ոչ-ոքիի հասնելու համար։ ) . Իսկ եթե դրանք, այնուամենայնիվ, տանեն կորստի, ապա գրադարանը կհամալրվի նոր կանոններով, որոնք կգործեն իրենց իրավիճակում։ Երրորդ, սա մի քանի քայլ առաջ հավանական լուծման ներքին ստուգում է (այսինքն՝ ինչ-որ բան հանգել, հետո գնահատել, թե որքանով է դա փոխելու իրավիճակը՝ պահպանելով մի քանի այլընտրանքային լուծումներ, մեր համակարգը դեռ չգիտի, թե ինչպես դա անել, այն տալիս է միայն մեկ տարբերակ, բայց դրա մասին ավելի ուշ):

Ի դեպ, նեյրոնային ցանցերն ուսումնասիրելիս գուցե մտածե՞լ եք, որ դրանք աշխատեն ոչ միայն մուտքային տվյալների հիման վրա, այլև սովորեցնեք մարսել ներքին վիճակը և կատարել բարդ ծրագրեր: Ես մտածում էի. Ճիշտ է, շատ վաղուց էր, որ ես երբեք որևէ արժեքավոր բան չեմ մտածել, թե ինչպես վարժեցնել նման ցանց: Բայց հիմա մի փոքր այլ ուղղությամբ պատասխան կա.

Ինչու՞ մենք ստեղծեցինք բազմաթիվ նեյրոնային ցանցեր՝ մեկ մեծի փոխարեն, որը կարող էր թարմացնել ամբողջ վիճակը: Փաստն այն է, որ գենետիկական ալգորիթմի արդյունավետ աշխատանքի համար ցանկալի է ունենալ անկախ կանոնների մի շարք, որոնցից յուրաքանչյուրը պատասխանատու կլինի որոշակի (թեև մեր հասկացողությունից թաքնված) գործողության համար: Բացի այդ, նման կանոնները կարող են փոխանակվել ծրագրերի միջև, դրանցից կարելի է պատրաստել տարբեր ծրագրեր, կարող են փոփոխվել և կլոնավորվել անհատական ​​կանոններ, և նույնիսկ ամենահաջող (կամ նույնիսկ ապագա գրադարանում) կանոնների գրադարան կարող է ձևավորվել: Դժվար կլինի դա անել մեկ մեծ նեյրոնային ցանցով։ Բացի այդ, սովորական նեյրոնային ցանցերի համար ցանցերի կոլեկտիվը հակված է ավելի լավ գործել, քան սովորական նեյրոնային ցանցը:

Նմանատիպ պատճառներով յուրաքանչյուր նեյրոնային ցանց ունի միայն փոքր թվով ելքեր: Նրանք. Յուրաքանչյուր կանոն իրավասու է սեփական փոքր որոշում կայացնելու համար: Բայց միևնույն ժամանակ, յուրաքանչյուր ցանց ունի մուտքեր ամբողջ պետությունից՝ իրավիճակի գլոբալ պատկերացում ունենալու ակնկալիքով, բայց միևնույն ժամանակ չարձագանքելով դեպքերի մեծամասնությանը, որոնք չեն վերաբերում կոնկրետ կանոնի շրջանակին: Յուրաքանչյուր ցանց պետք է սովորի դա էվոլյուցիայի միջոցով: Ուստի նույնիսկ համաշխարհային պետության վրա ազդելիս կիրագործվեն այն կանոնները, որոնք կիրառելի են ներկա իրավիճակում։ Հնարավոր է, որ մուտքերի քանակը պետք է սահմանափակվի, ես այս հարցի վերաբերյալ մտքեր չունեմ, այստեղ միայն փորձը կօգնի:

Արդյունքում, վերապատրաստումից հետո դուք պետք է ստանաք մի ծրագիր, որը բաղկացած է նեյրոնային ցանցերից: Ծրագիրը սկսվում է սկզբնական վիճակից, որում նշված են մուտքային բջիջները, մնացած բջիջները կարող են զրոյացվել (կամ ունենալ փոքր պատահական արժեքներ): Յուրաքանչյուր կրկնության ժամանակ գլոբալ վիճակը սնվում է բոլոր ցանցերի մուտքագրմանը, հաշվարկվում է բոլոր ցանցերի աշխատանքի արդյունքը, և բոլոր ցանցերի ելքը անմիջապես ավելացվում է գլոբալ վիճակին: Հաջորդ կրկնությունը գալիս է: Դուք կարող եք հասկանալ, որ լուծումը պատրաստ է, օրինակ, նրանով, որ ելքային արժեքները կայունացել են, կամ ազդանշան է ուղարկվել հատուկ ելքի վրա, որը ցույց է տալիս, որ լուծումը պատրաստ է: Դրանից հետո ելքային արժեքները կարդացվում են, մուտքագրված նոր արժեքները բեռնվում են, և ծրագիրը շարունակում է աշխատել թարմացված տվյալների հետ:

Այս ծրագիրը ստեղծվում է ավտոմատ կերպով՝ օգտագործելով գենետիկական ալգորիթմ: Հիմնական բանն այն է, որ մենք ունենք գոնե ինչ-որ չափանիշ՝ արդյունքում ստացված ծրագրերի արդյունավետությունը գնահատելու համար (այսինքն՝ մի ծրագիրն ավելի լավն է, քան մյուսը), և դա բավարար է, որպեսզի գենետիկական ալգորիթմը աշխատի։ Իրական աշխարհի խնդիրների համար նման չափանիշ սովորաբար գոյություն ունի։ Սրանք կարող են լինել նաև աշխատանքի օրինակների հավաքածուներ, որոնք համարվում են լավ և վատ տարբեր իրավիճակների համար (օրինակների ճանաչման համակարգերը նույնպես սովորում են օրինակներից): Սովորելով հայտնի օրինակներից՝ ծրագիրը, ինչպես օրինակների ճանաչման համակարգերը, կկարողանա ընդհանրացնել իր փորձը անհայտ օրինակների վրա, ներառյալ այնպիսի ընդհանրացում, որը կարող է որակական բնույթ կրել, թաքնված օրինաչափություններ գրավել մի շարք օրինակների մեջ և նկարել անսպասելի (բայց ճիշտ ) եզրակացություններ. Խնդիրների համար, որոնք պահանջում են ճշգրիտ տրամաբանական եզրակացություն և հստակ լուծում, սա ավելի դժվար է (բայց դրա մասին ավելի ուշ): Կարող են լինել նաև տարբերակներ՝ ստիպելու ծրագրերին պայքարել միմյանց հետ, օրինակ՝ շախմատ խաղալ, իսկ ավելի լավ խաղացողին արդյունավետ ճանաչել, ապա արտաքին գնահատական ​​պետք չէ։

Գենետիկական ալգորիթմը պատահականորեն ստեղծում է մի շարք կանոններ (նեյրոնային ցանցեր) և մի շարք ծրագրեր: Բոլոր կանոնները գտնվում են ընդհանուր պահեստում: Այս ծրագրերից յուրաքանչյուրը բաղկացած է ընդհանուր պահոցից վերցված կանոնների իր հատուկ շարքից: Կանոններն իրենք են պահոցում, ծրագիրը վերաբերում է միայն դրանց: Արդյունավետությունը գնահատելու համար բոլոր ծրագրերը գործարկվում են զուգահեռաբար (յուրաքանչյուրն ունի իր վիճակը և մուտքերի ու ելքերի հավաքածուն): Այն ծրագրերը, որոնք աշխատում են ավելի արագ և արդյունավետ, ստանում են լավագույն գնահատականները: Այն ծրագրերը, որոնք երկար ժամանակ են պահանջում մտածելու կամ ընդհանրապես որոշում չեն կայացնում, տուգանվում են։

Վատ ծրագրերի հետ ավելի հավանական էփոխվել կամ ամբողջությամբ հեռացվել: Դրանք փոխարինվում են կա՛մ նոր ստեղծված ծրագրերով, կա՛մ կլոնավորվում են գոյություն ունեցողներից: Ծրագրի գնահատումը կարող է լինել կուտակային, այսինքն. կուտակել՝ ծրագրին որոշակի ժամանակ տալով զարգանալու համար: Լավ ծրագրերն ավելի հավանական է, որ կլոնավորվեն: Կա ծրագրերի էվոլյուցիա՝ վատից դեպի լավը:

Բավական լավ լուծում ստանալուց հետո գենետիկական ալգորիթմի արդյունքում ընտրվում է լավագույն ծրագիրը, և այս ծրագիրը հետագայում օգտագործվում է իրական խնդիրների համար:

Ի՞նչ էվոլյուցիոն փոփոխությունների կարող են ենթարկվել ծրագրերը: Ավելացնել կամ հեռացնել կանոնը խանութից: Անցնելով մեկ այլ ծրագրի, այն է՝ վերցվում է երկու ծրագիր, դրանց հիման վրա ստեղծվում է երրորդը, որը բաղկացած է մեկ ծրագրի կանոններից և երկրորդ ծրագրի կանոններից։ Այն կանոնները, որոնք պետք է ավելացվեն, ջնջվեն կամ գրվեն ծրագրում հատման ժամանակ, ընտրվում են պատահականորեն: Թեև, եթե մտածեք դրա մասին, միգուցե կգտնվեն դա ավելի նպատակաուղղված անելու եղանակներ, միգուցե գնահատում կլինի կանոնների մասնակցության արդյունավետությունը որոշակի ծրագրին:

Ի՞նչ էվոլյուցիոն փոփոխությունների կարող են ենթարկվել կանոնները (նեյրոնային ցանցերը): Ինչպես արդեն նշվեց, այդ փոփոխություններից մեկը ներքին վիճակի բջիջների քանակի փոփոխությունն է, որը ազդում է բոլոր կանոնների վրա: Պետական ​​բջիջների քանակի ավելացման կամ նվազման անհրաժեշտությունը կարելի է քիչ թե շատ գնահատել ծրագրի դինամիկայով, թե որքան հաճախ են փոխվում վիճակները, որքանով են դրանք փոխկապակցված, որքանով են դրանք ազդում ելքային արժեքների վրա և որքանով են արդյունավետ: ծրագրի բնակչությունն ընդհանուր է: Հաջորդ էվոլյուցիոն փոփոխությունները կանոնների կլոնավորումն են, կանոնների պատահական փոփոխությունները (այսինքն՝ նեյրոնային ցանցի «կշեռքները թափահարելը», ինչպես եռացման դեպքում, որքան ցածր է արդյունավետությունը, այնքան ուժեղ է ցնցումը): Կլոնավորումը կանոնների հետագա փոփոխության հետ մեկտեղ կարող է հանգեցնել նաև ծրագրերի կլոնավորման։ Օրինակ՝ սկզբնական ծրագրում մնում է սկզբնական կանոնի հղումը, կլոնավորված ծրագրում՝ կլոնավորված կանոնին։ Կամ սկզբնաղբյուր ծրագրում հայտնվում է կանոնի կլոնի լրացուցիչ հղում: Կանոնները կարելի է հատել, երբ մի կտոր վերցվում է երկու նեյրոնային ցանցից և սոսնձվում երրորդ ցանցի մեջ: Կանոններում (նեյրոնային ցանցեր) ելքերի թիվը կարող է պատահականորեն փոխվել, ինչպես նկարագրված է վերևում, և ներքին կապերի քանակը և կառուցվածքը կարող են փոխվել:

Յուրաքանչյուր կանոնի համար կարող եք հաշվարկել դրա արդյունավետությունը՝ հիմնվելով այն բանի վրա, թե որքանով են հաջողված այն ծրագրերը, որոնցում ներառված է կանոնը: Ավելին, կարելի է հաշվի առնել նաև այն հանգամանքը, որ կանոնը կարող է ներառվել ծրագրում, բայց լինել ոչ ակտիվ և արդյունքում չազդել ծրագրի աշխատանքի վրա։ Այս գնահատման հիման վրա մենք կարող ենք զարգացնել կանոնների բանկը ուղղորդված ձևով, մասնավորապես՝ ավելի հաճախ տարածել հաջող կանոնները և ավելի հաճախ հեռացնել կամ փոխել անարդյունավետ կանոնները: Մենք կարող ենք նաև ծրագրեր ստեղծել՝ հիմնված ամենաարդյունավետ կանոնների վրա։ Կամ փոփոխությունների գործընթացում ավելի հավանական է ընդգրկվել ծրագրերում լավագույն կանոնները. Նշենք, որ բանկը պահպանում է կանոնները տարբեր շրջանակներով, բայց, այնուամենայնիվ, լուծելով ընդհանուր խնդիր.

Բայց ամենահետաքրքիրն այն է, որ թվում է, թե յուրաքանչյուր կանոնի համար կարող եք հաշվարկել ոչ միայն արդյունավետությունը, այլև սխալը: Մասնավորապես, հասկանալ, թե ինչպես պետք է այս կանոնը ճիշտ գործի տվյալ մուտքագրման պայմաններում: Ի վերջո, մենք ունենք կանոնների (նյարդային ցանցերի) գործարկման օրինակներ լավ ծրագրեր(մենք կարծում ենք, որ դրանք եղել են ծրագիրը կազմող կանոնների ճիշտ որոշումներ) և վատ ծրագրերում աշխատանքի օրինակներ (կարծում ենք, որ դրանք եղել են ծրագիրը կազմող կանոնների սխալ որոշումներ): Համապատասխանաբար, դուք կարող եք փորձել ուժեղացնել յուրաքանչյուր նեյրոնային ցանցի ստացած լավ որոշումները և նվազագույնի հասցնել վատ որոշումները: Մուտքերի և ելքերի արժեքները կարող են վերարտադրվել առանց խնդիրների, և դրանց հիման վրա կարող է կառուցվել ուսումնական հավաքածու, որը կարող է սնվել հետին տարածման ալգորիթմի մեջ: Այստեղ հիմնական խնդիրն այն է, որ բացվի ժամանակային հաջորդականությունը, թե ինչ է եղել ուսուցման հավաքածուի մուտքերում և ելքերում, և այստեղ կարող են առաջանալ երկիմաստություններ: Ի վերջո, մենք չենք կարող ենթադրել, որ ճիշտ ցանցում բոլոր որոշումները (մուտք-ելքային զույգերը) իդեալականորեն ճիշտ են եղել, իսկ սխալի դեպքում՝ իդեալականորեն սխալ: Գուցե սա բոլորովին այլ կանոնի՞ մեղքն է, որը հենց վերջում «ստվերեց» ճիշտ որոշումը։ Որոշումների ամբողջ հաջորդականության բացահայտմանը ներգրավվելը անհույս գաղափար է։ Հետևաբար, դուք ստիպված կլինեք մտածել այս ժամանակային հաջորդականությունների հիման վրա նմուշ ձևավորելու մասին: Եվ եթե նույնիսկ ուսուցման նմուշ կազմելիս շատ օրինակներ դուրս գցենք՝ թողնելով միայն ամենաաներկբաները, դա դեռ առաջընթաց կլինի։

Հիմա տեսնենք, թե ինչ ունենք։ Եվ հիմա մենք ունենք ծրագրեր ավտոմատ գրելու միջոցներ, որոնք կարող են նավարկել իրական աշխարհի խնդիրներ, գործել ճկուն իրավիճակների լայն շրջանակում, վերականգնել սխալներից, ունենալ ինչ-որ ներքին տրամաբանություն և կանխատեսել/մոդելավորել իրավիճակը: Այն, ինչ նրանք չեն կարող անել, նուրբ տրամաբանական շղթաներ զարգացնելն ու երկար եզրակացություններ անելն է։ Թեև շատ առաջադրանքների համար նման բանականությունը կկարողանա ձևացնել, թե դրանում խորը տրամաբանական գործընթացներ են տեղի ունենում, թեև իրականում միայն կիրառում էր մարզումների ժամանակ ստացված նախապատրաստությունները։ Այդպիսի խելքն ու անկախությունը պակասում են, մարդը դեռ շատ բան պետք է անի դրանում։ Իսկ ապարատային առումով, այն, ինչ մենք ստացել ենք, այնքան էլ նման չէ բնության ստեղծածին:

Արհեստական ​​ինտելեկտ, տարբերակ 3.0

Հիմա եկեք ավելացնենք մի բան, որը կոչվում է արտաքին միջավայրի էմուլյատոր: Մեզ անհրաժեշտ կլինի երկու տեսակ՝ մեկը արտաքին միջավայրը ընդօրինակելու համար, երկրորդը՝ կանխատեսման համար։ Կլինի նաև երրորդ տեսակը, բայց դրա մասին մի փոքր ուշ:

Կանխատեսման ռեժիմում էմուլյատորը պետք է կարողանա արտաքին միջավայրի ակնկալվող վարքագիծը ցույց տալ փոքր թվով քայլեր առաջ՝ իմանալով նախորդ վիճակների պատմությունը և շրջակա միջավայրի վրա ընթացիկ ազդեցությունը կառավարման ծրագրից: Այժմ ծրագիրը անմիջապես չի ազդի արտաքին միջավայրի վրա, այլ առաջին հերթին էմուլյատորի վրա։ Իսկ էմուլյատորի վրա դուք կարող եք տեսնել կանխատեսումը, որպեսզի տեսնեք, թե արդյոք միջավայրը ճիշտ ուղղությամբ է փոխվել ծրագրի ազդեցության պատճառով։ Հետևաբար, դուք կարող եք ունենալ ծրագրերի մի քանի օրինակ, որոնք վերապատրաստվել են նույն ձևով, բայց միմյանցից տարբեր: Նրանցից յուրաքանչյուրի համար իրական ժամանակում ստեղծեք ձեր սեփական միջավայրի էմուլյատորը: Եվ ամեն քայլափոխի բաց թողեք արտաքին միջավայր այն ծրագրի ազդեցությունը, որը լավագույն գնահատականն է ստանում էմուլյատորի վրա: Մեկ այլ տարբերակ է կայացնել այն որոշումը (պարտադիր չէ, որ լավագույնը), որը կընդունվի ծրագրի թիմի «մեծամասնության ձայնով», ապա այդ որոշումը կլինի հուսալի:

Էմուլյատորը էմուլյացիայի ռեժիմում նման է կանխատեսմանը, բայց օգտագործվում է վերապատրաստման ծրագրերի գործընթացում, երբ իրական արտաքին միջավայր չկա: Նախորդ տարբերակում վերցրել ենք արտաքին միջավայրից վերցված պատրաստի կտրման օրինակներ։ Այսպիսով, այս օրինակների փոխարեն կարող եք ստեղծել էմուլյատոր, որը պատրաստված է վերստեղծելու համար բնորոշ իրավիճակներարտաքին միջավայր. Ի վերջո, օրինակները կարող են շատ լինել, և ավելի արդյունավետ է այս բեկման փոխարեն օգտագործել կոմպակտ էմուլյատոր:

Ուսուցման ռեժիմում էմուլյատորը կարող է տեղադրվել իրական սենսորների վրա և երկար ժամանակ թողնել: Տրամաբանական հարց է՝ ինչո՞ւ անմիջապես չտեղադրել անհրաժեշտ ծրագիրը սենսորների վրա՝ մարզվելու համար։ Այստեղ կան մի քանի պատասխաններ. Նախ, մենք կարող ենք ցանկանալ վերապատրաստել ծրագրի հաջորդ տարբերակը, այնուհետև մեզ նորից անհրաժեշտ կլինի իրական սարքեր վարել: Երկրորդ, անհնար է փորձարկել իրական սենսորների վրա՝ տեսնելու, թե արդյոք ծրագիրը ճիշտ է պատրաստվել, թե՞ նման փորձերը կարող են թանկ արժենալ, և էմուլյատորը կարող է աշխատել կանխատեսման ռեժիմում:

Բացի այդ, էմուլյատորը կարող է կազմաձևվել այնպես, որ այն կարողանա, առաջին հերթին, պատահական շեղումներ առաջացնել շրջակա միջավայրի վարքագծից, և, երկրորդ, համատեղել տարբեր ժամանակային հաջորդականություններ շրջակա միջավայրի վարքագծից: Քանի որ էմուլյատորը պատրաստված է արտաքին միջավայրի վրա, նման համակցությունները «հնարավոր» կլինեն: Ինչն ընդլայնում է ուսումնական ծրագրերի օրինակների շարքը:

Բնականաբար, այն ամենը, ինչ տեղի է ունենում իրական ժամանակում, կրկին կարող է ձայնագրվել և օգտագործվել ծրագրերի ավտոմատ լրացուցիչ վերապատրաստման համար:

Էմուլյատորի ծրագրերը կարող են պատրաստվել վերը նկարագրված նույն տեխնոլոգիայի միջոցով:

Եթե ​​արտաքին միջավայրը շատ բարդ է (ինչպես շախմատ խաղալիս), ապա էմուլյատորը կկառուցվի՝ օգտագործելով տեխնոլոգիա, որը շատ մոտ է հենց կառավարման ծրագրին: Այն աստիճան, որ մարզումների ժամանակ ծրագրերը կխաղան միմյանց հետ, իսկ ամենաուժեղ ծրագիրը կպահպանվի։ Կանխատեսման էմուլյատորը կարող է հարմարեցվել ոչ միայն լավագույն քայլը փնտրելու, այլև մրցակցի խաղաոճին հարմարվելու համար: Այսպիսով, մարդու հետ խաղալիս մեքենայի «ուղեղում» մի ամբողջ կռիվ է տեղի ունենալու բազմաթիվ ծրագրերի և դրանց էմուլյատորների հակառակորդների միջև, նախքան վերջնական որոշում կայացնելը:

Այսպիսով, օգտագործելով արտաքին միջավայրի էմուլյատորը, մենք բարելավում ենք ինչպես ծրագրի ուսուցման որակը, այնպես էլ իրական ժամանակում որոշումների կայացման որակը:

Կա՞ նման զուգահեռություն բնական բանականության մեջ՝ մրցակցային որոշումների կայացման և շրջակա միջավայրի էմուլյատորի հետ: Կարծում եմ՝ այդպես է, բայց հազիվ թե այսպես լինի ուղղակի ձև. Այն, ինչ ձևավորվել է բնական էվոլյուցիայի ընթացքում, հավանաբար ավելի բարդ և արդյունավետ է: Բայց այստեղ, պարզության և էֆեկտի արագ հասնելու համար, մենք արհեստականորեն ներմուծեցինք մրցակցություն և էմուլյատոր:

Բնապահպանական էմուլյատորը և մրցակցային հավաքական լուծումը ներկայացնելուց հետո մենք կարող ենք ներկայացնել մեր արհեստական ​​ինտելեկտի նոր հատկություններ:

Ռոումինգի ֆոնային լուծումներ. Որոշում կայացնելուց հետո պետք չէ ստիպել բոլոր ծրագրերին վերակառուցվել՝ հաջորդ քայլը հասկանալու համար։ Դուք կարող եք թողնել որոշ (որոշ չափանիշներով լավ) ծրագրեր, որպեսզի շարունակեք երկար մտածել անցյալ իրավիճակների մասին: Հնարավոր է, որ նրանք ինչ-որ բան մտածեն, և այս բանը օգտակար կլինի կամ ներկա (նույնիսկ փոփոխված) իրավիճակում, կամ օգտակար կլինի հետագա ուսուցման համար: Օրինակ, ուշացած ծրագիրը կարող է քանդել հակառակորդի ծրագիրը կամ գտնել մարտավարական հետաքրքիր լուծում: Այնուհետև հնարավոր կլինի փորձել շրջել ներկայիս իրավիճակը դեպի այս լուծումը (արհեստական ​​ինտելեկտը «փոխում է իր միտքը»), և եթե խաղն այդ ժամանակ արդեն ավարտված է (կամ այլ ուղղությամբ է գնացել), ապա լուծումը գտնվել է. կարող է օգտագործվել մարզումների ժամանակ: Թե այս երկու տարբերակներն էլ կոնկրետ ինչպես են իրականացվում, առանձին ուսումնասիրությունների թեմաներ են: Արհեստական ​​ինտելեկտը մշտապես կլինի «առցանց» և կմտածի, կկատարելագործվի և երկխոսություններ կվարի իր հետ՝ գրեթե մարդու նման։

Ընտրանքների պայթյուն. Դուք կարող եք փորձել հայտնաբերել իրավիճակներ, երբ առանձին ծրագիր (կամ ծրագրերի խումբ) կանգնած է պատառաքաղի մոտ, երբ հայտնաբերվում է երկիմաստ իրավիճակ, և ստիպել այս իրավիճակին ճյուղավորել որոշումների նոր ճյուղերի (ծրագիր + էմուլյատոր): Կրկին, թե ինչպես բացահայտել նման իրավիճակները և ինչպես դրանք ճյուղավորել, առանձին հետազոտության թեմա է, չհերկված դաշտ։ Առայժմ սա միայն գաղափարի մակարդակում է, այն գաղափարը, որ երկիմաստության դեպքում ինտելեկտը պետք է կարողանա ճյուղավորել տարբերակներ: Բայց ճյուղավորելն ամենևին էլ նույնը չէ, ինչ որոշման ծառի կոպիտ պարտադրումը։ Դա ավելի շատ նման է ալիքային ֆունկցիայի քսելուն, ինչպես բարդ թվաբանությունը, երբ երկիմաստությամբ (երևակայական միավոր) գործողությունները մի քանի տարբերակ են առաջացնում, որոնք հետագայում փոխազդում են միմյանց հետ՝ համաձայն նույն թվաբանության կանոնների: Նաև, արհեստական ​​ինտելեկտի ճյուղավորված լուծումները պետք է շարունակեն գոյակցել՝ շարունակելով շփվել միմյանց հետ (ինչպես է նաև հարց), և ճիշտ պահըժամանակ, ճյուղերը կարող են համախմբվել մեկ լուծման մեջ: Ավելին, ճյուղավորումը չի առաջանա հիմարորեն, ինչպես տարբերակները փորձելիս, այլ հենց այն պահերին, որտեղ դա ամենահետաքրքիր է:

Կոնկրետ ինչպե՞ս կարող է հայտնաբերվել պոտենցիալ ճյուղային կետ: Սովորական նեյրոնային ցանցերի համար կան ալգորիթմներ, որոնք մեծացնում են նեյրոնային ցանցի հզորությունը, եթե դա բավարար չէ տվյալների մշակման համար, և նվազեցնում ցանցի հզորությունը, եթե այն ավելորդ է որոշումներ կայացնելու համար: Նյարդային ցանցի հզորությունը փոխելը նեյրոնների և նեյրոնների միջև կշիռներ-կապերի ավելացումն ու հեռացումն է (կարդացեք՝ ավելացնելով/ջնջելով տողերը ոչ գծային մատրիցով և վերակայելով զրոյական տարրերի, որոնք չեն ազդում լուծման վրա): Կա մի ամբողջ տարածք նյարդային ծառերի մասին, որոնք աճում են ըստ անհրաժեշտության: Նմանապես, մի ​​խումբ ծրագրերում կարող եք ստուգել, ​​թե ինչի մասին են «մտածում» տարբեր ծրագրեր, նվազագույնի հասցնել նմանատիպ իրավիճակները և փորձել «մտքի» նոր ուղղություններ առաջացնել: Դա գնահատելիս մեզ առաջին հերթին կօգնեն էմուլյատորները, մենք պետք է նայենք, թե որքանով են նրանք նման պատկերացում տալիս արտաքին միջավայրի մասին:

Դուք կարող եք նաև ստուգել առանձին ծրագրեր՝ տեսնելու համար, թե որքանով են դրանք միանշանակ լուծում տալիս: Եթե ​​ծրագիրը թափառում է մի քանի լուծումների միջև, կամ չի զուգակցվում լուծմանը, ապա այս իրավիճակում կարող են կիրառվել լրացուցիչ ծրագրեր, որոնք սկզբնավորվել են նույն իրավիճակով, բայց պատահական շեղումներով, որպեսզի խթանեն «այլընտրանքային մտքերի ընթացքը»: Մասնաճյուղավորումը կարող է օգտակար լինել նաև թրեյնինգի ժամանակ, երբ հնարավոր կլինի որոշել, թե որքան երկիմաստ է ծրագիրն իր լուծման մեջ, և ոչ միանշանակ դեպքերը բաժանել ևս մի քանի միանշանակ ծրագրերի, որպեսզի նրանք ավելի հաջող աշխատեն թիմում։ Բայց նորից, այս ամենը դեռ պարզապես գեղեցիկ գաղափարներ են, գաղափարներ փորձերի համար։

Նրանք երազելու են

Լավ է, երբ ունենք ճիշտ վարքի օրինակներ, կամ կարող ենք ընդօրինակել շրջակա միջավայրի արձագանքը։ Բնական բանականության (և ապագա արհեստական ​​ինտելեկտի) համար նման շքեղությունը միշտ չէ, որ հասանելի է: Ինտելեկտը փորձում է ինչ-որ բան անել շրջակա միջավայրի հետ, մի մասը ճիշտ է ստացվում, մի մասը՝ ոչ, իսկ մի մասը մնում է անհասկանալի հետևանքներով։ Ինչպե՞ս կարող ենք սրանից դասեր քաղել։

Դա անելու համար մենք կներկայացնենք արտաքին միջավայրի էմուլյատորի երրորդ տեսակը: Այն կհիշի արտաքին միջավայրի դրսևորումները, թե ինչ արեց արհեստական ​​ինտելեկտը՝ ի պատասխան այդ դրսևորումների և ինչի հանգեցրեց։ Սա չի բացառում, որ փորձի ձեռքբերման արդյունքում նման էմուլյատորը կկարողանա համատեղել նախորդ երկու տեսակները՝ էմուլյացիան և շրջակա միջավայրի կանխատեսումը, և կառուցվի մեր արհեստական ​​ինտելեկտի նման սկզբունքներով:

Ինչպե՞ս սովորել, երբ չկա հստակ տեղեկատվություն այն մասին, թե որ գործողություններն են ճիշտ, որոնք՝ ոչ: Մի փոքր շեղում. Hopfield ցանցերը վերապատրաստվում են օրինակներից՝ «ամփոփելով» բոլոր օրինակները՝ առանց քննադատական ​​գնահատման, առանց սխալների ուղղման: Վերապատրաստված Hopfield ցանցը, որն օգտագործում է մասնակի կամ աղմկոտ պատկեր կրկնման գործընթացում (կոնվերգենցիա տվյալ պատկերի էներգիայի նվազագույնին) կարող է վերստեղծել բնօրինակ պատկերը: Այսպիսով, ցանցում մարզվելուց հետո երբեմն կեղծ պատկերներ եք ստանում։ Կեղծ պատկերները վերացնելու համար մուտքագրվում են ուսուցման օրինակներ, և եթե ցանցը համընկնում է կեղծ պատկերի, ապա այդպիսի պատկերը վերագրվում է: Մի կերպ ցանցը «երազում» է՝ հիմնվելով նախկինում ստացված տեղեկատվության վրա, իսկ երազում կեղծ տեղեկատվությունը փոխարինվում է ճիշտ տեղեկատվությամբ։ Hopfield ցանցերը օգտագործվում են պարզ պատկերներ, բայց մեզ հետաքրքրում է սկզբունքը.

Նման ճանապարհով մենք կարող ենք գնալ այստեղ։ Արտաքին միջավայրից տեղեկատվություն կուտակելուց հետո ինտելեկտն անջատվում է արտաքին միջավայրից և աշխատում է միայն էմուլյատորի հետ։ Էմուլյատորը վերարտադրում է իրավիճակները, և եթե ինտելեկտը լավ լուծում է տալիս, ապա այս լուծումը ամրապնդվում է, եթե վատ է, ապա այս լուծումը փոխարինվում է այլ բանով: Պատահական մի բանի համար, օրինակ. Գլխավորն այն է, որ նոր որոշումը վատ չթվա։ Միաժամանակ փոփոխություններ ենք կառուցում այնպես, որ կուտակված լավ լուծումները չկորչեն ու նոր վատ լուծումներ չհայտնվեն։

Առնվազն նման վերակառուցումը կարող է իրականացվել գենետիկական ալգորիթմի միջոցով: Հնարավոր է, որ ծրագիրը կազմող յուրաքանչյուր կանոնի խաչաձև գնահատում հնարավոր լինի, որպեսզի հնարավոր լինի ճշգրիտ հաշվարկել յուրաքանչյուր կանոնի սխալը և ուղղումը: Ի վերջո, մենք որոշակի տեղեկություններ ունենք, թե ծրագիրը լավ է աշխատել, թե վատ: Այստեղ ավելի բարդ է այն առումով, որ եթե որոշումը կայացվել է ծրագրերի թիմի կողմից, ապա որոշման ճիշտության մասին տեղեկությունը հայտնի է միայն հաղթող ծրագրի համար։ Բայց մենք ունենք տեղեկություններ ծրագրերի վարքագծի մասին, որը երկար է տևում, և մենք արդեն կարող ենք մանրամասներ քաղել դրանից։

Այսպիսով, ստացվում է, որ եթե արհեստական ​​ինտելեկտը տեղադրվի բնական պայմաններում, ապա կհայտնվեն արթնության երկար փուլեր, որոնց ընթացքում տեղեկատվությունը կուտակվում է փորձության և սխալի միջոցով, իսկ դրանցից հետո քնի փուլերը, որոնց ընթացքում այդ տեղեկատվությունը որակապես մարսվում է: Այս գործընթացը ինքնին կլինի երկար և տքնաջան: Բնական բանականության մեջ նման մեխանիզմը, որը մի անգամ հայտնվել է էվոլյուցիայի գործընթացում, արագ ցույց տվեց իր օգտակարությունը և բազմապատկվեց հետագա սերունդների ընթացքում: Բանն այնքան էլ բարդ չի թվում, որ այն հայտնվի էվոլյուցիայի ընթացքում:

Նրանք կզգան ցավը

Ուսուցման ևս մեկ տարբերակ, երբ ճիշտ գործողությունների մասին տեղեկատվությունը հասանելի չէ: Հիշեցնեմ, որ կռելու միջոցով սովորելիս ամբողջ լուծման ընթացքում օգտագործվում են պարամետրերի պատահական փոփոխություններ՝ լուծումը վերակառուցելու համար: Նման փոփոխությունների (ջերմաստիճանի) ուժգնությունը սկսվում է բարձր և աստիճանաբար նվազում է, քանի որ լուծումը մոտենում է լավագույն տարբերակը. Եթե ​​փոփոխությունները մեզ չեն համապատասխանում, ապա փոփոխությունների ուժգնությունը (ջրման ջերմաստիճանը) մեծանում է ավելի հարմար տարբերակ փնտրելու համար:

Հետեւաբար, էվոլյուցիայի գործընթացում մշակվել է ցավի մեխանիզմ: Սխալ գործողություն, և մենք անմիջապես զգում ենք, թե ինչպես են մեր նյարդային կապերը սպառվում դաժան բոցով: Նման ցնցումն առանց հետքի չի անցնում։ Սխալ գործողության հետևանքները բառացիորեն այրվում են մեր նյարդային կապերի մեջ: Այնքան, որ մենք ամեն գնով խուսափում ենք այս սխալ գործողությունների կրկնությունից։ Մեխանիզմը պարզ է, բայց արդյունավետ:

Արհեստական ​​բանականության մեջ ուսուցումը կարող է համալրվել պատահական փոփոխությունների ավելի արագ տեմպերով, նպատակային փոփոխությունների ավելի արագ տեմպերով, եթե ինտելեկտը սխալ որոշումներ է կայացնում: Նման լրացումները կարող են կիրառվել ինչպես ծրագրերի խմբի, այնպես էլ առանձին ծրագրերի կամ կանոնների մակարդակով։ «Վատ» կանոնները կամ ծրագրերը կարող են բառացիորեն այրվել ոչ ճիշտ գործողությունների արդյունքում, միևնույն ժամանակ. լավ կանոններու ծրագիրը կպահպանվի ու կբազմապատկվի, բայց կրակի նման սխալ արարքներից «կվախենան»։

Ինտելեկտի ավելի բարձր մակարդակում «ցավը» կդրսևորվի նաև «գլուխդ բաժանվում է գաղափարներից», «անհնար է մտքերդ հավաքել» և այլն: Լավ որոշման վիճակը կուղեկցվի մտքի պարզությամբ, ներդաշնակությամբ և «մտքի խաղաղությամբ»:

Կանոնային անսամբլներ

Պատկերացնենք, որ էվոլյուցիոն ուսուցման գործընթացում կանոնների մի մասը կլոնավորվում է այնպես, որ դրանք փոխկապակցված մնան ծնողական ատյանի հետ։ Օրինակ, դրանք միացված են մնում նույն մուտքերին և ելքերին և ակտիվանում են գրեթե միաժամանակ: Միևնույն ժամանակ կանոնները դեռևս տարբերվում են միմյանցից, և դրանց հետագա էվոլյուցիան կարող է տարբեր ճանապարհներ ընթանալ։ Հիմա եկեք համոզվենք, որ երբ փոփոխություններ են տեղի ունենում, կանոնների այս մասը մնում է հիմնականում փոխկապակցված, այսինքն. այնպես, որ թողարկված արդյունքները, ելքերը, ակտիվացումը և լուծումները հիմնականում նույնն են: Միաժամանակ, անսամբլի կանոնները կարող են կիրառվել այլ վայրերում, այդ թվում՝ այլ անսամբլներում։

Ստացվում է, որ անսամբլը որոշումներ է կայացնում իր բոլոր կանոններով հանդերձ։ Կոլեկտիվ աշխատանքի շնորհիվ լուծումն ավելի որակյալ կլինի (համենայնդեպս, սովորական նեյրոնային ցանցերի դեպքում այդպես է լինում)։ Բայց միևնույն ժամանակ, անսամբլը կունենա նաև իրավիճակի որոշ նոր, որակապես այլ ներկայացում և կկարողանա գործել սկզբնական իրավիճակի սահմաններից շատ այն կողմ, քանի որ անսամբլի կանոնները այլ վայրերում են մասնակցում։ (և սա ենթադրություն է, որը վերաբերում է կոնկրետ ծրագրին մասնակցող անսամբլներին)։ Կարելի է ասել, որ իրավիճակի տեսլականը լինելու է ավելի բարձր մակարդակի, ավելի ընդհանրացված, ավելի ընդլայնված և հարստացված այլ իրավիճակների փորձով։ Այսպիսով, սահմանային կամ նոր իրավիճակներում անսամբլը կկարողանա գեներացնել (կարելի է նույնիսկ ասել՝ երևակայել) նոր իրականություն, որը շարունակում է իմաստով հինը, որը նա տեսել է իր մարզումների ժամանակ։

Այստեղ կամաց-կամաց սկսում են ի հայտ գալ այնպիսի բաներ, ինչպիսիք են աբստրակցիոն կատեգորիաները և ասոցիատիվ մտածողությունը: Սկսում են առաջանալ «ծանր» տրամաբանական շղթաներ, որոնք իրավիճակի ավելի բարձր տեսլականի պատճառով կարող են առաջացնել «նուրբ» տրամաբանական շղթաներ, որոնք մոտ են ֆորմալ տրամաբանությանը և խիստ ալգորիթմներին։

Նոր իրավիճակների հանդիպելիս ծրագիրը, ունենալով նման անսամբլներ պահեստում, շատ ավելի հեշտ կլինի փոխանցել և ընդհանրացնել իր փորձը նոր իրավիճակներին:

Այս ամենը առայժմ պարզապես գեղեցիկ ենթադրություններ են, բայց, ըստ ամենայնի, ամեն ինչ այս ուղղությամբ է ընթանում։ Թե կոնկրետ ինչպես են ձևավորվել և պահպանվել ուղեղում նման անսամբլներ, դեռ պարզ չէ (բայց պետք է խոստովանել, որ էվոլյուցիոն առումով դա բավականին պարզ է թվում): Հարց է նաև, թե ինչպես աջակցել և ղեկավարել անսամբլներին ծրագրում։ Ըստ երևույթին, անսամբլների համար կանոնների հստակ ամրագրում չկա, ամեն ինչ որոշվում է դինամիկ կերպով՝ համադրելով կոնկրետ իրավիճակի համար համապատասխան կանոններ, բոլորը՝ մրցակցության և փոխազդեցության նույն սկզբունքների համաձայն: Այս դեպքում կանոններն ու անսամբլները նույնպես կկարողանան դինամիկ դասավորվել հիերարխիայի մեջ, և, այնուամենայնիվ, չի լինի մշտական ​​հիերարխիա, չեն լինի դրանց միջև մետամակարդակներ և անցումներ, չի լինի հստակ ֆորմալիզացիայի կարևորման համակարգ։ - ենթահամակարգային միացումներ. Լրացուցիչ մանրամասներ այն մասին, թե ինչպես կարող է դա ձևավորվել, առաջիկայում: Եվ պետք է խոստովանեք, որ իրերի բնական ընթացքի տեսանկյունից ամեն ինչ բավականին պարզ է թվում։

Եվ կրկին ալիքներ, հաճախականություններ և հոլոգրաֆիա

Մեր արհեստական ​​ինտելեկտի ծրագրում արհեստականորեն դրված է բաժանումը մրցակցող ծրագրերի և իրավիճակի այլընտրանքային տեսլականը։ Նույն կերպ արհեստականորեն ներմուծվում է գլոբալ պետություն, որին հասանելի են բոլոր կանոնները և ժամացույցի գեներատորը, որն ամեն նոր պահին ակտիվացնում է բոլոր կանոններն ու թարմացնում իրավիճակը։ Բայց ուղեղում նման բան չկա, և, այնուամենայնիվ, այնտեղ բնականաբար շատ նման բան է ձևավորվել։

Այն, ինչ մենք ունենք, բնական նեյրոնի հատկությունն է՝ կուտակելու պոտենցիալը, և երբ կրիտիկական շեմը գերազանցվում է, այն լիցքաթափվում է իր ելքերում մի շարք ազդանշաններով (հիշո՞ւմ եք նախորդ մասերում հաճախականության նեյրոնային ցանցերի մասին): Այս շարքերը, իրենց հերթին, ամեն անգամ բարձրացնում են (կամ իջեցնում) նեյրոնների պոտենցիալները, որոնք կապված են սկզբնական նեյրոնի մուտքերի հետ։ Շեմային պոտենցիալները, լիցքաթափման հաճախականությունը և տեւողությունը պարամետրեր են, որոնք ակնհայտորեն ճշգրտվում են ուսումնական գործընթացի ընթացքում:

Ուրեմն ստացվում է, որ ոչ ժամացույցի գեներատոր, ոչ օղակներ ու պայմանական անցումներ, ոչ էլ գլոբալ վիճակ ու իրավիճակի հարկադիր զուգահեռացում պետք չեն։

Նման նեյրոնների կոլեկտիվներն արդեն կրում են ներքին վիճակ, բարդ կրկնվող տրամաբանություն և պայմանական մշակում:

Ավելին, նեյրոնների փաթեթները կարող են համակցվել այլընտրանքային (զուգահեռ) շղթաների մեջ, որոնցից յուրաքանչյուրն ունի իրավիճակի իր տեսլականը, և արդյունքի դեպքում այս բոլոր շղթաները մրցակցում են միմյանց հետ, որոնց լուծումը կներկայացվի արդյունքին: Եվ նման մշակումը բավականին հարմար է սովորական համակարգիչների վրա մոդելավորելու համար: Ուրիշ բան, որ սկզբում այն, ամենայն հավանականությամբ, ավելի շատ ռեսուրսների կարիք կունենա, քան հարկադիր զուգահեռականացմամբ ինտելեկտի մոդելը, բայց ապագայում ավելի քիչ կանոնակարգված մոդելը, թվում է, ավելի արդյունավետ կլինի։

Հիմա հիշենք անսամբլների և մետաանսամբլների մասին: Պարզվում է, որ ամբողջ ալիքային ճակատները թափառում են առանձին անսամբլների միջով, որոնք տարբեր անսամբլներում համակցված տալիս են բարդ ալիքային նախշեր, գուցե նույնիսկ ավելի բարդ, քան հոլոգրաֆիկ պատկերները։ Հենց այս ալիքային օրինաչափությունները դինամիկ կերպով կապում են առանձին նեյրոնները (կամ մեր արհեստական ​​ինտելեկտի կանոնների ցանցերը) անսամբլների և մետա-համույթների:

Տեսեք, թե ինչպես ամեն ինչ ստացվեց բնական, բայց պրագմատիկ: Պետք չէ որևէ առանձին հաճախականության և հոլոգրաֆիկ ցանցեր հորինել, չարչարել դրանք և ստիպել ճանաչել պատկերները։ Բավական է կիրառել արդյունավետ և բնական ընթացքբաներ, թե ինչպես են այս բոլոր հաճախական-հոլոգրաֆիկ հատկությունները դրսևորվել որպես կողմնակի ազդեցություն:

Նախնական իրավիճակը, երբ հայտնվել է ուղեղում, բաժանվում է բազմաթիվ այլընտրանքային շղթաների՝ առաջացնելով նեյրոնային պոտենցիալների փոփոխությունների ալիքների ամբողջ փոթորիկներ, և արդյունքում ստանում է շատ ավելի բարդ և որակյալ ներկայացում: Ելքի ժամանակ այս ամբողջ մշակումը կրկին փլուզվում է նեղ սահմանների մեջ, որոնք պետք է թողարկվեն ներսում արտաքին աշխարհ.

Ասոցիացիաներ, կատեգորիաներ, ընդհանրացումներ և այլ փիլիսոփայություններ

Համույթների մասին բաժնում նշեցինք, որ լավ կլինի, որ կանոնները մասնակցեն ծրագրի տարբեր տեղերում, ինչի արդյունքում կանոնները կսովորեն որակապես ընդհանրացնել փորձը բոլորովին այլ իրավիճակներից։ Մասնավորապես, նրանք կգնան բարձր մակարդակի վերացականությունների ճանապարհին, ինչպիսիք են ասոցիատիվ մտածողությունը և դասակարգումը: Օրինակ, նրանք կկարողանան ընդհանուր բան ստանալ «սպիտակ» և «փափկամազ» հասկացություններից և կիրառել այն «թռչող» իրավիճակում: Նման մշակումը շատ ավելի հզոր կդարձնի մտածողությունը և թույլ կտա դինամիկ կերպով կառուցել կանոնների համույթներ բոլորովին տարասեռ իրավիճակների համար։

Նման հատկություններ ձեռք բերելու համար մենք արհեստականորեն ներմուծեցինք անսամբլներ և դրանց սպասարկում: Ուրիշ ի՞նչ եղանակներով կարելի է ձեռք բերել այնպիսի հատկություններ, որոնք թույլ են տալիս կանոնին, որը վարժվել է որոշ իրավիճակների (հասկացությունների) համար, մասնակցել և հետագայում վարժվել բոլորովին այլ իրավիճակներում (այլ հասկացությունների համար, ինչպես օրինակ սպիտակ/փափկամազ/ճանճերի մասին) ?

Առայժմ երկու տարբերակ է առաջանում.

Տարբերակ առաջին, մուտքերի և ելքերի դինամիկ համակցություն. Հիշո՞ւմ եք, սկզբում մենք խիստ համապատասխանություն ենք սահմանել կանոնների (նեյրոնային ցանցերի) մուտքերի և ելքերի և համաշխարհային պետության բջիջների միջև: Էվոլյուցիոն փոփոխությունները ճշգրտվել են այնպես, որ այդ համապատասխանությունները փոխվեն նվազագույնի։ Հետևյալ տարբերակում, առանց գլոբալ վիճակի, մուտքերն ու ելքերը տարբեր կանոններ-ցանցերը նույնպես կոշտ կապված էին միմյանց հետ:

Այժմ եկեք թույլ տանք, որ մուտքերն ու ելքերը փոխեն իրենց դիրքը միմյանց նկատմամբ աշխատանքի ընթացքում և ուսուցման գործընթացում: Երկու հարց է առաջանում. Նախ, ինչպե՞ս որոշել, թե որքանով են համատեղելի ստացված համակցության տարրերը, որքանո՞վ է արդյունավետ այս համակցությունը լուծում խնդիրը: Երկրորդ, ինչպե՞ս արագ ընտրել մուտքերի և ելքերի համատեղելի/արդյունավետ համակցություններ, քանի որ այդքան շատ համակցություններ կան:

Ամենապարզ տարբերակը կանոնի յուրաքանչյուր մուտքային և ելք կապելն է համատեղելիության հատկանիշի հետ, որը փոխվում է էվոլյուցիոն եղանակով, և, հավանաբար, կա միջոց այս համատեղելիությունը ավելի ճշգրիտ կարգավորելու ուսուցման ընթացքում՝ հիմնվելով կանոնների արդյունքների վրա: (Կարո՞ղ է արդյոք ելքերի համատեղելիությունը հաշվարկվել կանոնի գործողության ընթացքում: Արդյո՞ք սա արդյունավետ կլինի:) Արտաքին միջավայրում մուտքերի և ելքերի համար ձեզ անհրաժեշտ կլինի նաև համատեղելիության մի շարք, որը կլինի ընդհանուր հավաքածուի մաս: Երբ ծրագիրը գործարկվի, կանոնները կմիացվեն միայն հաշվի առնելով մուտքերի և ելքերի համատեղելիությունը: Նման համատեղելիության ընտրության խնդիրը հաշվողական առումով հեշտ չէ, բայց դեռևս ամբողջովին դժվար չէ: Հնարավոր է, որ Hopfield ցանցի ալգորիթմները, որոնք կարող են նման բաներ անել, կօգնեն այս ընտրությանը:

Հաջորդ տարբերակը ուսուցման գործընթացում տարբեր կանոնների մուտքերն ու ելքերը տարբեր ձևերով համատեղելն է և տարբեր համակցությունների արդյունավետության (համատեղելիության) մասին տեղեկատվության կուտակումն է։ Իրական աշխատանքում շարունակեք վերը նշվածը` միավորել մուտքերը համապատասխանության համաձայն:

Նախորդ տարբերակները հարմար են արհեստական ​​ինտելեկտի ներդրման համար, սակայն մուտքերի և ելքերի նման համադրություն բնական բանականության մեջ կարծես թե գոյություն չունի։ Բայց կան խաղարկային քարտեզներ, տես նախորդ մասերում կոնվոլյուցիոն ցանցերի և նեոկգնիտրոնի մասին։ Իսկ նման քարտեզները կարծես գոյություն ունեն բնական բանականության մեջ։

Խաղարկային քարտեզների իմաստը սա է. Կան մի շարք կանոններ, կա մուտքագրման բջիջներ: Յուրաքանչյուր կանոն սկանավորում է մուտքային բջիջները՝ օգտագործելով շարժվող պատուհանը, և պատուհանի բոլոր բջիջները ընկնում են կանոնի մուտքագրման մեջ: Կանոնի արդյունքը գրվում է մուտքային բջիջների վրա պատուհանի դիրքին համապատասխանող հատկանիշի քարտեզի բջիջում: Արդյունքում, յուրաքանչյուր կանոնի համար դուք կստանաք առանձնահատկությունների քարտեզ, որտեղ այն վայրերը, որտեղ կանոնը լավագույնս աշխատում է, կունենան ամենաբարձր արժեքները: Հաջորդ շերտում բոլոր առանձնահատկությունների քարտեզները կազմում են նոր կանոնների մուտքագրում, որոնք դարձյալ կազմում են իրենց առանձնահատկությունների քարտեզները: Կանոնները կարելի է սովորել սխալների հետ տարածման միջոցով: Թե ինչպես կարող են նման կանոնները դասավանդվել որպես ծրագրի մաս, բաց հարց է:

Հատկանշական քարտեզները լավ են աշխատել պատկերների ճանաչման մեջ՝ աղավաղումներով, որոնք կապված են մասշտաբի, անկյան, պտույտի և պատկերված օբյեկտին հատուկ դեֆորմացիաների հետ:

Հետևաբար, առանձնահատկությունների քարտեզները լավ թեկնածու են ծրագիր կազմող կանոնների համար մուտքերն ու ելքերը դինամիկ կերպով համատեղելու փորձերի համար:

Տարբերակ երկու, մուտքերի և ելքերի հաճախականության համակցություն. Այս տարբերակում մուտքերն ու ելքերը վերադասավորելու կարիք չկա: Հաճախականության նեյրոնային ցանցերում (կամ նման ցանցերի վրա կառուցված ծրագրերում) յուրաքանչյուր նեյրոն և՛ հաճախականության պարզ զտիչ է, և՛ հաճախականության պարզ գեներատոր: Ավելին, այս ֆիլտրը կարող է կարգավորվել միաժամանակ տարբեր ներդաշնակությունների համար (որի շնորհիվ հաճախականության ցանցերի հզորությունն ու հնարավորությունները ավելի բարձր են, քան սովորական ցանցերը): Նմանապես, նեյրոնների ցանկացած համակցություն և՛ բարդ հաճախականության զտիչ է, և՛ բարդ հաճախականության գեներատոր: (Մեր արհեստական ​​բանականության մեջ նման նեյրոնը համարժեք է մեկ կանոնի, որը ներկայացված է փոքր նեյրոնային ցանցով):

Հետևաբար, բոլորովին տարբեր էակներին վերաբերող ազդանշանները կարող են թափառել նույն նեյրոնների միջով տարբեր հաճախականություններով: Բայց քանի որ տարբեր հաճախականություններ ազդում են միևնույն նեյրոնների վրա (նեյրոնների համակցություններ), տարբեր հաճախականություններ (և նրանց կողմից մշակված սուբյեկտները) ազդում են միմյանց վրա: Հետևաբար, եթե մեր ինտելեկտը կառուցված է հաճախականության ազդանշանի մշակման սկզբունքների վրա (ինչպես վերը նշված է հաճախականությունների բաժնում), ապա այս բանականությունը կարծես արդեն ունի տարասեռ սուբյեկտների ընդհանրացման և ինչ-որ փիլիսոփայական աբստրակցիայի կարողություն: Թեև կարող են լինել լրացուցիչ տեխնիկական լուծումներ, որոնք կարագացնեն հաճախականության ցանցերում նման ընդհանրացումների ձևավորումը։

Եվ մի փոքր ամփոփում. Մուտքագրման և ելքերի վերամիավորման նման մեթոդները ապահովում են ոչ միայն բարձր մակարդակի հատկություններ, ինչպիսիք են ասոցիատիվ մտածողությունը և որակական ընդհանրացումները, այլ նաև ավելի պրոզաիկ հատկություններ: Ի՞նչ է պատահում, եթե էլեկտրական շղթայի լարերը խառնվեն: Սա, ամենայն հավանականությամբ, ճակատագրական կլինի սխեմայի համար: Բայց ուղեղի համար դա անհրաժեշտ չէ։ Կատարվեցին փորձեր (կենդանիների վրա), որտեղ ուղեղը բառացիորեն կտոր-կտոր արեցին ու խառնեցին, որից հետո հետ դրեցին ու կենդանուն բաց թողեցին։ Որոշ ժամանակ անց կենդանին վերադարձել է բնականոն վիճակի և շարունակել իր կյանքը։ Օգտակար գույք, Ճշմարտությո՞ւն։

Չկան մետա մակարդակներ

Ժամանակին ես տարակուսում էի, թե ինչպես է կառուցվում տրամաբանական հիերարխիա խելացի համակարգերում, ինչպես են տեղի ունենում տրամաբանական կառուցվածքները, երբ մեկ բյուրեղյա մաքուր մակարդակից վեր կառուցվում է մյուսը՝ իր մեջ ինտեգրելով մի քանի ցածր մակարդակ: Արհեստական ​​ինտելեկտի վրա (և ոչ միայն) աշխատանքները գեղեցիկ կերպով նկարագրեցին, թե ինչպես են համակարգերը զարգանում, կուտակում բարդությունը և տեղափոխվում մի մակարդակից մյուսը:

Իրական համակարգերում միշտ պարզվել է, որ որքան էլ լավ մտածված լինեն ստորին մակարդակները, դրանք միշտ կուտակում են որոշակի անհամապատասխանություններ, փոփոխություններ, որոնք հնարավոր չէ համակարգել վերին մակարդակների հետ. ամբողջ հիերարխիայի վերակազմավորում: Լուծումը սա էր. շատ չկապվել նման հիերարխիաներում, թողնել գործելու ազատությունը, որպեսզի անհրաժեշտության դեպքում կարողանաս աշխատել ֆորմալ հիերարխիայի շուրջ: Եվ սա վատ նախագծված համակարգի նշան չէ, սա է կյանքի իրականությունը:

Իհարկե, ճիշտ համակարգը նվազագույնի է հասցնում խառնաշփոթը, դրա համար էլ դա համակարգ է: Բայց դա չի նշանակում, որ նման համակարգը լիովին զուրկ է ոչ պաշտոնական կապերից։ Լավ համակարգը, չնայած իր ողջ կոռեկտությանը, պետք է կրի իր կործանման տարրը: Տարր, որն ուժի մեջ է մտնում, երբ համակարգն այլևս չի կարողանում հաղթահարել իր խնդիրները, տարր, որն ամբողջությամբ վերակառուցում է համակարգը նոր իրողություններին:

Նմանապես, արհեստական ​​ինտելեկտում, կարծես, տեղ չկա որևէ տրամաբանական մակարդակի և մետաանցումների համար (հատկապես հաշվի առնելով ասոցիացիաների և ընդհանրացումների մասին նախորդ բաժինը): Բոլոր կանոնները (դրանք նաև նեյրոններ են մեր հասկացողությամբ) միաժամանակ մասնակցում են ցանկացած մակարդակի որոշումների կայացմանը: Նեյրոնային կանոնները կարող են դինամիկ կերպով դասավորվել տարբեր անսամբլներում, տարբեր հիերարխիաներում։ Բայց նույնիսկ նման դինամիկ դասավորվածության դեպքում նրանք չեն ունենա հիերարխիկ խստություն, ստորին մակարդակի տարրը հեշտությամբ կարող է ազդել վերին մակարդակի վրա, այնքան, որ այն ամբողջովին վերակառուցում է այն:

Կանոնների կիրառման յուրաքանչյուր կոնկրետ դեպքում դուք կարող եք կառուցել ձեր սեփական հիերարխիան: Բայց այս հիերարխիան ստատիկ չէ, ինչպես դա տեղի է ունենում տարբեր ֆորմալացումների դեպքում։ Բանականության մեջ ամեն ինչ կախված է նրանից, թե որ կողմից ես քաշվում, որ տեսանկյունից ես նայում։ Յուրաքանչյուր անկյուն ունի իր հիերարխիան, և կարող են լինել շատ նման «դիտման անկյուններ»: Ինտելեկտի ներսում կարծես թե հստակ հիերարխիա չկա (սա չի նշանակում «ապարատային» մակարդակ, որը որոշում է ուղեղի որ հատվածը, որ օրգանների համար է պատասխանատու):

Քվանտային գենետիկա

Շատ հետաքրքիր բաներ են պատմվել քվանտային հաշվարկների և բանականության քվանտային հատկությունների մասին: Ոմանք նույնիսկ կարծում են, որ ուղեղը կարող է ուղղակիորեն «կտրվել» քվանտային գործընթացները մտածելու համար:

Մի խոսքով, քվանտային հաշվարկի էությունը հանգում է հետևյալին. Սկզբնական տվյալները կիրառվում են փոքր քանակությամբ տարրական մասնիկների վրա։ Որոշման գործընթացում տվյալները սկսում են միաժամանակ մշակվել հսկայական քանակությամբ տարբեր ճանապարհներ, և այս մեթոդները շփվում են միմյանց հետ, պարզում, թե ով ավելի լավ լուծում ունի, ով ավելի վատ, վատ որոշումները թուլանում են, լավերը՝ ուժեղանում։

Դա տեղի է ունենում այն ​​պատճառով, որ քվանտային հաշվարկների մեկնարկի ժամանակ յուրաքանչյուր մասնիկ ամբողջությամբ «զգում» է հաշվարկին մասնակցող մյուս բոլոր մասնիկների վիճակը և զգում է այն անմիջապես և առանց էներգիայի զգալի ծախսերի: Երբ լուծումը գործարկվում է, մասնիկները ընկղմվում են «խճճված» («խճճված») վիճակում, որը հնարավոր չէ ուսումնասիրել արտաքին աշխարհից։ Կեղտոտ վիճակում յուրաքանչյուր մասնիկ չունի հստակ ֆիզիկական վիճակ, յուրաքանչյուր մասնիկ միաժամանակ գտնվում է մի քանի վիճակում և կարող է մասնակցել մի քանի զուգահեռ գործընթացների (և այդ գործընթացները «զգում» են միմյանց): Ավելին, որքան շատ մասնիկներ ներգրավված են լուծույթում, այնքան ավելի շատ վիճակներ կարող է ունենալ նույն մասնիկը միաժամանակ:

Եթե ​​փորձենք մտնել քսված վիճակի մեջ և տեսնել, թե ինչ կա ներսում, ապա յուրաքանչյուր կոնկրետ պահի մենք կստանանք մասնիկների կոնկրետ ֆիզիկական վիճակներ՝ առանց բազմաթիվ միաժամանակյա վիճակների ակնարկի։ Ընդ որում, նման միջամտությունից հետո լուծման ընթացքն ամբողջությամբ կկործանվի, բազմակի վիճակը չի կարող վերականգնվել։ Հետևաբար, այն, ինչ տեղի է ունենում մուտքային տվյալների ճշգրտման և լուծման արդյունքը կարդալու միջև ընկած ժամանակահատվածում, առեղծված է: Ստացվում է, որ լուծման գործընթացում մուտքային տվյալների փոքր քանակությունը առաջացնում է մեծության շատ ավելի բարդ ներքին վիճակ, որը պարզ չէ, թե ինչպես է այն զարգանում, չի կարող ուսումնասիրվել և, այնուամենայնիվ, տալիս է ճիշտ լուծում: Կեղտոտ վիճակն ուսումնասիրելիս ընդունված վիճակն իր բնույթով հավանական է: Քվանտային ալգորիթմի ճիշտ ձևավորման դեպքում հնարավոր է համոզվել, որ ճիշտ լուծումը հեռացնելու հավանականությունը շատ ավելի մեծ է, քան սխալ լուծումը հեռացնելու հավանականությունը (այսինքն՝ լուծումը պետք է հեռացվի առնվազն մի քանի անգամ):

Թվում է, թե այս կերպ դուք կարող եք գրեթե անվճար ստանալ հսկայական հաշվողական հզորություն: Բայց կա մի խնդիր՝ լուծման մասնիկները պետք է ամբողջովին մեկուսացված լինեն արտաքին աշխարհից, այլապես արտաքին աշխարհը կշփոթի լուծման ճիշտությունը (խախտելու կոհերենտությունը)։ Կարծիք կա, որ ամբողջական մեկուսացումն անհնար է, քանի որ (ինչպես ասում է քվանտային ֆիզիկան) յուրաքանչյուր մասնիկ, յուրաքանչյուր քվանտ ի սկզբանե տարածված է ամբողջ տիեզերքում և սերտորեն միահյուսված է մեր տիեզերքը կազմող յուրաքանչյուր այլ մասնիկի հետ: Եվ, որպես այս կարծիքի հետևանք, պարզվում է, որ քվանտային հաշվարկը չի ընկղմում մասնիկները այլընտրանքային տիեզերքներում տարածված վիճակում, այլ մեր տիեզերքից ձգում է այլ, շատ հատուկ մասնիկներ՝ հաշվարկները զուգահեռացնելու համար: Ճիշտ է, դա դեռ չի վերացնում ներքին վիճակն ուսումնասիրելու դժվարությունները։

Դրանից բխում են մի քանի հետաքրքիր եզրակացություններ. Բարձր հզորությամբ քվանտային հաշվարկը չի կարողանա մեզ բացարձակապես ճշմարիտ հաշվարկներ տրամադրել, բայց այն բավականին հարմար է արժանահավատ լուծումների համար, օրինակ՝ արհեստական ​​ինտելեկտում, ինչպես նկարագրված է վերևում։ Եվ ևս մեկ եզրակացություն, որը սերտորեն հատվում է նախորդի հետ՝ քվանտային հաշվարկները չեն կարող ապահովել ինքնաճանաչում, ինքնաարտացոլում, քանի որ դրանք տիեզերքի անբաժանելի մասն են և հետևաբար չեն կարող ճանաչել իրենց և տիեզերքը որպես ամբողջություն, քանի որ դրանք դրա անբաժանելի մասը։ Ահա թե ինչու քվանտային անորոշություններն իրականում հետևում են քվանտային մասնիկների վիճակները չափելիս, ինչպես նշեցինք նախորդ մասերում: Ի վերջո, անհնար է լիարժեք ճանաչել ինքդ քեզ միայն քո օգնությամբ։ Քվանտային անորոշությունն իրականում Գոդելի թեորեմի ուղղակի հետևանքն է, որն ասում է, որ ֆորմալ համակարգը չի կարող իրեն ճանաչել բացարձակ ճշմարիտ ճշգրտությամբ։

Հիմա վերադառնանք բանականությանը։ Շատ հետազոտողներ ճիշտ են նկատել քվանտային հաշվարկների և մարդկանց ինտելեկտուալ գործընթացների հատկությունների նմանությունները: Մեզ համար ամենահետաքրքիր հատկությունները հետևյալն են. Լուծումների մուտքագրումը և ելքը վիճակների բավականին պարզ հավաքածու է: Այս պարզ վիճակները ուղեղը մղում են շատ ավելի բարդ վիճակի, որը չի կարող դրսից ուսումնասիրվել: Այս վիճակն ուսումնասիրելու կամ լուծումը հեռացնելու փորձը կրկին ստեղծում է մի շարք պարզ պետություններ, և այս վիճակները նույնպես հավանական են և ավելի հավանական է, որ կստեղծեն ճիշտ լուծում, քան սխալ: Դժվար է մարդու համար գիտակցել այս ներքին վիճակը՝ ի տարբերություն մուտքի/ելքի, բայց այս ներքին վիճակն այն է, ինչ կոչվում է «զգացած»։ Ինչպես քվանտային հաշվարկում, սկզբնական վիճակի կարգավորումը և լուծումը հեռացնելը բավականին աշխատատար ընթացակարգեր են: Նմանապես, մարդու համար հեշտ է մտածել «իր ներսում», բայց իր մտքերն արտաքուստ մեկ ուրիշին փոխանցելու համար պետք է ջանք թափել։

Այժմ մնում է միայն նշել, որ քվանտային հաշվարկի և մարդկային բանականության վերը նշված հատկությունները գրեթե նույնականորեն կիրառելի են նախկինում նկարագրված արհեստական ​​ինտելեկտի ալգորիթմի վրա, որը հիմնված էր գենետիկական ալգորիթմի վրա:

Իսկապես, թվում է, թե որտեղի՞ց է ուղեղում, իր ալիքներով, հաճախականություններով և նեյրոններով, կարող է առաջանալ գենետիկական ալգորիթմի ինչ-որ նմանություն՝ իր քրոմոսոմներով և այլընտրանքային լուծումներով: Պարզվում է, եթե մյուս կողմից նայեք, ապա գենետիկական ալգորիթմը միայն ավելիի դրսևորումներից մեկն է. ընդհանուր դասգործընթացները։

Պարզվում է, որ ուղեղը հետաքրքիր քվանտային հատկություններ դրսևորելու համար ամենևին էլ անհրաժեշտ չէ քվանտային գործընթացներն ուղղակիորեն ցատկել, կան ավելի պրագմատիկ բացատրություններ: Եվ քվանտային հաշվարկն ինքնին պարտադիր չէ, որ ներառի միստիցիզմ զուգահեռ տիեզերքների և բացարձակ ճշմարտությունների մասին, քանի որ դրանք կարող են միկրո մակարդակում կազմակերպվել ինչ-որ գենետիկական ալգորիթմի մեջ, որը միայն ձևացնում է, թե մասնիկները մխրճված վիճակում է, բայց իրականում բավարարված է իր սեփական տիեզերքի հաշվողական ռեսուրսներով:

Հնարավոր է, որ քվանտային հաշվարկների, գենետիկական ալգորիթմների և արհեստական ​​ինտելեկտի այլ ոլորտների խաչմերուկում ի հայտ գա հաշվողական նոր տեսություն, որը հնարավորություն կտա ստեղծել ավելի հզոր քվանտային համակարգիչներ և թույլ կտա հիմնվելով խիստ ապարատի վրա. քվանտային ֆիզիկայի, ավելի ճշգրիտ բացատրելու ինտելեկտում տեղի ունեցող գործընթացները: Ի վերջո, այն, ինչին մենք հասել ենք մինչ այժմ բանականությունը հասկանալու հարցում, հիշեցնում է կատակը՝ «Իմ խորքում զգում եմ, որ 0,5 + 0,5 կլինի լիտր, բայց ես չեմ կարող դա ապացուցել մաթեմատիկորեն», երբ մենք կարող ենք դա անել, բայց մենք դեռ չենք կարող բացատրել, թե ինչու է դա այդպես:

Իրերի ներքին ներկայացում

Ինչպե՞ս է ուղեղը ներկայացնում արտաքին իրերը: Կարող է թվալ, որ ուղեղը վերստեղծում է առարկաների և երևույթների ֆիզիկական մոդել, ինչը հանգեցնում է բազմաթիվ սխալ եզրակացությունների։ Իրականում, ներքին ներկայացումն ամենևին էլ նույնը չէ, ինչ ֆիզիկական մոդելը: Ներքին մոդելը հավանական է: Ներքին մոդելը կազմում է անալոգային, որը գրավում է մեզ համար օբյեկտի միայն ամենակարևոր հատկությունները, այն հատկությունները, որոնք օգտագործվում են ամենօրյա փորձի մեջ: Այս ներքին մոդելը երբեմն անվանում են «միամիտ ֆիզիկա»: Կենցաղային փորձի սահմաններում նման մոդելը տալիս է, թեկուզ ոչ ճիշտ, գործնականում բավականին հարմար արդյունքներ։ Բայց հենց որ մենք դուրս ենք գալիս ամենօրյա փորձից, այս մոդելը փչանում է:

Նման մոդելը ձևավորող կանոնների շարքը կարող է շատ հեռու լինել իրական ֆիզիկական ներկայացումից: Քանի որ ներքին ներկայացումը կրում է նաև իրական առարկաների բազմաթիվ «ֆանտաստիկ» հատկություններ, ներքին ներկայացումը սկսում է «ապրել իր կյանքով»: Օրինակ՝ մուլտֆիլմեր։ Մարդը հեշտությամբ կարող է ճանաչել ծաղրանկարում նկարված դեմքը, իսկ պատրաստված մարդիկ կարող են ծաղրանկարներ նկարել: Սակայն դեմքի ճանաչման համակարգերը շփոթված են ծաղրանկարներով: Եվ ճիշտ է, թեև ճանաչման շարժիչներն ունեն հավանական մոդել, այն շատ ավելի մոտ է ֆիզիկականին, քան մարդկայինին:

Ներքին ներկայացուցչությունը բնութագրվում է նաև ավելի վաղ նկարագրված բարդության տարբերությամբ: Այն կայանում է նրանում, որ ավելի պարզ առարկան կամ երևույթը առաջացնում է շատ ավելի բարդ ներքին ներկայացում, որը պատասխանատու է իրերի էության մոդելավորման համար: Ի վերջո, բանականությունը չի կարող ուղղակիորեն մոդելավորել ֆիզիկան: Պարզ գաղափարը առաջացնում է իրերի էության «զգացում», երբ զգում ես, թե ինչու է դա այդպես, բայց չես կարող բացատրել: Ավելի բարդ ներկայացումը կարող է ընդլայնել իրերի ներկայացումը հասկանալու, ֆանտազիայի և գիտակցված մտածողության մակարդակի (օրինակ մուլտֆիլմերի հետ):

Բարև տրամաբանություն

Ի՞նչ է տրամաբանությունը և որտեղի՞ց է գալիս բարձր մտավոր ակտիվությունը:

Մեր ինտելեկտը վերածվել է պարզ մուտքային-ելքային ռեակցիաներից մինչև վիթխարի թվով մրցակցային գործընթացների համադրություն, որոնք ներածական իրավիճակը տարրալուծում են շատ ավելի բարդ ներքին ներկայացման:

Արդյունքում, որոշ բաների համար կարող են ձևավորվել հսկայական բարդության կանոնների համալիրներ (շատ ավելի բարդ, քան սկզբնական բանի ֆիզիկան), որոնք այս բանի ներքին ներկայացումն են։ Թե կոնկրետ ինչ տեսակ կարող են լինել այս կանոնները և մոտավորապես ինչպես կարող են դրանք ձևավորվել, նկարագրված է վերևում: Բայց գլխավորն այն է, որ սկզբնական երևույթի և դրա նկարագրության միջև բարդության նման տարբերության պատճառով հնարավոր է դառնում այս երևույթի որակապես տարբեր ներկայացումը, ինչը թույլ է տալիս նոր գիտելիքներ ստանալ այս երևույթի մասին բարձր հավանականության աստիճանով:

Հիշեցնեմ, որ բանականություն ընդդեմ ալգորիթմի պարադոքսն այն է, որ ալգորիթմը կարող է միայն հիմար կերպով նմանակել իրի ֆիզիկան՝ չհասկանալով երևույթի էությունը, չի կարող նոր գիտելիքներ ստանալ երևույթի մասին և չի կարող նույնիսկ երաշխավորել իր աշխատանքի ճշմարտացիությունը։ . Բանականությունը, իրերի էության շատ ավելի բարդ ներքին ներկայացման շնորհիվ, ի վիճակի է ոչ միայն մոդելավորել հենց այս բաները, այլև դրանց մասին նոր գիտելիքներ ստանալ, և նույնիսկ գնահատել այս բանի վերաբերյալ դատողությունների ճշմարտացիությունը և բարձր հավանականության աստիճանը.

Բարդության անցումը, որն ընդլայնում է առարկաների և երևույթների էության ներկայացումը մի ներկայացուցչության, որը մեծության աստիճաններով ավելի բարդ է, քան առարկաների և երևույթների սկզբնական «ֆիզիկան», լավ թեկնածու է հասկանալու դերի համար: Տեղի է ունենում տարրալուծում բարդ ներքին ներկայացման մեջ. կա իրերի էության ըմբռնում և բարձրորակ գործողություն, հնարավոր է ճկուն արձագանք, երբ առաջանում են անսպասելի իրավիճակներ: Նման տարրալուծում չկա, հնարավոր է միայն հիմար «խճճվելը»՝ կուրորեն հետևելով ալգորիթմին, որը նոր գիտելիք չի տալիս և չի տալիս մարդու աշխատանքի էության կամ ճշմարտության հաշիվը և շփոթվում է, երբ առաջանում են նոր գործոններ:

Ալգորիթմի ձանձրալի հավատարմությունը չի գրավում ավելի բարձր ինտելեկտուալ գործունեություն, հետևաբար այն արագ և արդյունավետ է, որտեղ անհրաժեշտ է միայն հստակ արձագանք բնորոշ իրավիճակներին: Բարձրագույն ինտելեկտուալ գործունեությունը, որը ներառում է ըմբռնում, ի վիճակի է կամաց-կամաց ձևավորել տարբեր ալգորիթմներ, բայց ի վիճակի չէ դրանք արագ իրականացնել: Հնարավոր են նաև այս մեթոդների համակցությունները։

Հաջորդ տրամաբանական հարցը հետևյալն է՝ հնարավո՞ր է հասկանալ, թե ինչ է տեղի ունենում ըմբռնման գործընթացում։ Եվ նույն տրամաբանական պատասխանը, ամենայն հավանականությամբ, այո է, բայց դրա համար կպահանջվի ինտելեկտում տեղի ունեցող գործընթացների այնպիսի ներկայացում, որը կլինի շատ աստիճաններով ավելի մեծ բարդությամբ, քան սկզբնական ինտելեկտուալ գործընթացները: Այսինքն, մենք կարող ենք ինչ-որ բան սովորել բանականության մասին, մենք կարող ենք ինչ-որ բան անել, բայց մենք ի վիճակի չենք լիարժեք և որակապես հասկանալ մարդկային բանականության աշխատանքը. պարզապես ուղեղի ուժը բավարար չէ: Թեև մենք կարող ենք ուսումնասիրել և օգտագործել օրինաչափությունները, ինչպես հիմա օգտագործում ենք համակարգիչներ՝ առանց դրանցում տեղի ունեցող գործընթացների լիարժեք իրազեկման: Անհնար է պատկերացնել բոլոր միլիոնավոր տրանզիստորներում տեղի ունեցող գործընթացները, թեև միանգամայն հնարավոր է հասկանալ, թե ինչպես են աշխատում համակարգչային սխեմաների տրամաբանական միավորները և ինչպես են դրանք միավորվում ավելի բարձր մակարդակներում: Նույնը վերաբերում է բանականությանը:

Վերոնշյալից պարզ է դառնում, թե ինչու է ըմբռնումը դժվար բացատրելի, և ինչու է հասկանալը հեշտ զգալ, ինչու է հնարավոր շարադրել ըմբռնմանը ուղեկցող տրամաբանական կառուցվածքները, և ինչու է շատ դժվար վերարտադրել այն ամբողջ հիմքը, որը հանգեցրել է դրան։ ինքն իրեն հասկանալով. Այս մասին ստորև կլինի մի ամբողջ բաժին: Այստեղից պարզ է դառնում, թե ինչ է զգացմունքը, ինչ է վիճակի սենսացիա, ինչու են զգացմունքներն ու սենսացիաները դժվար արտահայտելի, բայց հեշտ զգալ։ Ընդհանրապես, շատ հետաքրքիր հետևանքներ կան, եթե ձեզ հետաքրքրում է, նայեք գիտակցության քվանտային հատկությունների ուղղությամբ։

Այլ հարց է, թե կոնկրետ ինչպե՞ս է պատահում, որ մենք գիտակցում ենք ինքներս մեզ, տեղյակ ենք մեզ շրջապատող աշխարհին: Արդյո՞ք մտածող մեքենաները կհասնեն այս գիտակցությանը: Այս հիմնարար փիլիսոփայական հարցդուրս է գալիս արհեստական ​​ինտելեկտի շրջանակներից, բայց մենք դեռ կփորձենք պատասխանել դրան հաջորդ մասում:

Շարունակելով մտածելը բարդության և ըմբռնման տարբերությունների մասին՝ մենք գալիս ենք այն եզրակացության, որ գերբարդ ներքին ներկայացումը, ի վերջո, կարող է առաջացնել իրերի ներքին ներկայացումից շատ նուրբ, կարելի է ասել սուր, գերներդաշնակ եզրեր: Այլ կերպ ասած՝ բուն իրերի իդեալականացում կամ վերացականացում։

Այս աբստրակցիաներն իրենց ծնունդը պարտական ​​են հսկայական թվով ներքին, հակասական և համակցված գործընթացների բազմակի համակցությանը: Բայց ի տարբերություն մեծամասնության փոխգործակցության արդյունքների ներքին գործընթացներ, աբստրակցիայի դեպքում արդյունքը չի լինի լղոզված (լայն) բնույթով, այլ կհավաքվի, ասես, մի ​​կետի, մեկ կամ մի քանի շատ հստակ եզրերի կամ գագաթների մեջ։

Բնականաբար, աբստրակցիաները առաջանում են, ի թիվս այլ բաների, դրանց իրական նախատիպերի դրսևորումների կրկնակի դիտարկման, ինչպես նաև առարկաների ներքին ներկայացման հետ կապված կրկնվող արտացոլումների միջոցով: Ավելին, այս դիտարկումների և մտորումների բազմակարծությունը, հավանաբար, ավելի բարձր է, քան այլ առարկաների, որոնք վերացականություն չեն տալիս: Իսկ կանոնների բնույթը, որոնք տալիս են աբստրակցիաների ներքին ներկայացում, անշուշտ ավելի կարգավորված ձև ունեն, ավելի հարմարեցված գագաթնակետային ներդաշնակեցմանը:

Հաջորդ քայլն այն է, որ նման գագաթնակետային ներդաշնակեցումները կկարողանան միավորվել երկար շղթաների մեջ, որոնք գործում են իրենց իսկ օրենքներով: Այսպիսով, մենք ստանում ենք մտածողության նոր մակարդակ՝ վերացական, թե տրամաբանական։ Բնականաբար, այս մակարդակը շատ ավելի բարդ է, քան սովորական ըմբռնումը, և հասկացողությամբ օժտված յուրաքանչյուր արարած չէ, որ ընդունակ է բարդ տրամաբանական կառուցումների։

Նման աբստրակտ շղթաները կապրեն իրենց իսկ օրենքներով, ինչ-որ տեղ նմանվելով օրիգինալ նախատիպերին, ինչ-որ տեղ հեռանալով դրանցից։

Ուշադրություն դարձրեք, թե որտեղից են գալիս տրամաբանական կոնստրուկցիաները: Նրանք չեն գտնվում ալգորիթմական մակարդակում, կամ նույնիսկ հաջորդ մակարդակում՝ հասկանալու մակարդակում: Նրանք կազմում են ինտելեկտի երրորդ մակարդակը, մի տեսակ հասկացողությունից վեր:

Մնում է հիշել, որ տրամաբանական կոնստրուկցիաների գործընթացում ուղեղը միայն «ձևացնում» է, որ այն աշխատում է հիմար ալգորիթմի պես, պարզունակ տրամաբանական եզրակացության մեքենայի նման։ Իրականում, տրամաբանական կոնստրուկցիաներում ընդգրկված գործընթացները չափազանց բարդ են, քան սկզբնական տրամաբանական կառուցվածքները, և այս բարդության շնորհիվ ինտելեկտին հաջողվում է ստեղծել նոր տրամաբանական կառուցվածքներ և բարձր ճշգրտությամբ դատել դրանց ճշմարտացիությունը:

Նույն կերպ ուղեղը կարող է ընդօրինակել համակարգիչների աշխատանքը (Turing machines) «ծանր» գործընթացների պատճառով, չնայած թվում է, որ ուղեղը հետևում է «նուրբ» ալգորիթմների (հատկապես, եթե ուղեղը պատրաստված է նման աշխատանքի համար):

Եվ մի փոքր ավելին նուրբ տրամաբանական կառուցվածքների և ալգորիթմներ կազմելու մասին: Անգիտակներին կարող է թվալ, որ մաթեմատիկական ճշմարտությունների մասին մտածելիս կամ համակարգչային ծրագրեր գրելիս, լուսավոր իմաստունը նստում է ինչ-որ մեդիտացիայի և ճիշտ դատողությունների օգնությամբ գալիս է ճիշտ եզրակացությունների կամ գալիս է ճիշտ ծրագիր: Իրականում այն, ինչ տեղի է ունենում, ավելի շատ նման է հետևյալ գծապատկերին.

  • Գտել է «ինչ-որ բան», նախնական տարբերակ (կամ նույնիսկ այն ստեղծվել է պատահաբար):
  • Ես ստուգեցի այս «ինչ-որ բանի» աշխատանքը՝ տրամաբանական դատողություններն ընդօրինակելով, հիշեցի խնդրահարույց տարածքներ.
  • Ես փորձեցի պատահականորեն բարելավել խնդրահարույց տարածքները (ես բարելավեցի այս «ինչ-որ բանը»):
  • Ես ստուգեցի բարելավված տարբերակը և այլն:

Ի վերջո, ուղեղը կարող է ոչ այնքան ճիշտ տրամաբանական շղթաներ առաջացնել թռիչքի ժամանակ, այլ ավելի շուտ ստուգել այդ շղթաների աշխատանքը՝ ընդօրինակելով տրամաբանական դատողությունները: Մեկ այլ բան այն է, որ ուղեղն ունի կաղապարների հսկայական «գրադարան» տարբեր իրավիճակների համար, գումարած մի շարք հավանական կանոններ, թե ինչպես կարելի է համատեղել այս կաղապարները միմյանց հետ: Կիրառելով այս կանոններն ու օրինաչափությունները, փոքրաթիվ փորձերով հնարավոր է կառուցել լավ տրամաբանական հիմնավորում և ծրագրեր: Ի թիվս այլ բաների, նման կանոնները կարող են ներառել կաղապարների տարբեր համակցությունների գործողության ախտորոշում, և կարող են և կհամալրվեն դինամիկ կերպով՝ ամեն անգամ տվյալների ողջ ծավալի վրա տրամաբանական կոնստրուկցիաներ գործարկելու փոխարեն:

Այս շաբաթ դուք կարող եք կարդալ մի չափազանց մոտիվացնող դեպք GeekBrains-ի մի ուսանողից, ով ուսումնասիրել է այդ մասնագիտությունը, որտեղ նա պատմել է իր նպատակներից մեկի մասին, որը հանգեցրել է այդ մասնագիտությանը.

Բայց իսկապես, կատարյալ արհեստական ​​ինտելեկտ ստեղծելու ցանկությունն էր՝ լինի դա խաղի մոդել, թե բջջային ծրագիր, որ մեզանից շատերին մղեց դեպի ծրագրավորողի ճանապարհը: Խնդիրն այն է, որ ետեւում տոննա ուսումնական նյութև հաճախորդների դաժան իրականությունը, հենց այս ցանկությունը փոխարինվեց ինքնազարգացման պարզ ցանկությամբ: Նրանց համար, ովքեր դեռ չեն սկսել իրականացնել իրենց մանկության երազանքը, ներկայացնում ենք իրական արհեստական ​​ինտելեկտ ստեղծելու կարճ ուղեցույց:

Փուլ 1. Հիասթափություն

Երբ մենք խոսում ենք նույնիսկ պարզ բոտերի ստեղծման մասին, մեր աչքերը լցվում են փայլով, և հարյուրավոր մտքեր են փայլում մեր գլխում այն ​​մասին, թե ինչ պետք է կարողանա անել: Այնուամենայնիվ, երբ խոսքը վերաբերում է իրականացմանը, պարզվում է, որ իրական վարքագծի օրինաչափությունը բացահայտելու բանալին մաթեմատիկան է: Այո, այո, արհեստական ​​ինտելեկտը շատ ավելի բարդ է, քան կիրառական ծրագրեր գրելը. միայն ծրագրային ապահովման դիզայնի մասին գիտելիքները բավարար չեն լինի ձեզ:

Մաթեմատիկան այն գիտական ​​ցատկահարթակն է, որի վրա կկառուցվի ձեր հետագա ծրագրավորումը: Առանց այս տեսության իմացության և ըմբռնման, բոլոր գաղափարներն արագ կփլուզվեն մարդու հետ փոխազդեցության պատճառով, քանի որ արհեստական ​​ինտելեկտը իրականում ոչ այլ ինչ է, քան բանաձևերի հավաքածու:

Փուլ 2. Ընդունում

Երբ ամբարտավանությունը մի փոքր տապալվի ուսանողական գրականության կողմից, կարող ես սկսել զբաղվել։ Դեռ չարժե շտապել LISP-ին կամ ուրիշներին. նախ պետք է հարմարավետ զգալ AI դիզայնի սկզբունքները: Python-ը կատարյալ է ինչպես արագ ուսուցման, այնպես էլ հետագա զարգացման համար. դա գիտական ​​նպատակներով առավել հաճախ օգտագործվող լեզու է, որի համար դուք կգտնեք բազմաթիվ գրադարաններ, որոնք կհեշտացնեն ձեր աշխատանքը:

Փուլ 3. Զարգացում

Հիմա անմիջապես անցնենք AI-ի տեսությանը: Դրանք կարելի է մոտավորապես բաժանել 3 կատեգորիայի.

  • Թույլ AI – բոտեր, որոնք մենք տեսնում ենք համակարգչային խաղերում կամ պարզ օգնականներ, ինչպիսին է Siri-ն: Նրանք կա՛մ կատարում են բարձր մասնագիտացված առաջադրանքներ, կա՛մ դրանց աննշան բարդույթն են, և փոխազդեցության ցանկացած անկանխատեսելիություն շփոթեցնում է նրանց:
  • Ուժեղ AI-ն մեքենաներ են, որոնց ինտելեկտը համեմատելի է մարդու ուղեղի հետ: Ներկայումս այս դասի իրական ներկայացուցիչներ չկան, բայց Ուոթսոնի նման համակարգիչները շատ մոտ են այս նպատակին հասնելուն:
  • Կատարյալ AI-ն ապագան է, մեքենայական ուղեղը, որը կգերազանցի մեր հնարավորությունները: Հենց նման զարգացումների վտանգների մասին են զգուշացնում Սթիվեն Հոքինգը, Իլոն Մասկը և Տերմինատոր ֆիլմերի ֆրանշիզը։

Բնականաբար, դուք պետք է սկսեք ամենապարզ բոտերից: Դա անելու համար հիշեք լավ հին խաղ«Tic-tac-toe» 3x3 դաշտ օգտագործելիս և փորձեք ինքներդ պարզել գործողությունների հիմնական ալգորիթմները. հաղթանակի հավանականությունը սխալ գործողություններով, խաղադաշտի ամենահաջող տեղերը՝ կտոր տեղադրելու համար, անհրաժեշտությունը. նվազեցնել խաղը ոչ-ոքիի և այլն:

Մի քանի տասնյակ խաղեր և վերլուծելով ձեր սեփական գործողությունները, դուք, հավանաբար, կկարողանաք բացահայտել բոլոր կարևոր ասպեկտները և դրանք վերաշարադրել մեքենայի կոդի մեջ: Եթե ​​ոչ, ապա շարունակեք մտածել, և այս հղումը կլինի այստեղ ամեն դեպքում:

Ի դեպ, եթե վերջապես սկսել եք Python լեզուն, ապա կարող եք ստեղծել բավականին պարզ բոտ՝ հղում կատարելով այս մանրամասն ձեռնարկին։ Այլ լեզուների համար, ինչպիսիք են C++-ը կամ Java-ն, դուք որևէ դժվարություն չեք ունենա քայլ առ քայլ նյութեր գտնելու հարցում: Երբ զգաք, որ ոչ մի գերբնական բան չկա AI-ի ստեղծման հետևում, կարող եք ապահով կերպով փակել ձեր զննարկիչը և սկսել անձնական փորձեր:

Փուլ 4. Հուզմունք

Այժմ, երբ ամեն ինչ իջել է, դուք հավանաբար ցանկանում եք ավելի լուրջ բան ստեղծել: Հետևյալ ռեսուրսները կօգնեն ձեզ այս հարցում.

Ինչպես հասկանում եք նույնիսկ անուններից, սրանք API-ներ են, որոնք թույլ կտան ձեզ ստեղծել լուրջ AI-ի որոշակի տեսք՝ առանց ժամանակ կորցնելու:

Փուլ 5. Աշխատանք

Այժմ, երբ դուք ունեք հստակ պատկերացում, թե ինչպես ստեղծել AI և ինչ օգտագործել, ժամանակն է ձեր գիտելիքները տեղափոխել հաջորդ մակարդակ: Նախ, սա կպահանջի «Մեքենայական ուսուցում» կոչվող կարգապահության ուսումնասիրություն: Երկրորդ, դուք պետք է սովորեք, թե ինչպես աշխատել ընտրված ծրագրավորման լեզվի համապատասխան գրադարանների հետ: Python-ի համար, որը մենք դիտարկում ենք, դրանք են Scikit-learn, NLTK, SciPy, PyBrain և Numpy: Երրորդ, զարգացման մեջ ճանապարհ չկա: Դե, և ամենակարևորը, այժմ կարող եք կարդալ AI-ի մասին գրականություն՝ հարցն ամբողջությամբ հասկանալով.

  • Արհեստական ​​ինտելեկտը խաղերի համար, Յան Միլինգթոն;
  • Խաղային ծրագրավորման նախշեր, Ռոբերտ Նեյսթորմ;
  • AI ալգորիթմներ, տվյալների կառուցվածքներ և արտահայտություններ Prolog-ում, Lisp-ում և Java-ում, George Luger, William Stubfield;
  • Հաշվողական ճանաչողական նյարդաբանություն, Ռանդալ Օ'Ռեյլի, Յուկո Մունակատա;
  • Արհեստական ​​ինտելեկտ. ժամանակակից մոտեցում, Ստյուարտ Ռասել, Փիթեր Նորվիգ.

Եվ այո, այս թեմայի վերաբերյալ ամբողջ կամ գրեթե ողջ գրականությունը ներկայացված է օտար լեզվով, այնպես որ, եթե ցանկանում եք արհեստավարժ արհեստական ​​ինտելեկտ ստեղծել, ապա պետք է բարելավել ձեր անգլերենը մինչև տեխնիկական մակարդակ: Այնուամենայնիվ, սա տեղին է ծրագրավորման ցանկացած ոլորտի համար, այնպես չէ՞: