AlGORITMI
L’algoritmo è una procedura computazionale per l’ottenimento di un valore in uscita (l’output) a partire da uno o più valori in ingresso (inputs). La trascrizione dell’algoritmo in un linguaggio di
programmazione avviene tramite il software.Gli algoritmi “intelligenti” (machine-learnings) si sono affiancati agli algoritmi tradizionali.
Il Cons.di Stato, nella sentenza del 25 novembre 2021, n. 7891 ha precisato che per algoritmo si intende “una sequenza finita di istruzioni, ben definite e non ambigue, così da poter essere eseguite meccanicamente e tali da produrre un determinato risultato; mentre l’IA si riferisce “allo studio di agenti intelligenti, vale a dire allo studio di sistemi che percepiscono ciò che li circonda e intraprendono azioni che massimizzano la probabilità di ottenere con successo obiettivi prefissati (...) sono tali ad esempio quelli che interagiscono con l’ambiente circostante o con le persone, che apprendono dall’esperienza (machine learning), che elaborano il linguaggio naturale oppure che riconoscono volti o movimenti”
Intelligenza Artificiale (IA) generativa
E' in grado di produrre autonomamente nuovi contenuti, come immagini, testi, suoni e video, in maniera analoga a un essere umano, in base a un comando iniziale (prompt).
Ciò è possibile perché i modelli generativi sono addestrati su grandi quantità di dati, di cui identificano e apprendono i pattern al fine di produrre nuovi elementi che siano il più possibile simili a quelli di partenza. Una delle caratteristiche dei modelli generativi è la loro ver- satilità, che li rende applicabili in compiti e settori anche molto diversi (come l’arte, la medicina e l’istruzione), e che è tra le ragioni del loro rapido successo.
L’acquisizione dei dati necessari per l’addestramento degli algoritmi, se non adeguatamente regolata, può violare fonti protette da brevetti o diritto di autore.
GPT (Generative Pre-trained Transformers
Il Transformer è una rete neurale (Vaswani et al., 2017) impiegata principalmente nel Natural Language Processing. La sua architettura si compone di un encoder, un decoder e un meccanismo di attention. L’encoder trasforma la frase in ingresso in una rappresentazione numerica, associando un numero a ogni parola (o token), sulla base di embeddings (che catturano la vicinanza semantica tra le parole) precedentemente calcolati su enormi quantità di testo. Il decoder riceve quindi in input la rappresentazione prodotta dall’enconder, a partire dalla quale genera una distribuzione di probabilità per ogni parola del voca- bolario, riuscendo a prevedere quale parola o quale sequenza di parole sarà più probabilmente prossima alla frase in ingresso. Sia encoder che decoder possiedono inoltre un meccanismo di self-attention, che assegna un peso diverso a ogni token sulla base della sua relazione con le altre parole della sequenza, in modo da assegnare un’importanza maggiore alle parti che nella sequenza sono più rilevanti (Feuerriegel et al., 2023).
Generative Adversarial Networks (GANs)
na tipologia di reti neurali costituite da un generatore – per la creazione di nuovi dati a partire da quelli di input – e un discriminatore – per la classificazione degli esempi in “reali” o “generati”. La peculiarità delle GANs consi- ste nell’utilizzare un addestramento “antagonistico” (adversarial), tale per cui il discriminatore tenta di migliorare la classificazione, mentre il generatore mira a “confondere l’avversario” producendo dati sempre più verosimili, fino a diventare indistinguibili da quelli reali. Più pre- cisamente, finché il discriminatore riconosce una differenza tra le due distribuzioni di probabilità (reale e generata), il generatore modifica i propri parametri in modo da produrre una distribuzione sempre più vicina a quella effettiva; in questo modo, al termine dell’addestramen- to il generatore produrrà nuovi dati che per il discriminatore saranno indistinguibili da quelli reali (Gui, Sun, Wen, Tao, Ye, 2023). Come si vedrà, questa capacità mimetico-imitativa può essere considerata una delle peculiarità della creatività artificiale, ma anche un punto di distacco rispetto a quella umana.
(Natural Language Processing e computer vision) e zero-shot (generalizzazione senza addestramento specifico),
modelli diffusivi, basati su un processo di diffusione “in avanti” (forward) che destruttura l’input (es., un’immagine) aggiungendo rumore, e su un processo di diffusione reversivo (reversed) di ristrutturazione tramite la rimozione del rumore (Sohl-Dickstein, Weiss, Maheswaranathan, Gan- guli, 2015). Questi modelli possono avere diverse applicazioni (sintesi delle immagini, computer vision, generazione di testi) e possono essere combinati in maniera “collaborativa” con sistemi metrici didascalia- immagine come CLIP (Contrastive Language-Image Pre-Training) di OpenAI. Quest’ultimo è una rete neurale multimodale (Natural Langua- ge Processing e computer vision) e zero-shot (generalizzazione senza addestramento specifico), in grado di predire la descrizione/didascalia più appropriata per una determinata immagine. Modelli come DALL- E e Stable Diffusion si basano sull’integrazione di CLIP a un modello diffusivo.
machine learning (apprendimento automatico)
è una branca dell’intelligenza artificiale che si occupa di sviluppare algoritmi e modelli che permettono ai computer di apprendere da dati senza essere esplicitamente programmati. In altre parole, il machine learning consente ai computer di migliorare le proprie prestazioni in modo autonomo, attraverso l’analisi di dati e l’individuazione di modelli e relazioni significative tra di essi.
Si somministra alla macchina un metodo di apprendimento da applicare ai dati cui la macchina ha accesso, per estrarre da quei dati le indicazioni su come svolgere il compito affidatole. Una macchina capace di apprendere, che realizza gli obiettivi che le sono assegnati, senza necessità di alcuna indicazione umana su come procedere e, talora, senza neppure che l’uomo abbia una qualche consape- volezza di quello che accade all’interno del sistema-macchina
Sono modelli implementanti nell’apprendimento automatico: alberi decisionali, regressione statistica, support vector machine
Si distinguono tre principali forme di apprendimento automatico:
• apprendimento supervisionato: l’algoritmo viene allenato a riconoscere e ad associare ai dati di input un etichetta/classe/categoria di output, che in fase di allenamento è conosciuta e quindi verificabile. In questo modo l’algoritmo impara, se esiste, la relazione che sussiste tra i dati inseriti e la loro classe di appartenenza. L’apprendimento super- visionato consiste quindi nell’insegnare attraverso l’uso di esempi. Se l’algoritmo è progettato correttamente e i dati rappresentano fedelmente la realtà che si vuole classificare, allora l’algoritmo generalizza e impara a gestire anche situazioni nuove. In genere questi sistemi sono utilizzati per task di classificazione o regressione;
• apprendimento non-supervisionato: l’algoritmo di apprendimento è allenato a riconoscere nei dati in input degli schemi ricorrenti utili a classificare e raggruppare i dati in sottoinsiemi che in qualche modo descrivono delle strutture comuni;
• apprendimento con rinforzo:l’algoritmo è sviluppato per massimiz zare una funzione obiettivo assegnata all’algoritmo stesso. L’idea di base è che l’agente artificiale esplora l’ambiente e riceve delle ricompense o delle penalità a seconda delle azioni che esso intraprende. La continua esplorazione del dominio di applicazione permette all’agente di imparare, attraverso i rinforzi positivi o negativi (ricompense o penalità), quale comportamento adottare.
agenti IA
gli agenti IA sono molto più avanzati dei tipici chatbot di risposta alle domande a cui siamo abituati. Vanno oltre le semplici query: sono sistemi sofisticati e autonomi che agiscono per conto degli utenti . Invece di limitarsi a rispondere, pensano, decidono e si adattano attivamente
Un agente AI è un sistema ben organizzato con memoria, pianificazione e strumenti che lavorano di concerto per aiutarlo a pensare, apprendere e agire in modo autonomo . È un sistema dinamico e in evoluzione in grado di risolvere problemi e migliorare nel tempo, in totale autonomia . Alcuni agenti operano in un sistema multi-agente AI, in cui più agenti AI collaborano per affrontare compiti complessi, aumentando il loro potere e, nel contempo, la loro vulnerabilità .
Fondamentalmente, un agente AI è un sistema software intelligente che può:
- percepire il suo ambiente: gli agenti AI percepiscono il loro ambiente per racco- gliere informazioni rilevanti. Queste informazioni potrebbero provenire da flussi di dati, input di sistema o altre fonti esterne, inclusi altri agenti. Assorbono co- stantemente informazioni per comprendere il mondo che li circonda;
- “ragionare” su ciò che sta accadendo: una volta che l’agente dispone di tutti questi dati, deve elaborare e dare un senso alle informazioni. È qui che l’agente applica algoritmi e logica per analizzare le informazioni, in modo simile a come gli esseri umani ragionano sui problemi;
- prendere decisioni basate su quel ragionamento: sulla base delle intuizioni del ragionamento, l’agente deve scegliere la migliore azione possibile per raggiun- gere i suoi obiettivi . Che si tratti di risolvere un problema complesso o di otti- mizzare un processo, l’obiettivo è sempre quello di selezionare il percorso più efficace da seguire;
- agire in modo autonomo: gli agenti IA sono progettati per operare in modo indipendente e non richiedono l’intervento umano per ogni decisione . Possono adattarsi alle nuove informazioni e agli ambienti in evoluzione, dirigendosi con- tinuamente verso i propri obiettivi senza essere guidati manualmente .
Mireille Hildebrandt identifica un agente artificiale come un’entità capace di «agire autonomamente», senza l’intervento del suo creatore e che, per farlo, deve essere in grado di percepire ciò che avviene nell’ambiente circostante
blockchain
ha dato luogo a nuove forme di raccolta di capitali, tramite Initial Coin Offerings. Essa, in quanto registro aperto e simultaneamente accessibile, ben potrebbe essere usata anche al fine di migliorare e rendere più efficiente la corporate governance. Un recente studio dell’Ocse (OECD, Blockchain Technology and Corporate Governance, 6 giugno 2018) e alcuni recenti studi economici mettono, ad esempio, in luce come un sistema blockchain potrebbe essere utilizzato per automatizzare la tenuta delle scritture contabili (c.d. real time accounting), rafforzare la sicurezza informatica, facilitare la «tokenizzazione» di asset e, finanche, consentire forme di partecipazione attiva degli azionisti alle delibere assembleari.
reti neurali artificiali
gli algoritmi di apprendimento automatico, in particolare quelli non supervisionati, apprendono automaticamente le relazioni tra variabili di input e output dai dati di addestramento, senza la necessità di regole decisionali program- mate manualmente.
Questo approccio consente ai modelli di individuare relazioni complesse e non lineari tra variabili.
Nel campo del machine learning, le reti neurali artificiali (RNA) sono sistemi computazionali progettati per modellizzare il funzionamento dei sistemi nervosi biologici Le unità di elaborazione delle reti neurali artificiali sono di tre tipi: le unità di input, di output e le unità nascoste. Esse sono chiamate nodi, processori oppure neuroni in quanto simulano il loro comportamento. Quando la quantità totale di segnale che ricevono supera la propria soglia di attivazione, i neuroni si attivano emettendo un segnale che è trasmesso alle altre unità a cui sono connessi. I punti di connessione, detti sinapsi, pesi sinaptici o semplicemente pesi, simulano le sinapsi e pertanto regolano l’entità e il tipo di effetto che agisce sul neurone ricevente.
Le reti neurali artificiali apprendono a produrre output appropriati modificando i pesi sinaptici attraverso la presentazione ripetuta di esempi. L’addestramento può avvenire per cicli (dopo ogni pattern) o per epoche (alla fine di tutti i pattern). Le modifiche ai pesi vengono aggiunte in modo ricorsivo e graduale, e i pesi iniziali sono assegnati casualmente o a zero. La velo- cità dell’apprendimento è controllata dal “tasso di apprendimento”. Una volta completato l’apprendimento, i valori sinaptici vengono registrati e la rete può essere testata su nuovi pattern per valutare la sua capacità di generalizzazione.
L’unita principale è il nodo, chiamato anche neurone o percettrone (N), che come il suo corrispettivo biologico, tramite dei collegamenti (L), comunica con gli altri nodi. I vari nodi sono organizzati in diversi strati (layer). La struttura base prevede:
• Un layer di ingresso, il quale riceve gli input che devono essere elaborati dal sistema;
• Uno o più layer intermedi, detti anche nascosti (hidden);
• Un layer finale che fornisce gli output.
L’elemento base, il percettrone, è caratterizzato da tre elementi fondamentali:
• Un numero variabile di connessioni, ognuna caratterizzata da un proprio peso che può assumere sia valori positivi che negativi;
• Una funzione che calcola il risultato delle varie connessioni di input in base al loro peso, producendo come output un valore numerico;• Una funzione di attivazione, che ha lo scopo di normalizzare i valori restituiti dal sommatore. (ReLU, Sigmoide, Softmax)
reti neurali artificiali - apprendimento supervisionato
ogni pattern di addestramento include un vettore di ingresso e una risposta desiderata.
I pesi sinaptici vengono modificati in base all’errore tra la risposta fornita dalla rete e quella desiderata, seguendo la regola della retro-propagazione dell’ errore.
reti neurali artificiali - apprendimento NON supervisionato
non ci sono risposte desiderate esterne. La rete si auto-organizza seguendo regole di plasticità sinapti- ca, estraendo caratteristiche comuni dai pattern di input per sviluppare rappresentazioni compatte simili a quelle dei circuiti nervosi biologici.
CNN-reti neurali convoluzionali -
modelli in grado di considerare la prossimità degli input come i pixel di un’immagine e di estrarre informazione corrispondente
La CNN è un tipo di rete neurale artificiale sviluppato nel campo della computer vision e ampiamente utilizzata per la classifica- zione di immagini visive Tali reti sono originariamente addestrate per predire l’etichetta di un’immagine a partire dalla rappresentazione vettoriale che ne codifica i valori RGB dei pixel. Si noti che, mentre i DSM sono allenati utilizzando corpora rappresentativi dell’utilizzo di linguaggio naturale, le CNN sono adde- strate su immagini reali pertanto rappresentative dell’esperienza visiva umana
Reti neurali ricorrenti
reti in grado di elaborare sequenze di input e di considerare durante l’elaborazione l’ordine in cui le informazioni compaiono.
large language models - LLM
Gli LLM sono modelli di apprendimento automatico con un numero elevato di parametri (da centinaia di milioni per i primi modelli come BERT a centinaia di miliardi per GPT4) ) pre- addestrati per creare una compressione imprecisa di grandi quantità di dati attraverso compiti semplici, come completare una frase o prevedere la parola successiva. Possono eseguire una varietà di attività indipendenti dal dominio senza, o con poco, addestramento e dati specifici
Un aspetto fondamentale spesso trascurato dagli utenti è la necessità di utilizzare le corrette strategie di prompting per ottenere risposte accurate e coerenti con la domanda, che soddisfino pienamente l’utente (Zamfirescu-Pereira et al., 2023). Con il termine prompting viene indicato il processo di definizione e raffinamento delle richieste testuali, in linguaggio naturale, che modelli come ChatGPT accettano come input per produrre le loro risposte.
Natural Language Processing (NLP)
è una disciplina che studia e sviluppa tecniche per rendere l’elaboratore in grado di gestire il linguaggio naturale, come per esempio la lingua inglese o l’italiano. Le tecniche di NLP permettono di sviluppare stru- menti per la rappresentazione e gestione della sintassi, la grammatica e la semantica di un linguaggio.
La Retrieval augmented generation
il processo di ottimizzazione dell’output di un modello linguistico di grandi dimensioni, in modo che faccia riferimento a una base di conoscenza autorevole al di fuori delle sue fonti di dati di addestramento prima di genera- re una risposta. I modelli linguistici di grandi dimensioni (Llm) vengono addestrati su vasti volumi di dati e parametri per generare output originali per attività come rispondere a do- mande, tradurre lingue e completare frasi. La Rag estende le capacità già avanzate degli Llm a domini specifici o alla knowledge base interna di un'organizzazione, il tutto senza la neces- sità di riaddestrare il modello. È un approccio conveniente per migliorare l’output Llm in modo che rimanga pertinente, accurato e utile in vari contesti.