The European Legislation on AI: A Brief Analysis of its Philosophical Approach (di Luciano Floridi)
From an ethical perspective, the AIA inherits the same foundational approach seen in the GDPR: it is based on protecting human dignity and fundamental rights. This is a very positive feature, even if the current proposal of the AIA is more top-down, less flexible and less focused on the protection of citizens and their rights than the GDPR. Unfortunately, the AIA uses an anachronistic terminology to define this approach as “human-centric”, that is, as an approach that places humanity at the centre of technological development. Yet this is both trivially true and dangerously ambiguous. [...] Fortunately, despite the unfortunate and obsolete terminology, the underlying vision is sound: the AIA emphasises the value of AI as a technology that can be very “green” and provide extraordinary support against pollution and climate change and for the sustainable development of information societies. [...] Correctly, the AIA treats AI as a technology for solving problems and performing tasks, not as some kind of Frankenstein’s monster. Therefore, the proposal excludes the possibility of assigning to AI systems any status as a legal person, with rights and duties, such as the possibility of owning property, entering into contracts, suing and being sued, and so forth. The responsibility of any AI system rests entirely with the people who design, manufacture, market, and use it. Coherently, the proposal stresses the importance of human oversight throughout the text. [...] At times, the text is ambiguous. [...] Some AI systems are discussed as low- or zero-risk, and as such, they seem to fall outside the scope of strict compliance and be subject only to voluntary codes of conduct, [..] leaving too much room for uncertainty and loopholes. [...] If one does not distinguish between these two senses of high-risk system—something is high risk if it fails to work vs. something is high risk if it is put to work—then one may end confusing the resilience that “good” AI systems must have, with the resistance that must be exerted towards the “bad” AI systems. [...] In other cases, the proposal is vague, such as when it comes to banning the use of AI systems intended to distort human behaviour, with probable physical or psychological harm. The intent is commendable, but it might risk banning even unproblematic AI systems if this approach were applied in a Draconian way. Finally, some expectations in the proposal seem too idealistic. [...] The new legislation may not improve but merely push out of the EU some risky AI R&D and its related ethical-legal problems, inviting companies to develop their products and services in other countries where legislation is absent, or less stringent, or not enforced, while the EU turns a wilful blind eye—or just inadequately enforces its legislation [...] Not respecting this atemporality (it should not matter when unethical steps were taken) would contradict the aterritoriality of the legislation. In this case, the recommendation is obvious: the EU must keep both eyes open and apply its ethical and legal requirements consistently and without hypocrisy, not just to the status quo, but also to the history of what comes from other places. Tratto da https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3873273 Personalmente l'analisi mi sembra ottima seppur non esaustiva nonché leggermente ingenua in alcuni passaggi (che non ho riportato qui). Definire le "AI" non sarebbe difficile (cambiando loro nome), ma è impossibile se si pretende di distinguerle dal resto del software. Si tratta infatti di software programmato statisticamente che riproduce uno degli infiniti pattern deducibili dai dati disponibili. Una volta in funzione è indistinguibile dal software programmato linguisticamente eccetto che per l'effettiva impossibilità di prevederne il comportamento negli infiniti corner-case non sufficientemente rappresentati dai dati. Comunque non ho idea di cosa abbia in mente Floridi quando parla di "AI systems intended to distort human behaviour" che potrebbero avere usi "unproblematic". La diffusione di qualsiasi automatismo (AI o meno) che possa distorcere il comportamento umano causando danni fisici, psicologici o sociali (Floridi non considera quest'ultima categoria) andrebbe semplicemente messa al bando. Giacomo
Si tratta infatti di software programmato statisticamente che riproduce uno degli infiniti pattern deducibili dai dati disponibili. Una volta in funzione è indistinguibile dal software programmato linguisticamente eccetto che per l'effettiva impossibilità di prevederne il comportamento negli infiniti corner-case non sufficientemente rappresentati dai dati.
Sì Giacomo, questo è un nodo cruciale. Floridi prosegue con: "Training, validation and testing data sets should be sufficiently relevant, representative and free of errors and complete in view of the intended purpose of the system.” (Recital 44). These are characteristics highly desirable but rarely met in full. Think, for instance, about the incompleteness and incorrectness of any public database" Ma mettiamo il caso che i dati di training siano effettivamente "relevant, representative and free of errors" ma che quelli reali siano del tutto incoerenti con i dati di test. Qualche giorno fa si parlava di NLP (Natural Language Processing). Bene, ipotizziamo un sistema AI "istruito" e "addestrato" con dati in inglese e venduto ad una P.A. che, ovviamente, deve trattare informazioni quasi esclusivamente in italiano. Nella migliore delle ipotesi quel sistema si bloccherà, nella peggiore andrà avanti con risultati disastrosi facilmente immaginabili. Aggiornandolo ai nostri tempi secolarizzati si potrebbe dire che "errare è umano, perseverare ... robotico".
La diffusione di qualsiasi automatismo (AI o meno) che possa distorcere il comportamento umano causando danni fisici, psicologici o sociali (Floridi non considera quest'ultima categoria) andrebbe semplicemente messa al bando.
E' quello che ripeto da una decina d'anni, mettiamo al bando i social network ;). Perché in quanto a distorsione del comportamento umano e causa di danni psicologici e sociali c'è già, nonostante il pochissimo lasso di tempo, ampia letteratura. Antonio
Ciao Giacomo,
Definire le "AI" non sarebbe difficile (cambiando loro nome), ma è> impossibile se si pretende di distinguerle dal resto del software.> Si tratta infatti di software programmato statisticamente che riproduce> uno degli infiniti pattern deducibili dai dati disponibili. ho notato già in altri interventi questa tua posizione. Vorrei capirci qualcosa di più. Tieni presente che, sebbene legga e scriva software, NON sono un programmatore, non lo sono mai stato e, soprattutto, non intendo diventarlo mai. :-)
Da profano, vedo una certa differenza tra software prodotto con un linguaggio e software prodotto con un procedimento statistico. Per esempio, per un essere umano è più facile che per una macchina produrre software usando un linguaggio. Del resto la stragrande maggioranza dei linguaggi di programmazione sono stato creati dall'essere umano per l'essere umano. Viceversa per un essere umano è molto difficile produrre software attraverso un procedimento statistico, mentre per una macchina è molto facile. Del resto la programmazione statistica è stata introdotta dall'essere umano per le macchine. Nello schema: INPUT -> ELABORAZIONE -> OUTPUT i linguaggi di programmazione, si usano in genere per definire un procedimento di ELABORAZIONE che generi OUTPUT ricercati a partire da INPUT forniti. Con la programmazione statistica, invece, vengono forniti dall'essere umano INPUT e OUTPUT coerenti e si chiede alla macchina di trovare procedimenti di ELABORAZIONE efficienti, che possano poi essere usati per produrre nuovi OUTPUT a partire da INPUT inediti. Gli ambiti di adozione dei due approcci possono essere molto diversi. Generalmente si ricorre alla programmazione statistica nei problemi a complessità elevata, dove è svantaggioso usare l'approccio tradizionale. Inoltre, paragonando gli approcci in uno stesso ambito di adozione, le differenze ottenute sul risultato finale potrebbero essere sintomatiche. Sbaglio?
Una volta in funzione è indistinguibile dal software programmato linguisticamente eccetto che per l'effettiva impossibilità di prevederne il comportamento negli infiniti corner-case non sufficientemente rappresentati dai dati.
Non sono del tutto convinto sia proprio indistinguibile. Ho visto dei pattern elaborativi usciti da reti neurali, che non avevano nulla di "umano", ossia nessun umano avrebbe mai pensato ad un procedimento elaborativo di quel tipo. Penso che la fascinazione dell'espressione AI derivi, almeno in parte, da questo. E' così? D.
Ciao Damiano, On June 25, 2021 3:10:09 PM UTC, "D. Davide Lamanna" wrote:
Definire le "AI" non sarebbe difficile (cambiando loro nome), ma è impossibile se si pretende di distinguerle dal resto del software. Si tratta infatti di software programmato statisticamente che riproduce uno degli infiniti pattern deducibili dai dati disponibili.
ho notato già in altri interventi questa tua posizione. Vorrei capirci qualcosa di più.
L'informazione esiste solo nella mente di un essere umano come esperienza soggettiva di pensiero comunicabile. Il dato è una delle innumerevoli (infinite) rappresentazioni di una informazione che, veicolata da un supporto fisico, può essere trasferita (data, appunto) ad altri esseri umani, lontani nel tempo o nello spazio, e da questi interpretata ovvero ritrasformata in un'esperienza soggettiva di pensiero comunicabile. Fin qui niente di nuovo¹. Un programma è un dato che determina il comportamento di un automatismo costruito per eseguirlo. L'automatismo non comprende il programma², ma reagisce alla sua rappresentazione in modo automatico, appunto. Ora, solitamente nell'informatica mainstream, programma e dato vengono considerate categorie distinte, sebbene da tempo immemore (60 anni? :-D) i programmatori Lisp ripetano che "code is data". In realtà se ci pensi un momento è sempre vero anche il contrario. Quando spostiamo una parte della logica di un programma all'interno di un file di configurazione (per permettere di modificarne il comportamento senza modificarne il codice) stiamo trasformando il nostro programma in un esecutore¹ di quel linguaggio di configurazione. La configurazione è un programma per il nostro programma iniziale che è diventato una macchina virtuale in grado di eseguirlo. Se estendiamo questa macchina virtuale per essere in grado di modificare più comodamente la sua configurazione, presto ci accorgeremo di poter avere configurazioni diverse in file diversi e di poterle scambiare con altre persone. E se questi file li chiamassimo con un estensione comune, come .jpeg, .odt, .xlsx o .pdf? Esatto ogni dato è un programma che determina come una macchina, virtuale o fisica, si deve comportare. Siamo così abituati a vedere un'immagine quando apriamo un file jpeg, che non consideriamo come quel file venga eseguito da diversi automatismi per permetterci di percepire quella immagine. Persino la sequenza di zero ed uno che sto componendo in questo istante verrà eseguita automaticamente da molti programmi diversi per stabilire, alla fine, quali pixel accendere sul tuo monitor affinché tu interpreti il messaggio che io intendo comunicarti. Server SMPT, MUA, sistemi operativi, driver video e firmware di diversi monitor. In generale, qualsiasi dato può essere usato come programma in per determinare il comportamento di un automatismo. Se scrivessi un bot che risponde automaticamente "Google ti osserva" a chiunque nomini Google e "Facebook ti sorveglia" a chiunque nomini Facebook, tutti gli iscritti a questa mailing list potrebbero programmarlo. Esattamente come se lo stesso bot eseguisse in un interprete python il contenuto di ogni mail che contenesse la parola python. Ora, come vedi, sostazialmente ogni programma che modifica il proprio comportamento sulla base dei dati che riceve costituisce una macchina virtuale che esegue tali dati come un programma. La JVM, il CLR .NET, Perl, Python, Chibi-Scheme, Lua... sono tutte macchine virtuali programmate linguisticamente dall'uomo per eseguire programmi scritti linguisticamente dall'uomo (in alcuni casi, dopo la loro traduzione in un bytecode dedicato, da compilatori scritti linguisticamente dall'uomo). Un programma particolarmente emblematico in questo senso è Hex0³ un assembler in grado di assemblare sé stesso scritto in esadecimale (e dunque compilabile anche sa qualunque essere umano che disponga di un editor esadecimale). Per quanto possa apparire strano a chi è abituato a distinguere dati e programmi, in realtà non c'è alcuna distinzione. L'errore deriva dall'esistenza di automatismi (creati da noi programmatori) in grado di creare automaticamente alcuni di questi programmi, come la macchina fotografica digitale che salva sulla SD dei JPEG⁴. Locuzioni altisonanti e fantasiose come "Artificial Intelligence", "Machine Learning" o "Deep Learning" costituiscono arcane formule magiche per impressionare gli sciocchi e materializzare fondi militari e non. Ma se siamo fortunati, fra non molto tempo i nostri nipotini rideranno di queste formule magiche come noi ridiamo degli alchimisti alla ricerca della pietra filosofale. Ma nei fatti si tratta solo di metodi statistici di programmazione. Una rete neurale profonda è una particolsre macchina virtuale che può essere programmata con tecniche statistiche. Ovvero programmata per replicare i pattern frequenti noti/desiderati. La calibrazione di una rete neurale (erroneamente chiamata "training" in gergo) evidenzia chiaramente come i dati siano SEMPRE codice anche se rinunciamo a comprendere QUALE codice, ovvero cosa significhi l'elaborazione effettuata dalla rete calibrata, ed a prevederne precisamente il comportamento, in particolare negli innumerevoli casi limite non adeguatamente rappresentati nei dati selezionati. Naturalmente chi programma statisticamente (i "data scientist") adotta tecniche molto diverse da quelle usate per programmare linguisticamente. Tuttavia rimane sempre possibile introdurre volontariamente vulnerabilità ed errori nel programma finale (rinominati "bias", visto che i debugger al momento fanno poco), ma diventano tendenzialmente invisibili perché poco frequenti.
Viceversa per un essere umano è molto difficile produrre software attraverso un procedimento statistico, mentre per una macchina è molto facile.
Facilità e difficoltà sono esperienze umane. Per le macchine dobbiamo misurare consumi e utilità. La produzione di output fra queste. Però (attenzione che questo è un punto centrale del ragionamento) il software (AI o meno) non produce software ma dati. Siamo poi sempre noi che interpretiamo ed usiamo tali dati come software! Esattamente come chi vuole vedere "intelligenza arificiale" in una "rete neurale" la vedrà. Si tratta di interpretazioni! Il software (la rete neurale) è un dato e come tale viene inevitabilmente interpretato alla luce delle conoscenze pregresse e delle opinioni di chi lo osserva¹.
Con la programmazione statistica, invece, vengono forniti dall'essere umano INPUT e OUTPUT coerenti e si chiede alla macchina di trovare procedimenti di ELABORAZIONE efficienti, che possano poi essere usati per produrre nuovi OUTPUT a partire da INPUT inediti.
Questa è una interpretazione. ;-) Anzitutto la relazione fra input e output di calibrazione non è di coerenza ma di disponibilità. E questo semplicemente perché in assenza di un modello concettuale del fenomeno rappresentato dai dati disponibili, modello che renderebbe ingiustificabile il ricorso la programmazione statistica stessa, è impossibile stabilire se la relazione fra input e output sia effettivamente coerente. E poi come sai underfit e overfit sono problemi complessi: minime alterazioni di un immagine studiate ad arte possono cambiare completamente l'output calcolato da un software di classificazione. Insomma, tu hai riportato quello che si dice di voler fare, ma ciò che avviene davvero è molto diverso.
Gli ambiti di adozione dei due approcci possono essere molto diversi. Generalmente si ricorre alla programmazione statistica nei problemi a complessità elevata, dove è svantaggioso usare l'approccio tradizionale.
Svantaggioso per chi? Quante vite umane sono state sacrificate sull'altare delle self driving car? Per chi è vantaggioso?
Una volta in funzione è indistinguibile dal software programmato linguisticamente eccetto che per l'effettiva impossibilità di prevederne il comportamento negli infiniti corner-case non sufficientemente rappresentati dai dati.
Non sono del tutto convinto sia proprio indistinguibile. Ho visto dei pattern elaborativi usciti da reti neurali, che non avevano nulla di "umano", ossia nessun umano avrebbe mai pensato ad un procedimento elaborativo di quel tipo.
Esistono infiniti modi sbagliati di fare un calcolo. ;-) D'altro canto AlphaGo ha dimostrato che moltissimi modi di giocare a Go sono ancora inesplorati. Nel contesto di un gioco, l'utilizzo di un sistema del genere per esplorare nuove possibilità è applicabile ed etico (assumendo che il bene fornito all'umanità sia superiore al danno ecologico). Ma prima di lasciare che un sistema di guida autonoma ricerchi nuovi modi di attraversare una città, bisogna evacuarla.
Penso che la fascinazione dell'espressione AI derivi, almeno in parte, da questo. E' così?
Penso si tratti più dell'effetto del marketing. Anche se non dubito che, quando non danneggiano nessuno, gli output più inattesi di un software programmato statisticamente possa richiamare, nelle menti eccitate dal marketing, la sorpresa che da bambini provavamo guardando dentro un magico caleidoscopio. E andrebbe anche bene così, se usassimo il software solo per giocare. Un po' come la polvere pirica per fare splendidi fuochi d'artificio. Il problema è che quei risultati inattesi possono anche uccidere. E l'informatica sta diventando l'arma delle prossime guerre. Guerre mondiali che grazie ad essa saranno chirurgiche. Giacomo ¹ vedi il breve saggio che ho presentato al AIUCD 2021 http://www.tesio.it/2020/10/02/la_lotta_informatica_per_la_democrazia_cibern... o il precedente http://www.tesio.it/2019/06/03/what-is-informatics.html ² a ben pensarci, il termine "interprete" usato per le macchine virtuali di alcuni linguaggi non-compilati (ovvero programmi che permettono ad una macchina di eseguire programmi scritti per un'altra, talvolta di fantasia) è in effetti piuttosto fuorviante, uno dei tanti sintomi dello stato ancora primitivo dell'informatica contemporanea ³ una breve e piacevole spiegazione di come funziona è su https://ekaitz.elenq.tech/hex0.html ⁴ ovviamente il fatto che certi dati rispettino formati standard noti a molti programmatori permette di far eseguire lo stesso file a programmi/macchine virtuali diverse, dal visualizzatore di immagini, al driver della stampante, a stegohide etc...
Scusate, scrivendo dopo una lunga e faticosa giornata ho commesso vari errori. Uno però è particolarmente grave e desidero correggerlo a futura memoria: On June 25, 2021 11:54:39 PM UTC, Giacomo Tesio wrote:
La calibrazione di una rete neurale (erroneamente chiamata "training" in gergo) evidenzia chiaramente come i dati siano SEMPRE codice anche se rinunciamo a comprendere QUALE codice, ovvero cosa significhi l'elaborazione effettuata dalla rete calibrata, ed a prevederne precisamente il comportamento, in particolare negli innumerevoli casi limite non adeguatamente rappresentati nei dati selezionati.
Ho dimenticato un importantissimo "non" prima di "riusciamo a comprendere". Le attuali tecniche di programmazione statistica note come "deep learning" non permettono di interpretare il programma prodotto. Di comprendere in modo chiaro ed esaustivo l'elaborazione che esegue automaticamente. Per questo l'uso del termine "learning" è così odiosamente ipocrita: non solo la macchina non impara nulla, ma nemmeno noi! Peggio: disincentiva la nostra curiosità, riducendo il nostro bisogno di comprendere. Già solo per questo ci rende meno umani. D'altronde perché sprecare tante energie a pensare quando altri sono felicissimi di farlo per noi? E pure GRATIS! ;-) Giacomo
Locuzioni altisonanti e fantasiose come "Artificial Intelligence", "Machine Learning" o "Deep Learning" costituiscono arcane formule magiche per impressionare gli sciocchi ...
"La macchina ha le stesse funzioni delle immagini magiche presso le civiltà antiche: esse erano ritenute pregne dell'intenzione di chi le aveva foggiate, e efficaci su chiunque le contemplasse. Una macchina contiene in se stessa una magia cui soltanto una mente desta, cioé ben rara, può resistere opponendo una gerarchia morale dei fini: una macchina è una tentazione. Perciò non ha senso considerarla come fosse un oggetto inerte moralmente neutro: lo è quanto gli idoli nei tempi antichi. 'Idola gentium argentum et aurum similes fiunt qui confidunt in eis ... oculos habent et non vident, aures habent et non audiunt' dice il Salmo, e questa sublime filosofia si traspone senza difficoltà alle macchine, gl'idoli del mondo moderno: da un canto certamente né odono né vedono, sono pura materia, dall'altro verso sono assai efficaci perché simili a loro diventano quanti in loro confidano. Meccanico diventa l'animo di chi ponga fiducia nelle macchine come meri e perfetti servitori automatici, innocenti e incapaci di modificare chi le usa." Elemire Zolla (1965)
participants (3)
-
Antonio Iacono -
D. Davide Lamanna -
Giacomo Tesio