Re: [nexa] Come consentire all'uomo di mantenere la supremazia
On 10 Jan 2018, at 22:47, nexa-request@server-nexa.polito.it wrote:
La prima, ovvia per chi conosce la materia, è che l'intelligenza artificiale è (per la stragrande maggioranza) statistica applicata.
Questo è un errore comune che cerco spesso di correggere. La statistica in realtà ha solo capacità analitiche non predittive. Consente di individuare correlazioni tra eventi, ma non nessi causali. L’IA invece ha per suo scopo fondamentale la costruzione di modelli dai quali si possono fare previsioni, che coinvolgono causalità (non casualità). Anche se lo statistical Macchine Learning utilizza tecniche statistiche, è ben diverso da essere puramente un’applicazione statistica. In particolare il ML utilizza dati di apprendimento annotati da umani, da cui cerca di apprendere la capacita di svolgere un compito che richiede intelligenza. Si tratta di una differenza fondamentale, che richiede la presenza di “human-in-the-loop” nella raccolta di dati collegati a comportamenti in umani nello svolgimento di un task e di annotazioni umane sul loro significato e sullo scopo che il task si prefigge. Si tratta di una differenza che può apparire sottile ma che è fondamentale. La capacità di prevedere è una caratteristica precipua della mente umana, che ci consente di capire, interpretare la realtà circostante e di pianificare i nostri comportamenti, in funzione degli scopi che vogliamo raggiungere. Probabilmente ci vorrebbe un trattato per spiegare più a fondo la questione, ma spero queste poche righe siano sua sufficienti a indicare le differenza. — Beppe
l 10 gennaio 2018 23:19, Giuseppe Attardi <attardi@di.unipi.it> ha scritto:
On 10 Jan 2018, at 22:47, nexa-request@server-nexa.polito.it wrote:
La prima, ovvia per chi conosce la materia, è che l'intelligenza artificiale è (per la stragrande maggioranza) statistica applicata.
Questo è un errore comune che cerco spesso di correggere. La statistica in realtà ha solo capacità analitiche non predittive. Consente di individuare correlazioni tra eventi, ma non nessi causali. L’IA invece ha per suo scopo fondamentale la costruzione di modelli dai quali si possono fare previsioni, che coinvolgono causalità (non casualità). Anche se lo statistical Macchine Learning utilizza tecniche statistiche, è ben diverso da essere puramente un’applicazione statistica.
Mi permetto di dissentire. La statistica e' uno strumento analitico. Ma qual'e' lo scopo dell'analisi statistica? Creare un modello di un sistema complesso attraverso il quale fare previsioni. Certi tipi di IA rinunciano ad avere un modello descrittivo del sistema, sostituendo l'analista con un software. Il prezzo di questa scelta e' la complessità del debug. Che non può e non deve essere una giustificazione.
In particolare il ML utilizza dati di apprendimento annotati da umani, da cui cerca di apprendere la capacita di svolgere un compito che richiede intelligenza. Si tratta di una differenza fondamentale, che richiede la presenza di “human-in-the-loop” nella raccolta di dati collegati a comportamenti in umani nello svolgimento di un task e di annotazioni umane sul loro significato e sullo scopo che il task si prefigge.
Mi permetto di osservare che, a mia conoscenza, nessuna ricerca statistica e' mai stata effettuata da esseri non qualificabili come umani. Lo human-in-the-loop non caratterizza dunque l'intelligenza artificiale. Certamente cambia il modo in cui questi dati vengono raccolti, annotati e aggregati: non per essere analizzati da un essere umano ma per essere forniti come input ad un programma. Certamente cambia la rapidità dell'analisi e la mole di dati che possono/devono essere analizzati. Ma una rete neurale semplicemente approssima una funzione multidimensionale complessa. Si comporta, in un certo range, come quella funzione multidimensionale. Non e' intelligente. Lo puo' solo sembrare, se non si va a vedere lo stato dei nodi, i pesi degli archi etc... E' un programma, un ingegnoso artefatto umano.
Si tratta di una differenza che può apparire sottile ma che è fondamentale. La capacità di prevedere è una caratteristica precipua della mente umana, che ci consente di capire, interpretare la realtà circostante e di pianificare i nostri comportamenti, in funzione degli scopi che vogliamo raggiungere.
Gli uomini non possono "prevedere", in realtà. Assumiamo semplicemente che le esperienze passate si ripresentino nel futuro. Quello che forse intendi e' che gli uomini sono molto bravi nel "pattern matching". Anche le reti neurali. Ma su problemi molto ben definiti. E lo sono anche gli statistici (tipicamente umani. :-).
Probabilmente ci vorrebbe un trattato per spiegare più a fondo la questione, ma spero queste poche righe siano sua sufficienti a indicare le differenza.
Temo di no. Io ho ben chiaro cosa sia e come funzioni una rete neurale. O un suggestion system. Se non fossero applicazioni statistiche, sarebbero applicabili a domini con scarsa numerosità.
— Beppe
Giacomo
Propongo la lettura di https://medium.com/@basaldella.marco/perch%C3%A9-il-deep-learning-fa-paura-e... Buon testo divulgativo. Certo, si potrebbe dire "vietato usare ciò che non è spiegabile", ma non è realistico. Valga per tutti l'esempio della mia mozione in materia di armi letali autonome, respinta. http://webtv.camera.it/archivio?legislatura=17&seduta=898&intervento=457662 In estrema sintesi, credo che ogni servizio AI dovrebbe dichiarare per cosa è ottimizzato e che debbano esserci conseguenze civili (E al limite penali) in caso di scostamenti che producano danni. Si può obiettare che il numero di casi trattati potrebbe essere insufficiente a decidere se lo scostamento esiste. È improbabile, comunque in questo caso eventuali esternalità negative sarebbero ridotte Anche qui, nessuna pretesa di certezza algoritmica (come non esiste in nessun ambito umano, tantomeno giudiziario). Ciao, s. In data 11 gennaio 2018 12:26:33 AM Giacomo Tesio <giacomo@tesio.it> ha scritto:
l 10 gennaio 2018 23:19, Giuseppe Attardi <attardi@di.unipi.it> ha scritto:
On 10 Jan 2018, at 22:47, nexa-request@server-nexa.polito.it wrote:
La prima, ovvia per chi conosce la materia, è che l'intelligenza artificiale è (per la stragrande maggioranza) statistica applicata.
Questo è un errore comune che cerco spesso di correggere. La statistica in realtà ha solo capacità analitiche non predittive. Consente di individuare correlazioni tra eventi, ma non nessi causali. L’IA invece ha per suo scopo fondamentale la costruzione di modelli dai quali si possono fare previsioni, che coinvolgono causalità (non casualità). Anche se lo statistical Macchine Learning utilizza tecniche statistiche, è ben diverso da essere puramente un’applicazione statistica.
Mi permetto di dissentire.
La statistica e' uno strumento analitico. Ma qual'e' lo scopo dell'analisi statistica? Creare un modello di un sistema complesso attraverso il quale fare previsioni.
Certi tipi di IA rinunciano ad avere un modello descrittivo del sistema, sostituendo l'analista con un software. Il prezzo di questa scelta e' la complessità del debug. Che non può e non deve essere una giustificazione.
In particolare il ML utilizza dati di apprendimento annotati da umani, da cui cerca di apprendere la capacita di svolgere un compito che richiede intelligenza. Si tratta di una differenza fondamentale, che richiede la presenza di “human-in-the-loop” nella raccolta di dati collegati a comportamenti in umani nello svolgimento di un task e di annotazioni umane sul loro significato e sullo scopo che il task si prefigge.
Mi permetto di osservare che, a mia conoscenza, nessuna ricerca statistica e' mai stata effettuata da esseri non qualificabili come umani. Lo human-in-the-loop non caratterizza dunque l'intelligenza artificiale.
Certamente cambia il modo in cui questi dati vengono raccolti, annotati e aggregati: non per essere analizzati da un essere umano ma per essere forniti come input ad un programma. Certamente cambia la rapidità dell'analisi e la mole di dati che possono/devono essere analizzati.
Ma una rete neurale semplicemente approssima una funzione multidimensionale complessa. Si comporta, in un certo range, come quella funzione multidimensionale.
Non e' intelligente. Lo puo' solo sembrare, se non si va a vedere lo stato dei nodi, i pesi degli archi etc... E' un programma, un ingegnoso artefatto umano.
Si tratta di una differenza che può apparire sottile ma che è fondamentale. La capacità di prevedere è una caratteristica precipua della mente umana, che ci consente di capire, interpretare la realtà circostante e di pianificare i nostri comportamenti, in funzione degli scopi che vogliamo raggiungere.
Gli uomini non possono "prevedere", in realtà. Assumiamo semplicemente che le esperienze passate si ripresentino nel futuro.
Quello che forse intendi e' che gli uomini sono molto bravi nel "pattern matching".
Anche le reti neurali. Ma su problemi molto ben definiti. E lo sono anche gli statistici (tipicamente umani. :-).
Probabilmente ci vorrebbe un trattato per spiegare più a fondo la questione, ma spero queste poche righe siano sua sufficienti a indicare le differenza.
Temo di no.
Io ho ben chiaro cosa sia e come funzioni una rete neurale. O un suggestion system.
Se non fossero applicazioni statistiche, sarebbero applicabili a domini con scarsa numerosità.
— Beppe
Giacomo _______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
La bellezza sta negli occhi di chi guarda. Un aneddoto. Una volta per aiutare la mia bimba ad allenarsi con le addizioni, in prima elementare, la presi sulle gambe e scrissi un brevissimo script python che le proponeva due numeri e le chiedeva la somma. Lei osservava attenta il papà, cercando di capire cosa scrivessi. Potete immaginare che ci vollero pochi minuti. Finito, la feci provare il nuovo giochino. Dopo 3 addizioni, scappò via piangendo dalla mamma! Dopo una buona dose di coccole, emerse che "per colpa mia" aveva capito di essere stupida. Il computer, in pochi minuti, aveva imparato a fare le addizioni. E io dico sempre che i computer sono stupidi. Quindi cos'era lei, che faceva tanta fatica? Torniamo a noi. Abbiamo inventato un algoritmo in grado di approssimare statisticamente una qualsiasi funzione. Poi prendiamo una funzione complessa, ben definita, per la quale disponiamo di grandi quantità di dati, e configuriamo questo algoritmo per approssimare l'output che un botanico fornirebbe. Poi guardiamo il nostro algoritmo, tutto bello configurato per la demo, e diciamo "oh, come è intelligente!" :-D La bellezza sta negli occhi di chi guarda! La nostra capacità di "pattern matching" ci sta fuorviando. E il marketing non aiuta. ;-) Siamo abituati a classificare come intelligente l'attività del botanico che classifica il fiore. Lo vediamo fare al computer e questo "ci sembra" intelligente. Più intelligenti di noi, se non lo sappiamo fare. E proprio come la mia bimba, ci spaventiamo. Fino a quando non capiamo come funziona. Il 11 gennaio 2018 08:20, Stefano Quintarelli <Stefano@quintarelli.it> ha scritto:
Certo, si potrebbe dire "vietato usare ciò che non è spiegabile", ma non è realistico.
Ve lo immaginate se lo sapessero le aziende? "Ueh ragazzi, fatemi un freno con una rete neurale. Così se non frena possiamo dire che non si può spiegare..." Ma stiamo scherzando? :-D Una rete neurale è un programma. Sostenere che è pericoloso rischia di deviare l'attenzione dalla pericolosità di chi lo usa!
Valga per tutti l'esempio della mia mozione in materia di armi letali autonome, respinta. http://webtv.camera.it/archivio?legislatura=17&seduta=898&intervento=457662 In estrema sintesi, credo che ogni servizio AI dovrebbe dichiarare per cosa è ottimizzato e che debbano esserci conseguenze civili (E al limite penali) in caso di scostamenti che producano danni. Si può obiettare che il numero di casi trattati potrebbe essere insufficiente a decidere se lo scostamento esiste.
Esatto.
È improbabile
Affermazione molto divertente in un contesto statistico. :-D Comunque non solo è probabile, è scontato. Le numerosità di cui stiamo parlando sono tali da richiedere numeri enormi per verificare se una minoranza e discriminata. Non le chiamiamo mica "minoranze" per niente! E' perché sono pochi! ;-)
comunque in questo caso eventuali esternalità negative sarebbero ridotte
Vallo a dire al ingegnere 50enne scartato per l'età, o alla lavoratrice che percepisce lo stipendio inferiore. Sì, magari è solo UNA persona. Ma è una PERSONA!
Anche qui, nessuna pretesa di certezza algoritmica (come non esiste in nessun ambito umano, tantomeno giudiziario).
Perdonami, ma trattandosi del mio mestiere, non sopporto questo tipo di vaghi ed evocativi riferimenti all'informatica. Se un programma è troppo complicato da debuggare, lo si riscrive. Se costa troppo, lo si sostituisce. E' piuttosto semplice approcciare il problema legislativo: basta chiedere a chi sviluppa, configura o usa il programma di esserne responsabili. Responsum Abilem: capace di rispondere, di spiegare. Si tratta SEMPRE di macchine a stati. Allo stesso stato di partenza e allo stesso input corrisponde SEMPRE lo stesso output. Quindi, per quanto costoso possa essere, è sempre possibile. E' un rischio di impresa come un'altro. Giacomo
In data giovedì 11 gennaio 2018 08:20:06 CET, Stefano Quintarelli ha scritto:
Certo, si potrebbe dire "vietato usare ciò che non è spiegabile", ma non è realistico. Forse una norma c'è già: l'art. 13, comma 2, lett. f e l'art. 14, comma 2, lett. g del GDPR obbligano il titolare che mette in atto processi decisionali automatizzati a fornire agli interessati "informazioni significative sulla logica utilizzata". IMHO presto i giudici dovranno valutare cosa implica questa norma se il titolare utilizza sistemi ad apprendimento automatico. m.c.
Il 11 gennaio 2018 16:41, Marco Ciurcina <ciurcina@studiolegale.it> ha scritto:
In data giovedì 11 gennaio 2018 08:20:06 CET, Stefano Quintarelli ha scritto:
Certo, si potrebbe dire "vietato usare ciò che non è spiegabile", ma non è realistico. Forse una norma c'è già: l'art. 13, comma 2, lett. f e l'art. 14, comma 2, lett. g del GDPR obbligano il titolare che mette in atto processi decisionali automatizzati a fornire agli interessati "informazioni significative sulla logica utilizzata". IMHO presto i giudici dovranno valutare cosa implica questa norma se il titolare utilizza sistemi ad apprendimento automatico. m.c.
Estremamente interessante! Grazie Marco! Qualche link, per chi come me, non sapeva cosa fosse il GDPR: http://www.privacy-regulation.eu/it/13.htm http://www.privacy-regulation.eu/it/14.htm La parola chiave, qui, è "significative". Giacomo
In data giovedì 11 gennaio 2018 17:02:09 CET, Giacomo Tesio ha scritto:
Qualche link, per chi come me, non sapeva cosa fosse il GDPR:
http://www.privacy-regulation.eu/it/13.htm http://www.privacy-regulation.eu/it/14.htm
La parola chiave, qui, è "significative". Da esperto di dominio, come qualificheresti la parola "significative"? m.c.
Il 11 gennaio 2018 18:43, Marco Ciurcina <ciurcina@studiolegale.it> ha scritto:
In data giovedì 11 gennaio 2018 17:02:09 CET, Giacomo Tesio ha scritto:
Qualche link, per chi come me, non sapeva cosa fosse il GDPR:
http://www.privacy-regulation.eu/it/13.htm http://www.privacy-regulation.eu/it/14.htm
La parola chiave, qui, è "significative". Da esperto di dominio, come qualificheresti la parola "significative"?
Bella domanda. :-) Quali informazioni sulla logica utilizzata da un processo decisionale automatizzato sono "significative" per i soggetti oggetto della decisione? Fino alla interpretazione della norma in un tribunale, vi sarà un largo spazio di ricerca congiunta fra informatici e giuristi su questo tema. La risposta e' necessariamente variegata, sia da un punto di vista informatico (vi sono diversi algoritmi) sia da un punto di vista giuridico (vi sono contesti decisionali che possono essere supportati da tali algoritmi, e non tutti gli algoritmi sono utili in tutti i contesti). La mia risposta qui non può che essere estremamente parziale. Per essere significative le informazioni che descrivono un processo decisionale (autonomo o no) devono essere quanto meno - pertinenti - comprensibili - ai soggetti interessati - ai terzi, fra cui il giudice Per poter dimostrare di essere pertinenti, devono essere anche esaustive. Ma possiamo dimostrare che le informazioni su un processo decisionale sono esaustive, pertinenti e comprensibili solo se il processo decisionale e' riproducibile. Quindi, concretamente, le informazioni significative per un processo decisionale sono tutte quelle informazioni pertinenti e comprensibili necessarie a riprodurre tale processo, e dunque a verificare che date le informazioni fornite dai soggetti interessati, le decisioni assunte derivino da tale processo. Purtroppo pero' la realtà e' molto variegata. Una compagnia assicurativa che utilizzasse un K-means clustering per assegnare la classe di rischio ai propri assicurati dovrebbe indicare quali variabili siano state utilizzate per determinare i cluster, e definire in modo comprensibile i diversi cluster. In questo modo un assicurato potrebbe comprendere perche' si trova in una determinata categoria di rischio. Se un assicurato ritenesse di essere stato collocato in una categoria sbagliata, l'assicurazione potrebbe dimostrare in tribunale di aver semplicemente trovato il cluster "più vicino" alle caratteristiche descritte dalle informazioni fornite dall'assicurato. Se l'assicurato fosse un esperto di machine learning pero' potrebbe obbiettare che la scelta del numero di cluster e' arbitraria e accusare la compagnia di aver scelto quello specifico numero di cluster invece di un altro per ragioni discriminatorie (mai sottovalutare la fantasia di un informatico! :-D). A questo punto la compagnia assicurativa potrebbe dimostrare che in realtà la selezione del numero di cluster e' stata fatta per ragioni economiche. Ma per farlo dovrebbe fornire l'intera base dati su cui la K-means e' stata applicata e le K medie iniziali e il numero di iterazioni utilizzate (oltre a una valanga di informazioni statistiche ed economiche necessarie dimostrare che quel numero di cluster effettivamente garantisce la sostenibilità economica dell'impresa) e riprodurre in tribunale l'analisi. Si noti come, trattandosi di strumenti deterministici, la compagnia assicurativa non necessita di un team di esperti pronti a giurare che quello che l'assicurazione ha fatto non e' discriminatorio. Puo' semplicemente riprodurre il processo decisionale a partire dai dati iniziali. E naturalmente, se non puo' farlo, ha un problema. Paradossalmente, e' molto più semplice definire quali sono le informazioni significative per una rete neurale! Se una rete neurale non e' altro che un algoritmo capace di approssimare statisticamente una funzione, potrebbe essere sufficiente dichiarare la funzione approssimata. :-) Prendiamo l'esempio della classificazione botanica delle immagini di fiori. La funzione per cui calibriamo la rete neurale può essere descritta molto chiaramente dal botanico che partecipa alla calibrazione "taggando" le immagini, e magari in effetti la insegna ai propri studenti ("osservate petalo e setalo... etc...") Se la funzione per cui calibriamo la rete neurale consiste nel riconoscimento di un melanoma a partire dalle foto scattate periodicamente dei nei di una popolazione, di nuovo i dermatologi e gli oncologi che parteciperanno alla calibrazione per "taggare" le immagini saranno molto bravi a descrivere quali aspetti dell'immagine considerano. Se configuriamo e calibriamo una rete per giocare a Go, le regole del gioco sono la funzione approssimata dalla rete. Se tale funzione e' nota (per quanto complessa), la sua dichiarazione e' pertinente e comprensibile. Purtroppo in un processo, rimane il problema della riproducibilità del processo decisionale. Se l'oggetto del contendere e' proprio l'aderenza alla funzione dichiarata, l'unico modo per dimostrarlo rimane la ripetizione del processo di configurazione della rete neurale, a partire dalla sua topologia, dai pesi iniziali, dalla base di dati utilizzata durante la calibrazione. E se l'oggetto del contendere e' la scelta di quella particolare topologia o di quei particolari pesi iniziali, anche dalla base di dati utilizzata durante la cross validation. Vi e' poi un altro aspetto, molto più interessante: le reti neurali possono anche approssimare statisticamente funzioni ignote! Supponiamo di applicarle nella selezione del personale. Vogliamo configurare una rete neurale in grado di effettuare una preselezione dei candidati da chiamare per un colloquio, sulla base delle informazioni contenute nel cv. Fra le informazioni in input alla rete neurale forniamo un immagine del candidato. L'immagine del candidato contiene una quantità impressionante di informazioni. Sesso, etnia, eta', stato di salute, stato sociale, persino le convinzioni religiose e politiche possono rivelarsi da una foto ad un osservatore attento. Anche se, immaginiamo per ragioni legislative, queste siano state rimosse dalla base dati fornita alla rete neurale. La potenziale presenza di tutte queste informazioni nella foto, rende di per se' la funzione approssimata ignota. Anche se il lavoro di annotazione dei cv effettuato dal team di esperti nelle risorse umane durante la calibrazione della rete non tiene conto di queste informazioni, anche se sono estremamente professionali e razionali nella loro attività ed in perfetta buona fede, la semplice presenza della foto rende ignota la funzione approssimata. Se vogliamo parlare, poeticamente, della rete neurale come una intelligenza autonoma, potremmo dire che non sappiamo quali informazioni la rete neurale sarà in grado di dedurre e dunque quali prenderà in considerazione. Ma più correttamente dovremmo dire che non sappiamo, di tutte le funzioni che mappano i cv della base dati di calibrazione ai risultati annotati dal team di esperti, quale funzione la rete neurale stia approssimando. Dunque, quale logica utilizza questa rete neurale per effettuare il processo decisionale? Non lo sappiamo. Abbiamo una funzione che possiamo replicare, ma non possiamo spiegare. Non possiamo garantire, in questo caso, che il processo decisionale non sia discriminatorio, nonostante la professionalità del team che ha calibrato la rete. E non possiamo dichiarare, a priori, informazioni significative sulla logica utilizzata, semplicemente perché non le conosciamo. E naturalmente, stiamo assumendo il caso migliore, di una rete neurale configurata da esperti con enormi quantità di dati. Ma la base di dati potrebbe essere viziata da un bias di selezione, oppure potremmo aver preso in considerazione troppe variabili o variabili correlate fra loro, causando overfitting o underfitting nella rete... La funzione che la rete neurale approssima potrebbe comunque non essere quella che ci aspettiamo. E determinare quale sia la quantità di dati sufficiente per calibrare una determinata topologia affinché approssimi una certa funzione e' a sua volta un tema estremamente complesso e interessante, di cui pero' francamente so poco. Per concludere: e' probabile che non sia proprio possibile, concretamente e teoricamente, fornire informazioni "significative" sulle logiche applicate da una rete neurale, perché non e' detto che stia approssimando proprio la funzione che interessa a noi. Mentre e' possibile per altri tipi di processo decisionale automatizzato. Spero di essere stato chiaro senza essere troppo superficiale, ma tieni presente che io sono solo un programmatore! A presto. Giacomo
participants (4)
-
Giacomo Tesio -
Giuseppe Attardi -
Marco Ciurcina -
Stefano Quintarelli