Ce limbaj de programare ar trebui să folosești pentru a dezvolta inteligența artificială? Cum se creează inteligență artificială? Un ghid (aproape) cuprinzător

  • Traducere

Mașinile care înțeleg limbajul ar fi foarte utile. Dar nu știm cum să le construim.

Despre ilustrațiile pentru articol: una dintre dificultățile computerelor în înțelegerea limbajului este faptul că adesea sensul cuvintelor depinde de context și chiar de aspectul literelor și cuvintelor. În imaginile prezentate în acest articol, mai mulți artiști demonstrează utilizarea diferitelor indicii vizuale care transmit sens dincolo de literele în sine.

În mijlocul unui joc intens de Go în Seul, Coreea de Sud, între Lee Sedol, unul dintre cei mai buni jucători din toate timpurile, și AlphaGo, un AI creat de Google, programul a făcut o mișcare misterioasă care și-a demonstrat superioritatea uimitoare față de adversar uman.

La a 37-a mișcare, AlphaGo a decis să plaseze piatra neagră într-o poziție care părea ciudată la prima vedere. Totul mergea până la punctul în care trebuia să piardă o bucată semnificativă de teritoriu - o greșeală a începătorului într-un joc construit pe controlul spațiului de pe tablă. Doi comentatori TV discutau dacă au înțeles corect progresul computerului și dacă acesta a fost stricat. S-a dovedit că, în ciuda contradicției de bun simț, a 37-a mișcare a permis lui AlphaGo să construiască o structură de netrecut în centrul tablei. Programul Google a câștigat jocul cu o mișcare la care niciun om nu s-ar fi gândit.

De asemenea, este impresionant pentru că jocul antic Go a fost adesea văzut ca un test de inteligență intuitivă. Regulile sale sunt simple. Doi jucători pun pe rând pietre negre sau albe la intersecțiile liniilor orizontale și verticale ale tablei, încercând să înconjoare pietrele adversarului și să le scoată de pe tablă. Dar este incredibil de greu să joci bine.

În timp ce jucătorii de șah se pot gândi cu câțiva pași înainte, în Go aceasta devine rapid o sarcină inimaginabil de dificilă și nu există gambit-uri clasice în joc. De asemenea, nu există o modalitate ușoară de a măsura avantajul și chiar și pentru un jucător cu experiență poate fi dificil de explicat de ce a făcut mutarea pe care a făcut-o. Din această cauză, este imposibil să scrieți un set simplu de reguli pe care le-ar urma un program care poate juca la nivel de expert.

AlphaGo nu a fost învățat să joace Go. Programul a analizat sute de mii de jocuri și a jucat milioane de meciuri împotriva lui însuși. Printre diferitele tehnici AI, ea a folosit o metodă din ce în ce mai populară cunoscută sub numele de învățare profundă. Se bazează pe calcule matematice, a căror metodă este inspirată de modul în care straturile interconectate de neuroni din creier se declanșează atunci când procesează informații noi. Programul s-a predat singur pe parcursul multor ore de practică, perfecționându-și treptat simțul intuitiv al strategiei. Și faptul că a reușit să-l învingă pe unul dintre cei mai buni jucători Go din lume este o nouă piatră de hotar în inteligența mașinilor și AI.

La câteva ore după a 37-a mutare, AlphaGo a câștigat jocul și a luat conducerea cu 2-0 în meciul de cinci jocuri. După aceea, Sedol a stat în fața unei mulțimi de jurnaliști și fotografi și și-a cerut scuze politicos pentru că a dezamăgit omenirea. „Sunt fără cuvinte”, a spus el, clipind sub rafale de blițuri foto.

Succesul surprinzător al AlphaGo arată cât de mult s-au făcut progrese în AI în ultimii câțiva ani, după decenii de disperare și probleme descrise drept „iarna AI”. Învățarea profundă permite mașinilor să învețe în mod independent cum să efectueze sarcini complexe care, cu doar câțiva ani în urmă, ar fi fost de neimaginat fără inteligența umană. Robocar-urile se profilează deja la orizont. În viitorul apropiat, sistemele bazate pe deep learning vor ajuta la diagnosticarea bolilor și la formularea de recomandări de tratament.

Dar, în ciuda acestor progrese impresionante, una dintre capacitățile principale nu este oferită AI: limbajul. Sisteme precum Siri și IBM Watson pot recunoaște comenzi simple rostite și scrise și pot răspunde la întrebări simple, dar nu sunt capabile să poarte o conversație sau să înțeleagă cu adevărat cuvintele folosite. Pentru ca AI să ne schimbe lumea, acest lucru trebuie să se schimbe.

Deși AlphaGo nu vorbește, are tehnologie care poate oferi o mai bună înțelegere a limbajului. La Google, Facebook, Amazon și laboratoarele academice, cercetătorii încearcă să rezolve această problemă încăpățânată folosind aceleași instrumente AI – inclusiv învățarea profundă – care sunt responsabile pentru succesul AlphaGo și renașterea AI. Succesul lor va determina amploarea și proprietățile a ceea ce deja începe să devină o revoluție AI. Acest lucru ne va determina viitorul - vom avea mașini cu care sunt ușor de comunicat sau sistemele AI vor rămâne cutii negre misterioase, deși mai autonome. „Nu există nicio modalitate de a construi un sistem asemănător omului cu inteligența artificială decât dacă este construit pe limbaj”, spune Josh Tenenbaum, profesor de științe cognitive și de calcul la MIT. „Acesta este unul dintre cele mai evidente lucruri care definește inteligența umană.”

Poate că aceleași tehnologii care au permis lui AlphaGo să cucerească Go vor permite computerelor să stăpânească limba, sau va fi necesar altceva. Dar fără a înțelege limbajul, impactul AI va fi diferit. Desigur, vom avea în continuare programe incredibil de puternice și inteligente precum AlphaGo. Dar relația noastră cu AI nu va fi la fel de strânsă și probabil nici la fel de prietenoasă. „Cea mai mare întrebare de la începutul cercetării a fost: „Dacă ai avea dispozitive inteligente din punct de vedere al eficienței, dar nu ca noi în ceea ce privește lipsa de empatie pentru ceea ce suntem?””, spune Terry Winograd, profesor emerit. la Universitatea Stanford. „Vă puteți imagina mașini care nu se bazează pe inteligența umană, care lucrează cu date mari și conduc lumea.”

Vorbesc cu mașinile

La câteva luni după triumful AlphaGo, am mers în Silicon Valley, inima boom-ului AI. Am vrut să cunosc cercetători care au făcut progrese semnificative în aplicațiile practice ale inteligenței artificiale și care încearcă să ofere mașinilor înțelegerea limbajului.

Am început cu Winograd, care locuiește într-o suburbie de la marginea de sud a campusului Palo Alto din Stanford, aproape de sediul Google, Facebook și Apple. Părul său gri și creț și mustața groasă îi dau aspectul unui venerabil om de știință și este molipsitor de entuziasmul său.

În 1968, Winograd a făcut una dintre primele încercări de a învăța mașinile să vorbească. Un minune al matematicii cu o pasiune pentru limbaj, a venit la noul laborator de inteligență artificială al MIT pentru a urma o diplomă de licență. El a decis să creeze un program care să comunice cu oamenii prin introducerea textului în limba de zi cu zi. La momentul respectiv, nu părea un obiectiv atât de îndrăzneț. S-au făcut pași foarte mari în dezvoltarea IA, iar alte echipe de la MIT construiau sisteme complexe de viziune computerizată și brațe robotizate. „Exista un sentiment de posibilități necunoscute și nelimitate”, își amintește el.

Dar nu toată lumea credea că limba este atât de ușor de cucerit. Unii critici, inclusiv influentul lingvist și profesorul MIT Noam Chomsky, au crezut că ar fi foarte dificil pentru cercetătorii AI să învețe mașinile să înțeleagă, deoarece mecanica limbajului la oameni era atât de prost înțeleasă. Winograd își amintește de o petrecere la care un student Chomsky s-a îndepărtat de el după ce a auzit că lucra într-un laborator de inteligență artificială.

Dar există motive pentru optimism. Joseph Weizenbaum, un profesor MIT de origine germană, a realizat primul program chatbot acum câțiva ani. Numele ei era ELIZA și era programată să răspundă ca un psiholog de desene animate, repetând părți cheie ale afirmațiilor sau punând întrebări care ar inspira conversații suplimentare. Dacă ai spune că ești supărat pe mama ta, programul ar putea răspunde: „Ce altceva îți vine în minte când te gândești la mama ta?” Un truc ieftin care a funcționat surprinzător de bine. Weizenbaum a fost șocat când unii subiecți de testare au început să-și confere secretele întunecate mașinii sale.

Winograd a vrut să facă ceva care să pretindă în mod convingător că înțelege limbajul. A început prin a reduce amploarea problemei. A creat un mediu virtual simplu, o „lume bloc”, constând dintr-un set de obiecte fictive pe o masă fictive. Apoi a creat un program, numit SHRDLU, care ar putea analiza toate substantivele, verbele și regulile gramaticale simple necesare pentru a comunica în această lume virtuală simplificată. SHRDLU (un cuvânt absurd format din șiruri de litere pe o tastatură Linotype) ar putea descrie obiecte, să răspundă la întrebări despre relațiile lor și să schimbe lumea blocurilor ca răspuns la comenzile de intrare. Ea avea chiar și o anumită memorie și dacă i-ai cerut să mute „conul roșu” și apoi ai scris despre un anume con, ea a presupus că te referi la acest con roșu, și nu la altul.

SHRDLU a fost un semn că se înregistrau progrese uriașe în domeniul AI. Dar a fost doar o iluzie. Când Winograd a încercat să extindă lumea blocurilor programului, regulile necesare pentru a lua în considerare cuvintele suplimentare și complexitatea gramaticală au devenit de necontrolat. După doar câțiva ani, a renunțat și a părăsit domeniul AI pentru a se concentra asupra altor cercetări. „Restricțiile s-au dovedit a fi mult mai puternice decât păreau la momentul respectiv”, spune el.

Winograd a decis că este imposibil să înveți o mașină să înțeleagă cu adevărat limba folosind instrumentele disponibile la acea vreme. Problema, potrivit lui Hubert Dreyfus, profesor de filozofie la Universitatea din California, Berkeley, în cartea sa din 1972 What Computers Can't Do, este că multe acțiuni umane necesită o înțelegere instinctivă care nu poate fi specificată printr-un set de reguli simple. Acesta este motivul pentru care, înainte de meciul dintre Sedol și AlphaGo, mulți experți se îndoiau că mașinile ar fi capabile să stăpânească jocul Go.

Dar în timp ce Dreyfus își exprima punctul de vedere, câțiva cercetători dezvoltau o abordare care, în cele din urmă, ar oferi mașinilor tipul de inteligență de care aveau nevoie. Inspirați de neuroștiință, ei au experimentat cu rețele neuronale artificiale - straturi de simulări matematice ale neuronilor care pot fi antrenați să declanșeze ca răspuns la intrări specifice. La început, aceste sisteme erau incredibil de lente și abordarea a fost respinsă ca nepractică pentru logică și raționament. Cu toate acestea, capacitatea cheie a rețelelor neuronale a fost capacitatea de a învăța ceva care nu fusese programat manual, iar ulterior s-a dovedit util pentru sarcini simple, cum ar fi recunoașterea scrisului de mână. Această abilitate a găsit o utilizare comercială în anii 1990 pentru a citi numerele din cecuri. Susținătorii metodei erau încrezători că, în timp, rețelele neuronale vor permite mașinilor să facă mult mai mult. Ei au susținut că într-o zi această tehnologie va ajuta la recunoașterea limbajului.

În ultimii ani, rețelele neuronale au devenit mai complexe și mai puternice. Abordarea a înflorit datorită îmbunătățirilor matematice cheie și, mai important, hardware-ului computerului mai rapid și disponibilității unor cantități mari de date. Până în 2009, cercetătorii de la Universitatea din Toronto au arătat că rețelele de învățare profundă multistrat ar putea recunoaște vorbirea cu o acuratețe record. Și în 2012, același grup a câștigat o competiție de viziune computerizată folosind un algoritm de învățare profundă care a arătat o acuratețe uimitoare.

O rețea neuronală de învățare profundă recunoaște obiectele din imagini folosind un truc simplu. Un strat de neuroni simulați primește intrare sub forma unei imagini, iar unii dintre neuroni se declanșează ca răspuns la intensitatea pixelilor individuali. Semnalul rezultat trece prin multe straturi de neuroni interconectați înainte de a ajunge la stratul de ieșire, care semnalează observarea unui obiect. O tehnică matematică numită backpropagation este utilizată pentru a ajusta sensibilitatea neuronilor rețelei pentru a crea răspunsul corect. Acesta este pasul care oferă sistemului posibilitatea de a învăța. Diferite straturi din rețea răspund la proprietăți precum marginile, culorile sau textura. Astfel de sisteme sunt acum capabile să recunoască obiecte, animale sau fețe cu o acuratețe care rivalizează cu cea a oamenilor.

Există o problemă evidentă cu aplicarea tehnologiei de deep learning la limbă. Cuvintele sunt simboluri arbitrare și acesta este ceea ce le deosebește în esență de imagini. Două cuvinte pot avea același sens și pot conține litere complet diferite. Și același cuvânt poate însemna lucruri diferite în funcție de context.

În anii 1980, cercetătorii au venit cu ideea inteligentă de a transforma limba într-un tip de problemă pe care o rețea neuronală ar putea face față. Ei au arătat că cuvintele pot fi reprezentate ca vectori matematici, permițând calcularea asemănărilor cuvintelor înrudite. De exemplu, „barcă” și „apa” sunt apropiate în spațiul vectorial, deși arată diferit. Cercetătorii de la Universitatea din Montreal conduși de Yoshua Bengio și un alt grup de la Google au folosit această idee pentru a construi rețele în care fiecare cuvânt dintr-o propoziție este folosit pentru a construi o reprezentare mai complexă. Geoffrey Hinton, profesor la Universitatea din Toronto și un important cercetător în domeniul învățării profunde, care lucrează și la Google, numește acest lucru „vector mental”.

Folosind două astfel de rețele, este posibil să faci traduceri dintr-o limbă în alta cu o acuratețe excelentă. Și combinând aceste tipuri de rețele cu una care recunoaște obiectele din imagini, poți obține subtitrări surprinzător de precise.

Sensul vieții

Stând într-o sală de conferințe din inima sediului plin de viață al Google Mountain View, California, unul dintre cercetătorii companiei care au dezvoltat abordarea, Kuok Li, vorbește despre ideea unei mașini care poate ține conversații reale. Ambiția lui Lee explică modul în care aparatele vorbitoare ar putea fi utile. „Am nevoie de o modalitate de a simula gândurile într-o mașină”, spune el. „Și dacă vrei să simulezi gânduri, poți întreba mașina ce gândește.”

Google deja învață computerele sale elementele de bază ale limbii. În mai, compania a dezvăluit Parsey McParseface, un sistem capabil să recunoască sintaxa, substantivele, verbele și alte elemente ale textului. Este ușor de văzut cum înțelegerea limbajului poate ajuta o companie. Algoritmul de căutare Google urmărea pur și simplu cuvintele cheie și legăturile dintre paginile web. RankBrain citește acum textul paginii pentru a-i înțelege semnificația și pentru a îmbunătăți rezultatele căutării. Lee vrea să ducă această idee și mai departe. Adaptând un sistem care s-a dovedit util pentru traducerea și subtitrărea imaginilor, el și colegii săi au creat Smart Reply, care citește conținutul e-mailurilor Gmail și sugerează posibile răspunsuri. De asemenea, au creat un program care a învățat din chat-ul de asistență Google pentru a răspunde la întrebări tehnice simple.

Lee a creat recent un program care poate genera răspunsuri acceptabile la întrebări dificile. S-a instruit pe dialoguri din 18.900 de filme. Unele răspunsuri sunt ciudat de exacte. De exemplu, Lee a întrebat: „Care este sensul vieții?”, iar programul a răspuns: „În slujba binelui mai mare”. „Nu este un răspuns rău”, își amintește el zâmbind. „Poate mai bine decât mi-aș fi răspuns eu.”

Există doar o problemă care devine evidentă atunci când ne uităm la mai multe răspunsuri ale sistemului. Când Lee a întrebat: „Câte picioare are o pisică?”, sistemul a răspuns: „Cred că patru”. Apoi a întrebat: „Câte picioare are un centipede?” și a primit răspunsul ciudat: „Opt”. În esență, programul lui Lee nu știe despre ce vorbește. Ea înțelege că anumite combinații de simboluri merg împreună, dar nu înțelege lumea reală. Ea nu știe cum arată un centiped sau cum se mișcă. Este încă o iluzie de inteligență, fără bun simț, pe care oamenii o iau de bună. Sistemele de învățare profundă sunt destul de șocante în acest sens. Sistemul de subtitrări a imaginilor de la Google face uneori greșeli ciudate, cum ar fi descrierea unui semn rutier ca un frigider plin cu alimente.

Printr-o coincidență ciudată, vecinul lui Terry Winograd din Palo Alto s-a dovedit a fi un om care ar putea ajuta computerele să înțeleagă mai bine sensul real al cuvintelor. Fei-Fei Li, directorul Laboratorului de Inteligență Artificială Stanford, era în concediu de maternitate în timpul vizitei mele, dar m-a invitat acasă și mi-a prezentat cu mândrie copilul ei de trei luni, Phoenix. „Observați că se uită la tine mai mult decât la mine”, a spus Lee în timp ce Phoenix se uita la mine. - Asta pentru că ești nou; Aceasta este recunoașterea facială timpurie.”

Li și-a petrecut cea mai mare parte a carierei cercetând învățarea automată și viziunea pe computer. În urmă cu câțiva ani, sub conducerea ei, s-a încercat crearea unei baze de date cu milioane de imagini de obiecte, fiecare dintre acestea fiind semnată cu cuvintele cheie corespunzătoare. Dar Li crede că mașinile au nevoie de o înțelegere mai sofisticată a ceea ce se întâmplă în lume, iar anul acesta echipa ei a lansat o altă bază de date de imagini cu adnotări mult mai bogate. Oamenii au scris zeci de legende pentru fiecare imagine: „Câine pe skateboard”, „Câinele are blana groasă și curgătoare”, „Drum cu crăpături” și așa mai departe. Ei speră că sistemele de învățare automată vor învăța să înțeleagă lumea fizică. „Partea de limbaj a creierului primește o mulțime de informații, inclusiv de la sistemul vizual”, spune Lee. „O parte importantă a AI va fi integrarea acestor sisteme.”

Acest proces este mai aproape de copiii care învață să asocieze cuvintele cu obiecte, relații și acțiuni. Dar analogia cu predarea oamenilor merge doar atât de departe. Copiii nu au nevoie să vadă un câine pe un skateboard pentru a-l imagina sau pentru a-l descrie în cuvinte. Lee crede că AI și instrumentele de învățare automată de astăzi nu vor fi suficiente pentru a crea AI adevărată. „Nu va fi doar învățare profundă cu un set mare de date”, spune ea. „Noi, oamenii, suntem foarte răi la calculele de date mari, dar foarte buni la abstracții și creativitate.”

Nimeni nu știe cum să doteze mașinile cu aceste calități umane sau dacă este chiar posibil. Există ceva unic uman în aceste calități care împiedică AI să le posede?

Oamenii de știință cognitiv, precum Tenenbaum de la MIT, cred că rețelelor neuronale de astăzi lipsesc componente critice ale inteligenței – indiferent cât de mari sunt rețelele. Oamenii pot învăța relativ repede din cantități relativ mici de date și au capacitatea încorporată de a modela eficient lumea tridimensională. „Limbajul este construit pe alte capacități care sunt probabil mai profunde și prezente la sugari chiar înainte de a începe să vorbească limbajul: percepția vizuală a lumii, lucrul cu sistemul nostru motor, înțelegerea fizicii lumii și a intențiilor altor creaturi”, Tenenbaum spune.

Dacă are dreptate, atunci fără încercări de a simula învățarea umană, modelele mentale și psihologia, va fi foarte dificil să recreați înțelegerea limbajului de către AI.

Explica-te

Biroul lui Noah Goodman din departamentul de psihologie din Stanford este aproape gol, cu excepția câtorva picturi abstracte pe un perete și a câtorva plante crescute. Când am ajuns, Goodman mâzgălea pe laptop cu picioarele goale pe masă. Ne-am plimbat prin campusul însorit pentru a cumpăra cafea cu gheață. „Particularitatea limbajului este că se bazează nu numai pe o cantitate mare de informații despre limbă, ci și pe o înțelegere umană universală a lumii din jurul nostru, iar aceste două domenii de cunoaștere sunt implicit legate între ele”, explică el. .

Goodman și studenții săi au dezvoltat limbajul de programare Webppl, care poate fi folosit pentru a oferi computerelor bunul simț probabilistic care se dovedește a fi destul de important în conversații. O versiune experimentală poate recunoaște jocuri de cuvinte, în timp ce cealaltă poate recunoaște hiperbole. Dacă îi spui că unii oameni trebuie să petreacă „pentru totdeauna” așteptând o masă într-un restaurant, ea va presupune automat că sensul literal al cuvântului este puțin probabil să fie folosit în acest caz și că oamenii sunt probabil să aștepte destul de mult. timp și devin iritați. Sistemul nu este încă o inteligență adevărată, dar arată cum noile abordări pot ajuta programele AI să vorbească într-un mod puțin mai realist.

Exemplul lui Goodman arată, de asemenea, cât de dificil va fi să predați limbajul mașinilor. Înțelegerea semnificației „eternității” într-un anumit context este un exemplu a ceea ce sistemele AI vor trebui să învețe și este de fapt un lucru destul de simplu și rudimentar.

Cu toate acestea, în ciuda complexității și complexității sarcinii, succesele inițiale ale cercetătorilor care folosesc învățarea profundă pentru a recunoaște tipare sau pentru a juca Go da speranță că suntem în pragul unei descoperiri în domeniul limbajului. În acest caz, această descoperire a sosit exact la timp. Dacă AI trebuie să devină un instrument universal, care îi ajută pe oameni să-și completeze și să-și îmbunătățească propria inteligență și să îndeplinească sarcini într-o simbioză fără întreruperi, atunci limbajul este cheia pentru atingerea acestei stări. Mai ales dacă sistemele AI folosesc din ce în ce mai mult învățarea profundă și alte tehnologii pentru a se programa.

„În general, sistemele de învățare profundă sunt uimitoare”, spune John Leonard, profesor care studiază vehiculele autonome la MIT. „Pe de altă parte, munca lor este destul de greu de înțeles.”

Toyota, care explorează diverse tehnologii de conducere autonomă, a lansat un proiect de cercetare la MIT condus de Gerald Sussman, expert în AI și limbaje de programare, cu scopul de a dezvolta un sistem de conducere autonomă care să explice de ce a făcut ceea ce a făcut. la un moment dat. Modul evident de a da o astfel de explicație ar fi verbal. „Construirea sistemelor care sunt conștiente de cunoștințele lor este o sarcină foarte dificilă”, spune Leonard, care conduce un alt proiect Toyota la MIT. „Dar da, în mod ideal ar trebui să dea nu doar un răspuns, ci și o explicație.”

La câteva săptămâni după ce m-am întors din California, m-am întâlnit cu David Silver, un cercetător Google DeepMind și dezvoltator al AlphaGo. El a vorbit despre meciul cu Sedol la o conferință științifică la New York. Silver a explicat că atunci când programul și-a făcut mișcarea decisivă în al doilea joc, echipa sa a fost la fel de surprinsă ca oricine. Tot ce au putut vedea a fost că AlphaGo a prezis șansele de câștig, iar această predicție s-a schimbat puțin după mutarea 37. Doar câteva zile mai târziu, după ce a analizat cu atenție jocul, echipa a făcut o descoperire: după ce a digerat jocurile anterioare, programul a calculat că un jucător uman ar putea face o astfel de mișcare cu o probabilitate de 1 la 10.000 și jocurile sale de antrenament au arătat că așa o manevră a oferit un avantaj poziţional neobişnuit de puternic .

Deci, într-un fel, mașina știa că această mișcare va lovi punctul slab al lui Sedol.

Silver a spus că Google analizează mai multe oportunități de a comercializa tehnologia, inclusiv asistenți inteligenți și instrumente de asistență medicală. După prelegere, l-am întrebat despre importanța de a putea comunica cu IA care controlează astfel de sisteme. — O întrebare interesantă, spuse el după o pauză. – Pentru unele aplicații, acest lucru poate fi util. De exemplu, în domeniul sănătății poate fi important să știm de ce a fost luată o anumită decizie.”

Într-adevăr, IA devin din ce în ce mai complexe și complicate și este foarte dificil să ne imaginăm cum am lucra cu ele fără limbaj - fără capacitatea de a le întreba „De ce?” Mai mult, capacitatea de a comunica cu ușurință cu computerele le-ar face mai utile și ar părea ca o magie. La urma urmei, limba este cel mai bun mod de a înțelege și de a interacționa cu lumea. E timpul ca mașinile să ne ajungă din urmă.

Procesul de creare a inteligenței artificiale, la prima vedere, pare a fi o sarcină destul de complicată. Observând aceste exemple frumoase de AI, puteți înțelege că este posibilă crearea de programe interesante cu AI. În funcție de scop, sunt necesare niveluri diferite de cunoștințe. Unele proiecte necesită cunoștințe profunde de AI, alte proiecte necesită doar cunoașterea unui limbaj de programare, dar principala întrebare cu care se confruntă programatorul. Ce limbaj să alegi pentru programarea cu inteligență artificială? Iată o listă de limbi AI care pot fi utile.

LISP


Primul limbaj de calculator folosit pentru a crea inteligența artificială este LISP. Acest limbaj este destul de flexibil și extensibil. Caracteristici precum prototiparea rapidă și macrocomenzile sunt foarte utile în crearea AI. LISP este un limbaj care simplifică problemele complexe. Sistemul său puternic de orientare pe obiecte face din LISP unul dintre cele mai populare limbaje de programare pentru inteligența artificială.

Java

Principalele avantaje ale acestui limbaj bogat în caracteristici sunt: ​​transparența, portabilitatea și mentenabilitatea. Un alt beneficiu al limbajului Java este versatilitatea acestuia. Dacă ești începător, vei fi bucuros să afli că există sute de tutoriale video online care îți vor face învățarea mai ușoară și mai eficientă.

Principalele caracteristici ale java sunt: ​​depanare ușoară, experiență bună de utilizare, ușurință în lucrul cu proiecte mari. Proiectele create folosind limbajul Java au o interfață atractivă și simplă.

Prolog

Acest limbaj de programare simbolic interactiv este popular pentru proiectele care necesită logică. Cu un cadru puternic și flexibil, este utilizat pe scară largă pentru programarea non-numerică, demonstrarea teoremelor, procesarea limbajului natural, sistemele expert și inteligența artificială în general.

Prolog este un limbaj declarativ cu logică formală. Dezvoltatorii de inteligență artificială îl apreciază pentru nivelul său ridicat de abstractizare, mecanismul de căutare încorporat, non-determinism etc.

Piton

Python este utilizat pe scară largă de programatori datorită gramaticii și sintaxei curate, designului frumos. Diverse structuri de date, o grămadă de cadre de testare, un echilibru de programare la nivel înalt și la nivel scăzut care fac din Python unul dintre cele mai populare limbaje de programare pentru inteligența artificială.

Istoria dezvoltării AI

Pentru a vedea legătura dintre AI și limbajul de programare, să ne uităm la cele mai importante evenimente din istoria AI. Totul a început în 1939, când robotul Electro a fost prezentat la Târgul Mondial. Următorul robot a fost construit în 1951 de către Edmund Berkeley.

Robotul Robbie a fost construit în 1956. Din păcate, nu există informații despre cum a fost dezvoltat. În 1958, a fost inventat limbajul de programare LISP. Deși acest limbaj a fost dezvoltat acum 60 de ani, este încă limba principală pentru multe programe de inteligență artificială.

În 1961 a fost construită UNIMATE. Acesta este primul robot industrial produs în masă. Acest robot a fost folosit de General Motors pentru a lucra pe o linie de producție. Pentru a face UNIMATE, oamenii de știință au folosit Val, o variabilă de asamblare. Acest limbaj constă din fraze simple, comenzi de monitorizare și instrucțiuni care se explică de la sine.

Sistemul de inteligență artificială Dendral a fost construit în 1965. A ajutat la determinarea cu ușurință a structurii moleculare a compușilor organici. Acest sistem a fost scris în Lisp.

În 1966, Weizenbaum a creat-o pe Eliza, primul partener de conversație virtual. Unul dintre cele mai cunoscute modele se numea Doctorul, el a răspuns la întrebări în stilul unui psihoterapeut. Acest bot a fost implementat prin compararea mostrelor de echipamente. Prima versiune a lui Eliza a fost scrisă în SLIP, lista de procesare a limbii a fost dezvoltată de Weizenbaum. Mai târziu, una dintre versiunile sale a fost rescrisă în Lisp.

Primul robot mobil programat în Lisp a fost Sheki. Folosind programe de rezolvare a problemelor de tampoane și senzori, gâtul s-a mișcat, a aprins și stins luminile, a urcat și a coborât, a deschis uși, a închis ușile, a împins obiecte și a mutat lucruri. Sheki s-a deplasat cu o viteză de 5 km pe oră.

În următorii 15 ani, lumea a văzut multe invenții uimitoare: robotul Denning Sentry, LMI Lambda, Omnibot 2000, drona MQ-1 Predator, Ferby, câine robot AIBO și Honda ASIMO.

În 2003, iRobot a inventat robotul aspirator Roomba. Dezvoltat în Lisp, acest aspirator autonom curăță podele folosind algoritmi specifici. Detectează obstacolele și le evită.


Ce limbaj de programare folosiți pentru a dezvolta programe AI? Scrieți despre munca dvs. în comentarii sau în grupul nostru VKontakte.

Unde a vorbit despre unul dintre obiectivele sale care l-au condus la profesie - dorința de a învăța principiul muncii și de a învăța cum să creeze el însuși roboți de jocuri.

Dar, într-adevăr, dorința de a crea inteligență artificială perfectă, fie că este vorba de un model de joc sau de un program mobil, a fost cea care ne-a împins pe mulți dintre noi pe calea unui programator. Problema este că în spatele tonelor de material educațional și a realității dure a clienților, tocmai această dorință a fost înlocuită cu o simplă dorință de autodezvoltare. Pentru cei care nu au început încă să-și împlinească visul din copilărie, iată un scurt ghid pentru crearea unei inteligențe artificiale reale.

Etapa 1. Dezamăgire

Când vorbim despre crearea unor roboți chiar și simpli, ochii ni se umplu de strălucire și sute de idei ne trec prin cap cu privire la ceea ce ar trebui să poată face. Cu toate acestea, când vine vorba de implementare, se dovedește că cheia dezvăluirii modelului real de comportament este... matematica. Pentru a fi puțin mai specific, iată o listă cu secțiunile sale care trebuie studiate cel puțin în formatul unui învățământ universitar:

    Algebră liniară;

  • Teoria grafurilor;

    Teoria Probabilității și Statistica Matematică.

Acesta este rampa științifică pe care se va construi programarea ulterioară. Fără cunoașterea și înțelegerea acestei teorii, toate ideile se vor rupe rapid din cauza interacțiunii cu o persoană, deoarece inteligența artificială nu este de fapt nimic altceva decât un set de formule.

Etapa 2. Acceptare

Când aroganța este puțin doborâtă de literatura studențească, poți începe să înveți limbi străine. Încă nu merită să te grăbești la LISP sau altele, mai întâi trebuie să înveți cum să lucrezi cu variabile și stări cu o singură valoare. Este perfect atât pentru învățarea rapidă, cât și pentru dezvoltarea ulterioară, dar, în general, puteți lua ca bază orice limbă care are bibliotecile corespunzătoare.

Etapa 3. Dezvoltare

Acum să trecem direct la teoria AI. Acestea pot fi împărțite aproximativ în 3 categorii:

    AI slabă – roboți pe care îi vedem în jocurile pe calculator sau simpli asistenți precum Siri. Ei fie îndeplinesc sarcini foarte specializate, fie sunt un complex nesemnificativ al acestora, iar orice imprevizibilitate a interacțiunii îi derutează.

    AI puternice sunt mașini a căror inteligență este comparabilă cu creierul uman. În prezent nu există reprezentanți adevărați ai acestei clase, dar computere precum Watson sunt foarte aproape de atingerea acestui obiectiv.

    AI perfectă este viitorul, un creier de mașină care ne va depăși capacitățile. Stephen Hawking, Elon Musk și franciza de film Terminator avertizează despre pericolele unor astfel de evoluții.

Desigur, ar trebui să începeți cu cei mai simpli roboți. Pentru a face acest lucru, amintiți-vă de vechiul joc „Tic Tac Toe” atunci când utilizați un câmp 3x3 și încercați să vă dați seama de algoritmii de bază ai acțiunilor: probabilitatea de victorie cu acțiuni fără erori, locurile cele mai de succes pe teren pentru plasați o piesă, necesitatea reducerii jocului la egalitate și așa mai departe.

După cum înțelegeți chiar și din nume, acestea sunt API-uri care vă vor permite să creați o aparență de AI serioasă fără a pierde timpul.

Etapa 5. Munca

Acum că aveți o idee clară despre cum să creați AI și ce să utilizați, este timpul să vă duceți cunoștințele la nivelul următor. În primul rând, acest lucru va necesita studierea unei discipline numită „Învățare automată”. În al doilea rând, trebuie să învățați cum să lucrați cu bibliotecile corespunzătoare ale limbajului de programare ales. Pentru Python-ul pe care îl analizăm, acestea sunt Scikit-learn, NLTK, SciPy, PyBrain și Nump. În al treilea rând, în dezvoltare nu există nicio cale de ocolire

Subiectul inteligenței artificiale a tulburat omenirea de când computerele au pătruns mai întâi în fiecare casă și apoi în fiecare buzunar. Un astfel de fenomen ca asistent virtual nu este ciudat astăzi, fiind perceput ca o întâmplare modernă de zi cu zi.

În același timp, oricine poate crea inteligență artificială folosind aproape orice limbaj de programare, este doar o chestiune de comoditate și capabilități. Dar există limbi create sau adaptate special pentru AI. Unele dintre ele sunt destul de populare, altele sunt o zonă de cunoaștere pentru un cerc limitat de oameni. Acesta din urmă va fi discutat astăzi.

AIML

Proiectul A.L.I.C.E. - aceasta nu este o referire la celebra franciză Resident Evil, ci numele unui interlocutor virtual capabil să vorbească limbajul uman. Condițiile preliminare pentru apariția sa datează din 1966 și proiectul Eliza (ELIZA) - o bază de date construită pe principiul răspunsurilor șablon. La sfârșitul anilor 90 a fost dezvoltat de A.L.I.C.E. sub forma unor caracteristici noi sau structuri mai complexe. Pentru a crea acest lucru, a fost folosit limbajul AIML (Artificial Intelligence Markup Language).

De fapt, lucrul cu AIML este incredibil de simplu, chiar dacă nu ești foarte familiarizat cu programarea. Sarcina se rezumă la crearea unei întrebări, fie lipsită de ambiguitate, fie cu unele necunoscute (înlocuirea cuvintelor de același tip) și a unui răspuns receptiv, din nou precis sau cu o variabilă încorporată (de exemplu, nume, vârstă etc.) . Dacă ați jucat vreodată jocuri pe computer cu elemente RPG, înțelegeți perfect cum funcționează un astfel de algoritm.

IPL

Limbajul de procesare a informațiilor a fost dezvoltat în 1956, este în esență un limbaj de asamblare pentru liste și se află undeva pe partea inversă a înțelegerii în raport cu AIML. Aici trebuie să operați nu cu limbajul uman, ci cu un număr infinit de simboluri, registre, comenzi și celule. Este absolut ineficient în ceea ce privește construirea unui cyborg condiționat, adică un sistem complex, dar poate determina tipul de date sau cantitatea de memorie alocată incredibil de rapid. Dacă, desigur, poți crea ceva pe el.

Nu are prea mult sens să vorbim despre asta mai detaliat, deoarece astăzi practic nu este folosit, fiind înlocuit cu limbi mult mai convenabile și mai ușor de înțeles.

FÂȘI

Dar acesta este un exemplu foarte interesant. Numele reprezintă soluția de probleme de la Stanford Research Institute și este așa-numitul limbaj de acțiune. Structura unui program STRIPS constă din trei blocuri: starea inițială; o listă de obiective, adică starea care ar trebui să fie obținută ca rezultat; acțiunile în sine sunt corpul principal al programului.

Iată un exemplu simplu în STRIPS de pe Wikipedia. Există o maimuță în punctul A, sunt banane agățate în punctul B și există o cutie în punctul C pe care maimuța se poate urca pentru a apuca bananele:

Stare inițială: At(A), Level(low), BoxAt(C), BananasAt(B)
Starea obiectivului: Au (banane)
Acțiuni:
// trece de la X la Y
_Mutați(X, Y)_
Condiții preliminare: La (X), Nivel (scăzut)
Postcondiții: nu At(X), At(Y)

// urcă pe cutie
_ClimbUp(Locație)_
Condiții preliminare: At(Location), BoxAt(Location), Level(low)
Postcondiții: Nivel (înalt), nu Nivel (scăzut)

// cobor din cutie
_ClimbDown(Locație)_
Condiții preliminare: At(Location), BoxAt(Location), Level(high)
Postcondiții: Nivel (scăzut), nu Nivel (înalt)

// mută maimuța și cutia de la X la Y
_MoveBox(X, Y)_
Condiții preliminare: At(X), BoxAt(X), Level(low)
Postcondiții: BoxAt(Y), nu BoxAt(X), At(Y), nu At(X)

// ia bananele
_TakeBananas(Locație)_
Condiții preliminare: La (Locație), BananeLa (Locație), Nivel (înalt)
Postcondiții: au (banane)

De acord, aș vrea să încerc să scriu eu ceva într-o astfel de limbă.

POP-11

Revenind la primele încercări serioase de a crea inteligență artificială în anii ’60, nu se poate să nu menționăm limbajul POP-1, care a fost influențat de multe limbi din acea vreme, dar nu și-a câștigat faima. Apropo, POP-2 a avut mult mai mult succes și chiar a supraviețuit până astăzi, versiunea actuală este POP-11, concepută pentru a funcționa cu mediul de dezvoltare Poplog (cu toate acestea, puteți utiliza LISP, Prolog și Standard ML în. aceasta).

Limbajul POP-11 este funcțional și multi-paradigmă, cu o sintaxă derivată din ALGOL și o abordare generală a codului mai asemănătoare cu LISP. Iată un mic fragment din codul de gestionare a memoriei:

definesc auxmemo(O1, Prop, P,n, ref_i)->O2;

Lvars O1,O2, Prop, P, n,i, ref_i;
ref_i.cont-1 ->> i -> ref_i.cont;
dacă i = 0 atunci n -> ref_i.cont;
clearproperty(Prop);
endif;

P(O1) -> O2;
O2 -> Prop(O1);

;;; P: Procedura
;;; n: numărul de valori de păstrat, apoi memoria cache este șters și
;;; repornește memorarea.
;;;
definiți newmemo(P,n);
newanyproperty(, n, false, false, syshash, nonop=, false, undef,
auxmemo(%P,n,consref(n)%));
enddefine;

După cum puteți vedea, nu există nimic intimidant sau foarte diferit de aspectul obișnuit al limbajelor procedurale populare. Posibilitățile sunt destul de largi - de la sisteme de antrenament până la deja menționata inteligență artificială Elisa.

Wolfram

Un limbaj dezvoltat de Wolfram Research și inclus în sistemul de algebră computerizată Mathematica. Limbajul este multi-paradigma, specializat în calcule simbolice, programare logică și funcțională. În ciuda faptului că limba există de la sfârșitul anilor 80 ai secolului XX, a fost lansată oficial cu doar 4 ani în urmă.

Desigur, Wolfram nu a fost conceput special pentru inteligența artificială, dar ca și MATLAB, s-a ajuns în cele din urmă la nevoia de a procesa datele ținând cont de modelare și prognoză și de a lucra cu rețele neuronale.

Apropo, iată un fapt interesant legat indirect de Wolfram. Limbajul extraterestră, pe care poate l-ați văzut în recentul film „Arrival”, a fost dezvoltat de creatorii lui Wolfram (tată și fiu) și a moștenit parțial algoritmii săi.

Planificator

Ultimul în ordine astăzi, dar nu ultimul la cerere, este Planificatorul de limbaj funcțional-logic. A fost dezvoltat la începutul anilor 60 și 70 ai secolului al XX-lea la MIT și a fost conceput pentru a extinde capacitățile limbajului LISP deja popular. În sintaxă, acest lucru se traduce printr-o lizibilitate crescută cauzată, de exemplu, de capacitatea de a folosi atât parantezele, cât și parantezele pătrate. Dar, desigur, aceasta nu este esența sa principală.

Principalul confort al Planner este mecanismele sale de lucru cu medii și sarcini variabile. Când dezvoltați IA, specificați condiții inițiale, numite „teoreme”, care descriu mediul care trebuie utilizat. Pot exista multe teoreme, dar dacă mediul nu se potrivește, cele originale vor fi respinse și altele vor fi confirmate. De asemenea, în procesul de execuție a programului și a mecanismelor de forță brută, anumite soluții care nu au un succes final pot fi respinse și excluse de la analiza ulterioară. De obicei, programatorul trebuie să implementeze astfel de lucruri pe cont propriu folosind o cantitate mare de text, dar în Planner durează doar câteva rânduri. Dar acesta este tocmai principiul principal care distinge limbajul AI de orice altă limbă populară.

Lucrând la intersecția dintre cibernetică, psihologie și behaviorism (știința comportamentului) și un inginer care alcătuiește algoritmi pentru sisteme robotice industriale, ale căror instrumente principale includ matematică superioară și mecatronică, aceștia lucrează în cea mai promițătoare industrie din următorii ani - robotica . Roboții, în ciuda noutății comparative a termenului, au fost mult timp familiari omenirii. Iată doar câteva fapte din istoria dezvoltării mecanismelor inteligente.

Oameni de Fier Henri Droz

Chiar și în miturile Greciei Antice erau menționați sclavii mecanici, creați de Hefaistos pentru a efectua lucrări grele și monotone. Iar primul inventator și dezvoltator al unui robot umanoid a fost legendarul Leonardo da Vinci. Cele mai detaliate desene ale geniului italian au supraviețuit până în zilele noastre, descriind un cavaler mecanic capabil să imite mișcările umane cu brațele, picioarele și capul.

Crearea primelor mecanisme automate cu control program a început la sfârșitul secolului al XV-lea de către ceasornicarii europeni. Cei mai de succes în acest domeniu au fost specialiștii elvețieni, tatăl și fiul Pierre-Jacques și Henri Droz. Au creat o întreagă serie („băiat scriitor”, „desenator”, „muzician”), al cărei control se baza pe mecanisme de ceas. În onoarea lui Henri Droz, mai târziu, toate automatele umanoide programabile au început să fie numite „androidi”.

La originile programării

Bazele programării roboților industriali au fost puse la începutul secolului al XIX-lea în Franța. Aici au fost dezvoltate primele programe pentru mașini automate textile (filare și țesut). Armata în creștere rapidă a lui Napoleon avea mare nevoie de uniforme și, în consecință, de țesături. Un inventator din Lyon, Joseph Jacquard, a propus o modalitate de a reconfigura rapid un răzbătut pentru a produce diferite tipuri de produse. Adesea, această procedură a necesitat o cantitate imensă de timp, un efort enorm și atenția unei întregi echipe. Esența inovației a fost utilizarea cardurilor de carton cu găuri perforate. Acele, ajungând în locurile tăiate, au mutat firele în modul necesar. Schimbarea cardurilor a fost efectuată rapid de către operatorul mașinii: carte perforată nouă - program nou - tip nou de țesătură sau model. Dezvoltarea franceză a devenit prototipul sistemelor automate moderne, roboți cu capacități de programare.

Ideea propusă de Jacquard a fost folosită cu entuziasm de mulți inventatori în dispozitivele lor automate:

  • Șeful departamentului de statistică S. N. Korsakov (Rusia, 1832) - în mecanismul de comparare și analiză a ideilor.
  • Matematicianul Charles Babbage (Anglia, 1834) - în Motorul Analitic pentru rezolvarea unei game largi de probleme matematice.
  • Inginer (SUA, 1890) - într-un dispozitiv pentru stocarea și prelucrarea datelor statistice (tabulator). Pentru înregistrare: în 1911 compania. Hollerith a fost numit IBM (International Business Machines).

Cardurile perforate au fost principalele medii de stocare până în anii 60 ai secolului trecut.

Mașinile inteligente își datorează numele unui dramaturg ceh În piesa „R.U.R.”, care a fost publicată în 1920, scriitorul a numit un robot o persoană artificială creată pentru zone dificile și periculoase de producție (robota. (cehă) - muncă grea). Ce diferențiază un robot de mecanisme și dispozitive automate? Spre deosebire de acesta din urmă, robotul nu numai că efectuează anumite acțiuni, urmând orbește algoritmul stabilit, dar este și capabil să interacționeze mai strâns cu mediul și cu persoana (operatorul), și să își adapteze funcțiile atunci când semnalele și condițiile externe se schimbă.

Este general acceptat că primul robot de lucru a fost proiectat și implementat în 1928 de inginerul american R. Wensley. Humanoidul „intelectual de fier” a fost numit Herbert Televox. Biologul Makoto Nishimura (Japonia, 1929) și soldatul englez William Richards (1928) revendică și ei laurii pionierilor. Mecanismele antropomorfe create de inventatori aveau o funcționalitate similară: puteau să-și miște membrele și capul, să execute comenzi vocale și sonore și să răspundă la întrebări simple. Scopul principal al dispozitivelor a fost acela de a demonstra realizările științifice și tehnice. Următoarea rundă în dezvoltarea tehnologiei a făcut posibilă crearea în curând a primilor roboți industriali.

Generație după generație

Dezvoltarea roboticii este un proces continuu, incremental. Până în prezent, au apărut trei generații distincte de mașini „inteligente”. Fiecare este caracterizat de anumiți indicatori și domenii de aplicare.

Prima generație de roboți a fost creată pentru un tip îngust de activitate. Mașinile sunt capabile doar să efectueze o anumită secvență de operații programată. Dispozitivele de control al roboților, circuitele și programarea exclud practic funcționarea autonomă și necesită crearea unui spațiu tehnologic special cu echipamentul suplimentar și sistemele de informare și măsurare necesare.

Mașinile din a doua generație sunt numite senzori sau adaptive. Programarea roboților se realizează luând în considerare un set mare de senzori externi și interni. Pe baza analizei informatiilor provenite de la senzori se dezvolta actiunile de control necesare.

Și, în sfârșit, a treia generație este roboți inteligenți care sunt capabili de:

  • Rezumă și analizează informațiile,
  • Îmbunătățiți și auto-învățați, acumulați abilități și cunoștințe,
  • Recunoașteți imaginile și schimbările din situație și, în conformitate cu aceasta, organizați activitatea sistemului dvs. executiv.

Inteligența artificială se bazează pe algoritmi și software.

Clasificare generala

La orice expoziție modernă reprezentativă de roboți, varietatea de mașini „inteligente” poate uimi nu numai oamenii obișnuiți, ci și specialiștii. Ce tipuri de roboți există? Clasificarea cea mai generală și semnificativă a fost propusă de omul de știință sovietic A.E. Kobrinsky.

Pe baza scopului și funcțiilor lor, roboții sunt împărțiți în producție, industrial și cercetare. Primul, in concordanta cu natura muncii prestate, poate fi tehnologic, de ridicare si transport, universal sau specializat. Cele de cercetare sunt concepute pentru a studia zone și zone care sunt periculoase sau inaccesibile pentru oameni (spațiul cosmic, interiorul pământului și vulcanii, straturile adânci ale oceanelor lumii).

După tipul de control putem distinge biotehnice (copiere, comandă, cyborg, interactiv și automat), prin principiu - programabil rigid, adaptabil și programabil flexibil. Dezvoltarea rapidă a tehnologiei moderne oferă dezvoltatorilor posibilități aproape nelimitate atunci când proiectează mașini inteligente. Dar un circuit și o soluție excelentă de proiectare vor servi doar ca un shell costisitor fără software-ul adecvat și suport algoritmic.

Pentru ca siliciul cu microprocesor să preia funcțiile creierului robotului, este necesar să „umplem” programul corespunzător în cristal. Limbajul uman obișnuit nu este capabil să ofere o formalizare clară a problemelor, acuratețea și fiabilitatea evaluării lor logice. Prin urmare, informațiile necesare sunt prezentate într-o anumită formă folosind limbaje de programare a robotului.

În conformitate cu sarcinile de management în curs de rezolvare, se disting patru niveluri ale unui astfel de limbaj special creat:

  • Nivelul cel mai scăzut este utilizat pentru a controla actuatoarele sub formă de valori precise ale mișcării liniare sau unghiulare a părților individuale ale sistemului inteligent,
  • Nivelul manipulatorului permite controlul general al întregului sistem, poziționând corpul de lucru al robotului în spațiu de coordonate,
  • Nivelul operațiunilor servește la formularea unui program de lucru prin indicarea secvenței de acțiuni necesare pentru a obține un anumit rezultat.
  • La cel mai înalt nivel - sarcini - programul indică fără detalii ce trebuie făcut.

Robotiștii se străduiesc să reducă roboții de programare la comunicarea cu ei în limbaje de nivel superior. În mod ideal, operatorul stabilește sarcina: „Asamblați motorul cu ardere internă al unei mașini” și se așteaptă ca robotul să ducă la bun sfârșit sarcina.

Nuanțe de limbaj

În robotica modernă, programarea roboților se dezvoltă de-a lungul a doi vectori: programarea orientată spre robot și programarea orientată spre probleme.

Cele mai comune limbaje orientate spre robot sunt AML și AL. Primul a fost dezvoltat de IBM doar pentru controlul mecanismelor inteligente de producție proprie. Al doilea, un produs al specialiștilor de la Universitatea Stanford (SUA), se dezvoltă activ și are un impact semnificativ asupra formării de noi limbi din această clasă. Un profesionist poate discerne cu ușurință trăsăturile caracteristice ale lui Pascal și Algol în limbă. Toate limbajele orientate spre robot descriu un algoritm ca o secvență de acțiuni ale unui mecanism „inteligent”. În acest sens, programul se dovedește adesea a fi foarte greoi și incomod în implementarea practică.

La programarea roboților în limbaje orientate spre probleme, programul specifică o secvență nu de acțiuni, ci de obiective sau poziții intermediare ale unui obiect. Cel mai popular limbaj din acest segment este limbajul AUTOPASS (IBM), în care starea mediului de lucru este reprezentată sub formă de grafice (vârfuri - obiecte, arce - conexiuni).

Antrenamentul robotilor

Orice robot modern este un sistem de învățare și de adaptare. Toate informațiile necesare, inclusiv cunoștințele și abilitățile, îi sunt transferate în timpul procesului de învățare. Acest lucru se realizează atât prin stocarea directă a datelor relevante în memoria procesorului (programare detaliată - eșantionare), cât și prin utilizarea senzorilor robotului (prin demonstrație vizuală) - toate mișcările și mișcările mecanismelor robotului sunt stocate în memorie și apoi reproduse în lucrare. ciclu. În timp ce învață, sistemul își rearanjează parametrii și structura și formează un model informațional al lumii externe. Aceasta este principala diferență dintre roboți și linii automate, mașini industriale cu o structură rigidă și alte instrumente tradiționale de automatizare. Metodele de predare enumerate au dezavantaje semnificative. De exemplu, la eșantionare, reconfigurarea necesită ceva timp și forță de muncă din partea unui specialist calificat.

Un program de programare a roboților prezentat de dezvoltatorii Laboratorului de Tehnologia Informației de la Massachusetts Institute of Technology (CSAIL MIT) la conferința internațională de automatizare industrială și robotică ICRA-2017 (Singapore) pare foarte promițător. Platforma C-LEARN creată de ei are avantajele ambelor metode. Acesta oferă robotului o bibliotecă de mișcări elementare cu constrângeri specificate (de exemplu, forța de prindere pentru un manipulator în conformitate cu forma și rigiditatea piesei). În același timp, operatorul demonstrează mișcările cheie robotului într-o interfață 3D. Sistemul, bazat pe sarcina la îndemână, generează o secvență de operații pentru a finaliza ciclul de lucru. C-LEARN vă permite să rescrieți un program existent pentru un robot cu un design diferit. Operatorul nu necesită cunoștințe aprofundate de programare.

Robotică și inteligență artificială

Experții de la Universitatea Oxford avertizează că tehnologia mașinilor va înlocui mai mult de jumătate din locurile de muncă actuale în următoarele două decenii. Într-adevăr, roboții lucrează de mult timp nu numai în zone periculoase și dificile. De exemplu, programarea a înlocuit semnificativ brokerii umani pe bursele mondiale. Câteva cuvinte despre inteligența artificială.

În mintea omului obișnuit, acesta este un robot antropomorf care poate înlocui o persoană în multe domenii ale vieții. Acest lucru este parțial adevărat, dar într-o măsură mai mare inteligența artificială este o ramură independentă a științei și tehnologiei, folosind programe de calculator, simulând gândirea „Homo sapiens”, opera creierului său. În stadiul actual de dezvoltare, AI ajută oamenii mai mult și îi distrează. Dar, potrivit experților, progresele suplimentare în domeniul roboticii și inteligenței artificiale pot pune o serie de întrebări morale, etice și juridice omenirii.

La târgul de roboți din acest an de la Geneva, cel mai avansat android din lume, Sophia, a anunțat că învață să fie om. În octombrie, Sophia a fost recunoscută drept cetățean al Arabiei Saudite cu drepturi depline, pentru prima dată în istoria inteligenței artificiale. Primul semn?

Tendințe majore în robotică

În 2017, experții din industria digitală au remarcat câteva soluții remarcabile în domeniul tehnologiilor de realitate virtuală. Nici robotica nu a fost omisă. Direcția de îmbunătățire a controlului unui mecanism robotic complex printr-o cască virtuală (VR) pare foarte promițătoare. Experții prezic cererea pentru o astfel de tehnologie în afaceri și industrie. Cazuri de utilizare probabile:

  • Controlul echipamentelor fără pilot (încărcătoare de depozit și manipulatoare, drone, remorci),
  • Efectuarea cercetărilor medicale și a operațiilor chirurgicale,
  • Dezvoltarea de obiecte și zone greu accesibile (fundul oceanului, regiuni polare). În plus, roboții de programare le permit să funcționeze autonom.

O altă tendință populară este mașina conectată. Mai recent, reprezentanții gigantului Apple au anunțat începutul dezvoltării propriei „drone”. Tot mai multe companii își exprimă interesul pentru crearea de mașini capabile să se deplaseze în mod independent pe drumuri accidentate, păstrând încărcătura și echipamentele.

Complexitatea crescândă a algoritmilor de programare a roboților și a învățării automate impune cerințe sporite resurselor de calcul și, în consecință, hardware-ului. Aparent, soluția optimă în acest caz ar fi conectarea dispozitivelor la infrastructura cloud.

Un domeniu important este robotica cognitivă. Creșterea rapidă a numărului de mașini „inteligente” îi obligă pe dezvoltatori să se gândească din ce în ce mai mult la cum să-i învețe pe roboți să interacționeze armonios.