Che cosa sono gli algoritmi. Istruzioni per l’uso
di Alessandro BIANCHI
1. L’uso del termine “algoritmo” continua a essere ambiguo. A oggi non esiste, nell’ambito delle scienze dell’informazione, una definizione coerente del concetto di algoritmo, capace di prendere in considerazione diversi aspetti significativi. Senza entrare nei dettagli che richiedono di padroneggiare la logica, esistono essenzialmente due visioni diverse, parzialmente complementari, ma non ortogonali. C’è anche chi ha proposto come sintesi la necessità di una legge analoga a quella che De Broglie ha proposto nell’ambito della duplice natura della luce, sia ondulatoria che corpuscolare, ma c’è ancora molto lavoro da fare. Non deve stupire che un elemento molto usato non abbia ancora una connotazione precisa all’interno della disciplina che ne fa l’uso principale: gli umani hanno usato i numeri naturali per millenni, ma la definizione matematica rigorosa di numero naturale è stata fornita solo da quello splendido ubriacone di Giuseppe Peano alla fine del XIX secolo.
2. Ammettiamo una definizione debole, a es. algoritmo = successione di passi eseguibili da un esecutore meccanico, capace di trasformare una configurazione di stati iniziale in una finale. In letteratura c’è molta gente che non riconosce la natura algoritmica di sistemi di pattern recognition come quelli trattati nell’articolo (come ulteriore elemento su quanto ci sia da studiare, segnalo che anche il concetto di stato di una computazione è ancora da definire precisamente).
NOTA: esistono algoritmi (secondo la definizione debole) di pattern recognition, ma l’articolo fa esplicitamente riferimento a sistemi cosiddetti ad apprendimento (training). L’idea di questi sistemi è quella di “mostrare” al sistema un insieme di elementi con caratteristiche comuni (pattern, appunto), e “indicargli” che quelli sono i pattern da trovare per poter classificare correttamente l’elemento, mentre altri sono pattern che NON portano alla classificazione voluta.
Ad esempio: se si vuol far riconoscere un gatto si mostrerà al sistema un sufficiente numero di immagini di gatti di diverso colore, misure, razze e forme, tutte caratterizzate dal muso fatto in un certo modo, con vibrisse, corpo allungato, coda, etc., segnalando che quelle sono istanze dell’elemento “gatto”. Viceversa, mostrando un ippopotamo, si segnalerà che NON è un “gatto”. Dopo un’adeguata fase di training, il sistema riconoscerà con elevata probabilità ogni fotografia di gatto, anche se spesso potrebbe indicare come gatto anche un coniglio. Dal punto di vista della definizione naïf data sopra, un algoritmo (deterministico) deve calcolare lo stesso output ogni volta che gli viene fornito lo stesso input, secondo lo schema:
INPUT -> Algoritmo -> OUTPUT
Nei sistemi ad apprendimento invece lo schema è del tipo:
fase 1 (apprendimento) TRAINING SET -> Sistema
fase 2 (uso) INPUT -> Sistema -> OUTPUT
Ma capita che lo stesso input dato a due identiche istanze dello stesso sistema, ma addestrate con insiemi di training diversi produca output diversi. Alcuni autori, per poter racchiudere questi sistemi all’interno del concetto di algoritmo forzano il concetto di training all’interno dell’input. Altri forzano invece il concetto di determinismo. Secondo molti (tra cui chi scrive) in entrambi i casi siamo di fronte a poco più di un imbroglio.
Per dirla tutta, anche il termine “apprendimento” (training) è ad avviso di tanti una forzatura antropocentrica. Meglio usare “affinamento” (tuning, quello che si faceva con la vecchia radiolina a transistor), ma qui siamo a sottigliezze linguistiche poco significative.
3. Le applicazioni di sistemi ad apprendimento sono numerosissime, da quelle più o meno innocue del riconoscimento automatico di messaggi, sì, quella robetta che ogni tanto dal vostro cellulare gracchia “non ho capito” oppure il risponditore telefonico di alcuni enti (ad es. INPS: “intendi dire tasso di sconto assistenziale”, “no, estratto conto previdenziale”), fino a quelle denunciate da parecchie associazioni in difesa dei diritti civili, quali il riconoscimento facciale per la sicurezza (… e ti pareva!). Sono innumerevoli, anche se trascurati dalla stampa italiana, i casi di persone arrestate in luoghi considerati obiettivi strategici solo perché un sistema di riconoscimento facciale fa suonare un allarme che indica una somiglianza con un terrorista. Se non ricordo male, la città di S. Francisco ha raggiunto un tale livello di falsi positivi che sta decidendo di eliminare questo tipo di sistemi per la sicurezza cittadina. Analoghe iniziative credo siano in corso in Olanda e in Svizzera.
Per avere un’idea della dimensione del fenomeno, in Italia 16 MILIONI di persone sono schedate digitalmente (1 su 3, bimbi esclusi), grazie alla tanto amata carta d’identità elettronica e alla digitalizzazione di carte d’identità tradizionali.
In conclusione: il tema è scottante e va affrontato con forza. Però credo che una critica basata su concetti vaghi sia sterile, talvolta addirittura controproducente: un po’ come dirigere la battaglia contro gli OGM solo sul fatto che fanno male alla salute, poi si dimostra che NON fanno male (vedi la soia) e il militOntismo di alcuni ha favorito Monsanto.
No Comments