Internetul, care a început să fie disponibil unui public mai larg la începutul anilor 1980, a transformat complet comunicarea umană și mediul de afaceri.

Acesta s-a dezvoltat din activităţile de cercetare realizate în anii 1960 și 1970, în special din proiectele militare ale Pentagonului, care este Ministerul Apărării al Statelor Unite. Scopul acestor proiecte era de a crea o reţea de comunicaţii descentralizată, distribuită pe întreaga suprafaţă a teritoriului SUA, care să poată asigura o formă de comunicare chiar și în cazul unui atac nuclear din partea potenţialilor inamici de atunci (Blocul Sovietic). Un alt aspect important al proiectării iniţiale a internetului, care rezultă indirect din cele două amintite anterior – descentralizare și distribuire geografică largă –, era abilitatea acestuia de a se organiza și de a se reconfigura automat, fără a fi nevoie de intervenţia unui om. Aceasta însemna că, dacă o parte a reţelei ar fi fost distrusă, restul reţelei ar fi putut să se reconfigureze pentru a continua să funcţioneze, chiar dacă la o capacitate redusă, deoarece nu exista un punct central care, odată distrus, să oprească întreaga reţea.

O analogie care să faciliteze înţelegerea modului în care era gândită această reţea este sistemul nervos uman. Dacă anumite conexiuni nervoase sunt deteriorate, organismul încearcă să găsească niște căi alternative pentru a restabili comunicarea între diferitele puncte relevante ale sistemului nervos, cum ar fi, de exemplu, între creier și mână. În mod similar, dacă o parte a internetului devine nefuncţională, reţeaua va găsi rute alternative pentru a asigura continuarea transmiterii informaţiilor. Desigur, există limite ale capacităţii de compensare a acestei pierderi, la fel ca în cazul sistemului nervos.

Transformarea datelor în biţi

Înainte de a descrie mai amănunţit modul de operare al internetului, este necesară clarificarea câtorva noţiuni de bază din lumea digitală. Un prim fundament este termenul digital. Ce înseamnă atunci când spunem că o valoare este reprezentată în format binar sau digital?

În lumea noastră, majoritatea măsurătorilor fizice sunt continue, adică pot avea o multitudine de valori între două puncte. De exemplu, temperatura: dacă spunem că o temperatură poate varia între 10 și 30 ℃, înseamnă că poate avea orice valoare în acest interval, cum ar fi 12,3 sau 27,9 ℃. Dacă avem instrumente de măsurare extrem de precise, putem obţine, de pildă, o temperatură de 21,98 ℃. De fapt, orice valoare din acest interval, oricâte zecimale ar avea după virgulă, este valabilă și utilizabilă.

Totuși, chiar și în acest interval limitat (10–30 ℃), există o infinitate de valori posibile. Acesta este un obstacol pentru calculatoarele moderne, care lucrează cu sisteme numerice digitale, deoarece acestea nu pot opera cu valori de precizie infinită. Atunci când spunem că există o „imposibilitate de a opera cu valori de precizie infinită”, ne referim la faptul că există întotdeauna o limită a preciziei unui număr, de exemplu, atunci când este procesat sau stocat într-un calculator, datorită naturii digitale a acestuia. Cu cât dorim o precizie mai mare (adică mai multe zecimale), cu atât avem nevoie de mai mulţi biţi pentru a stoca numărul, ceea ce duce la o utilizare mai mare a resurselor calculatorului.[1]

Soluţia o reprezintă „discretizarea” valorilor măsurate, adică limitarea intervalului de valori pe care o mărime poate să le ia. Aceasta înseamnă, în cazul exemplului folosit anterior, că valorile pe care temperatura le poate lua au fost limitate la un subset distinct de valori în intervalul 10–30 ℃. De exemplu, am putea avea doar următoarele valori: [10,0; 10,5; 11,0; 11,5; 12,0; 12,5… 28,5; 29,0; 29,5; 30,0]. Dacă temperatura măsurată este între două dintre aceste valori, se rotunjește la cea mai apropiată. Cu alte cuvinte, temperatura măsurată va avea o precizie de 0,5 ℃, și orice valoare măsurată trebuie să fie rotunjită către o astfel de valoare. Valoarea de 27,9 ℃ o să devină 28 ℃, iar cea de 12,3 ℃ se va rotunji la 12,5 ℃. Acest proces reprezintă primul pas către digitalizare.

Al doilea pas implică transformarea valorilor în format binar, adică într-o serie de 0 și 1. De exemplu, dacă temperatura măsurată este de 12,3 ℃, la primul pas o rotunjim la 12,5 ℃. Apoi, acest număr este transformat în cod binar, astfel:

  1. Valoarea de 12,5 se transformă într-un număr întreg, adică 125 (înmulţire cu 10).
  2. Orice număr întreg se poate reprezenta binar (adică printr-o combinaţie unică de 0 și 1). Pentru 125, codul este 01111101.
  3. Acest cod binar de opt cifre se numește byte, sau octet. Valorile în lumea digitală sunt adesea reprezentate ca multipli ai unui byte, deci orice număr întreg va fi codat în format binar ca un byte sau ca mai multe byte-uri, în funcţie de mărimea numărului.
  4. Toate valorile de temperatură din intervalul discret definit anterior (10–30 ℃) se vor reprezenta în formatul binar de mai sus, pentru fiecare valoare numerică decimală existând un cod binar unic echivalent.
  5. La operaţiile efectuate cu aceste valori binare, se va ţine cont de înmulţirea cu 10, iar rezultatele se vor ajusta în mod corespunzător.

Ce este un algoritm?

O altă noţiune de bază pentru era digitală este aceea de algoritm. Un algoritm este un set finit de instrucţiuni sau etape (pași) clar definite ce trebuie urmate într-o anumită ordine pentru a rezolva o clasă de probleme specifice. Spre exemplu, în discuţia anterioară despre digitalizare, am prezentat în etapa a doua cinci pași de trecere de la valori continue de temperatură (de exemplu, 12,98 ℃) la reprezentarea discretă binară echivalentă. Urmărirea secvenţei de pași în ordinea descrisă (în exemplul de mai înainte, etapele sunt mult simplificate) va duce la transformarea unei valori decimale într-o valoare (echivalentă) binară. Clasa de probleme specifică în acest caz este tocmai această transformare matematică dorită, care nu este limitată doar la temperatură, ci la orice altă valoare numerică similară.

Ce este un protocol?

Dacă algoritmul formalizează și descrie etapizat pașii care trebuie să fie urmaţi pentru a rezolva un tip de problemă, în cazul protocoalelor putem vorbi de o secvenţă de schimb de mesaje între două sau mai multe entităţi tehnologice. Protocoalele sunt prezente inclusiv în viaţa de zi cu zi, în interacţiunile umane curente. De la o astfel de analogie o să și pornim în descrierea lor.

Să presupunem că două persoane se întâlnesc pe stradă. Una dintre ele dorește să afle cât este ora curentă de la cealaltă persoană. Cum va proceda în acest scop? Conform regulilor de politeţe obișnuite, primul pas este să salute cealaltă persoană cu un mesaj adecvat, de exemplu: „Bună ziua”. Cealaltă persoană va răspunde în mod normal într-un mod similar, tot cu: „Bună ziua”. După ce s-a stabilit acest prim contact, urmează cererea propriu-zisă a primei persoane, adică întrebarea: „Spuneţi-mi, vă rog, cât este ora curentă?” La această întrebare, partenerul de discuţie va răspunde: „Ora curentă este 11:30.” După acest dialog, prima persoană va mulţumi („Mulţumesc”), iar cea de-a doua va răspunde eventual: „Cu plăcere!” După această secvenţă de mesaje, dialogul se încheie.

În acest scurt dialog sunt surprinse elemente esenţiale ale unui protocol.

Se observă că în protocolul uman există mesaje specifice trimise („Bună ziua”) și acţiuni specifice pe care le întreprindem ca răspuns la mesajele primite (răspundem tot cu: „Bună ziua”). De asemenea, reacţionăm într-un mod specific la alte evenimente (cum ar fi lipsa unui răspuns într-un anumit interval de timp, caz în care abandonăm în mod normal comunicarea).

Mesajele transmise și cele primite, acţiunile efectuate atunci când aceste mesaje sunt trimise sau primite și alte evenimente care au loc (cum ar fi întârzieri în răspunsuri etc.) reprezintă elemente-cheie ale unui protocol uman. Dacă persoanele folosesc protocoale diferite (spre exemplu, dacă una dintre persoane este politicoasă, iar cealaltă nu, sau dacă una înţelege conceptul de timp, iar cealaltă nu), atunci protocoalele nu pot interacţiona și nu se poate stabili o comunicare eficientă. Același lucru este valabil și pentru protocoalele folosite în internet – este necesar ca toate entităţile implicate în comunicare să folosească același protocol pentru a putea realiza o sarcină comună.

Pentru a rezuma definiţia unui protocol, putem spune că un protocol definește formatul și ordinea mesajelor schimbate între două sau mai multe entităţi comunicante, precum și acţiunile întreprinse cu privire la transmiterea și/sau primirea unui mesaj sau a unui alt eveniment relevant.

Ce este internetul?

Internetul este o reţea electronică concepută pentru transferul de date, care interconectează sute de milioane de echipamente de calcul la nivel global. Iniţial, aceste sisteme erau reprezentate în esenţă de clasicele PC-uri (computere personale), dar în ultimii ani dezvoltarea tehnologică a lărgit în mod substanţial gama de dispozitive electronice conectate la internet.

Astfel, pentru a enumera doar câteva categorii foarte populare de sisteme conectate, putem aminti: telefoane mobile, televizoare, console de jocuri, sisteme de alarmă, senzori de diferite tipuri etc. Toate aceste echipamente eterogene reprezintă sisteme terminale, adică sunt conectate la internet. Transportul datelor între toate aceste echipamente periferice este realizat de reţeaua propriu-zisă de internet (engl. core internet) – formată din milioane de conexiuni prin cablu, fibră optică sau radio –, precum și de un număr similar de mare de comutatoare electronice de date (routere).

În sistemele de comunicaţii clasice, cum este telefonia fixă, există un nod central de comutare (centrala telefonică), la care sunt legaţi în mod direct (fizic) prin cablu toţi abonaţii. În momentul realizării unui apel telefonic, centrala telefonică are ca rol conectarea directă a liniei abonatului apelant cu linia fizică a abonatului apelat. Deci, cu alte cuvinte, este stabilit un circuit prin fire de la apelant până la apelat. La terminarea apelului, circuitul este deconectat, și cei doi abonaţi pot efectua un nou apel către altă destinaţie, după care procesul de conectare se reia pentru noua convorbire.

Spre deosebire de scenariul anterior, internetul funcţionează prin ceea ce se numește comutare de pachete. Informaţia care se propagă prin internet este stocată în format digital (adică o secvenţă de valori de 0 și 1: …00011010011110100010…). Aceste secvenţe binare pot avea lungimi mari (milioane de valori). Pentru a putea fi transportată de la sursă la destinaţie, informaţia binară este „spartă” la sursă în subsecvenţe de lungime mai mică (mii de biţi). Fiecare dintre aceste subsecvenţe reprezintă un pachet de date. Ca exemplu, secvenţa anterioară 00011010011110100010 se poate fragmenta în cinci pachete de câte patru biţi: 0001-1010-0111-1010-0010. În reţeaua de internet nu există o cale de conectare directă (prin fire) între sursă și destinaţie, așa cum se întâmplă în cazul telefoniei fixe. Mai mult, dacă sursa de date și destinaţia dorită se află suficient de departe geografic, este foarte posibil să existe multe rute alternative prin care cele două entităţi pot fi conectate. Așadar, în cazul internetului, vorbim de o conectare la nivel logic între sistemele terminale, fără a avea un circuit fizic direct între ele. Acest tip de conectare se numește circuit virtual. Pachetele de date se vor propaga din aproape în aproape, de la un nod intermediar (comutator de date/router) la altul, pe una din căile ce leagă sursa de destinaţie în mod virtual.

Reţelele bazate pe comutaţia de pachete au multe similitudini conceptuale cu un sistem de transport rutier format din drumuri naţionale, autostrăzi și intersecţii. Să considerăm, spre exemplu, o fabrică ce trebuie să livreze, către un destinatar aflat în alt oraș îndepărtat, un utilaj de dimensiuni mari. La fabrică, acest utilaj este demontat în bucăţi mai mici, ce pot fi încărcate în camioane, care sunt după aceea trimise către destinaţie. Camioanele vor călători în mod independent unele de altele prin reţeaua de drumuri și autostrăzi până la destinaţie. Acolo este necesară reasamblarea utilajului în forma lui iniţială – lucru care este posibil doar după primirea și reordonarea tuturor părţilor componente. În acest exemplu, pachetele sunt camioanele, liniile de comunicaţie sunt drumurile și autostrăzile, routerele sunt asimilabile intersecţiilor, iar sursa și destinaţia sunt fabrica, respectiv destinatarul utilajului.

Ce este inteligenţa artificială?

Inteligenţa artificială (IA) desemnează inteligenţa calculatoarelor sau a programelor care sunt rulate de acestea, în contrast cu inteligenţa oamenilor sau a animalelor. Aplicaţii de inteligenţă artificială pot fi considerate motoarele de căutare avansată pe internet (de exemplu, Google Search), sistemele de recomandare de conţinut pe baza unui profil de utilizator și a căutărilor sale anterioare (precum cele utilizate de YouTube, Netflix etc.), mașinile cu navigaţie autonomă etc. De asemenea, generaţia mai nouă de IA cuprinde platforme precum ChatGPT sau AI Art, care au caracter generativ (generare de conţinut care nu exista înaintea solicitării exprese a unui utilizator). Deși modelele teoretice ale IA sunt vechi, datând din anii ’60 sau chiar mai dinainte, doar în ultimii ani performanţele sistemelor electronice de calcul au permis exploatarea la potenţialul maxim a algoritmilor deja existenţi.

Învăţarea automată (engl. machine learning) este un subtip de IA care le permite calculatoarelor să „înveţe” și să se îmbunătăţească fără a fi programate explicit pentru aceasta. Ideea de bază este ca, pornind de la un set de date de antrenare, sistemul de învăţare automată să poată să „generalizeze” și să „abstractizeze” ceea ce a fost învăţat în prima etapă, prin extragerea unor caracteristici esenţiale, comune tuturor membrilor setului de date de antrenare. Gândiţi-vă la un program de învăţare automată care vede mii de imagini cu pisici și care învaţă să recunoască ce face ca o imagine să fie o „pisică”. După antrenament, acest program poate să recunoască pisicile în imagini noi, imagini pe care nu le-a văzut în timpul antrenamentului. Astfel, învăţarea automată este folosită pentru a clasifica sau a organiza informaţiile, precum identificarea pisicilor în fotografii.

Învăţarea profundă (engl. deep learning) este un subset al învăţării automate, care se concentrează pe identificarea modelelor, sau a tiparelor (engl. patterns), în seturile de date. Aceasta folosește un sistem de „straturi” de procesare a informaţiilor, fiecare strat fiind specializat în recunoașterea anumitor caracteristici. De exemplu, în identificarea imaginilor cu pisici, un strat poate recunoaște forma urechilor, altul poate recunoaște culorile etc. Sistemul de învăţare profundă poate și să își îmbunătăţească performanţa prin ajustarea parametrilor săi pe baza erorilor anterioare. De asemenea, poate descoperi noi modele sau caracteristici în datele pe care le procesează, chiar dacă nu a fost programat explicit pentru a le recunoaște. Astfel, un sistem de învăţare profundă care a fost antrenat să recunoască feţele umane ar putea învăţa, de exemplu, să distingă între feţele masculine și cele feminine, deși nu a fost programat specific pentru aceasta.

Trăim într-o lume în care suntem în mod constant în contact cu produsele revoluţiei digitale. Înţelegerea fundamentelor care stau la baza acestei lumi digitale, a modului în care internetul sau inteligenţa artificială funcţionează, nu mai este un lux, ci o necesitate.

Avem nevoie nu numai să știm să folosim în mod eficient aceste instrumente, ci și să căpătăm o perspectivă mai clară asupra impactului pe care îl au asupra societăţii și asupra modului nostru de viaţă. Prin descoperirea misterelor din spatele ecranelor și al codurilor de programare, ne îmbogăţim cunoștinţele și, mai ales, devenim participanţi activi, informaţi, într-o epocă digitală care evoluează foarte rapid.

Radu Badea vrea să (între)deschidă o fereastră către lumea tehnologiilor moderne, ca un prim pas spre o mai bună capacitate de discernere a impactului pe care acestea îl au asupra vieţii de zi cu zi a fiecăruia dintre noi.

Citește și:

Inteligenţa artificială

Footnotes
[1]„Când calculatoarele procesează și stochează informaţii, acestea transformă toate datele în biţi. Indiferent dacă este vorba despre numere, text, imagini sau orice altceva, toate sunt stocate și procesate ca serii de 0 și 1. În cazul unui număr, problema apare atunci când acesta are foarte multe zecimale, cum ar fi constanta π (pi), care are o infinitate de zecimale după virgulă. Într-un asemenea caz, este imposibil pentru un calculator să stocheze toate zecimalele exacte ale numărului, pentru că ar avea nevoie de o capacitate de stocare infinită. În schimb, ceea ce face calculatorul este să aproximeze numărul la un număr finit de zecimale. De exemplu, în cazul lui π, acesta ar putea fi stocat ca 3,14159.”

„Când calculatoarele procesează și stochează informaţii, acestea transformă toate datele în biţi. Indiferent dacă este vorba despre numere, text, imagini sau orice altceva, toate sunt stocate și procesate ca serii de 0 și 1. În cazul unui număr, problema apare atunci când acesta are foarte multe zecimale, cum ar fi constanta π (pi), care are o infinitate de zecimale după virgulă. Într-un asemenea caz, este imposibil pentru un calculator să stocheze toate zecimalele exacte ale numărului, pentru că ar avea nevoie de o capacitate de stocare infinită. În schimb, ceea ce face calculatorul este să aproximeze numărul la un număr finit de zecimale. De exemplu, în cazul lui π, acesta ar putea fi stocat ca 3,14159.”