Intelligenza collettiva: valutazione comportamentale dei possessori di carta di credito

Page 1

Corso di Laurea specialistica in Marketing e Comunicazione

Tesi di Laurea

INTELLIGENZA COLLETTIVA E RETI NEURALI: Modello di valutazione comportamentale dei possessori di carta di credito

Relatore Ch. Prof. Andrea Borghesan Laureando Maria Francesca Fadda Matricola 808111 Anno Accademico 2010 / 2011



INDICE

1. L’INTELLIGENZA COLLETTIVA.............................................................................3 1.1. Introduzione...........................................................................................................3 1.2 Douglas C. Engelbart: informatico e veggente.......................................................5 1.3 Tom Atlee: anima mistica. .....................................................................................8 1.4 Georg Pòr:neurologo dell’intelligenza collettiva..................................................10 1.5 Pierre Lèvy, scultore dell’Intelligenza collettiva..................................................12 2. FORME DI INTELLIGENZA COLLETTIVA :software opensource.......................16 2.1 Introduzione..........................................................................................................16 2.2. Origini ed evoluzione dell’opensource...............................................................17 2.2.1 Stallman: visionario e idealista.....................................................................18 2.2.2. Torvalds: pragmatico e concreto..................................................................21 2.2.3. Il movimento opensource.............................................................................23 2.3. Un modello organizzativo nuovo.........................................................................26 2.4 Intelligenza collettiva muro portante dell’opensource..........................................29 3. LO STRUMENTO:PYTHON.....................................................................................33 3.1. Perché Python?.....................................................................................................33 3.2. Python: caratteristiche e storia ............................................................................34 3.2.1 I primi passi e la maturità..............................................................................35 3.2.2. Python: segni particolari..............................................................................40 4.INTELLIGENZA COLLETTIVA: STRUMENTI DI ESTRAZIONE........................51 4.1. Introduzione.........................................................................................................51 4.2 Data Mining..........................................................................................................52 4.2.1 Libreria on line .............................................................................................56 4.2.2 Customer relationship management di un istituto bancario..........................57 4.3 Reti Neurali...........................................................................................................63

1


4.3.1 Storia e percorso evolutivo............................................................................63 4.3.1.1 Neurone biologico....................................................................................67 4.3.1.2 Il neurone artificiale e le reti neurali artificiali.......................................68 4.3.4 Regole Hebbiane...........................................................................................77 ....................................................................................................................................78 4.3.5 Tipologie di apprendimento..........................................................................78 4.3.6 Algoritmi di apprendimento..........................................................................83 4.3.6.1 Algoritmo di back-propagation..................................................................83 4.3.7 Campi di applicazione esempi......................................................................84 4.3.8 Pregi e difetti.................................................................................................85 5. CASO PRATICO........................................................................................................88 5.1 Introduzione..........................................................................................................88 5.2 Contesto europeo e italiano dei sistemi di moneta elettronica..............................89 5.3 Storia e caratteristiche dell'emittente del data set.................................................95 5.3.1 Gruppo bancario Banca Popolare dell’Emilia Romagna.............................95 5.3.2 Divisione Consumer......................................................................................96 5.4 Obiettivo dell'analisi.............................................................................................97 5.5 Presentazione del dataset......................................................................................99 5.6 Caratteristiche del modello.................................................................................101 5.7 Preparazione dei dati...........................................................................................102 5.8 Il codice Python..................................................................................................105 5.9 Risultati...............................................................................................................114 5.10 Conclusioni.......................................................................................................116 6.CONCLUSIONI.........................................................................................................118 BIBLIOGRAFIA...........................................................................................................120 SITOGRAFIA...............................................................................................................123

2


1. L’INTELLIGENZA COLLETTIVA 1.1. Introduzione

“Chi fa da sé fa per tre” o “L’unione fa la forza”. Da sempre il dualismo tra la forza dell’individualismo più spinto e il vigore di un’azione collettiva hanno dato vita a numerosi dibattiti e da sempre il comportamento sociale dell’uomo ha portato alla giusta via di mezzo tra l’una e l’altra posizione . Indiscutibile è la numerosità degli esempi che possono essere elencati in merito, dai più remoti risultati raggiunti dai collettivi politici e non, ai più recenti progressi delle comunità scientifiche e virtuali. Per iniziare, negli elenchi di successi raggiunti dai collettivi, nel mondo animale possiamo descrive le strategie utilizzate dalle mandrie di gnu per sottrarsi agli attacchi dei grandi predatori; nelle società possiamo citare il potere contrattuale e la riduzione delle asimmetrie informative raggiunte negli ultimi anni mediante la costituzione di gruppi di acquisto formati da consumatori. D’altro canto possono anche essere citati episodi dove la collaborazione tra individui non ha portato a un miglioramento nei risultati ma piuttosto al manifestarsi di una “stupidità collettiva”1che porta a risultati errati o a soluzione molto lontane da quelle presumibilmente corrette Osservando con maggiore attenzione, le esperienze pregresse, si evince che sin dalle origini l’uomo ha tratto giovamento e profitto dalla collaborazione e dalla condivisione con gli altri individui. Alla base di questa cooperazione, c’è qualcosa che distingue nettamente l’uomo dagli altri esseri viventi, il pensiero individuale e la cognizione di gruppo, due caratteristiche che coadiuvano l’uomo nel processo di costruzione di relazioni sociali, culturali e intellettuali. L’intelligenza del singolo individuo, la capacità di risolvere problemi, di apprendere dall’esperienza, di pianificare

1

http://www.co-intelligence.org

3


il futuro e ancor di più l’intelligenza collettiva sono tratti identificativi della specie umana. Durante l’evoluzione dell’essere umano, molteplici sono stati i costrutti creati dall’intelligenza collettiva, nati per soddisfare varie tipologie di bisogni da quelli posizionati alla base della piramide di Maslow a quelli che trovano posto nei livelli più alti, come bisogni di sicurezza. appartenenza e autorealizzazione; in tal senso possono essere certamente considerati frutto dell’intelligenza collettiva, finalizzati all’utilizzo più efficace della conoscenza, gruppi militari, aggregazioni politiche e religiose, organizzazioni aziendali. Come detto in precedenza, non sempre la collegialità garantisce il perfetto ed efficace raggiungimento dell’obiettivo, spesso si riscontra la riduzione degli effetti della cooperazione e della condivisione. Questo decremento è legato soprattutto all’influenza che il pensiero di gruppo ha sull’opinione individuale, frequentemente, infatti, il singolo individuo all’interno di un insieme di persone tende all’uniformazione, trovando difficoltoso imporre il proprio punto di vista.

Alla luce dell’importanza basilare di questo fenomeno socio-culturale che pervade la realtà umana, cospicua è la letteratura che ha trattato questo tema sia da un punto di vista sociologico, economico, politico, culturale e scientifico. Uno dei primi a dare una definizione di intelligenza collettiva fu Douglas C. Engelbart che già dal 1962, con un articolo dal titolo “Augmenting Human Intellect: A Conceptual Framework, Summary Report” nel quale iniziava a gettare le linee guida del suo pensiero . Una visione più mistica e politica dell’intelligenza collettiva viene invece descritta nei lavori di Tom Atlee che collaborò anche con Georg Pòr, ungherese studioso ispirato nei suoi lavori anche da Engelbart. Dal punto di vista sociologico, Pierre Lévy è stato colui che maggiormente ha approfondito e studiato le potenzialità di questa capacità umana innata.

4


1.2 Douglas C. Engelbart: informatico e veggente.

D. C. Engelbart, ricercatore statunitense noto al grande pubblico per aver inventato il mouse e altri strumenti di calcolo, agli inizi degli anni ’60 in parallelo con altre ricerche iniziò ad approfondire argomentazioni riguardanti l’intelligenza collettiva. Nel ottobre del 1962 pubblicò un articolo dal titolo “Augmenting Human Intellect: A Conceptual Framework, Summary Report”2 dove disegnava le linee guida del suo pensiero. In questo brano il ricercatore statunitense si pone l’obiettivo di definire l’intelligenza collettiva, di misurarla e di determinare le leve principali per aumentarne l’effetto. Con la definizione "aumentare l’intelletto umano"3 egli descrive il processo di incremento della capacità di un essere umano di affrontare una situazione complessa , sfruttando l’intelletto in maniera tale da soddisfare i bisogni o risolvere i problemi che da un determinato evento derivano. Per arrivare in modo veloce ed efficace alla soluzione l’uomo deve trovare la giusta combinazione tra rapidità ed utilità nella comprensione della situazione. Nello specifico Englebart, definisce l’intelligenza collettiva come una misura di quanto gli individui possano lavorare sui problemi importanti e sulle opportunità, in maniera collettiva, in modo dinamico ed intelligente, una misura di come possano anticipare le occasioni e rispondere a una situazione, sfruttando la loro percezione collettiva, la memoria, l'intuizione, la pianificazione, il ragionamento, la lungimiranza e l'esperienza. Per determinare il valore della capacità di un insieme di persone di integrare, sviluppare e applicare le proprie conoscenze verso un obiettivo sfidante, lo studioso statunitense propone il quoziente di intelligenza collettiva4. Dall’analisi di questo parametro, Engelbart rileva che le capacità umane di comprensione e approfondimento crescono in maniera lineare mentre l’urgenza e la complessità dei problemi crescono in 2

Engelbart, D.C. 1962. Augmenting Human Intellect: A Conceptual Framework, Summary Report, Stanford Research Institute, October, 134 pp. 3 Ivi. 4 http://www.dougengelbart.org/about/collective-iq.html

5


maniera esponenziale. Proprio l’evidenza di questo divario spinge Engelbart a disegnare una strategia per incrementare, nel minor tempo possibile, le capacità umane di intelligenza collettiva attraverso lo sviluppo di mezzi che favoriscano la crescita del potenziale collettivo. Già

nel

1962,

agli

esordi

della sua ricerca,

Engelbart

ha visto

nell’interdisciplinarietà, nel fondersi tra diversi rami del sapere scientifico uno dei carburanti più performanti per il motore dell’intelletto collettivo.In particolare nei suoi scritti si nota la lungimiranza nel intravedere lo stretto legame tra la collaborazione tra individui e lo sviluppo di strumenti informatici5. Questi concetti vennero confermati anche vent’anni dopo, quando , durante un convegno a Palo Alto, ribadisce la sua convinzione intuitiva che la capacità di lavoro, l’incremento e la diffusione della conoscenza individuale e collettiva vengano positivamente

influenzate

dai

progressi

portati

avanti

dalla

tecnologia

e

dall’informatica6. Nel suo intervento durante il convegno, Engelbart descrive quella che era la sua visione del futuro a breve, negli anni sessanta, racconta come immaginava console e workstation collegate allo stesso server che lavorando contemporaneamente garantivano una modalità di collaborazione stretta ed efficace, che fino a quel momento nessuno era stato in grado di realizzare7. L’evidenza dello stretto legame tra la tecnologia informatica emergente, la collaborazione tra individui e l’incremento dell’intelligenza collettiva, ha portato Engelbart a sviluppare un quadro concettuale poliedrico, con un profilo sostanzialmente organizzativo, dove le figure principali diventano gli individui che interagiscono nello scambio e nella condivisione delle conoscenze e le infrastrutture tecnologiche che potenziano la rapidità e l’efficacia dell’interazione. Per

prima

cosa

vengono

individuate

due

diverse

categorie

di

funzioni :“Human-Based”e “Tool-Based”, la prima comprende le capacità umane come 5

http://www.dougengelbart.org/about/collective-iq.html. Engelbart, D.C. ,1985,”Workstation History and the Augmented Knowledge Workshop”, McDonnell Douglas Corporation 7 Ivi. 6

6


l’organizzazione, le procedure, i costumi, i metodi, i linguaggi, gli atteggiamenti, le competenze, le conoscenze e la formazione; la seconda racchiude un insieme coordinato di artefatti e strumenti come i mezzi di comunicazione, di rappresentazione e visualizzazione, di manipolazione della conoscenza8. Su questi due pilastri Engelbart costruisce il suo “Augmentation System “un sistema che vede le due funzioni svilupparsi ed evolversi in simultanea all’interno di un processo dinamico di continuo miglioramento che porta le organizzazioni a rispondere a una situazione complessa sfruttando la percezione collettiva, la memoria, l’intuizione, la pianificazione, il ragionamento e l’esperienza pregressa 9 . L’obiettivo del ricercatore statunitense si traduce perciò in una visione del futuro a breve dove ogni individuo o lavoratore della conoscenza sarà coinvolto in un ambiente on-line. Un ambiente sempre più ricco di collaborazione intensa, inserito all'interno di un "laboratorio della conoscenza" globale, composto da utenti con competenze ampiamente divergenti e orientamenti organizzativi dissimili capaci di utilizzare hardware e software che agevolino il loro lavoro dentro la sovrastruttura organizzativa10. Questo apparato garantirà agli organismi organizzativi e ai gruppi di lavoro la capacità di sviluppare un’intelligenza collettiva molto più efficace e affidabile, in grado di crescere in maniera esponenziale in parallelo con la complessità dei problemi emergenti.

8

Engelbart, D.C.1992” Toward High-Performance Organizations A Strategic Role for Groupware “-Proceedings of the GroupWare '92 Conference, San Jose, CA 9 http://www.dougengelbart.org/about/vision-highlights.html. 10 Engelbart, D.C.1992” Toward High-Performance Organizations A Strategic Role for Groupware “-Proceedings of the GroupWare '92 Conference, San Jose, CA

7


1.3 Tom Atlee: anima mistica

Il fondatore e direttore del Co-Intelligence Institute, istituto di ricerca nonprofit, Tom Atlee, autore di numerosi scritti, da molti anni ha iniziato un’approfondita ricerca sul tema dell’intelligenza collettiva e sui suoi possibili impieghi. Dal 2005, viste le numerose esperienze accumulate nel campo delle dinamiche collaborative, il suo lavoro si è maggiormente focalizzato sulle linee guida dell’evoluzione dei sistemi sociali, sui nuovi sviluppi organizzativi, sui processi di collaborazione tra gli individui. Lo studioso americano, definisce l’intelligenza collettiva come una forma di intelligenza condivisa e integrata che si trova nell’uomo e intorno all’uomo. E’ una capacità che ognuno possiede e che permette di produrre risultati più acuti e potenti rispetto alle singole prospettive individuali11. Nell’elencare i diversi tipi di intelligenza collettiva, egli descrive i luoghi e gli eventi più normali e casuali dove essa può essere osservata e addirittura misurata; ad esempio essa può scaturire da uno scambio di punti di vista tra colleghi di lavoro, oppure ancora dal dialogo tra gruppi di persone che cercano di risolvere i propri problemi; può essere generata per mezzo dell’informazione globale diffusa nel Web o attraverso la meditazione e l’intesa più profonda tra due individui. Viene proposta una visione quasi mistica ed esoterica di questa forma di intelligenza, affermando che se la popolazione fosse in grado di gestire un maggiore quantitativo di intelligenza collettiva, gli individui sarebbero in grado di co-creare 12 un futuro con meno problemi sociali, economici e ambientali, accompagnato da uno sviluppo sostenibile e da un benessere collettivo crescente. Atlee afferma che durante l’attuale periodo di crisi collettiva, questa capacità ha un maggiore effetto sulla vita individuale e collettiva, sulle prospettive future di tutte le organizzazioni. 11 12

http://www.co-intelligence.org Ibid.

8


Viste le notevoli capacità, che il ricercatore statunitense attribuisce all’intelligenza collettiva, si è posto l’obiettivo di individuare dei metodi che permettano di accrescerne il potenziale e la portata. Egli ha seguito con particolare attenzione gli sforzi perpetrati dalle aziende per aumentare la diffusione dell’intelligenza collettiva nelle loro organizzazioni, puntando a diventare maggiormente competitive nel mercato globale. In seguito ha approfondito i progressi fatti, in ambito sociale, per incrementare questa capacità a livello di comunità, nello specifico come coadiuvante nella risoluzione dei conflitti sociali locali, arrivando alla conclusione che molto resta ancora da fare nel settore pubblico e nella progettazione del sistema sociale. Nella pagina Web curata da Atlee, vengono citati brevi esempi che mettono in assoluto risalto la facilità con cui l’intelligenza collettiva si manifesta e l’impeto che essa può avere sulle dinamiche di gruppo ma, soprattutto, l’impatto sulle soluzioni alle problematiche. Per avvalorare la sua tesi Atlee utilizza diversi test nei vari livelli organizzativi. Partendo dal confronto tra piccoli gruppi, dove rileva che le capacità collettive di problem-solving vengono rafforzate dallo stile collaborativo femminile, alle dinamiche dei grandi gruppi dove un intenso scambio di idee tra tutti i membri porta a una soluzione ottimale e condivisa. Proprio come l’intelligenza di gruppo dipende dalle dinamiche e dal processo evolutivo del gruppo stesso, così l’intelligenza organizzativa all’interno di sistemi maggiormente complessi necessita e dipende da fattori quali la cultura organizzativa che promuove il dialogo, i sistemi di memorizzazione della conoscenza collettiva e apparati in grado di raccogliere e riutilizzare le informazioni prodotte all’interno e all’esterno dell’organizzazione stessa13. Nell’esplorare e sviscerare questa capacità umana innata, ma alle volte sopita, Atlee arriva a concepire un obiettivo utopico quasi sognante, quello di rendere l’intelligenza collettiva il pilastro portante di tutte le società, di raggiungere la più piena democrazia

attraverso la collaborazione e la co-intelligenza. Questo scenario

porterebbe a un cambiamento politico radicale inserito in un contesto di maggiore saggezza, condivisione pubblica e consenso, dove le deliberazioni collettive includono 13

http://www.co-intelligence.org

9


informazioni, punti di vista. Cercando di allontanarsi dalla democrazia rappresentativa attuale che, secondo il parere di Atlee, ha ridotto il capitale di intelligenza collettiva rendendolo anche meno rappresentativo e reattivo.14

1.4 Georg Pòr:neurologo dell’intelligenza collettiva

Ricercatore, imprenditore e consulente di origine ungherese fin dalla fine degli anni ’70 ha approfondito le dinamiche collaborative con l’obiettivo di aumentare il quoziente di intelligenza collettiva attraverso la giusta combinazione tra strategia aziendale, cultura e tecnologie organizzative. Attualmente ricopre il ruolo di ricercatore presso l’Amsterdam Business School , è membro del comitato editoriale del Journal of Knowledge Management nonché consulente organizzativo esterno per numerose imprese multinazionali con la società di cui è il fondatore la Community Intelligence Ltd. Nella sua autobiografia, nel descrivere il suo percorso di vita e di studi, nel citare i suoi incontri con Engelbart e Atlee egli si autodefinisce “ossessionato dall’obiettivo di facilitare la trasformazione del nostro mondo in una società di apprendimento globale”15, afferma che solo una comunità che alimenta costantemente la sua intelligenza collettiva, potrà essere in grado di produrre continuamente valore per i suoi membri16. Pòr sintetizza la sua caleidoscopica visione dell’intelligenza collettiva definendola come la capacità delle comunità umane di evolvere verso un complessità di ordine superiore attraverso meccanismi di innovazione, sfruttando le potenzialità della differenziazione, dell’integrazione, della competizione e della collaborazione17. 14 AA.VV. 2008 ,” Collective Intelligence: Creating a Prosperous World at Peace”, M. Tovey, Earth intelligence network, Oakton, Virginia 15 http://thetransitioner.org/circle/tiki-index.php?page=George+Por 16 Pòr, G. 1995, "The Quest for Collective Intelligence" in the anthology "Community Building: Renewing Spirit and Learning in Business", New Leaders Press. 17 AA.VV. 2008 ,” Collective Intelligence: Creating a Prosperous World at Peace”, M. Tovey, Earth intelligence network, Oakton, Virginia

10


Nel delineare le basi del suo pensiero, Pòr si serve di una metafora molto esemplificativa. Anzitutto, egli descrive le organizzazioni sociali come organismi umani, in secondo momento individua nella rete di comunicazione, di scambi e di conversazioni il sistema nervoso di queste organizzazioni. La capacità delle comunità di adattarsi alle esigenze dei suoi componenti, l’abilità di anticipare le risposte alla complessità crescente dell’ambiente, dipendono strettamente dalla reattività che questo apparato è in grado di sviluppare18. Il sistema rappresentato da Pòr svolge principalmente quattro funzioni : favorisce lo scambio e il flusso di informazioni tra i sottoinsiemi dell’organismo e l’ambiente; facilita il coordinamento delle azioni dei diversi

componenti;

incrementa

la

memoria

dell’organizzazione

mediante

l’archiviazione e il recupero dei dati in base alle esigenze dell’organizzazione; sostiene lo sviluppo di nuove competenze e comportamenti efficaci19. Nonostante le tecnologie di rete e l’evoluzione dei calcolatori fossero ancora ad uno stadio per così dire adolescenziale, lo studioso ungherese già immaginava le reti di computer come perfetta infrastruttura per la sua idea di sistema nervoso indispensabile per l’auto-organizzazione e l’auto-miglioramento dell’intelligenza collettiva20. La visione di Pòr, è diventata tangibile molto rapidamente ed egli adesso si ritrova a essere immerso in quella rete da lui immaginata. Questo ha aumentato ancor di più il suo fervore nei confronti dell’intelligenza collettiva. Nel 21° secolo le quattro funzioni elencate da Pòr si realizzano concretamente: il sottosistema di comunicazione e brainstorming è assicurato in tempo reale dalla rete di comunicazione mobile, dalle conference call e dai programmi di messaggistica istantanea; il sottosistema di coordinamento viene agevolato dall’interattività, dalla condivisione del progetto comunitario, dalla presenza di software che creano cicli di feedback di apprendimento e aiutano a prevenire le anomalie; il sottoinsieme di conoscenza e memorizzazione è sostenuto da sistema di gestione del patrimonio, competenze ed esperienze che fornisce un facile accesso ai documenti condivisi e alle soluzioni utilizzate in passato; il 18 Pòr, G. 1995, "The Quest for Collective Intelligence" in the anthology "Community Building: Renewing Spirit and Learning in Business", New Leaders Press. 19 Ibid. 20 Ibid.

11


sottoinsieme di apprendimento supportato da sistemi di data mining facilita l’estrazione e il riutilizzo della conoscenza acquisita, gettando le basi per l’incremento dell’intelligenza collettiva.21 Con l’obiettivo di sperimentare concretamente le sue teorie, coltivare e diffondere l’intelligenza collettiva, George Pòr ha fondato la Community Intelligence Ltd, azienda che si occupa di sviluppare capacità organizzative. Il lavoro può assumere forme diverse da seminari esecutivi di "comunità di pratica" strategia, alla formazione degli eserciti comunità, raccomandando dell'architettura e dell'ambiente virtuale,

1.5 Pierre Lèvy, scultore dell’Intelligenza collettiva

Un passo avanti nell’analisi approfondita di questi concetti è stato fatto da Pierre Lévy che dai primi anni Novanta iniziò a parlare di intelligenza collettiva come di un fenomeno sociologico incombente e forte, capace di cambiare gradualmente ma profondamente le relazioni e la diffusione culturale. Il filosofo francese, con gesti da scultore, ha fatto emergere dalla materia informe e compatta della cultura e della sociologia, i tratti dell’intelligenza collettiva, forma di intelletto già insita nella natura umana ma coperta da uno spesso strato di individualismo e inerzia. In una delle interviste rilasciate nel ’98, il filosofo francese affermò che l’intelligenza collettiva è sempre esistita, cioè sono da sempre esistiti uomini che contribuivano e collaboravano creando sinergie di competenze, che si muovevano in un immaginario collettivo e accumulavano memoria collettiva; il linguaggio, le istituzioni e le tecniche consentono un’assoluta osmosi tra l’intelligenza del singolo e l’intelligenza del collettivo22. Questa risorsa fondamentale per l’umanità, nonostante la sua preesistenza, è stata infiammata dall’avvento della tecnologia telematica, dalla possibilità di azzerare le distanze fisiche e di linguaggio tra le persone, permettendo 21 22

Ibid. http://www.mediamente.rai.it/biblioteca/biblio.asp

12


contestualmente la condivisione e lo scambio di memorie, di competenze, incrementando il capitale di intelligenza collettiva. Nel suo libro “L’intelligenza collettiva” Lèvy definisce e individua, appunto, nell’espansione del fenomeno della rete telematica un vettore insostituibile di quella che egli definì Intelligenza collettiva. L’immagine delle reti di reti23 formate da terminali e da persone unite virtualmente da una ragnatela, in grado di azzerare le distanze fisiche si sposava indissolubilmente con l’immagine di un nuovo pensiero di gruppo, un’intelligenza di gruppo in grado di dare vita a risultati molto più attendibili. Lo spazio virtuale formato dalle persone, dalle relazioni e dai terminali virtuali, secondo Lèvy da origine ad un cyberspazio24, luogo non luogo dove la filosofia della collaborazione e della condivisione delle conoscenze viene veicolata nel modo più rapido possibile grazie alla riduzione delle barriere fisiche e mentali degli individui. Nell’argomentare la propria visione, il filosofo francese, afferma che il proseguimento nella costruzione di un’intelligenza collettiva più vigorosa è strettamente legato alla produzione di strumenti che consentano agli individui di realizzare dei collettivi intelligenti,[…]“di pensare insieme, di concentrare le nostre forze intellettuali e spirituali, di moltiplicare le nostre immaginazioni e le nostre esperienze, di negoziare in tempo reale e a ogni livello le soluzioni pratiche ai problemi complessi che si dovranno affrontare[…]”25 Come già sottolineato, Lévy vede nella rete uno strumento fondamentale per il radicarsi e lo svilupparsi dell’intelligenza collettiva; l’aumento esponenziale delle connessioni crea terreno fertile per il divampare della cooperazione, della condivisione delle competenze e delle informazioni. Produce nuova conoscenza, nuove sinergie e ulteriori relazioni.

23

Lévy, P.(1994) L’Intelligence collective. Pour une anthropologie du cyberespace, Paris, La Découverte, tr. it. L’intelligenza collettiva. Per un’antro-pologia del cyberspazio, Milano, Feltrinelli 1996, 2002, p. 15 24 Lévy, P.(1994) L’Intelligence collective. Pour une anthropologie du cyberespace, Paris, La Découverte, tr. it. L’intelligenza collettiva. Per un’antro-pologia del cyberspazio, Milano, Feltrinelli 1996, 2002, p. 15 25 Ivi, pp.19-20.

13


La sintesi di questo concetto si ha con questa definizione: “L’intelligenza collettiva: è intelligenza distribuita ovunque, continuamente valorizzata, coordinata in tempo reale, che porta a una mobilitazione effettiva delle competenze;[…] il cui fondamento e il fine sono il riconoscimento e l’arricchimento reciproco delle persone, e non il culto di comunità feticizzate o ipostatizzate ”26. Intelligenza distribuita ovunque:[…] nessuno sa tutto, ognuno sa qualcosa, quindi la totalità del sapere risiede nell’umanità27. “Intelligenza continuamente valorizzata”28: […] spesso quest’intelligenza viene trascurata, disdegnata e umiliata. Si guarda con scrupolo allo spreco economico ed energetico, ma non si dilapida con leggerezza una risorsa preziosissima rinunciando a svilupparla e impiegarla correttamente, ovunque essa sia. Troppa è la facilità con cui si sperpera un cospicuo capitale di esperienza, abilità e ricchezza umana. “Coordinamento in tempo reale delle intelligenze”: […] l’organizzazione delle intelligenze necessita di dispositivi di comunicazione che dipendono dalle tecnologie digitali dell’informazione. Questi sistemi dovrebbero offrire ai membri di una comunità i mezzi per coordinare le loro interazioni nell’universo virtuale di conoscenza29. “Giungere ad una mobilitazione effettiva delle competenze”30: l’esigenza di mobilitare le competenze porta alla necessità di determinare, reperire e riconoscere le conoscenze in tutta la loro diversità. Valorizzando l’individuo e il suo bagaglio di conoscenze, gli si permette di identificarsi in un modo nuovo e positivo, si contribuisce a motivarlo e a far emergere in lui sentimenti di riconoscenza che incrementano il coinvolgimento soggettivo di altre persone in progetti collettivi31. Come si deduce dalla definizione, l’intelligenza collettiva non ha classificazioni, non ha strutture fisse ma è un processo di realizzazione, di crescita in 26

Lévy, P.(1994) L’Intelligence collective. Pour une anthropologie du cyberespace, Paris, La Découverte, tr. it. L’intelligenza collettiva. Per un’antro-pologia del cyberspazio, Milano, Feltrinelli 1996, 2002, p.34. 27 Lévy, P.(1994) L’Intelligence collective. Pour une anthropologie du cyberespace, Paris, La Découverte, tr. it. L’intelligenza collettiva. Per un’antro-pologia del cyberspazio, Milano, Feltrinelli 1996, 2002, p.34 28 Ibid. 29 Ivi, p.35 30 Ibid. 31 Ibid.

14


continuo divenire dove gli individui rilanciano e combinano le proprie peculiarità senza che tutto si riduca all’addizione di mere intelligenze32. Il filosofo francese non si è limitato a descrivere gli aspetti sociologici del fenomeno intelligenza collettiva ma dai primi anni Duemila ha deciso di supportare attivamente l’evoluzione di quello che lui definisce il cyberspazio. Lèvy sostiene che una delle leve che maggiormente potrebbero favorire l’aumentare dell’intelligenza collettiva e la realizzazione del cyberspazio nelle reti telematiche, è la costruzione di un linguaggio semantico comune e globale, comprensibile e adattabile. Questo perché esistono due problemi di operatività semantica: prima di tutto esistono diversi linguaggi, ma non esistono strumenti di traduzione automatica semplici e affidabili; in secondo luogo esiste scarsa compatibilità tra i diversi sistemi di catalogazione e memorizzazione. Egli sostiene che non esiste un linguaggio comune, un sistema simbolico comune in grado di trasmettere significato umano, da un lato, e di essere utilizzabile dai calcolatori automatici, sul lato opposto33. Secondo Lèvy, l’esigenza è quella di creare un sistema simbolico globale a sostegno della realizzazione di una memoria globale accessibile da qualsiasi luogo in tempo reale. Attualmente, grazie al sostegno dell’università canadese di Ottawa, lo studioso francese sta portando avanti il progetto di scrittura di questo linguaggio denominato “IEML Information Economy Meta Languageun sistema onnicomprensivo simbolico che cerca di superare i limiti del linguaggio naturale rendendo geometrico matematico il processo di significazione”34. L’obiettivo è quello di arrivare alla traduzione semantica globale del maggior numero di termini, traendo spunto dalla collaborazione di esperti in terminologie distanti dall’informatica e dalla sociologia, al fine di ampliare il numero dei vocaboli tradotti favorendo la gestione della conoscenza basata sulla semantica computazionale.35

32

Ivi, p.36 AA.VV. 2008 ,” Collective Intelligence: Creating a Prosperous World at Peace”, M. Tovey, Earth intelligence network, Oakton, Virginia 34 Ibid. 35 Ibid 33

15


2. FORME DI INTELLIGENZA COLLETTIVA: SOFTWARE OPENSOURCE 2.1 Introduzione

Sia in Italia che all’estero, da sempre, il ruolo delle università è stato quello di produrre cultura innovazione e competenze utili alla società moderna per affrontare le sfide continue che il mondo propone. Come in un circolo virtuoso, nuove scoperte portano a nuove necessità e nuovi bisogni, spingono verso la ricerca di ulteriori conoscenze e soluzioni. Questa fame atavica, che si autoalimenta, ha portato l’uomo alla costante ricerca del nuovo e della scoperta. In questo sostrato attecchisce quella che fino a pocanzi abbiamo descritto con dovizia di particolari come l’intelligenza collettiva, e proprio nell’università, dove la cultura della collaborazione, della condivisione hanno il loro libero sfogo, si arriva ad un efficace generazione di conoscenza. Negli atenei il concetto di interdisciplinarità favorisce il contatto tra ricercatori con diverse specializzazioni ed esperienze. La libertà di confronto, di iniziativa fanno da propulsore alla produzione di concetti e conoscenze. Anche la più ordinaria delle necessità o la più banale delle idee può fare da innesco alla reazione della comunità dei ricercatori e porta a realizzare invenzioni che rappresentino una rottura radicale che riesca a estendere i confini della conoscenza. Come abbiamo visto e come dimostreremo nel capitolo, l’intelligenza collettiva non si manifesta solo all’interno delle istituzioni universitarie, spesso accusate di essere troppo rigide e ingessate per favorire il libero divenire della conoscenza. Prodotti dell’ intelligenza collettiva si generano anche nelle comunità esterne agli atenei o in collettivi che con essi nulla hanno a che fare . Proprio da questo mix di reti, di relazioni e conoscenza create da universitari e non, ha avuto origine la rivoluzione del software libero, uno dei migliori esempi dei risultati dell’intelligenza collettiva.

16


Sia l’hardware che il software sono nati, sono cresciuti e continuano a vivere in un ambiente impregnato totalmente di intelligenza collettiva e a maggior ragione il software libero, deve la sua forza propulsiva alla collaborazione e all’impegno di un’enorme comunità di programmatori.

2.2. Origini ed evoluzione dell’opensource

L’avvento del software, come anche dell’hardware, è strettamente legato al lavoro comunità di ricerca dei principali atenei statunitensi. Un particolare incontro di intelligenze e conoscenze fece si che l’università del Massachusetts, con il MIT(Massachusetts Institute of Technology), e l’università del Nord California fossero le più attive nella produzione di nuova esperienza, nel campo dell’ormai adolescente tecnologia informatica, accellerandone il processo di evoluzione e diffusione. La definizione della parte immateriale del computer nasce quindi dall’unione delle conoscenze e dai problemi esplicitati da una comunità universitaria, si nutre quindi di intelligenza collettiva. In seguito, tuttavia, gli studiosi ebbero modo di comprendere le potenzialità che la tecnologia informatica poteva avere e i vantaggi economici che da essa potevano derivare. Proprio in quel momento, iniziò a diffondersi l’idea che un programmatore o un gruppo di essi avrebbe potuto trarre profitto dal suo lavoro di scrittura e dalla possibilità di trovare soluzioni ai problemi degli altri individui. Da questo dualismo, tra lo spirito comunitario delle università, e quello maggiormente economico di alcuni ricercatori si sviluppa la crescita parallela del software proprietario e del software libero. Partendo dal presupposto che il software nasce libero, a partire dalla fine degli anni settanta anche le università, che fino a quel punto avevano consentito piena libertà di utilizzo e diffusione dei codici sorgente dei programmi, iniziarono a apporre delle clausole restrittive sulla libera circolazione

delle righe di programma. Anche nel

laboratorio del MIT, dove in quel periodo lavorava Richard Stallman, vennero

17


introdotte delle password che identificavano i programmatori che avevano accesso al computer con l’obiettivo di quantificare e controllare il lavoro del singolo ricercatore.36

2.2.1 Stallman: visionario e idealista Lo scontro con queste barriere alla condivisione del software, il virus dello spirito libertario degli anni sessanta mai completamente debellato e anzi continuamente rivitalizzato dagli scambi tra diverse culture ed esperienze, lo stretto contatto con la cultura antiburocratica degli hacker di tutto il mondo, creò il giusto humus per la nascita del pensiero di Stallman.37 In seguito, la nascita, lo sviluppo di internet e dei personal computer non fecero altro che dare una spinta propulsiva alla diffusione della filosofia del software libero38, fornendo a Stallman i mezzi per la massima condivisione e collaborazione nel raggiungimento del suo obiettivo. Richard Stallman è stato per parecchi anni un sistemista dell’università del Massachusetts e dal 1971 ha iniziato una battaglia senza sosta per raggiungere

l’ idea

di un software che possa essere usato, copiato, migliorato e distribuito senza alcun tipo di vincolo proprietario o economico39. Nel 1983, dalla necessità di far tornare lo spirito cooperativo nella comunità informatica, è stato concepito il progetto GNU(acronimo di Gnu’s not Unix)40, un sistema che va contro l’utilizzo obbligatorio dei codici di accesso e registrazioni ufficiali, contro la segretezza dei codici e i sistemi di sicurezza 41 . L’idea di software di Stallman si fonda su tre libertà fondamentali: il primo concetto è quello di libertà di copiare il programma e distribuirlo a colleghi e collaboratori; il secondo è quello di 36

Film-documentario “Revolution OS” (2001), regia di J.T.S. Moore M. Berra, A. R. Meo, “Libertà di software, hardware e conoscenza. Informatica solidale 2”, 2006, Bollatti Boringhieri., pp 79-81. 38 Ibid. 39 Ivi, pp. 94-95. 40 http://www.gnu.org/gnu/gnu-history.it.html 41 M. Berra, A. R. Meo, “Libertà di software, hardware e conoscenza. Informatiche solidali 2”, 2006, Bollatti Boringhieri., p.95. 37

18


libertà di accesso al codice sorgente avendo la possibilità di modificare il programma secondo le proprie esigenze; e ultima l’opportunità di distribuire autonomamente la versione migliorata. Gradualmente il progetto GNU ha portato allo sviluppo di un sistema operativo derivato da Unix42 e con esso fosse compatibile, un sistema che diffondeva e veniva migliorato grazie alla condivisione del codice sorgente e al suo riutilizzo da parte di una comunità di programmatori. Al fine di fornire al suo grandioso progetto gli strumenti necessari per continuare a progredire, con l’obiettivo di diffondere il più possibile il suo progetto etico e il nuovo modo di lavorare, nel 1985 Stallman costituì la Free Software Foundation43, un’associazione senza scopo di lucro che si fonda sull’apporto volontario di contributi in denaro e lavoro. L’organizzazione ha la funzione fondamentale, non solo di raccogliere finanziamenti per lo sviluppo di GNU, ma coadiuva nella creazione e nel mantenimento della comunità di professionisti in grado di svolgere costantemente programmazione e servizi di assistenza tecnica. Dopo aver dato una sua definizione di “free software” sottolineando la differenza di sfumatura tra “free”gratuito e“free” libero, il sistemista statunitense continua nella costruzione dei pilastri del suo progetto introducendo una sorta di protezione che doveva consentire un’ampia diffusione del prodotto, preservandone il contenuto e le modalità di diffusione44. La scelta fu quella di creare un nuovo tipo di licenza denominata GNU GPL (Gnu General Public License) un documento, scritto in linguaggio legale, che dettava le linee guida di pubblicazione e distribuzione del software libero. Alla base della GNU GPL viene posto il “copyleft”45 letteralmente tradotto con “il diritto di copia sinistra” ma realmente utilizzato nell’accezione di diritto di eseguire il programma, di copiarlo, modificarlo e distribuirlo in versioni

42 La storia di UNIX inizia nel lontano 1969 nel Bell Lab del New Jersey, quando Ken Thompson, Dennis Ritchie e altri iniziarono a lavorare sul "poco usato PDP-7, "che da li a poco sarebbe diventato Unix. “http://www.unix.org/what_is_unix/history_timeline.html” 43 http://www.gnu.org/philosophy/why-free.it.html 44 http://www.gnu.org/philosophy/why-free.it.html 45 http://www.gnu.org/copyleft/copyleft.it.html

19


modificate escludendo la possibilità di aggiungere restrizioni46. Questo concetto ha una duplice funzione ha permesso di dare un fondamento giuridico alla diffusione del software; ha sintetizzato perfettamente la visione etica e di condivisione di Stallman. La filosofia del progetto GNU e del suo ideatore ha un’impronta sostanzialmente idealistica e a tratti utopica, molto spesso questa presunta rigidità è stata utilizzata come leva per tentare di differenziarsi dalle motivazioni che muovono il progetto Gnu. Certo è che la concezione di Stallman va in contrapposizione con un modello di sviluppo del software puramente commerciale, ma egli non esclude del tutto la possibilità di distribuire i prodotti dietro un compenso, anzi nel sito del progetto, raccomanda i suoi di non sprecare l’opportunità di raccogliere fondi per lo sviluppo attraverso la diffusione del programma. Il progetto di Stallman, il suo sforzo di costruire un sistema completo con pari dignità e maggiore efficienza in contrapposizione con quello proprietario prevalente è riuscito provocare la ricaduta del virus della collaborazione tra i programmatori, provocando l’effetto domino che porterà allo svilupparsi di numerose iniziative di software libero

2.2.2. Torvalds: pragmatico e concreto Mentre Stallman, spingeva per completare il sistema operativo GNU, rilasciando via via nuovi programmi servizi quali traduttori da linguaggio sorgente a linguaggio macchina, strumenti per la compilazione e il controllo dei documenti di testo, identificatori di errori e “bug”, interfacce e altre applicazioni, veniva di volta in volta rinviata la programmazione del nucleo, ossia la realizzazione dell’insieme di programmi che permettessero il coordinamento delle unità di calcolo e della memoria centrale. L’idea di kernel definita da Stallman era piuttosto complessa per cui anche la comunità aveva notevoli difficoltà nella piena attuazione del sistema operativo GNU.

46

http://www.gnu.org/copyleft/copyleft.it.html

20


Parallelamente al lavoro del programmatore statunitense si sviluppava in Europa il lavoro di Linus Torvalds, studente di informatica presso l’università di Helsinki che, tra studio e tempo libero, si dedicava per diletto alla programmazione. In particolare il suo obiettivo era quello di avere sul suo nuovo desktop un sistema operativo performante ma economicamente alla sua portata47. Nell’ateneo finlandese Torvalds utilizzava dei grandi calcolatori che lavorano con il sistema operativo Unix, ma per un uso domestico di tale programma risultava essere poco agevole vista la ridotta capacità del computer a sua disposizione. Decide allora di creare il kernel di cui aveva bisogno utilizzando come base di partenza Minix48 , un sistema operativo derivato da Unix, al quale apporta delle modifiche sostanziali in quanto il programma rilasciato da Tanenbaum risultava essere rigido e limitato. Nel 1991, Torvalds rilascia il nucleo del nuovo sistema operativo, un kernel capace di gestire i documenti, nella stessa logica di Unix, organizza gerarchicamente i file e consente grazie ad alcuni driver, in esso contenuti, di governare le unità periferiche. Il progetto viene denominato Linux e, grazie a Internet, viene messo gratuitamente a disposizione di qualunque persona che intenda utilizzarlo. L’unico compenso eventualmente richiesto è un contributo al miglioramento del programma. Per rendere più incisivo il suo messaggio, in contemporanea con la release del kernel Linux, lo studente finlandese invia una mail ai suoi colleghi programmatori dove spiega la sua idea e chiede collaborazione volontaria per approntare delle modifiche utili al suo progetto49. Il nucleo del sistema operativo creato da Torvalds si rivelò il tassello mancante nel mosaico di GNU, fu l’ultima tessera del domino, proprio quella che da inizio all’effetto catena. Difatti la progressione della diffusione del complesso GNU/LINUX fu sensazionale mantenendo tuttora livelli inaspettati; il sistema si è rivelato adatto a diversi tipi di piattaforme Intel, Macintosh e Alpha. Viene correntemente utilizzato da 47 M. Berra, A. R. Meo, “Libertà di software, hardware e conoscenza. Informatiche solidali 2”, 2006, Bollatti Boringhieri., p.111. 48 La prima versione, MINIX 1, è stata rilasciata da A. s Tanenbaum, nel 1987, ed è stato il primo sistema operativo, clone di UNIX ma che rendeva disponibile tutto il codice sorgente. ” http://www.osnews.com/story/15960/Introduction-to-MINIX-3/” 49 http://it.wikipedia.org/wiki/Linus_Torvalds

21


numerose aziende quali Cisco System, Google, Amazon e numerose istituzioni pubbliche in tutto il mondo, che lo reputano competitivamente affidabile e sicuro anche confrontato con i software proprietari. Alla base del successo del nuovo kernel oltre alle specifiche caratteristiche tecniche e all’abilità di Torvalds, oltre la veloce diffusione di Internet che stimolava la condivisione rendendo più veloce il passaggio di informazioni, sta anche la decisione di aderire al modello del copyleft e all’idea di condividere il codice sorgente con l’obiettivo di ottenere il meglio dalla collaborazione di altri programmatori, riuscendo a progettare e rilasciare un sistema operativo adattabile, affidabile e sicuro. Questa formula che unisce il giusto carisma del leader rappresentato da Linus Torvalds con lo spirito di partecipazione e abnegazione manifestato dalla comunità, i cui membri si occupano di creare nuove applicazioni utili al sistema, di effettuare il debugging degli errori presenti nelle diverse edizioni. Restando dentro i canoni dell’open source, probabilmente non aderendo in maniera integralista alle linee guida di Stallman e del suo software libero, dall’albero di Linux sono nati fitti germogli, numerose aziende, denominate distribuzioni, che sono riuscite a trarre vantaggio dalla produzione di software, applicazioni, server e dal servizio di assistenza. Società come Red Hat50, Canonical Ltd (Ubuntu51) e progetti di comunità come Debian52 e Gentoo53, assemblano e controllano le varie componenti software rilasciando distribuzioni personalizzate e variegate, per la maggior parte gratuite. 54 2.2.3. Il movimento opensource Durante un convegno organizzato nel 1997 per lo sviluppo del progetto GNU/Linux, Eric Raymond iniziò a parlare del suo saggio “The cathedral and the Bazar” uno scritto che, come vedremo in seguito nel capitolo, poneva le basi per una 50

http://www.redhat.com/ http://www.ubuntu.com/ 52 http://www.debian.org/ 53 http://www.gentoo.org/ 54 http://it.wikipedia.org/wiki/Distribuzione_(Linux) 51

22


nuova definizione del software opensource, che risultasse allettante anche per tutte le imprese, anche quelle che utilizzavano software proprietario e non riponevano fiducia in un software definito come “free”. In questa sede, in sostituzione del termine “free”, viene coniata l’espressione “opensource; l’aggettivo “free” veniva interpretato dalle aziende come gratuito, piuttosto che libero, e questo sembrava costituire un ostacolo alla vendita e al guadagno, per questo motivo Eric Raymond e Bruce Perens definirono il concetto di opensource e fondarono un movimento omonimo. Uno dei principali obiettivi del nuovo progetto, infatti, era quello di estendere le collaborazioni per cogliere e coniugare i propri sforzi con le competenze professionali delle imprese, per la realizzazione di software e applicazioni di maggiore qualità e spessore55. L’idea che portò i due programmatori a fondare il movimento open source fu quindi quella di modificare un progetto già esistente, il Free software di Stallman, adattandolo alle richieste del mercato e alle prospettive di guadagno, cercando di mantenere intatto sia lo spirito comunitario e sia le linee organizzative del sostrato che aveva dato origine al software libero. Un anno più tardi, Raymond e Bruce Perens, spinti dalla volontà di formalizzare il concetto e l’idea di sviluppo e diffusione del software, fondarono, l’Open Source Initiative (OSI)56. Nello stesso anno fu pubblicato “The Open Source Definition”57, un documento nel quale vengono riportati le caratteristiche e i criteri basilari che costituiscono gli standard rispetto ai quali un determinato progetto può essere considerato Open Source. Perens definisce questo documento come una carta dei diritti per l’utente del computer, descrive i diritti che una licenza software deve garantire per essere certificata Open Source: diritto di fare copie del programma e distribuire tali copie; diritto di poter cambiare il software, avendo accesso al codice sorgente; diritto di apportare migliorie al programma58. Inizialmente il documento ha utilizzato il modello della General Public License e seguito le linee guida definite nella licenza di Debian la “Debian Free 55

Perens, B. “Open Sources: Voices from the Open Source Revolution”, 1999, O’Reilly http://www.opensource.org/osd.html 57 http://www.opensource.org/docs/osd. 58 Perens, B. “Open Sources: Voices from the Open Source Revolution”, 1999, O’Reilly 56

23


Software Guidelines”, in seguito fu migliorata fino al testo definitivo composto da dieci punti. La licenza di un software per potersi considerare Open Source deve soddisfare i seguenti criteri59: 1. Libera redistribuzione La licenza non limita nessuno dal vendere o donare il software che è oggetto di tale licenza, sia esso un componente di una distribuzione aggregata, sia che contenga programmi di varia origine. La licenza non può richiedere diritti o altri pagamenti a fronte di tali vendite. 2. Codice sorgente Il programma deve includere il codice sorgente e deve consentire la distribuzione sia del codice sorgente sia del software in forma compilata. Nei casi in cui alcune forme di un prodotto vengano distribuite prive del relativo codice sorgente, deve essere chiaramente indicato il modo per ottenerlo, a un costo non superiore a una ragionevole spesa di distribuzione, preferibilmente scaricandolo gratuitamente da Internet. Per codice sorgente si intende la forma in cui un programmatore preferirebbe modificare il programma. Se il codice sorgente viene deliberatamente reso illeggibile non rispetta i requisiti della licenza. 3. Prodotti derivati La licenza deve permettere modifiche e prodotti derivati, e deve permetterne la distribuzione sotto le stesse condizioni della licenza del software originale. 4. Integrità del codice sorgente originale La licenza può impedire la distribuzione del codice sorgente in forma modificata, a patto che venga consentita la distribuzione dell'originale accompagnato da "patch", ovvero file che permettono di applicare modifiche automatiche al codice sorgente in fase di compilazione. La licenza deve esplicitamente permettere la 59

http://www.opensource.org/osd.html

24


distribuzione del software prodotto con un codice sorgente modificato. La licenza può richiedere che i prodotti derivati portino un nome o una versione diversa dal software originale. 5. Discriminazione contro persone o gruppi La licenza non deve discriminare alcuna persona o gruppo di persone. 6. Discriminazione per campo d'applicazione La licenza non deve impedire di far uso del programma in un ambito specifico. Ad esempio non si può impedire l'uso del programma in ambito commerciale o nell'ambito della ricerca genetica. 7. Distribuzione della licenza I diritti allegati a un programma devono essere applicabili a tutti coloro a cui il programma è redistribuito, senza che sia necessaria l'emissione di ulteriori licenze. 8. Specificità ad un prodotto I diritti allegati al programma non variano se il programma è legato ad un'altra distribuzione. Se il programma è estratto da quella distribuzione e usato o redistribuito secondo i termini della licenza del programma, tutti coloro che ricevano il programma dovranno avere gli stessi diritti che sono garantiti nel caso della distribuzione originale. 9. Vincoli su altro software La licenza non deve porre restrizioni su un altro software distribuito insieme al software licenziato. Per esempio, la licenza non deve richiedere che tutti gli altri programmi distribuiti sugli stessi supporti siano software open source. 10. Neutralità rispetto alle tecnologie La licenza non deve contenere clausole che dipendano o si basino su particolari tecnologie o tipi di interfacce60.

60

http://www.opensource.org/osd.html

25


2.3. Un modello organizzativo nuovo

Nonostante le numerose critiche, colui che meglio è riuscito a descrivere le caratteristiche del modello organizzativo della comunità open source è stato Eric S. Raymond che nel 1999 pubblica il saggio “La cattedrale e il Bazar” 61. L’informatico americano, coautore de “ Open Source Definition”62, decide di sperimentare il modello di sviluppo utilizzato da Stallman prima e da Torvalds in seguito, per rilasciare un applicativo libero creato con la ricetta da lui definita Bazar. Raymond mette a confronto il processo di costruzione di un software proprietario con quello di sviluppo di un software libero descrivendo il primo come il cantiere di una cattedrale e il secondo come un mercato grande e confusionario63. La convinzione di Raymond, che lavorò anche al progetto GNU, era che la collaborazione, la creazione di strumenti agili e la programmazione evolutiva avessero comunque un limite, credeva che esistesse un punto critico di complessità al di sopra del quale si rendesse necessario un approccio centralizzato e gerarchico64. Nonostante la sua esperienza nella comunità di programmatori, riteneva che i sistemi operativi e le applicazioni più voluminose dovessero essere realizzate con la cosiddetta cattedrale, che richiedessero un’attenta lavorazione manuale, con silenzio e reverenza e con la certezza che la prima uscita del progetto dovesse essere la più perfetta e affidabile possibile65. Raymond, quindi, resta particolarmente sorpreso dal successo ottenuto dal modello organizzativo perfezionato da Torvalds e lo descrive come uno stile aperto fino ai limiti della promiscuità. La comunità di Linux, viene efficacemente paragonata a un grande mercato chiassoso e pullulante, ricco di progetti e proposte molto diverse fra loro dal qualche chiunque avrebbe fatto fatica ad immaginare potesse venir fuori un sistema 61

E.S. Raymond, “The Cathedral & the Bazaar.Musings on Linux and Open Source by an Accidental Revolutionary”, 1999. O'Reilly Media. 62 http://www.opensource.org/docs/osd: decalogo che definisce le condizioni fondamentali affinché un software possa forgiarsi della licenza di software opensource. 63 http://www.apogeonline.com/openpress/cathedral 64 .S. Raymond, “The Cathedral & the Bazaar.Musings on Linux and Open Source by an Accidental Revolutionary”, 1999, tr. it. di B. Parrella.; http://www.apogeonline.com/openpress/cathedral 65 Ibid

26


operativo completo stabile e coerente.66 L’informatico statunitense, fu inizialmente impressionato e nell’analizzare il progetto, cercò di capire come mai, il mondo Linux non fosse preda di una confusione totalizzante, come mai un gozzo carico di persone, stili e obiettivi così diversi non si rovesciasse d’improvviso ma, al contrario, riuscisse a mantenere una velocità di crociera difficilmente raggiungibile dai costruttori di cattedrali67. Per toccare con mano l’affidabilità del modello organizzativo Linux, Raymond intraprende il progetto fetchmail nato dalla sua necessità di ricevere e gestire le e-mail in modo istantaneo e rapido. Due sono i punti iniziali dello stile Linux: in primis la presenza di un bisogno del programmatore che lo spinge a scrivere righe di programma che risolvano il suo problema e secondariamente una buona soluzione parziale da cui partire. Torvalds, infatti, partì dal codice di Minix per arrivare al kernel di cui aveva necessità. Altro strumento fondamentale del bazar è la presenza di molti utenti e di molti co-sviluppatori che apparentemente potrebbero creare confusione, rumore e delirio ma sono indispensabili per ottenere rapidi miglioramenti del codice e una ricerca dei bug decisamente efficace68. Elemento centrale dei progressi notevoli del nuovo modello organizzativo è la rapidità e la frequenza con cui vengono rilasciate nuove versioni del programma. Torvalds tende a stimolare e ricompensare con costanza i suoi collaboratori e utenti, premiati dalla visione di miglioramenti costanti, quasi giornalieri, ottenuti con il loro lavoro69. La presenza di tanti co-sviluppatori coinvolti e appassionati rende molto più facile e veloce la soluzione dei problemi, l’individuazione dei bug e degli errori è più facile se le righe di codice vengono esposte all’attenzione di molte menti70.

66 S. Raymond, “The Cathedral & the Bazaar.Musings on Linux and Open Source by an Accidental Revolutionary”, 1999, tr. it. di B. Parrella.; http://www.apogeonline.com/openpress/cathedral 67 Ibid. 68 Ibid 69 Ibid. 70 Ibid.

27


Nello stile cattedrale invece, le nuove versioni vengono rilasciate con tempi notevolmente più lunghi, gli errori nel codice subiscono un prolungato processo di valutazione che può durare mesi, creando un effetto collaterale di estrema delusione nel caso in cui al momento della release del programma, esso si rivela ricco di imperfezioni71. Da un’analisi superficiale dell’organizzazione si potrebbe stabilire che, la presenza di molte mani e molti menti, possa portare ad un livello di confusione e complessità tale per cui i costi e i tempi di coordinamento delle risorse diventino particolarmente pesanti, rispetto al vantaggio della velocità del debugging. Nella realtà di Linux questo non succede, la potenziale perdita di efficienza dovuta alla duplicazione del lavoro viene pressoché azzerata dalla veloce diffusione del programma e dalla rapidità con cui le migliaia di utenti comunicano la presenza di errori ed eventuali soluzioni. Il collante di tutti i blocchi del modello organizzativo di Linux è formato da due ingredienti indispensabili per la tenuta della struttura essi sono: la rete Internet, con il potenziale informativo che essa sviluppa, e la comunicazione costante all’interno della comunità. Come più volte ribadito nel capitolo precedente, il Web accresce in maniera esponenziale il numero di connessioni e contatti tra le persone, favorendo l’incremento dello scambio di informazioni e dati, riducendo le distanze fisiche e informative. L’arma vincente di Torvalds nella diffusione e nel successo del suo nucleo, è stata proprio quella di intravedere le potenzialità di Internet, utilizzarle a suo favore per ottenere un ottimo grado di comunicazione e condivisione. I diversi livelli comunicativi utilizzati nello sviluppo del programma hanno agevolato e coadiuvano tuttora il successo di Linux. La capacità di leadership collettiva impiegata da Torvalds, la sua capacità di coinvolgere sviluppatori abituati a

scrivere righe di codice nella piena solitudine,

rendendoli parte integrante di un gruppo con obiettivi condivisi, ha creato una macchina decisamente performante.

71 S. Raymond, “The Cathedral & the Bazaar.Musings on Linux and Open Source by an Accidental Revolutionary”, 1999, tr. it. di B. Parrella.; http://www.apogeonline.com/openpress/cathedral

28


2.4 Intelligenza collettiva muro portante dell’opensource

Approfondire la storia e lo sviluppo della rivoluzione del movimento opensource, aiuta ad evidenziare

alcuni elementi che aiutano a capire le potenzialità

dell’intelligenza collettiva. Uno delle leve propulsive del movimento, oltre alle capacità visionarie di Stallman e Torvalds, è in assoluto la volontà di formare un gruppo di programmatori permeato di uno spirito comunitario e collaborativo. L’idea è quella di creare una comunità di menti appassionate, un crogiolo di relazioni e interessi che realizza la combinazione ideale per un giusto livello di condivisione. La normale struttura gerarchica e formalizzata, spesso risulta rigida davanti alla rapidità di risoluzione richiesta dall’età moderna; l’aumento della complessità è sostanzialmente legato all’innalzarsi di una piramide formata dai diversi livelli di comunicazione. Nella rete di flussi di informazioni, dati e interessi costruita attorno a Linux, la diffusione avviene in maniera dinamica e veloce, spinta dall’interesse collettivo della comunità sempre tesa al miglioramento, al desiderio di conoscere e all’efficacia. Grazie ad una così fitta rete, acquistano maggior spessore i legami meno intensi e più imprevedibili ma che spesso mostrano una maggiore influenza, perché sono in grado di connettere settori molto più ampi dello spazio sociale. All’interno del groviglio intelligente di relazioni, naturalmente, ognuno riesce a mantenere la sua indipendenza, pur avendo la possibilità di partecipare in modo continuo e libero conferendo il proprio contributo. La partecipazione volontaria e la collaborazione sono quindi il terreno fertile dove si radica l’intelligenza collettiva, la sperimentazione e di conseguenza l’apprendimento permanente. La rete Internet non fa altro che accelerare ulteriormente questo processo creativo e di sviluppo, rendendo rapido il traffico di informazioni portando così alla realizzazione delle condizioni per un’innovazione regolare e durevole. Se già l’integrazione di culture, progetti e menti differenti garantiva un incremento notevole dell’intelligenza collettiva adesso, grazie alla rete la collaborazione diventa agevolmente accessibile, consentendo lo sfruttamento

29


dei benefici derivanti dalla disponibilità degli individui a lavorare insieme per coordinarsi e trovare soluzioni72. Il prodotto finito riproduce il risultato di un interscambio tra cooperazioni e competizione che traccia e compone specifiche relazioni personali, sostiene la logica dell’interazione reciproca e delle azioni individuali e collettive. L’obiettivo è diffondere un prodotto in cui la ricerca è tesa a massimizzare la funzionalità e l’efficacia, favorendo il libero sfogo della creatività e della curiosità. Individuando difetti identificabili a fatica da una singola persona, suggerendo miglioramenti e nuove applicazioni, la qualità del prodotto viene costantemente migliorata grazie al lavoro di parecchie persone che verificano in tempo reale gli errori e i bug. Il risultato di questa nuova organizzazione, che sceglie l’intelligenza prodotta da una comunità, che si basa su un modello organizzativo decentrato dove chiunque può avere accesso e contribuire al processo, è sorprendente e inaspettato per molti, previsto ed entusiasmante per altri. Nel progetto Linux, l’intelligenza collettiva si diffonde nell’ambiente caotico e chiassoso del bazar, dove tutto sembra avvenire in maniera causale e non trasmette certo una sensazione di concretezza e affidabilità. Proprio le capacità di coordinamento e leadership di Torvalds permettono che emerga un’idea innovativa e creativa dall’apparente disordine e dalla percezione di complessità. Uno dei meriti che si posso attribuire al programmatore finlandese è la capacità di coltivare la pianta dell’intelligenza collettiva, stimolando i legami deboli caratteristici della rete, coinvolgendo un numero crescente di utenti-sviluppatori, creando un’organizzazione reticolare non organizzata ma fortificata dallo spirito di appartenenza, dal controllo e dalla pressione del gruppo73. Nel suo saggio Raymond, definisce la crescita esponenziale dei partecipanti ai gruppi come la legge di Linus ” Se c’è abbastanza gente a guardare, tutti gli errori

72

M. Berra, A. R. Meo, “Libertà di software, hardware e conoscenza. Informatiche solidali 2”, 2006, Bollatti Boringhieri., p.114. 73 M. Berra, A. R. Meo, “Libertà di software, hardware e conoscenza. Informatiche solidali 2”, 2006, Bollatti Boringhieri., p.118

30


vengono corretti”74. Il numero cospicuo di programmatori e menti che partecipano alla scrittura di Linux assicura un buon standard qualitativo e un ottimo livello di attenzione, che fatica ad entrare in crisi alla luce del costante ricambio di collaboratori attivi75. Se ad un progetto di sviluppo intervengono tante persone, ognuno degli attori mette a disposizione conoscenze e interessi che diventano prontamente accessibili all’intelligenza collettiva, anche grazie all’appoggio della rete internet76. Ad esempio, un gruppo dei co-sviluppatori di Linux, particolarmente specializzato nella scrittura di programmi di mailing, dopo aver realizzato e testato una nuova applicazione frutto del lavoro collettivo di tutti, la rilascia alla comunità; dal momento in cui il programma lavora correttamente e soddisfa le esigenze degli utenti verrà considerato come affidabile, ma la possibilità di poter intervenire e migliorarlo, avendo a disposizione il codice sorgente, fa sì che chiunque possieda competenze maggiori agisca per perfezionarlo. In questo contesto si crea quindi una simultaneità che consente di esplorare contemporaneamente aspetti diversi dello stesso problema focalizzando le competenze specifiche di ognuno verso l’obiettivo più aderente alle sue conoscenze. Questo processo segue pertanto uno sviluppo parallelo e non sequenziale, la velocità di elaborazione dell’intelligenza collettiva è data dalla somma delle velocità dei componenti più veloci, di conseguenza aumenta con l’aumento del numero di partecipanti77. I processi di sviluppo e generazione di intelligenza collettiva, aperti a una partecipazione abbastanza ampia, riescono a esplorare in profondità molteplici alternative di uno stesso problema78. Un altro punto di forza della produzione di intelligenza collettiva, oltre la velocità, è anche la legittimazione dei risultati derivanti dalla collaborazione di parecchie persone 74 S.Raymond, “The Cathedral & the Bazaar.Musings on Linux and Open Source by an Accidental Revolutionary”, 1999, tr. it. di B. Parrella.; http://www.apogeonline.com/openpress/cathedral 75 A.Cottica,”Wikicrazia-L’azione di governo al tempo della rete: capirla, progettarla, viverla da protagonisti”2010, Navarra Editore.pp.15-19. Prima di mandare alle stampe il libro, Cottica ha pubblicato la bozza non corretta sul suo blog chiedendo ai suoi lettori di collaborare alla stesura dello scritto. Cottica afferma di non aver avuto nessun timore relativamente al furto delle sue idee,anzi si mostra particolarmente soddisfatto del risultato derivante dalla partecipazione dei suoi lettori.” http://www.cottica.net/wp-content/uploads/2010/05/Wikicrazia-DRAFT-June2010.pdf” 76 Ivi, pp. 23. 77 A.Cottica,”Wikicrazia-L’azione di governo al tempo della rete: capirla, progettarla, viverla da protagonisti”2010, Navarra Editore.p.24. 78 Ibid.

31


organizzate in modo reticolare. Questa numerosità garantisce robustezza al risultato. Chiunque può partecipare e confutare il prodotto della comunità, il processo aperto favorisce l’entrata e l’uscita dal gruppo agevolando il ricambio di menti e l’autoselezione di competenze nuove, liberando i componenti che hanno perduto il senso di appartenenza alla comunità79. Il modello di intelligenza collettiva costruito da pilastri di collaborazione, condivisione e riconoscimento non coincide con un modello anarchico ma piuttosto con un modello libero, informale rafforzato da un’etica del lavoro e della professionalità, da un sentimento di identificazione con un pizzico di sano egoismo, che aiuta ad esprimere al massimo le proprie competenze mettendole a disposizione del gruppo.

79

A.Cottica,”Wikicrazia-L’azione di governo al tempo della rete: capirla, progettarla, viverla da protagonisti”2010, Navarra Editore.p.24.

32


3. LO STRUMENTO: PYTHON

3.1. Perché Python?

Tenuto conto dell’obiettivo della tesi, viste le lunghe disquisizioni riguardo all’intelligenza collettiva e l’open source, Python viene considerato il miglior strumento per l’analisi e lo studio dei dati relativi al caso empirico proposto in questo lavoro. Questo linguaggio di programmazione è stato scelto innanzitutto per la facilità di reperimento, per la filosofia che il suo fondatore persegue, per la scelta di mantenere pubblico il codice sorgente, ma soprattutto per la semplicità di utilizzo, e la facilità con cui vengono scritte le righe del programma. L’obiettivo era quello di trovare uno strumento in grado di coniugare al meglio la facilità di manipolazione dei dati, la velocità di processo e l’agevolezza nell’uso. Python rispondeva a queste caratteristiche, sia per la presenza di librerie con contenuti adeguati, sia per i numerosi testi che utilizzano questo programma per lavorare dataset formati da numerosi record e molteplici variabili. Durante l’utilizzo, il programma ha presentato caratteristiche molto adatte al tipo di analisi dei dati che questo lavoro si proponeva di ottenere, garantendo flessibilità e chiarezza nella costruzione dell’algoritmo che hanno certamente aiutato nel rivelare relazioni non evidenti nella mole di dati osservati. Un’altra caratteristica fondamentale nella scelta di Python è stata la notevole accessibilità delle librerie, ma soprattutto, la presenza di una comunità di cultori del programma che sostiene i nuovi utenti, i principianti assicurando forum80 dedicati, blog 81

di aggiornamenti e chat82 di assistenza continua, il tutto in pieno stile intelligenza

collettiva. 80

http://www.python-it.org/smfforum http://www.python-it.org/blog 82 http://www.python-it.org/forum/chat/index.php 81

33


La notevole diffusione di questo linguaggio di programmazione ha reso possibile la scrittura di righe di programma e applicazioni facilmente utilizzabili nell’ambito della ricerca di marketing e della business intelligence. Vista la passione e la minuzia di particolari espressa dagli sviluppatori di Python è stato relativamente semplice adattare i costrutti, da loro creati, alle esigenze di estrazione della conoscenza generate dal dataset, tenendo conto anche degli spunti interpretativi elaborati grazie all’utilizzo del forum. La scelta di Python si è rilevata adeguata anche nell’ambito di correzione della sintassi, la presenza di appassionati disponibili e preparati ha garantito un notevole aiuto nella stesura delle righe di programma e nella ricerca degli errori.

3.2. Python: caratteristiche e storia

3.2.1 I primi passi e la maturità Nel dicembre del 1989, Guido Van Rossum, ricercatore presso l’Università di Amsterdam, decide di scrivere un interprete per un nuovo linguaggio di scrittura che prendesse spunto dalle caratteristiche principali del linguaggio ABC83, da lui correntemente utilizzato in ambiente universitario, ma che si distinguesse da esso per una maggiore apertura verso l’utilizzo contemporaneo con altre applicazioni

84

. Il

progetto portato avanti da Van Rossum, diventa parte integrante dei piani di ricerca del centro ricerche dell’università di Amsterdam e proprio con l’aiuto degli altri ricercatori, nel 1991 viene rilasciata la prima versione del programma85. Nato come hobby a cui dedicarsi nei ritagli di tempo, lo sviluppo di Python divenne per Van Rossum un lavoro a tutti gli effetti, portandolo a trasferirsi negli Stati Uniti. 83

ABC è un linguaggio di programmazione sviluppato presso il Centrum voor Wiskunde en Informatica (CWI) da Leo Geurts, Lambert Meertens e Steven Pemberton. È stato concepito come successore di BASIC, Pascal e Awk. Inoltre s'ispira a SETL e ALGOL 68 84 Lutz, M. “Programming Python, Object-Oriented Scripting”,1996 O'Reilly Media, prefazione G.Van Rossum, 85 Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing p. 43

34


Fin dalla prima versione, la scelta del ricercatore olandese fu quella di rendere disponibile a chiunque il codice sorgente di Python, assolutamente in linea con le idee predicate da Stallman. In seguito ai vari tentativi di utilizzare diverse licenze, dopo diverse discussioni con Stallman e Eben Moglen della Free Software Foundation su alcuni paragrafi della licenza utilizzata, con l’aiuto di Raymond, le modifiche alla licenza Python CNRI86, hanno reso possibile il totale soddisfacimento sia dei criteri della FSF sia delle clausole della CNRI87. Sempre grazie alla collaborazione con Raymond, Python riesce ad ottenere la certificazione dell’OSI88 mantenendo intatte le caratteristiche di software open source, nonostante i successivi passaggi di proprietà del Python Labs al network BeOpen89 e alla Python Software Foundation90. Quest’ultima venne costituita nel 2001 sotto forma di organizzazione no-profit, con lo scopo di garantire in futuro il libero sviluppo del programma Python, vigilare sulle condizioni del suo utilizzo, facilitare e sostenere la creazione di una grande comunità internazionale di programmatori Python91. La PSF detiene i diritti di proprietà intellettuale del linguaggio di programmazione sviluppato da Van Rossum, si occupa della gestione della licenza open source Python per la versione 2.1e le successive, di proteggere i marchi commerciali associati a Python e di creare un fondo di sviluppo collegato al programma di finanziamento borse di studi e progetti di ricerca92.

Python ha compiuto quasi vent’anni e, proprio nel pieno della sua maturità, sta raggiungendo un ottimo livello di diffusione e sviluppo.Negli ultimi 10 anni, infatti, è stato scelto da numerose aziende come base dei propri programmi.

86 Corporation for National Research Iniziative: organizzazione no profit che gestisce un laboratorio di ricerca a Reston, Virginia. Per alcuni anni è stata la sede di sviluppo di Python. 87 http://python-history.blogspot.com/2009_01_01_archive.html 88 http://www.opensource.org/ “'Open Source Initiative (OSI) è un'organizzazione non-profit con ambito globale formata per educare e sostenere i benefici dell'open source e di costruire ponti tra le diverse componenti della comunità open source” 89 Star-up della New Economy fallita in maniera spettacolare. Lasciando un enorme debito sulle spalle dei suoi fondatori. 90 http://www.python.org/psf/ 91 http://python-history.blogspot.com/2009_01_01_archive.html 92 Ivi.

35


Alla luce della sua sostanziale versatilità e compatibilità, tenuto conto del costante aggiornamento a cui è sottoposto il linguaggio, non esiste un particolare ambito dove Python può essere utilizzato in maniera più performante di altri. Righe di programma Python possono essere utilizzate nelle simulazioni in 3D di molti videogiochi93, nell’elaborazione di immagini medicali e software di visualizzazione94, come base per motori di ricerca, nelle suite di programmi per la gestione aziendale, per il sales management, il customer relationships management e il project management95. Scorrendo l’elenco pubblicato sul sito ufficiale di Python96 si può notare come stringhe del programma di Van Rossum vengono utilizzate aziende leader di mercato, che necessitano di manipolare con rapidità e agilità enormi quantitativi di dati in maniera affidabile e sicura.

C H I UTILIZZA PYTH O N

YAHOO MAP S

GOOGLE

APPLIC ATIVI IMPLEMENTATI C O N PYTH O N

Indirizzi, serv izi di m appat ura sono im p lem ent at i con P yt ho n

e

ricerca

Molt e com pon ent i del m ot o re di sono scrit t e in linguaggio P y t hon

ricerca

HUNCH

Nuo vo m ot ore decisio nale che ut ilizza P yt hon com e int erfaccia ut ent e e com e collant e per alt re ap plicazioni

W ALT DISNEY FEAT URE ANIMAT ION

P er rendere m aggiorm ent e leggibile il program m a di p roduzione si ut ilizza P yt hon

ABN AMBRO BANK

P yt hon v iene ut ilizzat o per defin ire m app a di valut azio ne del risch io

la

Tabella 1- from http://wiki.python.org/moin/OrganizationsUsingPython

93 http://www.asbahr.com/paper2.pdf-, Asbahr, J.: Python for massively multiplayer virtual worlds. In: Ninth International Python Conference, Python Software Activity (2001) 94 http://www.mevislab.de/mevislab/features/ 95 http://www.openerp.com/ 96

http://wiki.python.org/moin/OrganizationsUsingPython

36


C HI UTILIZZA PYTHO N

IMPLEMEN-

Ut ilizza P y t hon per l'inst allazione dell'app licat iv o An anconda e le ut ilies di co nfigurazione

RED HAT

UNIVERSIT Y OF LIFORNIA

APPLIC ATIVI TATI C O N PYTHO N

Il servizio an agrafico dell'Un iversit à è basaCA- t o su P yt ho n

BELLCOCREDIT UNION

L'int ero pro gramm a di h om e bancking è scrit t o in linguaggio P y t hon

P yt hon st rum ent o fondam ent ale per la coT HE NAT IONAL RESERVE st ruzio ne di griglie co mp ut azio nali da im COUNCIL OF CANAp iegare in diverse app licazioni e piat t aforDA me NOKIA

Am bient e di p rogram mazio ne per Sim bian S6 0 e Maem o Lin ux basat o su P yt h on

IBM

Ut ilizza P yt hon p er la gest ione della lo gist ica e di alcun i processi p rodut t ivi.

USA CENT RAL INT ELLIGENCE AGENCY

Il sit o ufficiale della CIA è scrit t o in linguaggio P yt hon

Tabella 2- from http://wiki.python.org/moin/OrganizationsUsingPython

Uno dei riconoscimenti, relativi alla maturità raggiunta da Python, è stato conferito, nel 2010, da parte della compagnia olandese TIOBE97 . Ogni anno, con aggiornamenti di cadenza mensile, la TIOBE compila la classifica indicativa dei programmi più popolari basata sui dati ricavati da tre motori di ricerca Google, MSN e Yahoo, tenendo anche conto della presenza di programmatori internazionali, di esperti mondiali e della disponibilità di corsi a tema e fornitori di assistenza. Questa classifica, denominata Programming Community Index 98(TPC Index), nel 2010 ha visto Python premiato con il premio “Programming Language of the Year” come il programma che ha registrato il maggiore aumento nel rating in un solo anno99.

97“

The importance of being earnest” www.tiobe.com www.tiobe.com 99 http://www.tiobe.com/content/paperinfo/tpci/index.html 98

37


Year

2010

Winner Python

2009

2008

2007

2006

2005

2004

2003

Go

C

Python

Ruby

Java

PHP

C++

Tabella 2-Tiobe.com "Hall of fame"

Come si evince dalla figura 2, in seguito al suo primo ingresso nella speciale classifica, la progressione di Python è stata notevole e da dieci anni a questa parte si attesta sempre tra i dieci linguaggi di programmazione più popolari.

Programming Language

Position Aug 2011

Position Aug 2006

Position Aug 1996

Position Aug 1986

Java

1

1

5

-

C

2

2

1

1

C++

3

4

2

5

PHP

4

5

-

-

C#

5

8

-

-

Objective-C

6

40

-

-

(Visual) Basic

7

3

3

6

Python

8

7

25

-

Perl

9

6

10

-

JavaScript

10

10

12

-

Lisp

14

15

14

3

Tabella 3-Tiobe.com "Very Long Term History"

3.2.2. Python: segni particolari Python viene definito come un linguaggio di programmazione ad alto livello sostanzialmente basato su una programmazione object-oriented100, ma ha dimostrato di 100

Object Oriented Language è un paradigma di programmazione, che prevede la definizione di oggetti software che interagiscono gli uni con gli altri attraverso lo scambio di messaggi; può essere anche vista come un supporto alla modellazione software degli oggetti del mondo reale o del modello astratto da riprodurre. Inoltre, l'organizzazione del codice sotto forma di classi fornisce un supporto naturale alla modularizzazione e al riuso del codice. http://it.wikipedia.org/wiki/Programmazione_ad_oggetti

38


supportare altri paradigmi come il linguaggio imperativo101 e quello

funzionale102.

Viene descritto come uno dei linguaggi più ricchi e comodi da usare, sia per la fornitura di una libreria decisamente cospicua, sia per la gestione automatica della memoria, che per la presenza di robusti costrutti per la gestione delle eccezioni103. La sua sintassi e il suo design elegante lo rendono leggibile, comprensibile e facile da imparare, questo aiuta molto nella programmazione e nel risparmio di tempo, visto che permette di concentrarsi sugli obiettivi piuttosto che sulla ricerca della funzione da utilizzare nel programma. Python è interattivo e viene definito come un linguaggio collante perché capace di connettere diverse componenti esistenti. E’ incorporabile nelle applicazioni generate in altri linguaggi come Java, C++ ed è inoltre possibile aggiungere al codice ulteriori moduli estendendo il suo vocabolario primario104. L’elenco dei vantaggi del linguaggio creato da Van Rossum e migliorato dai tanti sviluppatori sono elencate di seguito:

LEGGIBILITA’: La sintassi di Python si presenta chiara e leggibile, la sua organizzazione impone agli sviluppatori alcune regole fondamentali permettendo a esperti e principianti di diventare produttivi nell’immeditato. Un altro aspetto, che aumenta la decifrabilità di Python rispetto ai linguaggi come ad esempio Perl, è la riduzione del numero di idiomi secondari creati durante lo sviluppo del programma. L’idea innovativa di Van Rossum, ispirata dalla scrittura di ABC, è stata l’introduzione di un nuovo modo di strutturare i 101

Programmazione imperativa: è un paradigma di programmazione secondo cui un programma viene inteso come un insieme di istruzioni-ordini che vengono impartiti alla macchina virtuale; uno stile in cui tutte le operazioni da compiere sono già state previste all'interno del programma stesso. L'ordine di esecuzione è formalmente top-down, e quindi l'azione si svolge in maniera del tutto sequenziale. http://it.wikipedia.org/wiki/Programmazione_imperativa 102 Programmazione funzionale è un paradigma di programmazione in cui il flusso di esecuzione del programma assume la forma di una serie di valutazioni di funzioni matematiche. Il punto di forza principale di questo paradigma è la mancanza di effetti collaterali (side-effect) delle funzioni, il che comporta una più facile verifica della correttezza e della mancanza di bug del programma e la possibilità di una maggiore ottimizzazione dello stesso. http://it.wikipedia.org/wiki/Programmazione_funzionale 103 http://www.python.it/about/ 104 Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing p. 43

39


blocchi attraverso l’indentazione che garantisce una notevole riduzione degli errori causati da un’errata punteggiature nel codice105.

SUPPORTO COSTANTE La comunità di Python provvede costantemente al supporto degli utenti. La modalità open source, con la quale viene distribuito e messo a disposizione il programma, assicura la presenza in tutto il mondo di migliaia di sviluppatori che lavorano duramente per segnalare bug e rivelare soluzioni che risolvano gli errori. Di notevole importanza è anche il costante e cospicuo perfezionamento frutto dell’attività di numerosi utenti che frequentemente richiedono l’approvazione al Python Labs di nuove implementazioni e innovazioni al linguaggio. Tale genere di impegno assicura la possibilità di avere a disposizione, con regolarità, un linguaggio affidabile aggiornato e adeguato106.

VELOCE DA IMPARARE Il linguaggio è veramente facile da usare poiché il suo codice è simile ad uno pseudo codice. Python, infatti, non ha bisogno di righe di codice lunghe e complesse permettendo in questo modo la riduzione del tempo di apprendimento e allenamento alla scrittura del codice. Tale caratteristica è fondamentale per le imprese che vogliono adottare Python nella programmazione delle loro applicazioni. Una volta che si comincia a imparare ad utilizzare Python, quasi immediatamente, si diventa capaci di scrivere righe di codice efficienti, con un aumento costante di produttività proseguendo con la pratica. Questa qualità rende il linguaggio adatto anche per lavori di ricerca di dimensioni ridotte107.

105

Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing p. 45

106

Ibid.

107

Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing p. p.46

40


VELOCE DA SCRIVERE Numerosi sono i vantaggi derivanti dall’impiego di Python. In primo luogo, i programmatori hanno la possibilità di evitare alcuni passaggi che altri linguaggi rendono obbligatori, questo riduce sia i costi di programmazione e manutenzione del codice sia i tempi di sviluppo e programmazione. Nel caso si presenti l’esigenza Python consente un veloce ed efficiente adattamento del codice alle proprie necessità, variando le righe precedenti senza modificare le regole già inserite nei moduli. L’interprete interattivo, presente nella distribuzione di Python, impiega strategie di sviluppo che si rivelano rapide e produttive, rispetto ad altri linguaggi di programmazione tradizionale, alcuni di essi richiedono obbligatoriamente fasi distinte (come ad esempio compilazione, analisi, sperimentazione e gestione) ed altri linguaggi invece

necessitano di due ambienti distinti per la scrittura e l’esecuzione del

programma. Python si presenta tramite un interprete, fornendo uno stile di scrittura bottomup, nel quale si possono compilare le applicazioni importando e verificando le funzioni fondamentali nella shell dell’interprete, prima di scrivere il livello principale del codice108.

RIUTILIZZO Grazie alla costante implementazione di moduli e pacchetti, alla presenza di un vasto set di moduli e librerie già fornite, si riesce ad utilizzare con sostanziale facilità nei nuovi programmi funzioni precedentemente codificate, semplicemente inserendole all’interno dei moduli, riutilizzando quest’ultimi nei nuovi progetti di scrittura109.

108

Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing,p. 46

109

Ibid.

41


PORTABILITA’ Oltre alla possibilità di esecuzione su più sistemi, Python utilizza la stessa interfaccia su tutte le piattaforme. Il suo design non è strettamente collegato con uno specifico sistema operativo poiché si è scelto di scrivere Python nel linguaggio di programmazione ANSI C110 consentendo la scrittura di un programma nell’ambiente Mac, permettendo l’eventuale test in ambiente Linux e l’upload in un server Windows111.

PRINCIPALI CARATTERISTICHE TECNICHE Gestione automatica della memoria Uno dei problemi principali dei linguaggi di programmazione sono le “falle di memoria”o memory leak. Per un difetto del software spesso vi è un consumo non voluto della memoria legato alla mancata rimozione dell’immagine di variabili/dati non più utilizzati dai processi. Tale irregolarità può causare riduzioni di perfomance del terminale e del programma, per questo motivo in Python è stata introdotta una gestione automatica della memoria, un cestino che meccanicamente mette da parte i dati inutilizzati sollevando il programmatore da quest’incombenza. Un sistema di conteggio dei riferimenti e di raccolta dei “rifiuti” definisce un oggetto da “raccogliere”quando il conteggio dei suoi riferimenti all’interno dello scripting giunge a zero, Python automaticamente libera la memoria112.

110

ANSI C: linguaggio direttamente derivato C il cui standard è stato regolamentato dalla American National

Standards Institute (ANSI) per aumentarne la portabilità sui compilatori. “http://en.wikipedia.org/wiki/ANSI_C” . 111

Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing, p. 46

112

http://www.doughellmann.com/PyMOTW/sys/limits.html

42


Gestione delle eccezioni Una delle caratteristiche chiave di Python è la funzione di segnalazione degli errori coadiuvata dall'elaborazione attraverso le cosiddette eccezioni. A differenza del linguaggio C, dove il modo più comune per segnalare errori è attraverso i valori di ritorno funzione, metodo che obbliga il controllo dei valori ad ogni chiamata, in Python un programmatore può sollevare un'eccezione in qualsiasi punto del programma. Quando l'eccezione viene sollevata, l'esecuzione del programma si interrompe e l'interprete cerca, utilizzando il backup, di trovare nel contesto un gestore di eccezioni. Questo algoritmo di ricerca consente una gestione degli errori organizzata in modo pulito e allocata in un luogo centrale o di alto livello all'interno della struttura del programma113.

Biblioteche Il linguaggio Python viene fornito con le “Pile incluse”114, vale a dire che, qualunque versione di Python si decida di scaricare e utilizzare, essa viene distribuita corredata di generosi pacchetti di moduli denominati librerie115. La libreria Python contiene numerose e differenti componenti, comprende tipi di dati che normalmente verrebbero considerati parte del “nucleo'” di un linguaggio, come numeri e liste. Tuttavia lo scaffale principale della libreria standard di Python contiene funzioni ed eccezioni built-in, oggetti utilizzabili da tutto il codice senza bisogno di digitare l'istruzione <import>. Nei ripiani dello scaffale gli oggetti, i moduli e le funzioni sono elencati in ordine di funzionalità e all’interno suddivisi in ordine alfabetico, questo assicura una facile lettura dei moduli e un semplice utilizzo nella successiva scrittura 116. 113 114 115 116

http://www.doughellmann.com/articles/how-tos/python-exception-handling/ http://docs.python.it/html/tut/node12.html http://docs.python.it/”Manuale di riferimento della libreria standard”.tr.it maggio 2005. http://docs.python.it/”Manuale di riferimento della libreria standard”.tr.it maggio 2005

43


I moduli contenuti nella sola libreria standard sono migliaia e migliaia sono le applicazioni supportate alla base dagli oggetti e dai moduli raccolti nella libreria. Le caratteristiche dei costrutti sono le più diverse. Alcuni moduli contenuti nella libreria sono scritti in C e fusi nell'interprete Python; altri sono scritti in Python e importati in forma sorgente. Taluni moduli comprendono interfacce che sono fortemente specifiche di Python, altri includono interfacce che sono proprie di un particolare sistema operativo, come l'accesso a un hardware determinato; altre ancora consentono di avere interfacce inerenti ad un

particolare dominio di applicazioni, come il World Wide

Web. Le macro aree in cui viene normalmente suddivisa questa enorme mole di funzioni sono “oggetti built-in ”, “servizi runtime ”, “servizi per le stringhe”, “servizi vari”, “servizi comuni ai diversi sistemi operativi”, “servizi facoltativi per il sistema operativo”, ”servizi specifici per Unix”, “comandi del debugger”, “profiler”, “protocolli interni”, “gestione dati internet”, “strumenti per l’analisi dei linguaggi di markup strutturati”, “servizi multimediali”, “crittografia”,”grafica e interfaccia utente”, “esecuzione limita”, “servizi del linguaggio Python, “package di compilazione”, “servizi specifici” e “moduli non documentati”117. Ovviamente la disponibilità dei moduli è legata alla scelta di una determinata opzione di configurazione scelta al momento in cui Python viene compilato e installato.

Elementi inclusi Python offre una vasta lista di elementi pre-installati e un ampio elenco di operazioni finalizzate alla semplificazione della scrittura e del processo di costruzione dei programmi118. Come indicato nella Tabella 4, la libreria offre un nutrito elenco di funzioni di base decisamente semplici da utilizzare che consente di intraprendere da subito la fase di sviluppo e sperimentazione del linguaggio. Grazie all’aiuto della comunità di Python, grazie alla facile reperibilità di tutorial e video sulla rete, grazie ai suggerimenti forniti 117

Ivi.

118

Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing , p.51

44


dalla shell di Python, funzioni e moduli apparentemente incomprensibili diventano sin da subito decifrabili e utilizzabili.

Figura 1 Elenco funzioni incluse-Esempio Libreria-http://docs.python.org/library/functions.html

Supporto dello scripting web e gestione dei dati.

Python permette di scrivere righe di programma utilizzabili anche nel Web. In particolare, Python consente di scrivere programmi CGI119 che lavorano ottimamente in diversi ambienti Web. L’idea alla base di questa adattabilità della programmazione Python applicata sul Web, facilita il cambio della piattaforma senza modificare il codice di scrittura120. Grazie alla semplicità di utilizzo delle classi precostituite e dei moduli che accompagnano Python, è possibile scegliere qualsivoglia metodo di scrittura e

119

CGI:Common Gateway Interface: è un’interfaccia che rende possibile il dialogo e il trasferimento di informazioni tra un programma e il World Wide Web; ogni programma CGI è concepito per inviare e ricevere dati dalla rete conformi alla specifica codifica del CGI. I programmi CGI rappresentano il metodo più comune nell’interazione tra Web server e utenti.” http://www.webopedia.com/TERM/C/CGI.html” 120 Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing p. 50

45


programmazione in ambiente Web, come ad esempio HTML121 o XML122, senza perdere in perfomance e versatilità123.

Flusso di sviluppo Nonostante Python non preveda nessun processo di compilazione o collegamento, il codice consente di compilare il programma analogamente utilizzando i byte. Le righe compilate vengono salvate in un linguaggio intermedio denominato bytecode che può raggiunto da ogni sistema che comprende un terminale Python. Questa caratteristica di portabilità rende Python molto simile al linguaggio Java, permettendo di creare una applicazione eseguibile, sicura ed indipendente124.

Database Alla luce della sua portabilità e versatilità, Python è in grado di interfacciarsi con facilità la maggior parte dei database attualmente in commercio. Il pacchetto iniziale, definito come libreria “DB-API”, offre la possibilità di gestire i database lineari e relazionali creando un’unica interfaccia di accesso alle banche dati indipendentemente dal sistema di archiviazione impiegato. Questo significa che il codice di scrittura non varia al variare del database utilizzato, l’unica modifica viene effettuata con la ricerca nella libreria del modulo previsto per quella determinata versione del database125.

121

HTML : Hyper Text Language, linguaggio di markup correntemente utilizzato per la creazione di documenti ipertestuali disponibili nel Web. Nello specifico il linguaggio non definisce variabili o funzioni ma si focalizza sulla descrizione delle modalità di impaginazione e layout grafico “http://it.wikipedia.org/wiki/HTML” 122 XML:Extensible Markup Language metalinguaggio di markup, ovvero un linguaggio marcatore che definisce un meccanismo sintattico che consente di estendere o controllare il significato di altri linguaggi marcatori. Può essere utilizzato per creare nuovi linguaggi, atti a descrivere documenti strutturati, ma anche come mezzo per l’esportazione di dati dai diversi database.” http://it.wikipedia.org/wiki/XML” 123 Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing p.50 124 125

Ivi.51 Dos Santos Lessa A. ”Python Developer’s Handbook”2002, Sam Pubblishing p.51

46


Elementi grafici E’ possibile realizzare applicazioni che permettono l’inserimento di elementi grafici all’interno della programmazione, in particolare consente l’utilizzo delle “graphical user interfaces126”. Questo tipo di interfacce sono versatili e possono essere agevolmente utilizzate, grazie alle principali librerie di Python, sia nei sistemi Windows, Macintosh e Unix. Tale facilità d’uso è dovuta al fatto che molte strutture GUI, sono state sviluppate per Python e catalogate all’interno della libreria Tkinter127, un’interfaccia standard object-oriented che è diventata la piattaforma ufficiale di Python per lo sviluppo di delle interfacce GUI. I risultati ottenuti con Python possono essere assolutamente soddisfacenti anche utilizzando poche righe di programma scritte da un utente principiante, come si può osservare nelle finestre mostrate qui di seguito.

Figura 3-Esempio finestra di dialogo http://www.blackbirdblog.it

126

GUI: interfaccia grafica che consente all’utente di interagire con facilità con la macchina, manipolando oggetti grafici convenzionali.” http://it.wikipedia.org/wiki/Interfaccia_grafica” 127 Tkinter:è l’interfaccia standard che permette di manipolare elementi grafici attraverso le interfacce GUI. Libreria composta da numerosi moduli tra cui il modulo binario in cui è situata l’interfaccia vera e propria (Tk)” http://www.pythonware.com/media/data/an-introduction-to-tkinter.pdf”

47


Conclusioni

Alla luce di tutte le caratteristiche tecniche fin qui elencate, tenuto conto della semplicità di apprendimento e dell’efficacia nella manipolazione dei dati, Python si dimostrato sicuramente all’altezza delle gestione e del trattamento dei database proposti in questo lavoro.

Nonostante la recente esperienza nel campo della programmazione, costruire gli algoritmi che verranno utilizzati di seguito nel lavoro di analisi si è dimostrato meno arduo di quanto

precedentemente si fosse immaginato. Persino il layout e la

visualizzazione dei dati, grazie alle applicazioni grafiche di Python, sono stati sufficientemente facili da realizzare con un risultato comunque efficace.

Tenendo conto di un presumibile utilizzo futuro degli algoritmi presentati, e di una probabile presentazione dei risultati alla Divisione Consumer, l’idea che il linguaggio di programmazione impiegato sia al tempo stesso open source, facile e immediato da utilizzare rende particolarmente appetibile per la controparte l’eventuale raccolta e applicazione dei risultati ottenuti

48


4.INTELLIGENZA COLLETTIVA: STRUMENTI DI ESTRAZIONE 4.1. Introduzione

Ammirare un quadro di un pittore dadaista o una scultura futurista cercando di catturare il concetto che l’autore aveva intenzione di trasmettere crea nel visitatore del museo un’espressione facciale e una sensazione molto simile a quella percepita da un manager davanti ai record di un database. Possedere gli strumenti di estrazione della conoscenza da un immenso magazzino di dati è come infilarsi gli occhiali per vedere un film con tecnologia 3D. Da sempre la presenza di una quantità considerevole di dati e di strumenti statistici che fossero in grado di approfondirli e trarne conoscenza, è stata considerata come il migliore materiale da costruzione per le ricerche di mercato e gli studi di marketing. Naturalmente ai primordi non è stato semplice, ne rinvenire, ne raccogliere i dati e tanto meno elaborarli al meglio. Le difficoltà si presentavano particolarmente ardue da superare, sia nella ricerca dei dati, sia nella loro raccolta e archiviazione ma anche nell’analisi, poiché inizialmente le macchine a disposizione non erano in grado di lavorare con grossi quantitativi di dati. Contestualmente si è incrementato notevolmente il quantitativo di dati che le aziende hanno a disposizione e che possono potenzialmente utilizzare, grazie allo sviluppo di computer e terminali in grado di supportare idoneamente le ricerche e gli approfondimenti degli studiosi di economia. Il progresso nel campo dell’informatica ha avuto un duplice impatto, ha influito sulla produzione di dati utili ai manager nella programmazione, nella pianificazione e in

49


tutte le attività di marketing e contemporaneamente ha agevolato la produzione di conoscenza derivante dall’analisi dei dati. La raccolta delle informazioni sui consumatori ha ricevuto un'altra spinta rilevante dalla diffusione dell’utilizzo della rete. Come già descritto nei capitoli precedenti Internet ha rappresentato e rappresenta un acceleratore di contatti, un mercato parallelo di informazioni, un mondo dove chiunque può esprimersi, comportarsi liberamente e raccogliere ogni genere di informazione. Ovviamente ogni utente che utilizza e naviga in rete, lascia innumerevoli tracce del suo passaggio, segni che parlano e descrivono i suoi comportamenti, le sue preferenze, i suoi gusti delineando un profilo anagrafico caratteristico. La gestione del patrimonio informativo, della conoscenza e dell’intelligenza collettiva incorporata nei dataset è una delle nuove sfide in cui si confrontano attualmente le aziende. Questo immenso tesoro viene raccolto e trattato sia da ditte specializzate che poi rivendono l’elaborazione delle informazioni, sia dalle società produttrici o fornitrici di servizi che impiegano il loro portafoglio clienti carico di dati per pianificare e gestire le azioni di mercato.

4.2 Data Mining

La visione di una tale miniera di dati potrebbe accecare qualunque manager ed esperto di marketing ma come il lavoro in maniera, la strada verso il recupero e lo sfruttamento del giacimento non sempre è cosi facile da intraprendere. Fruire di un così grande quantitativo di informazioni e notizie non è un vantaggio assicurato, spesso, infatti, un database stracolmo di informazioni può rivelarsi un ostacolo. Il pericolo è quello di trovarsi davanti ad un sovraccarico informativo.

50


Spesso i benefici apportati dalla disponibilità di un patrimonio di conoscenze, da un flusso continuo di informazioni inadeguatamente classificate, non sono proporzionali al tempo e alle competenze necessari per rendere produttivo il capitale informativo. Al di là di all’overload informativo, due sono i motivi che hanno rallentato l’immediato sfruttamento di questa moltitudine di dati: uno è l’inefficiente organizzazione delle informazioni che vengono archiviate in diversi sistemi tra loro non connessi; il secondo è la scarsa consapevolezza della presenza di strumenti statistici e informatici adatti alla produzione di costrutti efficaci e rivelanti nei processi decisionali128. Per questo motivo, in parallelo con la produzione ininterrotta di dati e conoscenza si sono sviluppati numerosi metodi e tecniche di estrazione, preparazione, validazione, riduzione ed esplorazione dei dati raccolti, sostenuti e facilitati da numerosi applicativi software in grado di processare le informazioni provenienti da ogni tipo di fonte. Qualunque sia la qualità e la dimensione del database a disposizione di un’azienda, sussistono quindi due i punti di vista con cui il manager può decidere di affrontare l’analisi. Il primo approccio è di tipo statistico, puramente descrittivo, che fornisce al decisore strumenti di esplorazione, rappresentazione e confronto dei dati relativi a un’intera popolazione statistica, permettendo la costruzione di modelli e metodi finalizzati all’analisi e alla comprensione dei dati; all’interno di quest’approccio, tenuto conto del fatto che raramente si è in possesso di tutte le informazioni relative ad una popolazione statistica, si sceglie di esaminare un campione di osservazioni. Impiegando gli eventi osservati come risultati campionari, si giunge, nel modo migliore, alla conoscenza delle caratteristiche dell’intera popolazione che ragionevolmente li ha generati129. Attraverso l’inferenza statistica, il processo di induzione probabilistica, 128 129

Giudici, P. “Data Mining”, McGraw-Hill,2001.p.1 Piccolo, D.”Statistica”, Il Mulino(1998),pp.491-492

51


consente al decisore di ottenere, con buona approssimazione, affermazioni riguardanti sia l’intera popolazione sia il segmento target, semplicemente analizzando i dati relativi al campione in suo possesso130. Il secondo approccio è legato all’apprendimento automatico (machine learning), un filone di studi, strettamente collegato all’informatica e all’intelligenza artificiale che approfondisce le tecniche per ricavare dai dati relazioni e regolarità, fornendo ai modelli una valenza generale. Al fine di prevedere l’andamento di determinate variabili, il decisore ha a disposizione un processo non solo in grado di generare dati ma capace di generalizzare quanto osservato131. I due approcci trovano la loro unione nel Data Mining132, un’area disciplinare in grado di trarre spunti utili sia dall’informatica, dal marketing e sia dalla statistica, con l’obiettivo di ottenere risultati misurabili in termini di rilevanza e vantaggio competitivo per le aziende che si accostano a questa tecnica. Quest’insieme di metodologie coadiuva i manager nella ricerca delle informazioni e delle competenze all’interno della propria organizzazione e del proprio portafoglio clienti, e consente loro di generare nuova conoscenza e intelligenza collettiva dai dati in possesso dell’azienda. Il processo di Data Mining si sviluppa in alcuni step fondamentali. Dapprima si definiscono gli obiettivi della ricerca, in seguito un lungo processo di raccolta e archiviazione porta alla realizzazione del database; i dati così immagazzinati, per essere efficacemente utilizzabili nel supporto alle decisioni, devono essere selezionati, organizzati e trattati; dopo queste prime fasi ha inizio un’analisi esplorativa delle osservazioni e un’eventuale trasformazione. Si arriva così alla definizione delle caratteristiche peculiari del database che consentono di determinare il metodo e i modelli di elaborazione delle osservazioni133. I metodi statistici da impiegare vengono 130

Piccolo, D.”Statistica”, Il Mulino(1998),pp.491-492 Giudici, P. “Data Mining”, McGraw-Hill,2001.p.2 132 “Per data mining si intende il processo di selezione, esplorazione e modellazione di grandi masse di dati, al fine di scoprire regolarità o relazioni non note a priori, e allo scopo di ottenere un risultato chiaro e utile al proprietario del database”Giudici, P”Datamining”McGraw-Hill, 2001, p.3 133 Vercellis, C.” Business Intelligence”, (2006), McGraw-Hill, p.18 131

52


selezionati in base allo scopo dell’analisi. Inizialmente si utilizzano metodi esplorativi che consentono di trarre le prime conclusioni sulla massa dei dati indicando inoltre le linee guida per un’eventuale trasformazione del database. Secondariamente si può optare su metodologie non supervisionate che classificano le osservazioni e le variabili in base a legami non noti a priori, o scegliere i metodi predittivi o supervisionati che consentono di prevedere o classificare un osservazione futura in funzione del comportamento delle osservazioni precedenti Mentre i tre metodi sopradescritti prediligono un’analisi globale del database nel suo complesso, i metodi locali si focalizzano sull’individuazione di caratteristiche specifiche di sottoinsiemi rilevanti all’interno del database134. Definito il metodo statistico, ha inizio la fase di definizione e scrittura dell’algoritmo di calcolo informatico, una sequenza finita di istruzioni che consente di ottenere un risultato atteso. La conclusione del processo di Data Mining non si ha con la lettura dei risultati dei dati e con la previsione delle caratteristiche di una nuova osservazione, il processo deve portare alla piena integrazione dei risultati nella gestione aziendale, nella definizione e nella pianificazione delle strategie di marketing. Come si evince dai due brevi casi aziendali riportati di seguito la conoscenza del mercato, la posizione di leadership singolarmente non sono sufficienti a garantire e mantenere un buon livello di vantaggio competitivo. La produzione e successiva analisi costruttiva dei dati, un monitoraggio continuo del portafoglio clienti e delle caratteristiche degli utenti facilita invece il raggiungimento di quest’obiettivo.

134

Giudici, P. “Data Mining”, McGraw-Hill,2001.p.10

53


4.2.1 Libreria on line

Il numero dei titoli dati alle stampe ogni anno aumenta in maniera esponenziale e con esso la difficoltà e il tempo che ogni buon lettore deve dedicare alla scelta e selezione dei testi da leggere. Avere a disposizione un intero catalogo di libri online, potrebbe facilitare la valutazione e ridurre il costo informativo ma spesso la varietà è tale da rendere difficoltosa anche la scelta su internet. In questo spazio enorme si può inserire un intermediario che sia in grado di offrire un servizio di selezione dei titoli in base alle preferenze del cliente. Un famoso sito attivo nella vendita di libri on line, ha ottenuto e continua a mantenere un vantaggio competitivo notevole nei confronti di molti concorrenti on line e off line, grazie all’utilizzo di un datamart135 in grado di archiviare in modo logico e adeguato i dati relativi alla navigazione e alle transazioni compiute da un utente sul sito Con l’autorizzazione del cliente, il sito può raccogliere dati di base quali informazioni anagrafiche, ma può anche registrare notizie relative agli acquisti effettuati sia in termini di preferenze che di importo della spesa. Attraverso un’attenta analisi e gestione del database, attraverso l’utilizzo di semplici applicativi informatici può raggiungere l’obiettivo di aumentare la redditività di ogni cliente e contestualmente di fidelizzarlo. L’archiviazione delle informazioni nel data mart da sola non è sufficiente, è necessario utilizzare un algoritmo di calcolo che durante la navigazione nel sito sia in grado di formulare dei suggerimenti all’utente; contrariamente a quanto avveniva agli inizi dell’era di internet, questi consigli non vengono generati in maniera casuale ma prendono forma sia in base alle esigenze esplicitamente manifestate e registrate dal cliente, sia grazie ad un applicativo in grado di memorizzare e valutare i gusti del consumatore in base ai suoi acquisti precedenti. L’applicativo non si limita a riproporre

135 Data mart: è un raccoglitore di dati specializzato in un particolare soggetto. Un Data mart contiene un'immagine dei dati che permette di formulare strategie sulla base degli andamenti passati. http://it.wikipedia.org/wiki/Data_mart

54


testi già acquistati o tomi dello stesso autore ma confronta le caratteristiche dei diversi clienti, ne ricava similitudini indicando titoli comperati da altri con preferenze simili. Questa metodologia di raccolta dati e la formulazione di suggerimenti non viene tenuta nascosta dall’azienda, anzi, viene esplicitata, spiegata e pubblicizzata al fine di renderla più familiare e fare si che siano gli utenti stessi a inserire e comunicare il maggior quantitativo di informazioni migliorando la qualità. Il servizio viene promosso e presentato come un servizio accessorio, utile nella riduzione dei tempi, costi di scelta e reperimento dei libri desiderati, pratico nell’indicazione di altri utenti con cui condividere interessi e passioni. La conoscenza approfondita di gran parte del portafoglio clienti, porta ad un aumento del cross-selling e della retention, influenza positivamente i livelli di customer retention, permettendo inoltre di incrementare la profondità e la larghezza dell’assortimento prodotti in base ai dati raccolti da tutti i consumatori.

4.2.2 Customer relationship management di un istituto bancario Probabilmente è difficile definire il quantitativo di dati che l’istituto bancario nel quale abbiamo acceso un rapporto di conto corrente possiede su di noi. Verosimilmente la banca conosce i suoi clienti meglio di quanto possano conoscerli parenti o amici. Queste informazioni rappresentano uno degli asset principali postati a bilancio dagli istituti di credito, ma solo recentemente i manager si sono focalizzati sulle potenzialità di rendimento di questo capitale informativo. Nell’ottica di una strategia di marketing relazionale, trarre conoscenza e intelligenza dai dati che i clienti comunicano alla Filiale di riferimento, pone le basi per la creazione e il mantenimento di una relazione più intensa e redditizia. Essere in grado di sfruttare nel modo migliore non solo le informazioni esplicitate dai correntisti ma

55


anche la conoscenza implicita catturata dagli addetti di filiale, fornisce gli strumenti per aumentare la presenza dell’istituto(acquisition), per incrementare l’intensità e l’efficacia dei contatti e per rafforzare la reputation e i valori che la banca trasmette. L’enorme patrimonio di informazioni deve essere assolutamente maneggiato con cura per evitare la violazione delle leggi sul trattamento dei dati e per scongiurare il pericolo di un intervento troppo invadente nei confronti del cliente. A questo proposito, il sistema di Customer Relationships Management (CRM) fornisce ai dirigenti numerosi strumenti per districarsi al meglio tra confini così labili, ma costituisce un validissimo aiuto anche nella definizione e valutazione delle strategie di marketing. In particolare la base di dati raccoglie, cataloga e archivia le informazioni relative ai clienti, quali l’anagrafica e collegamenti con altri soggetti, possesso e utilizzo dei prodotti bancari, saldi e movimentazione del conto corrente e del deposito titoli. Tramite l’estrazione di report, l’utilizzo di analisi statistiche, i dirigenti analizzano l’andamento di alcune delle leve principali e sulla base della conoscenza estrapolata dal database, incrociandola con quelli che sono gli obiettivi di redditività, definisce e pianifica le azioni e le campagne da somministrare. Ad esempio, vista la ridotta diffusione della moneta elettronica in Italia, individuato un target di clienti giovani con un discreto reddito, si potrebbe predisporre un elenco di utenti ai quali proporre una carta bancomat o prepagata, questo consentirebbe di aumentare la fidelizzazione e il cross-selling della relazione. Queste campagne vengono definite periodicamente dai manager delle direzioni commerciali, tuttavia non solo i manager di alto livello possono sfruttare le opportunità offerte da un sistema di CRM, sono soprattutto gli operatori di front-office che possono ottenere il massimo rendimento dalla presenza di questo strumento. I vantaggi che l’operatore commerciale può acquisire dall’insieme degli applicativi che compongono un CRM sono numerosi e consentono all’addetto di incrementare il livello di soddisfazione dei propri clienti. In questo sistema la Filiale di prossimità interpreta un duplice ruolo, da un lato sfrutta i suggerimenti e gli strumenti

56


supporto alle decisioni messi a disposizione dal sistema, dall’altro lato incrementa le funzionalità e l’efficacia del programma raccogliendo dati e informazioni durante gli incontri e inserendo notizie rilevanti relative ai clienti. Questa conoscenza implicita ma decisamente utile, è il frutto di un processo maieutico basato su una relazione di fiducia che solo un operatore di prossimità può instaurare; tenuto conto delle difficoltà che si incontrano nel catturarla sarebbe controproducente lasciare che resti in possesso di uno solo e non venga condivisa con tutti i membri dell’organizzazione.

Dal punto di vista tecnico il particolare sistema di CRM adottato dai principali istituti bancari si basa su quattro pilastri fondamentali: una base dati dettagliata alimentata costantemente da tutti gli applicativi utilizzati dalle filiali; alcuni algoritmi che consentono di estrapolare dalla base dati informazioni, scadenze ed eventi, utili ad organizzare le diverse iniziative e le campagne commerciali; reportistica, indicatori, approfondimenti di marketing e controllo di gestione che consentono il presidio e il monitoraggio dell’andamento dei vari progetti, garantendo un’attenta analisi sui risultati; interfaccia grafica per gli utenti delle Filiali capace di integrare tutte le informazioni relative al cliente, ai prodotti, alle azioni commerciali in un unico applicativo. Grazie ad una schermata riassuntiva l’addetto commerciale ha a disposizione tutte le caratteristiche salienti del proprio correntista. Contrariamente, rispetto al caso della libreria on-line, il consumatore non percepisce fisicamente la presenza di questa piattaforma, ma di certo potrebbe apprezzare il fatto che la sua filiale di riferimento gli ricorda le scadenze dei titoli, gli

57


suggerisce il finanziamento più aderente alle sue esigenze, lo richiama periodicamente o in seguito ad un incontro spontaneo con richiesta di informazioni. In entrambi gli esempi descritti viene messa in risalto l’importanza delle informazioni che gli utenti/clienti mettono a disposizione delle aziende in maniera più o meno spontanea. Per quanto i dati raccolti possano essere per catalogati e validati, occorre comunque un processo di data mining e di analisi statistica approfondita sia per rintracciare modelli ricorrenti all’interno della base dati sia per formulare consigli, suggerimenti o vere e proprie azioni di marketing. Al variare del database e degli obiettivi decisionali che si vogliono raggiungere varia la metodologia richiesta e cambia anche l’algoritmo di calcolo che permette di raggiungere i risultati attesi. Ferma restando l’indispensabilità dei dati e delle informazioni, tenuto conto della consapevolezza della presenza di metodi statistici di elaborazioni dei dati, fondamentale resta la capacità dei programmatori e decisori di intravedere all’interno di un elenco interminabile di record l’intelligenza collettiva. Quest’intelligenza collettiva non è la semplice somma e combinazione delle informazioni, idee, comportamenti e preferenze forniti dai clienti durante il consumo e la ricerca, è un risultato di molto superiore, è nuova conoscenza, sono nuove idee e nuove linee guida che consentono l’ingresso in nuovi mondi, la scoperta di nuovi bisogni. E’ facile intuire che all’interno di qualsiasi insieme di dati possono essere presenti modelli ricorrenti e che attraverso un processo inferenziale essi si possono individuare, realizzando delle generalizzazioni sul comportamento e sul significato dei dati. E’ facile comprendere che costruendo degli algoritmi di calcolo adeguati è possibile fare in modo che le macchine apprendano e siano in grado di predire le caratteristiche di una nuova osservazione in ingresso nel database. Quello che risulta più difficile da capire e comunque non è di immediata comprensione, è che tutta la conoscenza che viene prodotta non ha molto valore se non viene elaborata dalla mente dei decisori.

58


Le macchine intelligenti e gli algoritmi di calcolo mettono in risalto le caratteristiche delle osservazioni e i modelli sottostanti, aiutano a individuare gruppi di clienti simili per gusti e comportamenti, consentono di notare legami tra prodotti e modalità di utilizzo, facilitando e riducendo i tempi di analisi dei dati, assicurando ai manager una maggiore focalizzazione sugli obiettivi e sulla sintesi dei risultati. Il data mining e tutti gli strumenti che nel processo vengono utilizzati non sono una prerogativa esclusiva del marketing, molti algoritmi di apprendimento vengono utilizzati in campi del tutto distanti dall’economia aziendale. La ricerca dell’intelligenza collettiva non è limitata, come affermato da Lèvy l’intelligenza si trova ovunque, è per questo che i metodi statistici di analisi quali le serie storiche, la regressione lineare, gli alberi decisionali e il clustering trovano applicazione nei campi quali:

Biotecnologie: alla luce dell’enorme quantitativo di dati e formule prodotti dai ricercatori nei campi delle biotecnologie, della genetica e della biofarmaceutica, numerose tecniche di data mining vengono utilizzate per ridurre il “rumore” derivante dalla mole di dati, e per trovare modelli ricorrenti all’interno dei data base. Ad esempio, avendo a disposizione una base dati contenente 20.000 proteine e le loro strutture, un algoritmo è in grado di identificare quali molecole potrebbero interagire in base alle specifiche caratteristiche;

Evasione fiscale: tenuto conto dell’enorme mole di dati prodotta dall’anagrafe tributaria, dagli istituti di credito e dai rivenditori di prodotti di lusso, solo di recente tecniche di data mining vengono utilizzate dalla Guardia di Finanza per incrociare i dati del reddito dichiarato con le effettive spese sostenute.;

59


Frodi e truffe: sempre più spesso potenti algoritmi vengono impiegati per individuare transazioni fraudolente effettuate con carte di credito clonate e con password di servizi di home banking oggetto di fishing;

Antiriciclaggio: enormi data base e potenti software incrociano i dati delle transazioni bancarie sospette segnalando individui che effettuano operazioni insolite rispetto al loro tenore di vita, oppure versamenti e prelevamenti frammentati negli importi e nei tempi finalizzati al lavaggio del denaro proveniente da attività illecite;

Text Mining: tecniche di clustering non supervisionato su dati testuali non strutturati, che consentono di effettuare ricerche approfondite su grandi dataset contenenti un ingente quantitativo di testi, individuando gruppi omogenei per argomento, ne permettono la classificazione delle relazioni e dell’evoluzione temporale. Applicati ai motori di ricerca rendono possibile il ranking dei siti e l’eventuale filtraggio di informazioni e contenuti non desiderabili.

Grazie alla rete, agli strumenti di condivisione e di collaborazione, l’intelligenza collettiva ubicata ovunque andrà aumentando e con lei crescerà la consapevolezza del patrimonio informativo che essa rappresenta. Sempre maggiore Maggiore sarà l’intelligenza collettiva prodotta maggiore sarà l’esigenza di concepire tecniche e strumenti per estrarla, sintetizzarla e condividerla.

60


4.3 Reti Neurali

Naturalmente lo sviluppo dell'automazione e la spinta verso un'approfondita ricerca statistica, ha agevolato l'utilizzo e la diffusione di altri strumenti di estrazione della conoscenza e dell'intelligenza collettiva. Tra questi strumenti quegli che maggiormente potrebbero affascinare l'uomo sono quelli che più si avvicinano alla simulazione del comportamento e del ragionamento umano e animale. Da sempre cercare di riprodurre in maniera il più fedele possibile il processo decisionale e precettivo dell'uomo è stato un chiodo fisso per lo sviluppo della ricerca in svariati campi, dalle neuroscienze, alla psicologia, all'informatica e alla statistica. Dopo aver studiato la complessità biologica delle architetture delle reti di neuroni del cervello umano, si è provato a riprodurne i processi e le funzionalità attraverso modelli di calcolo matematico. Negli ultimi anni, gli odierni sistemi di analisi dell'informazione hanno compiuto passi da gigante. Gli elaboratori sono in grado di riprodurre esattamente processi considerati di tipica pertinenza umana, come il recupero di informazioni da un archivio o l'esecuzione di calcoli molto complessi. Gli sviluppatori si sono spinti verso l'automazione del ragionamento simbolico, fino a sistemi abili, in grado di modellare e rendere disponibile la conoscenza di molti esperti in settori specifici. Nonostante i progressi enormi e i risultati raggiunti nei processi di automazione le macchine offrono ancora un comportamento primitivo e non perfettamente comparabile con il comportamento umano in molti dei processi percettivi136.

4.3.1 Storia e percorso evolutivo Per lungo tempo, le reti neurali sono state viste come “scatole nere e magiche” in grado di apprendere e svolgere compiti decisamente complessi, producendo risultati 136

Gori, M. “Introduzione alle reti neurali artificiali”, Mondo digitale, n.4, Dicembre 2003

61


inaspettati. Successivamente il focus di ricerca si è spostato verso la comprensione del comportamento dei diversi tipi di reti neurali che fino ad allora erano state sviluppate137. Varie sono state le fasi di avvicinamento, studio, sviluppo e applicazione delle reti neurali. Il primo significativo passo verso la costruzione di macchine in grado di replicare compiti ed elaborazioni del cervello umano, fu compiuto nel 1943 da McCulloch e Pitts138 che nel loro lavoro proponevano un'analisi formale e completa dei processi neuronali e dell'attività eccitante e inibitoria delle sinapsi, e del processo collettivo utile a rappresentare complesse proposizioni139. Benché la scintilla che spinse verso lo studio e la riproduzione artificiale delle reti neurali biologiche fosse nata dalla volontà di riprodurre fedelmente l'architettura e i risultati del cervello umano, ben presto i matematici e gli informatici compresero che non era necessaria una precisa imitazione dei processi neurobiologici per evidenziare capacità cognitive. Molti modelli riproducevano l'architettura biologica dei neuroni e delle loro connessioni ma non portavano alla soluzione esatta del problema piuttosto ad una soluzione non del tutto precisa. Nel 1949, Donald Hebb140 coniugò le conoscenze derivanti dalla fisiologia del sistema nervoso umano, con i dati provenienti dalle ricerche sul comportamento umano, coniando la sua teoria sull'apprendimento associativo. Nel suo lavoro propose un modello di apprendimento sinaptico delle reti neurali. Altro enorme passo nella definizione del funzionamento delle reti neurali fu fatto da Rosenblatt141 nel 1962, con la costruzione del primo percettrone utile nel riconoscimento e nella classificazione delle forme, questo creò una certa discontinuità negli studi fino

137 D. Floreano and S. Nolfi, “Reti neurali: algoritmi di apprendimento, ambiente di apprendimento, architettura,” in Giornale Italiano di Psicologia, a. XX, pp. 15-50, febbraio 1993. 138 McCulloch, W. S. and Pitts, W. H. (1943). A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5:115-133. 139 Gori, M. “Introduzione alle reti neurali artificiali”, Mondo digitale, n.4, Dicembre 2003 140 Donald O. Hebb, The organization of behavior; a neuropsychological theory. Wiley, New York, 1949. [tr. it. L'organizzazione del comportamento, FrancoAngeli, Milano, 1975.] 141 Rosenblatt, F. (1958). "The Perceptron: A Probalistic Model For Information Storage And Organization In The Brain".Psychological Review”.

62


ad allora effettuati poiché il percettrone era in grado di apprendere al contrario del sistema binario definito da McCulloch. I limiti del percettrone furono messi in evidenza sette anni più tardi da Marvin Minsky e Seymour A. Papert, nell'opera "An introduction to computational geometry"142. I due studiosi dimostrarono l'impossibilità di utilizzare lo schema proposto da Rosenblatt per tutti i problemi che non presentano la separabilità lineare delle soluzioni. Proprio a causa dell'evidenza di queste limitazioni, l'iniziale periodo di entusiasmo viene seguito da un periodo di rallentamento e di indifferenza durante il quale le ricerche sono state tendenzialmente abbandonate. Tenuto conto che il percettrone disegnato da Rosenblatt, mostrava dei limiti palesi e la sua monodirezionalità non coincideva ad una struttura normale biologica, Hopfield nel 1982, ritornò al concetto di cervello umano in quanto sistema associativo, in cui cioè tutti i neuroni sono in comunicazione fra loro, quindi ognuno può comunicare con tutti o almeno con una grande maggioranza e non solo con uno strato successivo. Ulteriori progressi nello studio delle reti neurali e nel loro addestramento sono stati fatti da David Rumelhart e da James McClelland. I due esperti di scienze cognitive, proponevano un modello derivante dalle scienze cognitive che fosse in grado di spiegare il funzionamento della mente umana. Su queste basi costruirono un modello per la programmazione di hardware e software che elaborava le informazioni in maniera parallela proprio come avviene nel cervello, evitando il difetto che colpiva i precedenti schemi di reti neurali dove tutti i dati dovevano passare in maniera sequenziale dentro un unico collo di bottiglia. Questo filone di ricerca venne denominato “connessionismo” e il modello proposto da

Rumelhart e

McClelland prende il nome di “Parallel

Distributed Processing" (PDP)143. Lo stesso Rumelhart, con la collaborazione di Paolo Werbos, sviluppò un altro modello di apprendimento delle reti neurali, un'architettura che continuò a dare spinta alla diffusione e al proseguimento degli studi sulle reti neurali artificiali. Tale algoritmo consentì di andare oltre le limitazioni del percettrone e 142

Marvin Minsky and Seymour Papert, 1972 (2nd edition with corrections, first edition 1969)Perceptrons: An Introduction to Computational Geometry, The MIT Press, Cambridge MA, 143 David E. Rumelhart, James L. McClelland.”PDP. Microstruttura dei processi cognitivi, Sistemi Intelligenti”, Bologna,Il Mulino,1991, Trad. di R. Luccio e M. Ricucci,

63


di risolvere il problema della separabilità non lineare segnando il definitivo rilancio delle reti neurali, come testimoniato anche dall'ampia varietà d'applicazioni commerciali: attualmente il modello di backpropagation rappresenta un algoritmo di largo uso in molti campi applicativi. I ERA

Eventi significativi

1943

McCulloch and Pitts, formalizzazione del neurone artificiale

1949

D. Hebb e l’apprendimento per auto-organizzazione

1956

“Dartmouth Summer Research Project on AI” con (Minsky, McCarty, Rochester, Shannon)

1960

Widrow: ADALINE

1962

Il perceptron di Rosenblatt

1969

“Perceptrons”, Minsky & Papert

1970

Periodo “buio”

II ERA 1982

Reti di Hopfield: memorie associative e soluzione di problemi

1986

PDP e diffusione di Backpropagation

1987

La prima conferenza significativa dell'IEEE a San Diego

1989

mercato: Analog VLSI and Neural Systems

1990

J. Pollack e le reti neurali che elaborano strutture dati

1994

Prima Conferenza Mondiale sull’Intelligenza Computazionale

1994

Nasce il progetto NeuroCOLT (Computational Learning Theory)

2001

L’IEEE approva la creazione della “Neural Networks Society”

Tabella 4: Eventi significativi nell'evoluzione delle reti neurali-Gori, 2003, Mondo Digitale.

64


4.3.1.1 Neurone biologico Date le sue enormi capacità di elaborazione di informazioni, il cervello umano rappresenta, con tutta probabilità, il più efficiente frutto dell'evoluzione naturale. Complesse organizzazioni di aggregati di cellule nervose sono presenti in moltissimi organismi pluricellulari e aiutano tutte le specie nel riconoscimento delle configurazioni dell'ambiente esterno, nella memorizzazione e nella reazione agli stimoli. Nell'essere umano le funzionalità del cervello sono garantite da una fitta rete di neuroni strettamente interconnessi tra loro, una rete in grado di variare la propria configurazione in base alle sollecitazioni provenienti dall'esterno. Questa continua variazione e adattamento può essere a tutti gli effetti considerato apprendimento, ed è ciò che spinge gli studiosi delle reti neurali ad artificiali nel tentare di riprodurre questo caratteristica distintiva delle reti biologiche.

Figura 3: Struttura di un neurone-http://cronologia.leonardo.it/invenzio/inv046.jp

Il neurone biologico è composto da un corpo cellulare, da dendriti, da un assone e dalle sinapsi. Il corpo cellulare detto soma, è la componente da cui si dipartono gli altri componenti del neurone, ed è proprio questo nucleo che provvede ad assicurare il nutrimento necessario al funzionamento della cellula. La soma ha la funzione di integrare e pesare i segnali in ingresso nel corpo cellulare; se il risultato dovesse essere

65


superiore ad una certa soglia, il neurone si attiva sviluppando un potenziale di attività che viene trasportato dall'assone, in caso contrario il neurone resta in stato di riposo. L'assone rappresenta quindi l'unica linea di uscita diretta dal neurone, ma successivamente si fraziona in numerosi rami. I dendriti sono prolungamenti a ramificazione multipla che si proiettano dal corpo cellulare e costituiscono le principali strutture recettrici del neurone. I dendriti di ogni neurone di solito ricevono segnali da migliaia di punti di contatto, detti sinapsi, che provengono da altri neuroni.

4.3.1.2 Il neurone artificiale e le reti neurali artificiali Gli elementi di base delle reti neurali artificiali vengono chiamati anch'essi neuroni o unità. Come nel neurone biologico il corpo centrale riceve gli input dall'esterno o da altre unità li elabora e emette un valore di output che viene trasferito verso l'esterno. Ad ogni neurone è associato un valore di attivazione numerico, esso è determinato dai segnali che l'unità riceve in ingresso dalle connessioni sinaptiche e dalla funzione di attivazione. Il segnale di output che viene trasmesso dipende dal valore del peso sinaptico associato alla connessione tra le due unità. Anche l'efficacia delle connessioni sinaptiche viene rappresentata da un valore numerico che risulta positivo in caso di sinapsi eccitatorie e negativo in caso di sinapsi inibitorie144.

Figura 4: Struttura neurone artificiale-http://www.noemalab.org 144 D. Floreano and S. Nolfi, “Reti neurali: algoritmi di apprendimento, ambiente di apprendimento, architettura,” in Giornale Italiano di Psicologia, a. XX, pp. 15-50, febbraio 1993.

66


Lo scopo di una rete neurale è quello di ricevere input e produrre output. Le unità in ingresso e quelle in uscita vengono rispettivamente attivate da input e output, di conseguenza gli stimoli che una rete riceve sono rappresentati da un vettore numerico, mentre le risposte che essa fornisce sono costituite dal totale dei valori di attivazione delle unità di uscita. La tipologia delle risposte agli stimoli che la rete produce, il suo comportamento nei confronti dei diversi input è determinato da una serie di fattori: –

la regola di attivazione: determina il valore di attivazione di una unità in base al segnate totale che essa riceve dalle altre unità;

I pesi sinaptici, quanto potenziale di attivazione o inibizione è in grado di trasferire di ogni unità alle unità ad essa connesse;

l'architettura della rete definisce il numero e la modalità di connessione delle unità. Difficilmente le reti neurali sono totalmente connesse, spesso i neuroni sono disposti seguendo una determinata gerarchia. Il modello è costituito da un insieme di interconnessioni di neuroni artificiali e

processi che da vita ad un sistema adattivo. Questo complesso, durante la fase di apprendimento, varia la sua struttura, in base ai dati e alle informazioni che attraversano la rete durante questa fase.

67


Modello di un neurone145.

Figura 5: Percettrone-http://www.electroyou.it/c1b8/wiki/rete_neural

Come si evince dalla figura, un neurone è rappresentato da n canali in ingresso (X1, X

2.......Xn),

ad ogni canale viene associato un peso W1,W2,........Wn identificato con

un numero reale. I pesi rappresentano la riproduzione delle sinapsi. Quando il peso W1 > 0 allora la sinapsi viene definita eccitatoria, al contrario se W1 risulta inferiore allo zero, il nodo risulta inibitorio. La forza di connessione della rete è rappresenta dal valore assoluto del peso. Il segnale con cui il neurone trasmette la sua attività all’esterno, è calcolato applicando la funzione di attivazione alla somma pesata degli ingressi ( a= ∑in=1 wi x i ). Il risultato Y potrà quindi essere espresso nella forma seguente:

n

y= f (a)= f ( ∑ w i x i ) i =1

145

Lazzerini, B. “Introduzione alle reti neurali”, Università di Pisa, 1999

68


Nel neurone rappresentato nella figura, viene anche raffigurata la funzione soglia che viene utilizzata per ridurre il valore di ingresso alla funzione di attivazione. Introducendo il valore soglia θ, la formula indicata precedentemente diventerà: n

y= f ( a)= f ( ∑ wi x i θ) i =1

Funzione di attivazione

La funzione di attivazione definisce il livello di output di un neurone in funzione del livello di attivazione a=∑ni=1 w i xi . L'output può essere rappresentato da un numero reale, da un intervallo di numeri reale oppure appartenere ad un insieme discreto. I ricercatori, nella costruzione delle reti utilizzano diverse tipologie di funzioni di attivazione. •

Funzione soglia Se si utilizza una funzione di questo tipo, l'output del neurone sarà del tipo

y=

{

1 if a ≥0 0 if a <0

Figura 6: Funzione soglia

69


Funzione lineare

f (a)=a

Figura 7: Funzione lineare

Funzione lineare a tratti

f (a)=

{

0 if a ≤ 0.5 a+0.5 if 0.5 < a< 0.5 1 if a≥0.5

Figura 8: Funzione lineare a tratti

70


Funzione sigmoide Un' altra funzione molto utilizzata nella costruzione delle reti neurali è la

funzione sigmoide, come ad esempio la funzione logistica descritta di seguito: f (a )=

1 . {1+exp( a ) }

Figura 9: Funzione sigmoide

Le funzioni elencate, nella normalità assumono valori compresi tra 0 e 1, fatta eccezione per le funzioni lineari. Spesso è necessario che la funzione di attivazione assuma valori tra -1 e . La funzione a soglia ridefinita per comprendere valori negativi prende il nome di funzione segno:

f (a)=

{

1 if a > 0 0 if a = 0 1 if a < 0

.

71


4.3.3 Architetture e modelli.

Al fine di comprendere al meglio la costruzione, l'architettura e il funzionamento di una rete neurale, verranno di seguito le principali tipologie di connessione dei nodi neurali.

Reti non stratificate

Tutti i neuroni artificiali sono connessi tra loro in modo bidirezionale.

Figura 10: Reti non stratificate

Le connessioni tra i nodi di una rete interamente connessa possono essere rappresentati mediante una matrice quadrata Q, di dimensione pari al numero dei neuroni, il cui generico elemento q ij esprime il peso della connessione tra il neurone i e il neurone j.

Reti ad uno strato

Altre tipologie di architetture presentano uno stato di connessione differente, ogni neurone è collegato con tutti i nodi dello strato immediatamente successivo, ma non si riscontra connessione né tra i neuroni di uno stesso strato, né tra nodi di strati non

72


adiacenti. In relazione all'obiettivo di risultato richiesto alla rete, varierà il numero di strati e di nodi inseriti nell'architettura.

Strato di ingresso

Strato di uscita

Figura 11: Reti ad uno strato

Nel primo strato, quello in ingresso (input layer) non ha luogo nessuna procedura di calcolo, lo scopo dei neuroni in input è solo quello di trasmettere i segnali ricevuti dall'ambiente esterno allo strato successivo (output layer). Questo tipologia di rete viene chiamata feed-forward poiché non presenta in nessun caso connessioni di retroattive. Un elemento caratterizzante di questa architettura è senza dubbio la velocità di calcolo diretta conseguenza della mancata interazione e ricerca di stabilità che i neuroni mettono in atto in caso di connessioni presenti sul medesimo strato.

Reti a più strati In questo modello di rete a strati, oltre allo strato di ingresso e allo strato di

output, è presente anche uno strato nascosto (hidden layer), uno strato in cui i neuroni non comunicano direttamente con l'ambiente esterno. Gli strati nascosti possono essere uno o molteplici e i neuroni che lo costituiscono permettono alla rete di creare

73


opportune rappresentazioni interne degli stimoli in input in modo da rendere piĂš agevole il lavoro della rete.

Strato di ingresso

Strato nascosto

Strato di uscita

Figura 12: Reti multistrato

La rappresentazione matematica delle connessioni tra i neuroni di una rete stratificata avviene mediante la costruzione di un numero di matrici che rispecchia esattamente il numero di strati adiacenti. I componenti di ciascuna matrice sono costituiti dai pesi delle connessioni tra le coppie di neuroni di due strati adiacenti. •

Reti di feedback Questo tipo di rete è caratterizzata dalla presenza di neuroni connessi tra loro

anche se sono collocati sul medesimo strato. Un neurone può ricevere uno stimolo sia dai neuroni situati in altri strati, sia da qualunque neurone presente nello stesso strato, questo grazie alla presenza della connessione laterale.

Strato di ingresso

Strato di uscita

Figura 13: Reti feed-back

74


Nelle reti feedback, spesso costituite da un numero esiguo di strati, non è remota la possibilità che l'input di un neurone provenga direttamente da un neurone presente sul output layer. La presenza di connessioni con feedback garantisce a questo modello di rete, un percorso evolutivo dinamico che le porta fino ad uno stato di stabilità capace di produrre l'output. Tuttavia l'architettura e il metodo di calcolo, definito ricorrente, prevede numerosi cicli prima di arrivare all'output stabile, cicli che però si ripetono con una numerosità non definibile a priori. La caratteristica di queste reti è appunto un percorso evolutivo ciclico che incide e influenza l'apprendimento della rete e la sua efficacia.

Percettrone di Rosenblatt

Un'altra importante tipologia di rete, definito da Rosenblatt e Minsky come il percettrone, è costituito anch'esso da uno strato di input e uno di output con unità soglia. Questa rete viene addestrata con un algoritmo di apprendimento supervisionato e può essere utilizzata sia per scopi associativi, che per scopi etero associativi. E' un modello capace di trovare una configurazione di pesi sinaptici che producano le risposte desiderate per ciascuno stimolo a patto che suddetta struttura esista e che gli stimoli in input siano linearmente separabili.

4.3.4 Regole Hebbiane Dopo aver descritto le architetture di base delle reti neurali, al fine di comprendere al meglio i meccanismi di funzionamento delle reti, occorre determinare come funzionano i singoli neuroni. Lo psicologo Donald Hebb, nel 1949, approfondì le relazioni sottostanti a neuroni collegati tra loro. Lo studioso affermava che l'efficacia sinaptica della connessione intercorrente tra due neuroni collegati tra loro, sarebbe stata

75


meccanicamente rinforzata se i due neuroni fossero stati attivi contemporaneamente. In particolare, ogni qualvolta uno dei due neuroni fosse stato attivato, questo avrebbe comportato la sicura attivazione dei neuroni ad esso connessi. Successivamente la regola di Hebb subì alcune modifiche, ma esse vengono sostanzialmente ricondotte alle regole indicate di seguito: •

la regola presinaptica (unità che trasmette il segnale), il valore del peso sinaptico, viene incrementato quando entrambe le unità sono attive, ma viene ridotto quando il neurone presinaptico è attivo ma l'unità ricevente è inattiva;

La regola postsinaptica, il valore di connessione si incrementa nel caso in cui le unità sono attive contemporaneamente, mentre si decrementa quando l'unità ricevente è attiva, ma quella mittente (presinaptica) non è attiva146. Le regole Hebbiane possono essere applicate sia alle reti auto-associative

che alle reti feed-forward. Tutte le regole di Hebb associano i modelli in ingresso e in output in base alla correlazione delle unità attive, o in base alla probabilità condizionale che un nodo sia attivo in un determinato pattern, tenendo conto che un altro nodo sia attivo nell'altro modello

4.3.5 Tipologie di apprendimento. Dopo aver definito gli elementi costitutivi di una rete neurale e descritto le architetture caratterizzanti delle reti maggiormente utilizzate, è importante descrivere il processo di apprendimento sviluppato dalle reti stesse. Il processo di apprendimento si concretizza nella variazione e nell'adattamento dei pesi sinaptici, nel rinforzo o nell'inibizione di determinati neuroni al fine di ottenere un determinato output. Le informazioni che vengono acquisite vengono memorizzate nei pesi delle connessioni, quindi l'apprendimento si ottiene grazie ad un definizione molto precisa dei valori da 146

D. Floreano and S. Nolfi, “Reti neurali: algoritmi di apprendimento, ambiente di apprendimento, architettura,” in Giornale Italiano di Psicologia, a. XX, pp. 15-50, febbraio 1993

76


attribuire ai pesi tra i vari nodi neurali. Durante il processo è fondamentale che le forme già memorizzate, vengano conservate,

mano mano che la rete ne apprende altre;

inoltre, deve essere ridotta al minimo

l'interferenza dei nuovi pattern sui modelli

assimilati in precedenza147. Il metodo per modificare i pesi di connessione viene chiamato legge di apprendimento, in base alla presenza o meno di un output di riferimento esso può essere classificato come apprendimento supervisionato e non supervisionato.

Apprendimento supervisionato In questa tipologia di apprendimento, vengono forniti alla rete due tipi di vettori quello formato dalle istruzioni in ingresso e quello contente le risposte ricercate. In questo modo la rete viene addestrata presentando di volta in volta sia l'input sia il corrispondente output. Inizialmente i pesi vengono definiti con valori casuali, in seguito si cominciano a presentare gli esempi costituenti l'insieme di addestramento (trainingset). Per ogni coppia di input-output viene calcolato l'errore, vale a dire la differenza tra il risultato desiderato e l'effettivo output della rete148; il supervisore corregge i pesi di ogni singola connessione per arrivare al risultato corretto149. Solitamente, il processo viene ripetuto e si ripropone alla rete, in maniera casuale, l'insieme degli esempi contenuti nel training-set, fino a che l'errore medio non risulti inferiore ad una determinata soglia. In seguito all'addestramento, la rete viene valutata sul comportamento tenuto sul test set, un altro insieme di input non ancora presentati all'attenzione della rete. Questa fase è utile nel valutare le capacità di generalizzazione della rete neurale. Nel momento in cui la rete ha imparato, sarà in grado di generare risultati anche se gli input in ingresso vengono processati per la prima volta.

147 Ferrari, A.”Miniere di dati. La scoperta della conoscenza nascosta nelle grandi basi dati”, 2002, Franco Angeli, Milano pag.124. 148 Lazzerini, B. “Introduzione alle reti neurali”, Università di Pisa, 1999 149 Di Sieno, S, Rigoli,M. Sichel, T. .”La matematica e la vita quotidiana”,2002,Mimemsis Edizioni.

77


Nelle reti con supervisore viene utilizzata una regola che permette di regolare i pesi delle connessioni tra i neuroni, questa regola viene chiamata Delta rule o regola di Widrow-Hoff e misura la distanza tra l'output neurale e la risposta desiderata. Sia

x=( x 1,..... x n ) il vettore fornito come input al neurone, definiti t come

l'output desiderato e y l'uscita neurale, l'errore δ è dato da

δ=t

y.

Secondo la delta rule la variazione del generico peso ∆ wi é:

∆ w i= ηδ xi dove η (learning rate) è un numero reale compreso tra 0 e 1. Il learning rate definisce la velocità di apprendimento del nodo neurale. La delta rule modifica in maniera proporzionale all'errore solo i pesi dei neuroni che hanno contribuito alla formazione dell'errore, quindi i neuroni con con

x i ≠0 . Non viene modificato il neurone

x i=0 perchè non si può stabilire se abbia o meno contribuito all'errore. Il valore

dei pesi è:

w i=w i +∆ w i

.

Apprendimento non supervisionato

Gli algoritmi di apprendimento non supervisionato sono molto significativi in termini di simulazione realistica dei processi biologici e cognitivi. Le reti che utilizzano questo tipo di apprendimento, hanno il compito di indagare autonomamente sulle caratteristiche dei vettori che vengono presentati in ingresso per poter produrre un output senza modello di riferimento. Il processo di apprendimento senza supervisore non prevede l'esistenza di un output desiderato specifico per il set di input forniti in entrata.

78


Durante il processo di apprendimento, l'algoritmo modifica

i

pesi

delle connessioni utilizzando parametri derivanti esclusivamente dai dati presentati in ingresso, il sistema procede in autonomia alla classificazione degli output. Durante questo processo la rete cerca di auto-organizzarsi attraverso una competizione tra le diverse unità.

Apprendimento competitivo Nel processo di apprendimento competitivo, non è più presente la figura del supervisore, la rete non viene utilizzata per arrivare a risultati desiderati ma piuttosto è lasciata libera di creare rappresentazioni interne agli input e di mutare autonomamente150 . Il percorso del competitive learning prevede uno schema dove le diverse unità competono l'un altra, in maniera tale che un solo neurone, quello che vince la competizione, perfezioni la capacità di riconoscere una particolare caratteristica degli stimoli di ingresso. Durante la fase operativa, dopo aver appreso il comportamento e stabilito i pesi di connessione, il neurone si attiva nel momento in cui lo stimolo in ingresso comprende quella caratteristica per la quale si è specializzato151. Questo tipo di rete neurale viene comunemente utilizzato per la classificazione di modelli, il processo avviene sulla base degli stimoli presentati durante

x

Rete neurale

y

∆w w Learning rule

Figura 13: Apprendimento competitivo: i pesi variano al mutare degli stimoli in input e allo stato interno della rete.

150

Di Sieno, S, Rigoli,M. Sichel, T. .”La matematica e la vita quotidiana”,2002,Mimemsis Edizioni, pag.37. Ibid.

151

79


la fase di addestramento della rete e dai pesi delle connessioni, non grazie alla guida di un supervisore.

Apprendimento con rinforzo.

Il paradigma di apprendimento con rinforzo si pone in maniera intermedia tra l'apprendimento supervisionato e quello competitivo. In questo processo di apprendimento, i pesi vengono mutati in funzione di un' informazione qualitativa che valuta la bontà delle risposte della rete. La valutazione sull'efficacia di controllo dei pesi di connessione è di tipo qualitativo, l' aggiustamento dei pesi viene effettuata mediante meccanismi di rinforzo o indebolimento152. Questo si traduce nella correzione dei comportamenti adottati e nella penalizzazione di quelli che possono essere causa di errori e inesattezze, con l'obiettivo di massimizzare tutte le informazioni aggiuntive legate all'approfondimento del problema153. Nel caso di azioni considerate corrette si aumentano i pesi dei neuroni attivi, come se si dovesse dare loro una ricompensa, rinforzando l'azione prodotta. Al contrario, azioni considerate inesatte, causano una diminuzione dei pesi e una riduzione della potenza dell'azione prodotta.

x

y

Rete neurale

Sistema di Controllo

z

R Critico

Figua 14: Apprendimento con rinforzo: la varizione dei pesi avviene in base alla correttezza o inesattezza delle azioni. La valutazione viene effettuata da un critico.

152

Di Sieno, S, Rigoli,M. Sichel, T. .”La matematica e la vita quotidiana”,2002,Mimemsis Edizioni, pag.38. Teti, A. “PsychoTech. Il punto di non ritorno. La tecnologia che controlla la mente ”, 2011, Springer, pag.49.

153

80


4.3.6 Algoritmi di apprendimento

La scelta del metodo di apprendimento, dell'algoritmo e dell'architettura della rete in base alla natura del problema, influenza in maniera significativa l'apprendimento della rete. Nel corso dell'intero percorso di ricerca e studio delle reti neurali i ricercatori hanno costruito e proposto numerosi algoritmi capaci di far apprendere una rete. Ogni algoritmo presenta diverse caratteristiche, che gli permettono di adattarsi sia alle diverse architetture, sia alle differenti tipologie di dataset e variabili. L'obiettivo comune a tutti gli algoritmi applicabili alle reti è quello di effettuare cicli che consentano di trovare l'esatta combinazione di pesi, in grado di far compiere alla rete le azioni più corrette. Tra gli innumerevoli algoritmi, uno dei più utilizzati è quello di retropropagazione, tipico delle reti multistrato con strati nascosti e unità non lineari. Questo algoritmo verrà approfondito e successivamente utilizzato nel caso pratico.

4.3.6.1 Algoritmo di back-propagation. Questo algoritmo fu proposto per la prima volta nel 1986 da Rumelhart, Hinton e Williams con l'obiettivo di far apprendere le reti feed-forward che avessero strati di unità nascoste e strati di unità non lineari. Uno dei problemi era quello di conoscere quale fosse l'output desiderato

proveniente dagli strati nascosti,

minimizzando la distanza e l'errore tra i risultati attesi e quelli ottenuti grazie alla rete. Questa regola di apprendimento e adattamento dei pesi delle connessioni venne denominata back-propagation. Durante il processo iterativo, i pesi sinaptici comunicano l'errore delle unità superiori a quelle inferiori durante la fase di correzione degli errori. Il principio di funzionamento di quest'algoritmo è semplicemente la discesa del gradiente154 dell'errore 154

Gradiente:funzione a valori vettoriali di più variabili reali. Il gradiente di una funzione è definito come il vettore che ha per componenti cartesiane le derivate parziali della funzione. Esso è quindi una grandezza vettoriale che indica come una grandezza fisica vari in funzione dei suoi diversi paramentri.

81


tramite la modifica dei singoli pesi. La funzione di attivazione utilizzata per le unità è la funzione logistica o sigmoidale anche se si possono scegliere altre funzioni tra quelle citate precedentemente. La caratteristica fondamentale di questo algoritmo è quella di calcolare la delta rule anche per le unità presenti sugli strati nascosti. Con un metodo ricorsivo l'errore dei neuroni celati diventa l'errore delle unità in uscita, viene riportato all'indietro dalle connessioni sinaptiche e moltiplicato per la derivata prima delle funzione di output di ogni unità implicita155. La retro-propagazione garantisce la diminuzione dell'errore globale durante ogni step di apprendimento, ciononostante non è

assicurato il

raggiungimento del minimo globale. Questo problema è causato dalla complessità dello spazio multidimensionale dei pesi, dalla presenza di unità nascoste, dalla non linearità della funzione e dalla presenza di minimi locali. Il funzionamento dell'algoritmo di retro-propagazione può essere descritto in due passi. Durante il primo step in avanti, vengono determinati tutti gli output dei neuroni della rete, presentando in ingresso gli elementi del training-set e raccogliendo valori in uscita. Il secondo step è un passo all'indietro poiché dalle risposte desiderate si determina l'errore , che verrà propagato a ritroso dalle uscite fino alle unità di input, garantendo così la determinazione dei pesi dei neuroni intermedi156. I pesi vengono inizializzati con valori casuali, e come detto in precedenza, tenuto conto della necessità di una funzione derivabile si utilizza la funzione sigmoide che produce valori tra 0 e 1.

4.3.7 Campi di applicazione esempi Le reti neurali artificiali, come molte altre tecniche di data mining, sono utilizzate nei campi più differenti.

Discesa del gradiente: tecnica di ottimizzazione di tipo locale, consente di trovare un minimo locale di una determinata funzione. 155 D. Floreano and S. Nolfi, “Reti neurali: algoritmi di apprendimento, ambiente di apprendimento, architettura,” in Giornale Italiano di Psicologia, a. XX, pag. 10, febbraio 1993 156 Dulli, S., Furini, S., Peron, E.”Data mining: Metodi e strategie”,2009, Springer, pag.80

82


Possono trovare naturale applicazione nell'informatica per la compressione e decompressione di dati e immagini; possono essere utilizzate efficacemente nell'analisi finanziaria per la determinazione del prezzo di un azione, per valutarne i rischio e la volatilitĂ ; possono essere fondamentali come supporto nella valutazione del merito creditizio dei clienti degli istituti di credito e nel calcolo del rating di titoli di credito di stati e aziende. Le proprietĂ delle reti neurali possono trovare applicazione anche nei programmi di controllo di qualitĂ dei prodotti nelle industrie manifatturiere, nel coadiuvare gli addetti ai controlli della difettositĂ dei manufatti. In ambito medico, le reti neurali possono essere impiegate in numerosi campi: dalla diagnostica medica, valutando le immagini digitali e verificando la presenza di eventuali patologie; nella ricerca genetica vengono utilizzate per la costruzione e lo studio delle molecole di DNA; nella medicina generale possono aiutare nella formulazione di terapie adatte ad una determinata tipologia di pazienti. Altre e varie sono le applicazioni che possono trovare uno strumento efficace nelle reti neurali come ad esempio il riconoscimento della scrittura, delle immagini, le previsioni su fenomeni complessi.

4.3.8 Pregi e difetti. Pregi

L'architettura delle reti neurali e la loro costruzione, permettono di trattare molti dati grazie alla lavorazione parallela. Nei calcolatori che non utilizzano questa tipologia di connessione ogni dato viene elaborato individualmente e in modalitĂ sequenziale.

83


L'elaborazione contemporanea di un elevato numero di dati consente di sopperire all'eventuale lentezza di alcuni neuroni, questo rende la rete più veloce ed efficiente. Una tale presenza di neuroni interconnessi facilita la riduzione del rumore e mantiene costanti le prestazioni anche nel caso in cui alcune unità del sistema non dovessero funzionare. L'utilità e l'efficacia operativa sono evidenziate soprattutto nei casi in cui si dispone di un elevato quantitativo di dati storici trattabili con gli algoritmi neurali. Le reti neurali sono inoltre in grado di approssimare modelli molto complessi e risultano indipendenti dalle distribuzioni statistiche dei dati e dall'interazione tra le diverse componenti. Un'altra caratteristica che ha riportato le reti neurali tra gli strumenti maggiormente utilizzati è anche la discreta tolleranza a dati incompleti, rumorosi o mancanti. Possono essere considerate degli strumenti dinamici poiché assicurano una facilità di manutenzione, semplicità di aggiornamento dei dati e adattabilità ad ambienti dinamici.

Difetti

Uno dei difetti più evidenti delle reti neurali è l'indecifrabilità dei risultati dal punto di vista del back-ground. Non a caso questo tipo di algoritmi viene definito “black box”, i risultati di output di una rete non sono facilmente spiegali nel linguaggio simbolico umano; i dati vanno per così dire accettati come prodotti dalla rete. Un altra caratteristica delle reti neurali è legata alla loro efficienza, essa infatti è direttamente proporzionale alla cura impiegata nella scelta delle variabili predittive. Ad esempio è particolarmente difficoltosa la trattazione di variabili qualitative che presentano un elevato numero di valori.

84


Fondamentale è la fase di addestramento della rete, poiché durante essa il sistema assegna i pesi ai singoli neuroni, questo step può essere una delle attività che può richiedere un elevato spreco di tempo, deve essere seguita con attenzione per evitare che la rete operi una generalizzazione non corretta. Per garantire una corretta scelta dei pesi sono necessari un elevato numero di osservazioni. Un altro limite delle reti può essere considerata l'assenza di un elenco di regole che faciliti la scelta dell'algoritmo di apprendimento.

85


5. CASO PRATICO 5.1 Introduzione

La scelta di applicare e sperimentare gli strumenti di estrazione di intelligenza collettiva a un archivio dati proveniente dalla banca dati un grosso gruppo bancario, nasce dall’intenzione di unire competenze tecniche raccolte in ambito universitario con il know-how costruito con l’esperienza lavorativa. L’interesse nasce dalla volontà di conoscere a fondo gli strumenti utilizzati per la raccolta, la lavorazione, l’elaborazione e l’utilizzo dei dati, nell’istituto bancario in cui ho modo di lavorare. Provare ad andare oltre la normale operatività, tentare di scoprire il progetto di sviluppo che porta la filiale ad avere gli strumenti giusti per gestire la relazione con il cliente. Come già detto in precedenza, la disponibilità di informazioni non è certo un problema all’interno di un istituto di credito, ogni giorno vengono raccolti, processati miliardi di dati, variabili. Una mole tanto elevata, che spesso non viene trattata in maniera corretta e approfondita , che sovente non viene incrociata con la conoscenza e il sapere empirico degli addetti di filiale. In ogni ambito, la cattura e gestione della conoscenza empirica presenta parecchie difficoltà, ma grazie ad una maggiore accuratezza si sta andando verso una più attenta valorizzazione di questo tipo di conoscenza. Proprio da una segnalazione effettuata da alcuni direttori di filiale, nasce la necessità di comprendere come i clienti utilizzano le carte di credito, e in questa fase di crisi e carenza di liquidità, come l’utente utilizza la funzione di anticipo contante da sportello automatico. Per definire al meglio il contesto in cui vengono raccolti i dati, di seguito verrà descritto da prima l’ambito di diffusione delle carte di credito in Europa e in Italia; in

86


secondo luogo verrà fatta un breve descrizione del gruppo bancario del gruppo “Banca popolare dell’Emilia Romagna”, delineando il contesto in cui opera, in terzo luogo verrà definita la società prodotto gruppo Bper emittente delle carte di credito, la Divisione Consumer, fornitore del dataset.

5.2 Contesto europeo e italiano dei sistemi di moneta elettronica

Al fine di valutare correttamente la portata della diffusione della moneta elettronica e l'andamento del suo utilizzo in Italia, non si può fare a meno di effettuare un confronto tra il nostro paese e gli altri stati europei. Dall'analisi dei data-warehouse relativi alle statistiche del sistema dei pagamenti, pubblicati dalla Banca Centrale Europea157, si nota che in Italia, alla fine del 2010, erano presenti più di 1,4 milioni di terminali POS158 , cifra di molto superiore alla media della Comunità Europea; relativamente agli sportelli ATM159 installati nella penisola il loro numero, pari a 55mila, nonostante si discosti notevolmente dal numero dei terminali presenti in Germania (86mila), supera la media europea.

Suddivisione geografica POS

% diffusione

Nord

52

Centro

24

Sud e isole

24

Tabella 4:Diffusione geografica sportelli ATM- Fonte Abi-Dati al 31 dicembre 2010.

Alla luce di queste informazioni, che denotano la spinta da parte degli istituti di credito verso l'utilizzo della moneta elettronica si potrebbe dedurre che il nostro paese

157

http://sdw.ecb.europa.eu/ Point of sale: terminale installato presso gli esercizi pubblici, che consente al cliente di pagare a mezzo moneta elettronica. 159 Automated teller machine: sportello automatico installato presso gli sportelli bancari o in altri siti di interesse pubblico o di gran traffico, che consentono oltre il prelievo di denaro contante di effetuare numerose altre operazioni di pagamento e versamento. 158

87


sia assolutamente in media con gli altri stati europei relativamente al vero e proprio utilizzo del denaro di plastica. Sia dal supplemento al bollettino statistico sul sistema dei pagamenti, pubblicato periodicamente dalla Banca d'Italia160 , sia da un recente studio presentato, nel Novembre 2011, dall' Abi in collaborazione con il Consorzio Bancomat, si può comprendere come l'Italia continui ad inseguire l' Europa nella limitazione dell'utilizzo del denaro contante e nella diffusione dell'utilizzo di carte, mobile payments161 e dei pagamenti contactless162. Gli italiani hanno nelle loro tasche circa 80 milioni di carte, in crescita di circa il 16%, ma non accenna a diminuire l'utilizzo del contate, ancora elevato rispetto alla media europea e statunitense.

Tipologia di moneta elettronica

Unità( in milioni)

Carte di debito163

34

Carte di credito

164

36

165

5

Carte prepagate Carte rateali166

3

Tabella 5: Fonte Abi-Dati in milioni di unità-31 Dicembre 2011

160

http://www.bancaditalia.it/statistiche/sispaga/2011/54_11/suppl_54_11.pdf Possibilità di pagamento attraverso l'utilizzo di applicazioni presenti sui telefoni cellulari di ultima generazione. 162 In questo caso il pagamento avviene grazie all'utilizzo di carte e POS dotati di un particolare dispositivo che viene attivato con radiofrequenze. Per una maggiore sicurezza, tenuto conto del fatto che non viene digitato codice segreto, questo tipo di pagamento ammette importi non superiori a 25 euro. 163 Carta con microchip e banda magnetica, appoggiata di norma ad un rapporto di conto corrente, che consente di effettuare pagamenti a mezzo POS e prelevamenti di contante a mezzo ATM. Non consente l'utilizzo su internet. L'addebito del transato avviene con la medesima data valuta del giorno in cui viene effettuata la transazione. Solitamente la carta è anonima. 164 Carta nominativa embossata, con microchip e banda magnetica, appoggiata ad un rapporto di conto corrente, consente di effettuare pagamenti mezzo POS virtuali e non, ATM e internet. L'addebito del transato dell'intero mese avviene entro i primi 15gg del mese successivo, senza il pagamento di interessi debitori. 165 Carta con banda magnetica, non collegata ad un rapporto di conto corrente, consente un utilizzo mezzo POS, ATM e internet. Il suo plafond è limitato all'importo delle ricariche effettuate. In caso di frode il sinistro è limitato all'importo presente sulla plastica e non all'intero saldo del conto corrente. 166 Carta nominativa embossata, con microchip e banda magnetica, appoggiata ad un rapporto di conto corrente, consente di effettuare pagamenti mezzo POS virtuali e non, ATM, internet e accredito somme sul conto corrente. La carta da la possibilità al cliente di avere un fido di importo variabile, il rimborso di del transato non avviene mensilmente in unica soluzione ma con rate mensili fisse o variabili. La rata composta da quota capitale e quota interessi, permette mensilmente di ripristinare parzialmente il plafond di spesa della carta. 161

88


Figura 15:Fonte Abi-Dati al 31 dicembre 2010

Un' altra caratteristica peculiare del mercato delle carte in Italia è anche l'assiduità nell'utilizzo, non tutte le plastiche infatti registrano almeno una transazione effettuata nell'anno. Continuando nell'analisi dei dati forniti dall' Abi, si può notare che solo il 68% delle carte è stata utilizzata quantomeno una volta nell'arco del 2010; in particolare si evince, infatti, che 31 milioni di carte di debito e 4,5 milioni di prepagate vengono considerate attivamente impiegate. Per descrive al meglio i comportamenti degli italiani nell'affrontare questo strumento di pagamento occorre anche analizzare quali sono tra le funzioni che la carta mette a disposizione, quelle che vengono utilizzate in misura maggiore. Nel solo 2010 in Italia sono state effettuate circa 1,6 miliardi di transazioni su terminali POS, in aumento del 3% rispetto all'anno precedente, per un importo complessivo di 130 miliardi di euro e la movimentazione di circa 48 milioni di carte usate per acquisti e pagamenti. Le carte di debito la fanno da padrone con 857 milioni di operazioni, per un ammontare di euro 59,6 miliardi, questo denota una discreta familiarità con lo strumento, il cui utilizzo risulta più semplice nella comprensione, riducendo così i timori nei comportamenti. A seguire troviamo le carte di credito con un numero di transazioni inferiore (653 milioni) ma con un ammontare maggiore pari a 64,4 miliardi di euro, questo mette in evidenza un atteggiamento diverso nei confronti

89


della carta di credito, utilizzata spesso per spese di importo più elevato e quindi con frequenza ridotta. Le carte rateali si attestano al 2% del totale delle transazioni, mentre le prepagate utilizzate frequentemente nella rete e all'estero, sono state utilizzate per circa 64 milioni di operazioni, per un ammontare di euro 3,7 miliardi. Relativamente ai comportamenti di utilizzo della moneta elettronica, nel rapporto Abi vengono quindi riportati dati relativi alla media dei pagamenti annui effettuati da ogni carta sia come numero di operazioni (33 transazioni), sia come importo medio per ogni scontrino pari a circa 82 euro. La ricerca evidenzia, inoltre, che le carte di credito e le carte rateali vengono preferibilmente impiegate per effettuare acquisti di importo medio-alto tra i 99 e 84 euro; le carte di debito e le prepagate vengono scelte per eseguire pagamenti di importi più contenuti che si attestano intorno ai 70 euro. Tra le funzionalità che la moneta elettronica offre troviamo anche quella che permette di prelevare denaro contante ed effettuare altre operazioni grazie ai 47 mila sportelli automatici presenti solo nel territorio italiano. Nel corso del 2010, fonte Abi, sono state compiute circa 1,4 miliardi di operazioni tra prelievi, versamenti e ricariche telefoniche, con una media di 34 operazioni di cui 22 prelievi, 5 operazioni di anticipo contante, 1 pagamento, 4 ricariche telefoniche, 3 ricariche di carte servizi, 11 versamento e 1 prelevamento in valuta per ogni plastica. La transazione più frequente è stato il prelievo con circa 900 milioni di operazioni con un importo prelevato pari a 148 miliardi di euro e 6,3 miliardi di euro per anticipo contanti; 5,3 miliardi di euro sono stati spesi mezzo bancomat per pagamenti, 5 miliardi di euro per ricariche telefoniche e 4,1 miliardi di euro di prelievi in valuta. L'importo medio delle transazioni è stato di 162 euro per prelievi, 139 per gli anticipi di contante, 95 euro per pagamenti e 31 per le ricariche telefoniche.

90


L'analisi della diffusione della moneta elettronica nel nostro paese, spinge inevitabilmente ad un confronto con gli altri paesi europei. In particolare, a tutt'oggi, la circolazione del denaro contante in Italia risulta essere ancora molto elevata, questo impatta notevolmente sull'economia italiana sia dal punto di vista dei costi di gestione e logistica del denaro contante sia in termini di elusione fiscale ed economia sommersa. Uno studio Abi pubblicato su “Temi di Economia e Finanza”167 nel Aprile 2011 ha approfondito l'evoluzione delle carte e dei sistemi di pagamento mettendo in evidenza l'influenza negativa che mette in relazione tra la minore diffusione delle carte Bancomat e di credito e l'economia sommersa. L'analisi si concentra su un periodo di tempo di quindici anni, dal 1993 al 2008. In questo lasso di tempo le famiglie italiane che possedevano un bancomat o una carta di credito sono cresciute passando, dal 41,8% al 63% nel caso delle carte di debito, e dal 13,2% al 31,6% per le carte di credito. Nel 1993 solo il 9,3,% di coloro che possedevano una carta Bancomat la utilizzava per una transazione almeno una volta l'anno, nel 2008 questa percentuale è arrivata al 73,8%. I ricercatori hanno stimato che un maggiore utilizzo della moneta elettronica potrebbe causare una riduzione di due punti percentuali del giro d'affari legato all'illegalità e all'evasione fiscale. In termine di affioramento del sommerso, l'effetto di un maggiore impiego delle plastiche sul sistema Italia andrebbe da 10 a 40 miliardi di euro, pari ad una quota di Prodotto Interno Lordo che va dallo 0,5 a 3 punti percentuali. Lo studio ha anche analizzato quali sono i fattori che influenzano la probabilità di possesso e utilizzo del denaro elettronico tra le famiglie italiane, evidenziando come questa eventualità aumenta in maniera direttamente proporzionale all'aumentare del 167

Di Giulio, D., Milani, C. “Temi di Economia e Finanza - Working Papers: Diffusione della moneta di plastica e riflessi sull'economia sommersa:un'analisi empirica sulle famiglie italiane”,2011, Direzione Strategie e Mercati Finanziari dell’ABI.

91


grado di istruzione, diminuisce col crescere dell'età e cresce con una proporzione diretta all'incremento del reddito disponibile e dei consumi dei beni non durevoli. Altri fattori risultano essere anche la tipologia di contratto di lavoro, che vede il bancomat più presente nei portafogli dei dipendenti e le carte di credito scelte con più frequenza dai lavoratori autonomi. Un altro elemento socio demografico che influisce sul comportamento e sull'atteggiamento nei confronti del denaro elettronico, è assolutamente l'aria geografica di residenza come indicato nella tabella seguente.

Bancomat

Carte

Nord

74

41,3

Centro

69,3

32,1

Sud 43,5 16,2 Tabella 6:Diffusione geografica plastiche;Fonte Abi-Dati al 31 dicembre 2010

Di fronte questo quadro di diffusione della moneta elettronica, fondamentale è approfondire quali sono i comportamenti rilevanti degli utilizzatori e di coloro che già possiedono una carta onde poter predire quali potranno essere i clienti futuri, quali le loro caratteristiche e quali i loro comportamenti futuri in materia di denaro elettronico.

92


5.3 Storia e caratteristiche dell'emittente del data set 5.3.1 Gruppo bancario Banca Popolare dell’Emilia Romagna168. Il Gruppo BPER nasce nel 1994 grazie ad un'idea di Banca popolare dell’Emilia Romagna. L’obiettivo alla base del progetto messo in atto agli inizi degli anni novanta, era quello di creare una realtà federale, in cui ogni Banca appartenente al Gruppo potesse sfruttare le sinergie di un grande Gruppo, mantenendo però autonomia operativa e radicamento territoriale. Nell'attualità il Gruppo BPER è una realtà forte composta da nove Banche commerciali, tutte autonome e ben radicate nei diversi territori di appartenenza, formando una rete di 1300 sportelli. Oltre agli istituti di credito, il Gruppo comprende anche numerose Società prodotto (risparmio gestito, credito personale, leasing e factoring) e strumentali.

BANCHE TERRITORIALI Nord Banca Popolare dell'Emilia Romagna Banca Popolare di Ravenna Centro Banca Popolare di Aprilia Banca Popolare di Lanciano e Sulmona Cassa di Risparmio Provincia dell'Aquila Sud Banco di Sardegna Banca di Sassari Banca della Campania Banca Popolare del Mezzogiorno Tabella 7:Suddivisione territoriale Banche Gruppo Bper

168

http://www.bper.it/

93


Il Gruppo BPER può inoltre contare su una solida rete di partnership e partecipazioni, alcune di controllo, in istituzioni finanziarie straniere. Tali rapporti consentono, attraverso appositi “Italian desk”, di fornire un supporto operativo efficace a tutte le aziende impegnate in processi di internazionalizzazione. A livello italiano la Bper si attesta all'ottavo posto nella classifica delle 15 banche italiane maggiormente capitalizzate, con un capitale pari ad euro 1,68 miliardi di euro169.

Società prodotto Investment Banking Meliorbanca Asset Management Optima Sgr Para Bancari e Credito al Consumo Abf Leasing Sardaleasing Emilia-Ro Factoring Divisione Consumer Tabella 8:Società prodotto Gruppo Bper

5.3.2 Divisione Consumer170 La Divisione Consumer costituisce una Unità di business all'interno del Gruppo Banca Popolare dell'Emilia Romagna. Il compito affidato dal Gruppo Bper alla Divisione è quello di presidiare il mercato del credito al consumo e dei sistemi di pagamento (carte di credito e di debito, POS, e-commerce) attraverso l'offerta di prodotti innovativi distribuiti con una logica multicanale e destinati all'intera rete distributiva del Gruppo. 169

Dati aggiornati al 09.01.2012-www.borsaitaliana.it http://www.divisioneconsumer.it/

170

94


La missione della Divisione Consumer è quella di erogare servizi di qualità alle Banche, ai clienti e ai partner del Gruppo nel mercato del "personal credit". Ad oggi la Divisione Consumer è attiva nei settori dell'emissione delle carte di credito, delle carte di debito e prepagate, dell'offerta dei prestiti assistiti (erogazione di prestiti personali con delegazione sullo stipendio e cessione del quinto dello stipendio), dei prestiti finalizzati sul punto vendita e dei sistemi di trasferimento del denaro attraverso il servizio Western Union Money Transfer.

5.4 Obiettivo dell'analisi

Negli ultimi venti anni, in seguito agli accordi europei di Basilea relativi alla regolamentazione di vigilanza su tutti gli istituti bancari, le Banche europee hanno visto aumentare in maniera esponenziale il loro fabbisogno informativo sui clienti, sul mercato e sul merito creditizio. I criteri degli accordi sono diventati mano mano piĂš stringenti, sia dal punto di vista patrimoniale, sia dal punto di vista della valutazione del credito, costringendo gli istituti ad approfondire la conoscenza dei creditori e a condividere le informazioni con tutta la rete nazionale bancaria. Con l'obiettivo primario di restare all'interno dei criteri di Basilea, ogni istituto ha dovuto adeguare i propri sistemi informatici e la propria normativa ai principi dettati dal Comitato con un impatto profondo sulle strutture organizzative, ma sopratutto sui clienti. In questo contesto, il mio lavoro si pone l'obiettivo di fornire all'istituto di credito un ulteriore strumento di conoscenza dei clienti, una leva che consenta di analizzare e studiare i comportamenti dei clienti in situazioni di tensione, aiutando nella valutazione complessiva del cliente. L'analisi parte dallo studio di un sostanzioso dataset contenente i clienti delle tre maggiori banche del Gruppo Bper, clienti possessori di carte di credito. Grazie alla

95


creazione di un rete neurale costruita con un algoritmo di apprendimento supervisionato, lo scopo dello studio è quello di creare un modello che consenta all'istituto bancario di definire le caratteristiche dei clienti possessori delle carte di credito. In particolare l'analisi si focalizza sui clienti che utilizzano la funzione di anticipo contante da sportello Atm, questo perché molto spesso questa funzione non viene adoperata in maniera corretta. Sovente il cliente maggiormente informato, che si trova in difficoltà e viene contattato per la sistemazione di una posizione debitoria sul conto corrente, utilizza la carta di credito per prelevare contante e successivamente lo versa a copertura della posizione. In questa maniera l'addebito del prelievo viene posticipato di un mese con la speranza che il cliente recuperi la liquidità necessaria per saldare la posizione. Questo tipo di comportamento aumenta il rischio della relazione poiché porta all'incremento dell'esposizione del cliente senza un adeguato controllo da parte della Filiale. L'addebito dell'estratto conto della carta di credito, che contiene la somma di tutte le transazioni effettuate nel mese solare antecedente la data di imputazione, avviene in unica soluzione e solo dopo un'attenta analisi il responsabile della filiale può notare questo tipo di condotta da parte del cliente. Al fine di fornire un supporto alla rete commerciale dell'istituto di credito, il modello si propone di definire il profilo comportamentale sia del cliente possessore che non utilizza correttamente la plastica sia di un potenziale cliente al quale si sta valutando di consegnare un nuovo strumento di pagamento. Il modello consentirà inoltre di segnalare al direttore della Filiale, con un discreto anticipo, un cliente che con molta probabilità approfitta dello strumento per coprire croniche esigenze di liquidità. Questo alert

consentirà un intervento tempestivo sul cliente e sulla plastica,

consentendo di ridurre i rischi di credito. L'utilizzo della funzione di prelievo di contante comprende anche implicazioni che lambiscono il campo dell'antiriciclaggio. Difatti prelievi ripetuti di importi sotto la soglia previsto dai limiti della normativa antiriciclaggi, potrebbero anche essere segnale di un'operazione sospetta rispetto ai canoni esposti nel decalogo Banca di Italia.

96


5.5 Presentazione del dataset.

Le informazioni e i dati che andranno a comporre il dataset sono estratti dal database a disposizione della Divisione Consumer. Il dataset originario comprende tutte le carte di credito a saldo, comprese le carte gold, le carte black, le business, e le revolving emesse per l'intero Gruppo Banca Popolare dell'Emilia Romagna. I dati vengono estratti mensilmente e riguardano tutte le plastiche emesse dalle otto banche del Gruppo comprese le carte gold, le carte business e quelle in possesso dei dipendenti degli istituti e di tutte le società del Gruppo, per un numero complessivo di plastiche che si attesta intorno alle 424 mila carte. L'estrazione mensile riguarda le transazioni effettuate con le carte nei trenta giorni del mese solare; questi dati generano l'estratto conto mensile che verrà poi inviato al cliente. Contestualmente all'elaborazione dell'estratto conto, l'importo viene addebitato sul conto corrente di appoggio per l'intera somma senza distinzione per tipo di transazione, oppure con l'imputazione di una rata precedentemente concordata. Dopo aver esposto gli obiettivi dell'analisi al responsabile del Auditing and Credit Control della Divisione, abbiamo definito l'arco temporale di analisi, gli estremi della partizione le variabili di estrazione del dataset. Al fine di effettuare un'analisi dinamica del dataset, per raccogliere il maggior numero di informazioni, si è provveduto ad effettuare un'estrazione di almeno 12 mesi; il programma di elaborazione dei dati fornito alla Divisione Consumer definisce intervalli temporali minimi di 15 mesi, poiché ogni estratto conto impiega almeno 60 giorni per consolidarsi (definire eventuali contestazioni di addebito da parte dei clienti). Il dataset oggetto dell'analisi è definito su un arco temporale che inizia con l'estratto conto del 30.09.2010 e termina con il documento inviato ai clienti e riferito alla data del 30.11.2011. In termini di studio del profilo comportamentale un intervallo così ampio evita di considerare come abituali comportamenti che invece possono essere considerati saltuari.

97


Definita la durata dell'osservazione, considerato l'elevato numero di record, in accordo con la Divisione, si è deciso di ridurre il campo di analisi alle sole carte gold delle tre principali banche del Gruppo Bper, posticipando ad una seconda fase l'applicazione del modello a tutti gli istituti del Gruppo e a tutte le tipologie di carte. In terza battuta sono state scelte le variabili che empiricamente potevano descrivere meglio il profilo di un possessore di carta di credito. Il dataset iniziale conteneva esattamente 92 variabili, ma per la costruzione del modello di rete neurale ne sono state scelte solo 12. ABI_BANCA COLLOCATRICE: identifica in maniera univoca la banca del Gruppo nella quale il cliente ha il rapporto di conto corrente su cui regola la carta di credito; PRZ_IMP_FIDO: indica l'importo mensile del plafond di utilizzo accordato a cliente. Nel caso delle carte Gold il plafond è compreso in un intervallo che va dai 5mila euro fino ai 50mila. PRZ_IMP_OP_POS: importo mensile totale delle transazioni concluse mezzo Pos. NR5_NUM_OP_POS EURO: numero totale delle transazione mezzo Pos. PRZ_SPESO_MESE: importo mensile totale delle transazioni effettuate dalla plastica nel mese di riferimento. NR5_TRANSAZIONI: numero totale delle transazioni effettuate dalla plastica nel mese di riferimento. PRZ_ANT ATM: importo mensile totale

delle transazioni concluse con

anticipo di contante da sportello Atm, durante il mese di riferimento. NR5_ANT_ATM: numero delle transazioni effettuate mezzo Atm nel mese di riferimento. DATA_RIFERIM_KI: data di chiusura dell'estratto conto. DATA_ATTIVAZ_CARTA: data di attivazione della carta.

98


NOME_VARIABILE

DES CRIZIONE VARIABILE COD. ABI BANCA IN BANCA ITALIA IM PORTO PLAFOND NUM ERO OPERAZ. POS EURO IM PORTO OPERAZ. POS EURO IM PORTO SPESO DEL M ESE IN EURO NUM ERO OPERAZIONI DEL M ESE IN EURO IM PORTO ANTICIPO SU ATM IN EURO NUM ERO OP. ANTICIPO ATM IN EURO DATA RIFERIM ENTO RILEVAZIONE Tabella 9: Selezione variabili del dataset.

1 ABI_COLLOCATRICE 2 PRZ_IM P_FIDO 3 PRZ_IM P_OP_POS EURO 4 NR5_NUM _OP_POS EURO 5 PRZ_SPESO_M ESE 6 NR5_TRANSAZIONI 7 PRZ_ANT_ATM _EURO 8 NR5_ANT_ATM _EURO 9 DAT_RIFERIM _KI

Completano il dataset il campo che identifica in maniera univoca la carta e la variabile anagrafica che definisce età e sesso del cliente possessore della carta.

5.6 Caratteristiche del modello. La costruzione del modello della rete neurale ha richiesto la scelta di: • Architettura della rete. La rete scelta per la realizzazione del modello è una rete feed-forward, che permette una discreta rapidità di calcolo, e grazie all'algoritmo di back-propagation garantisce anche la retro-propagazione, utile nel bilanciamento dei pesi legati ai nodi neuronali. • Funzione di attivazione. Come funzione soglia per l'attivazione dei neuroni, è stata scelta una funzione strettamente crescente che esibisce un bilanciamento tra un comportamento lineare e non lineare, una funzione sigmoidale. • Tipo di apprendimento. Tenuto conto della presenza di un'elevata mole di dati e di esempi empirici, è stata scelta una tipologia di apprendimento supervisionato. Come evidenziato in seguito, sono state scelte le variabili in input e sono state somministrate al modello anche le unità di output reali. Questo facilita l'apprendimento della rete, evidenziando le relazioni che legano le diverse unità. • Algoritmo di apprendimento. Indispensabile per tracciare la linea di modifica dei valori sinaptici. L’algoritmo è di back-propagation, il più utilizzato nelle reti feedforward con apprendimento supervisionato, poiché può essere utilizzato per un numero

99


diverso di strati, con l'obiettivo di minimizzare l'errore e la distanza tra l'output desiderato e l'output della rete. I pesi sinaptici vengono modificati nella direzione opposta al gradiente della funzione di errore. La retro-propagazione consente di propagare all'indietro, agli strati precedenti, gli aggiornamenti dei pesi finalizzati alla riduzione dell'errore.

5.7 Preparazione dei dati Un volta definiti i limiti della partizione è necessario preparare i dati, pulirli e renderli adatti ad essere inseriti nel modello. Ognuna delle variabili presenta un diverso tipo di osservazioni, alcuni campi contengono importi, altri campi contengono numeri, altri date o numero di giorni. Al fine di uniformare quanto piÚ possibile i dati, in maniera tale da ridurre il rumore in fase di elaborazione alcuni dei valori sono stati trasformati. Input N.Plastica Abi Banca Collocatrice BPER=1 BDS =2 BDC=3 Mese di rilevazione NOV=4 OTT=3 SETT=2 AGO=1 Anzianità della carta in numero di giorni N.totale operazioni

(POS+ATM)

OUTPUT

N.totale operazioni Atm/Totale operazioni

Atm SI=1 Atm NO=0

N.operazioni Pos/Totale operazioni Importo Atm/Totale speso mensile Importo Pos/Totale speso mensile Class i im porto fido 0=(0-5000); 1=(5001-10000); 2=(10001-20000); 3=(20001-50000);4=(50001100000)

Importo speso totale/Importo Fido Importo speso ATM/Importo Fido

Tabella 9: Variabili Input e Variabili Output.

100


VARIABILI INPUT N.PLASTICA : Identifica in maniera univoca la carta di credito; ABI: identifica con il numero 1 i clienti della Banca Popolare dell'Emilia Romagna;2 i clienti del Banco di Sardegna, con il numero 3 i clienti dell Banca della Campania; ANZIANITA' DELLA CARTA: questa variabile è utile nella valutazione del comportamento dei clienti. Esprime in giorni il periodo di possesso della carta da parte del cliente. Aiuta a comprendere le caratteristiche del proprietario della carta, può discriminare tra un cliente che utilizza la carta da molti anni da un correntista che invece ha

appena

iniziato

a

ricorrere

a

questo

strumento;

dalla

variabile

DATA_ATTIVAZIONE CARTA si sono calcolati i giorni trascorsi fino all'ultima data di estrazione dell'estratto conto; MESE DI RILEVAZIONE: sintetizza con una serie di numeri da 1 a 15 le mensilità di estrazione dell'estratto conto; NUMERO TOTALE OPERAZIONI: Totale transazioni Pos e Atm; PERCENTUALE OPERAZIONI ATM E POS SUL TOTALE OPERAZIONI MENSILI: per valutare la frequenza di utilizzo delle due funzioni principali delle carte, sono state create due variabili che riassumono in percentuale l'incidenza delle operazioni ATM sul totale delle operazione effettuate dalla plastica nel mese di riferimento, e la percentuale di transazioni POS sul totale mensile delle transazioni; PERCENTUALE OPERAZIONI ATM E POS SUL TOTALE TRANSATO MENSILE: le caratteristiche del comportamento di utilizzo del cliente emergono anche dagli importi del transato, per questo motivo per sintetizzare questa varibiale è stata calcolata l'incidenza degli importi transati con POS o ATM sul totale dello speso mensile; IMPORTO FIDO: al fine di analizzare al meglio le informazioni derivanti dall'importo del fido accordato dall'Istituto bancario sulla plastica, si è ritenuto

101


opportuno dividere in classi i diversi plafond delle carte. Classe 0 comprende le carte con fido tra 0,00 e 5000,00 euro; classe 1 carte con importo mensile fido tra 5001,00 e 10000,00 euro; classe 2 importo spendibile nel mese compreso tra 10001,01 e 20000,00 euro; classe 3 carte che danno la possibilità di spendere nel mese tra 20001,00 e 50000,00 euro; classe 4 comprende tutte le carte che hanno un fido superiore ai 50000,00 euro; RAPPORTO FIDO-SPESO MENSILE: di notevole importanza è anche la relazione che lega l'importo del fido accordato e l'importo speso nel mese. Evidenzia le modalità di utilizzo e l'attitudine del cliente nei confronti della carta; RAPPORTO TRA SPESO ATM E FIDO ACCORDATO: può essere interpretata come una misura di fiducia tra la banca e il cliente. Aiuta nel valutare quanto il cliente sfrutta la facilitazione concessa dall'istituto bancario, in termini di prelievi non totalmente corretti;

VARIABILE OUTPUT Come richiesto da questo tipo do algoritmo, per concludere il modello è stata scelta una variabili output che fornisce alla rete un parametro di riferimento: UTILIZZO ATM: per facilitare l'elaborazione dei dati in input, è stata creata la suddetta variabile. Se la carta ha effettuato almeno una transazione ATM nel mese il campo viene valorizzato con un 1, in caso contrario con 0;

Tenuto conto dell'elevato numero di record, e dalla modesta potenza del terminale utilizzato per l'analisi,ai fini della definizione del training-set e del data set, si è scelto un mese rappresentativo Agosto 2011, della popolazione estratta, per complessivi 9396 record. Ad ogni record corrisponde una carta di credito identificata univocamente da un numero Pan (Primary Account Number).

102


La partizione utilizzata come training-set, è formata da 7500 carte, mentre il testset risulta composto 1896 plastiche.

5.8 Il codice Python

Come indicato nel capitolo 3, lo strumento scelto per creare la rete neurale è il linguaggio di programmazione Python. Nonostante le numerose librerie fornite in allegato al download del programma, per la costruzione della rete si è provveduto a scarica dal Web la libreria Pybrain, un pacchetto a moduli ottimo per la costruzione di modelli di reti neurali. La libreria fornisce una consistente gamma di ambienti, nei quali viene data la possibilità di modellare e confrontare i vari algoritmi di apprendimento, come l'algoritmo per rinforzo e l'apprendimento evolutivo. Pybrain171 garantisce flessibilità e facilità di utilizzo, ma si dimostra potente e affidabile. fornire uno strumento flessibile e facile da usare ma allo stesso modo potente ed affidabile. Dopo avere determinato la libreria Python da utilizzare,occorre richiamare nella shell le librerie che dovranno essere utilizzate nel corso della stesura, per questo si utilizza la funzione “Import”. Per implementare la rete occorre innanzitutto caricare la libreria per le funzioni matematiche e, dalla libreria Pybrain, la funzione “dataset supervised”, specifica per le reti che lavorano nella modalità di apprendimento supervisionato.

import math from pybrain.datasets import SupervisedDataSet

171

Www.pybrain.org

103


Succesivamente, si procede caricando i record che formano il training-set e il test-set. def traindataset def testdataset Grazie alla presenza della funzione è possibile inserire il numero di output e input desiderati.. In seguito il comando “open” consente il caricamento del file contenente il dataset.,mentre la funzione “float” permette la lettura dei dati.

def traindataset(): rows=[] ds=SupervisedDataSet( 12, 1) f=open('fileprof.csv','r') for l in open ('fileprof1.csv').readlines(): n=l.split(';') x1=float(n[0]) x2=float(n[1]) x3=float(n[2]) x4=float(n[3]) x5=float(n[4]) x6=float(n[5]) x7=float(n[6]) x8=float(n[7]) x9=float(n[8]) x10=float(n[9]) x11=float(n[10]) x12=float(n[11]) y=float(n[12])

104


ds.appendLinked([x1,x2,x3,x4,x5,x6,x7,x8,x9, x10,x11,x12],[y]) rows.append({'input':x1,x2,x3,x4,x5,x6,x7,x8,x9 ,

x10,x11,x12),'result':y}) return ds

def testdataset(): rows=[] ds=SupervisedDataSet( 12, 1) f=open('fileprof2.csv','r') for l in open ('filerof2.csv').readlines(): n=l.split(';') x1=float(n[0]) x2=float(n[1]) x3=float(n[2]) x4=float(n[3]) x5=float(n[4]) x6=float(n[5]) x7=float(n[6]) x8=float(n[7]) x9=float(n[8]) x10=float(n[9]) x11=float(n[10]) x12=float(n[11]) y=float(n[12]) ds.appendLinked([x1,x2,x3,x4,x5,x6,x7,x8,x9, x10,x11,x12][y]) rows.append({'input':x1,x2,x3,x4,x5,x6,x7,x8,x9, x10,x11,x12),'result':y}) return ds

105


Dopo aver definito training-set e test-set si deve comunicare alla libreria il tipo di funzione di attivazione che si vuole utilizzare. In questo caso abbiamo scelto la funzione sigmoidale quella maggiormente utilizzata, richiamata con il comando “def sigmoid”.

“def sigmoid”

#sigmoid function def sigmoid(x): return math.tanh(x)

def dsigmoid(y): return 1.0 - y**2

def makeMatrix(Y, X, fill=0.0): m = [] for i in range(Y): m.append([fill]*X) return m #randomize weights for i in range(self.numinput): for j in range(self.numhidden): self.inputweights[i][j] = random.uniform(-0.2, 0.2) for j in range(self.numhidden): for k in range(self.numoutput): self.outpweights[j][k] = random.uniform(-2.0, 2.0)

106


self.inputchange = makeMatrix(self.numinput, self.numhidden) self.outputchange = makeMatrix(self.numhidden, self.numoutput)

def update(self,inputs) if len(inputs) != self.numinput-1: raise

ValueError('Wrong

number

of

inputs,

should have %i inputs.' % self.numinput) #ACTIVATE ALL NEURONS INSIDE A NETWORK #Activate input layers neurons (-1 ignore bias node) for i in range(self.numinput-1): self.inputact[i] = inputs[i] #Activate hidden layers neurons for h in range(self.numhidden): sum = 0.0 for i in range(self.numinput): sum=sum+self.inputact[i] * self.inputweights[i] [h] self.hiddenact[h] = sigmoid(sum) #Activate output layers neurons for o in range(self.numoutput): sum = 0.0 for h in range(self.numhidden): sum =sum+self.hiddenact[h]* self.outpweights[h] [o] self.outputact[o] = sigmoid(sum) return self.outputact[:]

107


Dopo aver percorso i passaggi suindicati, è necessario definire i termini dell'algoritmo di back-propagation attraverso il comando “def backPropagate”. Il

comando

è

definito

da

quattro

argomenti:

”self”,”target”,“momentum172”,“learningrate173”; quest'ultimi due sono i parametri modificabili durante l'elaborazione della rete e nel caso del modello proposto

il

momentum è pari a 0.2, mentre il learning rate è pari 0.6.

def backPropagate(self, targets, learningrate, momentum): """Back Propagate """

if len(targets) != self.numoutput: raise

ValueError('Wrong

number

of

target

values.')

# calculate error for output neurons output_deltas = [0.0] * self.numoutput for k in range(self.numoutput): error = targets[k]-self.outputact[k] output_deltas[k] = dsigmoid(self.outputact[k]) * error

# calculate error for hidden neurons hidden_deltas = [0.0] * self.numhidden for j in range(self.numhidden): error = 0.0 172

tasso di cambiamento con cui la rete deve modificare la definizione dei pesi dei neuroni rispetto alla significatività dell'errore commesso. Definisce la proporzione con cui si aggiunge al nuovo peso la variazione dell'ultimo peso raggiunto dalla rete. 173 Determina la velocità di apprendimento del neurone. Definisce in quale misura le informazioni di nuova acquisizione avranno precedenza sulle informazioni precedentemente processate. Compreso tra 0 e 1, nel primo caso il modello non apprende, nel secondo impara solo le informazioni più recenti.

108


for k in range(self.numoutput): error=error+output_deltas[k]*self.outpweights [j][k] hidden_deltas[j] = dsigmoid(self.hiddenact[j]) * error

# update output weights for j in range(self.numhidden): for k in range(self.numoutput): change = output_deltas[k]*self.hiddenact[j] self.outpweights[j][k] += learningrate*change + momentum*self.outputchange[j][k] self.outputchange[j][k] = change

# update input weights for i in range(self.numinput): for j in range(self.numhidden): change = hidden_deltas[j]*self.inputact[i] self.inputweights[i][j] += learningrate*change + momentum*self.inputchange[i][j] self.inputchange[i][j] = change

# calculate error error = 0.0 for k in range(len(targets)): error = error + 0.5*(targets[k]self.outputact[k])**2 return error

109


In questa fase della scrittura, dopo aver definito la struttura della rete e le sue caratteristiche, le righe di codice declinano i pesi tra i collegamenti neurali, gli strati nascosti e la previsione dell'errore. Per arrivare ad interagire attivamente con la rete, si deve utilizzare il comando “def train” che apporta delle variazioni sui parametri che caratterizzano il modello. In questo step si definisce la funzione di addestramento della rete, è in questo frangente che si ha la possibilità di definire il numero di epoche 174 che la rete deve svolgere, nel modello 2000, il momentum e il learning rate. def train(self,

patterns,

iterations=2000,

learningrate=0.6, momentum=0.2): """Train network a patterns""" for i in range(iterations): error = 0.0 for p in patterns: inputs = p[0] targets = p[1] self.update(inputs) error = error + self.backPropagate(targets, learningrate, momentum) if i % 100 == 0: print('error %-.5f' % error)

L'ultimo passaggio permette di definire gli strati della rete, definisce il numero di input, di strati nascosti e output, attraverso il comando “def test” . Si inseriscono, il numero di input, nel nostro caso 12, uno strato nascosto con composto da 8 nodi, e l'output in questo caso 1. def test(): # Teach network XOR function 174

Coincide con un ciclo di presentazione degli esempi del training set

110


patterns1=traindataset() patterns=testdataset() # create a network with ten input, 1 hidden with 8 nodes, and one output nodes network = NN(12,1, 1) # train it with some patterns network.train(patterns1) # test it for pat in patterns: print(pat[0], '=', network.update(pat[0]))

if __name__ == '__main__': test() Da questo momento in poi è possibile fare il run del programma sulla shell di Pyhton. Il modello inizia l'iterazione fermandosi di volta in volta(epoca) per mostrare l'errore di previsione. Alla luce del fatto che mentre la rete impara, modifica i pesi delle connessioni neurali, l'errore diminuisce via via che vengono compiute le successive iterazioni come indicato nella tabella 10.La rete mostra l'errore di previsione ogni 10 iterazioni.

iterazioni Errore

10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 2,181 1,171 0,92 0,814 0,764 0,718 0,64 0,493 0,344 0,298 0,275 0,259 0,245 0,234 0,215 0,207 0,2 0,194 0,188 0,171 Tabella 10-Discesa del errore di previsione.

In conclusione del run il modello mostra gli output, molto simili e confrontabili con i riferimenti reali.

111


5.9 Risultati Gli esiti dell'elaborazione dimostrano l'efficacia e l'affidabilità della rete, che si propone come un modello che garantisce una buona approssimazione degli output attesi. Per una maggior visibilità e chiarezza riportiamo nella tabella 11 un confronto che permette di comprendere la sensibilità della rete.

Tabella 11: Risultati Rete neurale

Si nota che su 70 carte che realmente utilizzano la funzione Atm in maniera non corretta il modello ne individua 63, commettendo quindi 7 errori. Al contrario il numero dei falsi positivi è pari a 8, la rete riconosce 1818 carte che non impiegano la funzione Atm mentre il dataset reale ne proponeva 1826. I risultati mostrano le capacità predittive della rete, che si dimostra in grado di distinguere tra un cliente utilizzatore della funzione prelievo di contanti Atm e un possessore che invece non abusa di questa funzione. Grazie all'utilizzo di sole 12 variabili il modello può essere utilizzato per predire i comportamenti dei clienti, e potrebbe essere utile in supporto alle decisioni dei manager della Divisione Consumer e ai direttori di agenzie e filiali.. Il modello riesce a cogliere la relazione tra le variabili in ingresso e l'output, è capace evidenziare un cattivo utilizzo dello strumento di pagamento. Il numero di osservazioni che attesta un cattivo utilizzo della funzione anticipo, è decisamente ridotto, pari al 3% del totale dei record estratti, sia nell'intero data set sia

112


nella partizione del test-set. Nonostante questa scarsa incidenza il modello riesce a rilevare con buon approssimazione la presenza di un utilizzo incongruo dello strumento.

Grafico 2- Rappresentazione traslata Output Reali-Valori Predetti

Per agevolare la lettura del grafico la funzione di rappresentazione dei risultati predetti è stata traslata di uno 0,5. Dal tracciato si evince la sostanziale corrispondenza tra l'output atteso e i risultati presentati dal modello, evidenziando la ridotta percentuale di errore. Alla luce delle prestazioni della rete, possiamo concludere che la scelta delle variabili del dateset, dense di informazioni pienamente utilizzabili, la loro preparazione, l'utilizzo di una rete feed-forward con apprendimento supervisionato e la preferenza verso l'algoritmo di back-propagation, ha dato origine ad un modello in grado di generalizzare al meglio il contenuto del dataset. L'efficacia del modello viene anche supportata dalla velocità di elaborazione che accompagna il loop dell'algoritmo, nonostante l'elevato numero di record estratti dall'intera popolazione.

113


Alla luce dei risultati ottenuti, la valutazione del modello può essere considerata positiva e assolutamente proponibile a coloro che ogni giorno hanno a che fare con il dataset e con i clienti possessori delle plastiche.

5.10 Conclusioni

Gli esiti della sperimentazione hanno sostanzialmente confermato l'ipotesi dell'affidabilità delle reti neurali, e soprattutto la praticabilità dell'idea di applicare un tale modello ad un dataset così complesso e particolarmente dinamico. Durante l'elaborazione del modello e anche alla conclusione del lavoro, la Divisione Consumer si è dimostrata interessata al processo di sviluppo del modello, ritenendo un filone positivo, quello dello studio del comportamento scorretto dei clienti possessori della carta di credito. In particolare, visti i risultati ottenuti con l'applicazione del modello alle sole carte Gold delle tre maggiori banche del Gruppo, la Divisione ha manifestato la ferma intenzione di sperimentare il modello sulle posizioni aziendale. Alla società sono state proposte due ipotesi di implementazione del modello. Una prima possibilità potrebbe essere quella di creare con Python una semplice interfaccia grafica in grado di inviare un messaggio di alert, settato in base a criteri scelti a priori, che aiuti il direttore di Filiale nell'individuare clienti che mal utilizzando la carta evidenziano esigenze stringenti di liquidità. La seconda opzione, immediatamente applicabile, consisterebbe nella creazione di un tabulato quindicinale con vidimazione obbligatoria, che evidenziasse al decisore tutti i clienti che nelle giornate precedenti hanno utilizzato in maniera non corretta la carta di credito. Vista la semplicità di introduzione della seconda opzione, nel breve è più probabile che la scelta ricada su di essa, tenendo conto anche della impellente necessità

114


di monitorare questo comportamento, legato sensibilmente all'aumento di fabbisogno di liquiditĂ determinato dallo stato di recessione e dalla crisi del mercato.

115


6.CONCLUSIONI

Dopo aver esplorato l'aspetto sociologico, informatico e organizzativo descritto dai quattro autori scelti nella parte introduttiva, l'approfondimento di questo lavoro ha volto il suo sguardo verso il bazaar dell'opensource. Un mondo dove la collaborazione e la collettività danno una spinta propulsiva molto forte allo sviluppo di nuovi programmi in un costante aggiornamento e scambio di idee. Dopo aver valutato gli aspetti organizzativi del fenomeno opensource, si approfondito un tassello di questo fenomeno che vede una miriade di programmi gratuiti ma assolutamente affidabil,i aiutare gli utenti a risolvere piccoli e grandi problemi. Python, linguaggio di programmazione opensource si è rivelato un validissimo strumento nella costruzione del modello ipotizzato e nell'elaborazione dei dati forniti dalla Divisione Consumer. Dopo aver affrontato il Pitone, il percorso si fermato sull'analisi delle tecniche che permettono di lavorare con la conoscenza collettiva. Le tecniche che consentono di estrarre da distese di dati informazioni, conoscenza implicita, creando un ulteriore tesoro di dati e know-how indispensabile per costruire un vantaggio competitivo solido. Il processo di dataming e le sue applicazioni hanno evidenziato come l'informatica e la statistica rendano piÚ semplice il cammino del decisore nell'utilizzo delle informazioni e della conoscenza. Tecniche avanzate assicurano strumenti adeguati per la lettura dei comportamenti e delle scelte dei consumatori, sull'andamento del mercato . Tra i costrutti di estrazione ed elaborazione dei dati, le reti neurali si sono rivelate uno strumento fondamentale nello studio e nella lettura di un dataset operazionale denso di informazioni e conoscenza.

116


Dopo aver descritto le caratteristiche dei modelli delle reti neurali, elencato i differenti tipi di apprendimento il lavoro è approdato fisiologicamente al caso pratico. Per poter sperimentare il modello di rete neurale su un adeguato numero di osservazioni, la Divisione Consumer (società prodotto del Gruppo Banca Popolare Emilia Romagna) ha fornito un dataset composto da un elevato numero di carte di credito. Dopo avere preparato i dati, scelto le variabili utili nella costruzione del modello, è venuta la decisione di scegliere una rete neurale feed.foward, con apprendimento supervisionato e con un algoritmo di back-propagation supportato da una funzione di attivazione sigmoidale. Grazie al linguaggio di programmazione Python, somministrare i valori al modello di rete neurale è stato sostanzialmente agevole. I risultati ottenuti si sono dimostrati in linea con l'ipotesi, e hanno reso possibile la presentazione del modello al soggetto fornitore dei dati utilizzati nel caso pratico. Alla luce di questo lungo percorso, tenuto conto dei risultati ottenuti, molte sono le prospettive che si presentano davanti alle reti neurali e alla loro applicazione alla conoscenza che gli Istituti di Credito stanno imparando a considerare come un bene di sostentamento.

117


BIBLIOGRAFIA AA.VV. 2008 ,” COLLECTIVE INTELLIGENCE: CREATING A PROSPEROUS WORLD AT PEACE”, M. TOVEY, EARTH INTELLIGENCE NETWORK, OAKTON, VIRGINIA. BERRA M. , MEO A. R., 2006 “Libertà di software, hardware e conoscenza. Informatiche solidali 2”, Bollatti Boringhieri.

COTTICA A.,2010,”WIKICRAZIA-L’AZIONE DI GOVERNO AL TEMPO RETE: CAPIRLA, PROGETTARLA, VIVERLA DA PROTAGONISTI”, NAVARRA EDITORE.

DELLA

DI GIULIO, D., MILANI, C. 2011, “Temi di Economia e Finanza Working Papers: Diffusione della moneta di plastica e riflessi sull'economia sommersa:un'analisi empirica sulle famiglie italiane”,, Direzione Strategie e Mercati Finanziari dell’ABI.

DOS SANTOS LESSA A. 2002 ”Python Developer’s Handbook”, Sam Pubblishing.

ENGELBART, D.C. 1962. Augmenting Human Intellect: A Conceptual Framework, SummaryReport,Stanford Research Institute, October.

ENGELBART, D.C. ,1985,”Workstation History and the Augmented Knowledge Workshop”, McDonnell Douglas Corporation ENGELBART, D.C.1992” Toward High-Performance Organizations A Strategic Role for Groupware -Proceedings of the GroupWare '92 Conference, San Jose, CA. FLOREANO D., S. NOLFI, 1993,“RETI NEURALI: ALGORITMI DI APPRENDIMENTO, AMBIENTE DI APPRENDIMENTO, ARCHITETTURA,” IN GIORNALE ITALIANO DI PSICOLOGIA, A. XX, PP. 15-50.

GIUDICI, P.,2001, “Data Mining”, McGraw-Hill.

118


GORI, M. Dicembre, 2003,“Introduzione alle reti neurali artificiali”, Mondo digitale, n.4.

HEBB, DONALD O,The organization of behavior; a neuropsychological theory. Wiley, New York, 1949. [tr. it.L'organizzazione del comportamento, FrancoAngeli, Milano, 1975.]

LAZZERINI, B. “Introduzione alle reti neurali”, Università di Pisa, 1999 LÉVY, P.(1994) L’Intelligence collective. Pour une anthropologie du cyberespace, Paris, La Découverte, tr. it. L’intelligenza collettiva. Per un’antropologia del cyberspazio, Milano, Feltrinelli 1996, 2002, LUTZ, M. “Programming Python, 1996 Object-Oriented Scripting”, O'Reilly Media, prefazione G.Van Rossum, Moore, J.T.S. Film-documentario (2001)“Revolution OS”.

MCCULLOCH, W. S.

AND

PITTS, W.H. (1943). A logical calculus of the

ideas immanent in nervous activity. Bulletin of Mathematical Biophysics,

MINSKY MARVIN

AND

SEYMOUR PAPERT, 1972 (2nd edition with

corrections, first edition 1969)Perceptrons: An Introduction to Computational Geometry, The MIT Press, Cambridge MA.

PERENS, B. 1999 “Open Sources: Voices from the Open Source Revolution”, O’Reilly

PICCOLO, D. 1998,”Statistica”, Il Mulino,

119


PÒR, G. 1995, "The Quest for Collective Intelligence" in the anthology "Community Building: Renewing Spirit and Learning in Business", New Leaders Press

Raymonds, S. 1999, “The cathedral & The Bazaar, musings on Linux and open source by an accidental revoltionary”, Tr. Di B.Parrella, http://www.apogeonline.com/openpress/cathedral

ROSENBLATT, F. (1958). "The Perceptron: A Probalistic Model For Information Storage And Organization In The Brain".Psychological Review”.

RUMELHART DAVID E.,MCCLELLAND JAMES L.1991,”PDP. Microstruttura dei processi cognitivi, Sistemi Intelligenti”, Bologna,Il Mulino, Trad. di R. Luccio e M. Ricucci.

VERCELLIS, C.” Business Intelligence”, (2006), McGraw-Hill.

120


SITOGRAFIA

http://www.gnu.org/gnu/gnu-history.it.html http://www.unix.org/what_is_unix/history_timeline.html” http://www.gnu.org/philosophy/why-free.it.html http://www.gnu.org/copyleft/copyleft.it.html http://www.dougengelbart.org/about/collective-iq.html. http://www.dougengelbart.org/about/vision-highlights.html. http://www.co-intelligence.org http://thetransitioner.org/circle/tiki-index.php?page=George+Por http://www.mediamente.rai.it/biblioteca/biblio.asp http://www.gnu.org/gnu/gnu-history.it.htm http://www.gnu.org/philosophy/why-free.it.html http://www.unix.org/what_is_unix/history_timeline.html http://www.gnu.org/gnu/gnu-history.it.html

http://www.gnu.org/copyleft/copyleft.it.html http://www.osnews.com/story/15960/Introduction-to-MINIX-3/”

http://it.wikipedia.org/wiki/Linus_Torval http://www.redhat.com/ http://www.ubuntu.com/ http://www.debian.org/

http://www.gentoo.org/ http://it.wikipedia.org/wiki/Distribuzione_(Linux) http://www.opensource.org/osd.html http://www.opensource.org/docs/osd http://www.apogeonline.com/openpress/cathedral http://www.cottica.net/wp-content/uploads/2010/05/Wikicrazia-DRAFT-June2010.pdf”

121


http://www.python-it.org/smfforum http://www.python-it.org/blog http://www.python-it.org/forum/chat/index.php

http://www.opensource.org/ http://www.python.org/psf/ http://python-history.blogspot.com/2009_01_01_archive.html http://www.asbahr.com/paper2.pdf-, Asbahr, J.: Python for massively multiplayer virtual worlds. In: Ninth International Python Conference, Python Software Activity (2001) http://www.mevislab.de/mevislab/features/ http://www.openerp.com/ http://wiki.python.org/moin/OrganizationsUsingPython www.tiobe.com http://www.tiobe.com/content/paperinfo/tpci/index.html http://it.wikipedia.org/wiki/Programmazione_ad_oggetti http://it.wikipedia.org/wiki/Programmazione_imperativa http://it.wikipedia.org/wiki/Programmazione_funzionale http://www.python.it/about/ http://en.wikipedia.org/wiki/ANSI_C” .

http://www.doughellmann.com/PyMOTW/sys/limits.html http://www.doughellmann.com/articles/how-tos/python-exception-handling/ http://docs.python.it/html/tut/node12.html http://docs.python.it/”Manuale di riferimento della libreria standard”.tr.it maggio 2005. http://docs.python.it/”Manuale di riferimento della libreria standard”.tr.it maggio 2005 http://www.webopedia.com/TERM/C/CGI.html” “http://it.wikipedia.org/wiki/HTML” http://it.wikipedia.org/wiki/XML” http://it.wikipedia.org/wiki/Interfaccia_grafica” http://www.pythonware.com/media/data/an-introduction-to-tkinter.pdf”

122


http://it.wikipedia.org/wiki/Data_mart

http://sdw.ecb.europa.eu/ http://www.bancaditalia.it/statistiche/sispaga/2011/54_11/suppl_54_11.pdf http://www.bper.it/ http://www.divisioneconsumer.it/ http://www.pybrain.org

123



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.