l’intelligenza artificiale: programma se stesso con codice rubato ad altri programmi

 

Ogni giorno ci sembra di dover temere sempre di più la rivoluzione dell’intelligenza artificiale e robotica.

La notizia del momento è quella di un sistema di apprendimento della macchina che ha acquisito la capacità di scrivere il proprio codice.

Creato da ricercatori della Microsoft e l’Università di Cambridge, il sistema, chiamato DeepCoder, decisivo per le sfide future nel utilizzo dei processi di programmazione e potrebbe essere puntato verso un insieme più ampio di dati per creare prodotti più complessi. Questo approccio renderebbe molto più facile creare semplici programmi senza l’opportuna conoscienza dei codici di programmazione.

Con DeepCoder si potrebbe essere molto più produttivi”, dice la rivista “New Scientist” Armando Solar-Lezama, il Massachusetts Institute of Technology, che non è stato coinvolto nel lavoro. “Potrebbero costruire sistemi che probabilmente non sarebbero stati in grado di costruire prima”.

Uno dei creatori di DeepCoder, Marc Brockschmidt di Microsoft Research di Cambridge, Regno Unito, fa notare che, in ultima analisi, i risultati della ricerca potrebbero consentire a coloro che semplicemente non sono programmatori di descrivere un’idea per un programma e lasciare al sistema la progettazione a la costruzione.

Come funziona

Il DeepCoder utilizza una sintesi per creare nuovi programmi che riuniscono righe di codice prese da software esistente, come potrebbe fare un programmatore.
Dato un elenco di ingressi ed uscite per ogni frammento di codice, il DeepCoder impara e riconosce quali pezzi di codice sono necessari per ottenere il risultato desiderato.

Questo sistema ha l’aria di essere il futuro dell’informatica, il problema potrebbe sorgere in quanto l’intelligenza artificiale Google ha imparato a diventare “molto aggressivo” in situazioni di stress.

Un vantaggio di dare tale libertà all’intelligenza artificiale è che può eseguire operazioni e verifiche più ampiamente e profondamente di un programmatore umano, quindi potrebbe montare il codice sorgente in modo che gli esseri umani non hanno pensato. Inoltre, la DeepCoder imparare a creare i database del codice sorgente e classificare i frammenti in base alla loro capacità di utilità, secondo il suo punto di vista.
Tutto questo rende il sistema molto più veloce rispetto ai loro predecessori. Il DeepCoder può creare programmi di lavoro in frazioni di secondo, mentre i sistemi più vecchi prendono minuti per testare diverse combinazioni di righe di codice prima di combinarli e ottenere qualcosa che potrebbe funzionare.
E come l’intelligenza artificiale impara quali combinazioni di origine funzionano e che non funzionano come si procede, migliora ogni volta che si faccia un nuovo programma.

applicazioni future

Questa tecnologia potrebbe avere molte applicazioni. Nel 2015, i ricercatori del MIT hanno creato un programma che correggere automaticamente errori di programmazione che sostituiscono le linee difettose di righe di codice per altri programmi che stavano lavorando alla perfezione.
Brockschmidt dice che le future versioni potrebbero rendere molto facile costruire programmi di routine che raccolgono le informazioni da siti web oppure, per esempio,  classificano automaticamente le foto di Facebook, senza che i programmatori umani hanno bisogno di alzare un solo dito.

“Il potenziale di automazione che offre questo tipo di tecnologia può effettivamente significare una forte riduzione della quantità di sforzo necessario per elaborare codici”, dice Solar-Lezama. Tuttavia, egli non pensa che questi sistemi metteranno a rischio posti di lavoro dei programmatori.
Con la sintesi si cercherà di automatizzare alcune delle parti più noiose dei codici di programmazione, egli ritiene che gli sviluppatori possono dedicare il loro tempo a lavori più sofisticati.

Attualmente, l’DeepCoder può risolvere solo programmazioni che comprendono circa cinque righe di codice. Tuttavia, alcune righe sono tutto ciò che è necessario per alcuni programmi piuttosto complicati.
“Generare un grosso pezzo di codice in una sola volta è difficile e potenzialmente non realistico”, dice Solar-Lezama. “Ma grandi blocchi di codice sono costruiti unendo molti frammenti di codice.”

 

Leave a Reply