Lumsa Informatica per la comunicazione 2024-25 PDF

Summary

These are lecture notes for a course on computer science, "Informatica per la comunicazione", at Lumsa University in the academic year 2024-25. The notes cover fundamental concepts of computer science, including the difference between data and information, the evolution of data, and hardware and software, and specific concepts related to artificial intelligence including machine learning, different computing paradigms.

Full Transcript

Lumsa Dipartimento di Scienze umane Corso di studi in Scienze della Comunicazione, Marketing e Digital media Informatica per la comunicazione (Gruppo P-Z) (Gruppo A-F) L’informazione digitale Prof.ssa Alessandra Musolino A.A. 2024-25 Aree di lavoro (I semestre) Sicu...

Lumsa Dipartimento di Scienze umane Corso di studi in Scienze della Comunicazione, Marketing e Digital media Informatica per la comunicazione (Gruppo P-Z) (Gruppo A-F) L’informazione digitale Prof.ssa Alessandra Musolino A.A. 2024-25 Aree di lavoro (I semestre) Sicurezza delle Reti, Internet e informazioni e WWW privacy Quale Introduzione ad paradigma Excel nell’era dell’AI? L’informazione digitale 2 Quale paradigma nell’era dell’AI? Introduzione all’Intelligenza Artificiale Social Machine networks e learning introduzion e ai grafi ChatGPT Generative Pre- trained Transformer Informatica Deriva dal francese informatique = information + automatique È una contrazione di informazione automatica Scienza che studia l’elaborazione delle informazioni e le sue applicazioni 4 A cosa mi serve? Conoscere l’informatica, da fruitori e non da tecnici specializzati, richiede: capacità di comprensione degli elementi strutturali fondamentali e delle funzionalità disponibili per effettuare scelte consapevoli in base alle proprie esigenze ed a quelle del proprio gruppo di lavoro capirne i meccanismi evolutivi e, sulla base di quanto appreso nel passato, essere in grado di effettuare delle scelte consapevoli valutando gli elementi di novità. 5 Cos’e l’informatica? Insieme dei processi e delle tecnologie che rendono possibile ▪ la creazione ▪ la raccolta ▪ l’elaborazione ▪ l’immagazzinamento ▪ la trasmissione dell’informazione con metodi automatici. 6 Differenza tra dato e informazione Dato: elemento direttamente presente alla conoscenza. Non ha bisogno di essere spiegato. Informazione: rappresenta il dato all’interno di un contesto in modo da definirne un significato. 7... ne deriva che Il dato descrive in maniera elementare, un fatto, un oggetto, un evento o altro, attraverso simboli o combinazione di simboli. Non è interpretato ma esprime in forma originaria l’oggetto rappresentato dal dato stesso. Il dato diventa informazione quando ci permette di scegliere. L’informazione diventa conoscenza quando ci permette di capire. La conoscenza diventa competenza quando ci permette di agire 8 … modi diversi per rappresentare l’elaborazione digitale Dati Elaborazione Informazione * INPUT Elaborazione OUTPUT (AI) Dati di input acquisiti Funzione agente Azione tramite sensori * È possibile che informazioni già elaborate divengano dati per elaborazioni successive 9 Hardware e Software ▪ Hardware - Struttura fisica, tangibile ▪ Software - Livello logico, intangibile ✓ Insieme di programmi contenenti delle istruzioni che permettono all’hardware di funzionare 10 Cos’e un Computer ▪ Elaboratore Elettronico Digitale o Rappresenta ed elabora dati in base ad una serie di istruzioni. o Utilizza componenti elettronici per elaborare le informazioni. o Le informazioni sono rappresentate mediante i due simboli (digit) della numerazione binaria. 11 L’evoluzione dei dati I dati numerici sono stati i primi ad essere elaborati in automatico da un computer Le parole possono essere memorizzate codificando i singoli caratteri (tutto deve essere ricondotto sempre al digit della numerazione binaria) Fotografie ed altre immagini possono essere memorizzati, elaborati Il segnale audio da analogico può essere digitalizzato Il segnale video da analogico può essere digitalizzato ………...ed altro ancora 13 Immagazzinamento e trasferimento dei dati ▪ Il dato è “portato da” o “trasmesso su” o memorizzato in” o “contenuto in” qualcosa: o Questo “qualcosa” (supporto fisico) NON e il dato stesso (il dato richiede un supporto fisico, ma non coincide con esso) ▪ Ogni supporto fisico ha le sue caratteristiche in quanto supporto per i dati o Alcuni supporti sono particolarmente adatti alla trasmissione dei dati, ma non alla loro memorizzazione (cavi, etere, …) o Per altri supporti vale il viceversa (CD, DVD, …) 14 Requisiti dei supporti per il trasferimento e l’immagazzinamento dei dati Condizione necessaria perche un supporto sia in grado di trasferire o immagazzinare dati e che esso possa assumere configurazioni (o stati) differenti, a ognuna delle quali venga associata un differente valore dei dati. Un supporto che non può avere diverse configurazioni non può immagazzinare o trasferire dati. Ad esempio: le particelle magnetiche presenti in un supporto possono puntare in direzioni opposte: una direzione indica 0, quella opposta 1 Una lampadina può essere accesa o spenta Le scanalature in un CD-ROM riflettono la luce del laser in maniera diversa da quelle non scanalate 15 Dato e codifica In generale, si può chiamare codifica l’operazione con cui il dato viene scritto su un supporto fisico e decodifica l’operazione con cui il dato viene letto da un supporto fisico Il computer deve cioè convertire nel linguaggio binario (codifica) le informazioni che gli forniamo e successivamente riconvertire i risultati dell’elaborazione o della semplice lettura dal linguaggio binario in un linguaggio a noi comprensibile (decodifica) 16 Bit e Byte BIT: elemento atomico (binario) che codifica un dato corrispondente ai valori logici “ Falso ” o “ Vero ” : può essere rappresentato da un dispositivo che assume due stati BYTE: combinazione di 8 bit. Può rappresentare un carattere (lettera, numero o simbolo tipografico) tra 28 = 256 diversi 17 Sistema posizionale Sistema decimale Moltiplico per>> 104=10.0 103=1.000 102=100 101=10 100=1 00 20198 2 0 1 9 8 20000+0+100+90+8=20198 20000 + 0 + 100 + 90 + 8 Sommo >> Sistema binario Moltiplico per>> 24=16 23=8 22=4 21=2 20=1 10011 1 0 0 1 1 16+0+0+2+1=19 16 + 0 + 0 + 2 + 1 Sommo >> ** L’esponente è uguale al numero di cifre che stanno alla destra, l’ultimo è quindi zero 18 Notazione binaria: esempi 128 64 32 16 8 4 2 1 Numeri binari Numeri  decimali 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 2 2 0 0 0 0 0 0 1 1 3 2+1 0 0 0 0 0 1 0 0 4 4 0 0 0 0 0 1 0 1 5 4+1 0 0 0 0 0 1 1 0 6 4+2 0 0 0 0 0 1 1 1 7 4+2+1 0 0 0 0 1 0 0 0 8 8 0 0 0 0 1 0 0 1 9 8+1 0 0 0 0 1 0 1 0 10 8+2.......... 1 1 1 1 1 1 1 1 255 255 Esempio: 00000110 0 * 128 + 0 * 64 + 0 * 32 + 0 *16 + + 0 *8 + 1*4 +1*2 + 0 +1=6 19 Codifica binaria Alfabeto – 2 simboli: {0, 1}, {off, on} Quanti oggetti posso codificare con k bit? – 1 bit ? (0, 1) ? 2 oggetti – 2 bit ? (00, 01, 10, 11) ? 4 oggetti – 3 bit ? (000, 001, 010, …, 111) ? 8 oggetti –… – k bit 2k oggetti 20 ASCII American Standard Code for Information Interchange (Extended) 1 ☺ 26 → 51 3 76 L 101 e 126 ~ 151 ù 176 ░ 201 ╔ 226 Ô 251 ¹ 2 ☻ 27 ← 52 4 77 M 102 f 127 ⌂ 152 ÿ 177 ▒ 202 ╩ 227 Ò 252 ³ Il carattere è editabile 3 ♥ 28 ∟ 53 5 78 N 103 g 128 Ç 153 Ö 178 ▓ 203 ╦ 228 õ 253 ² 4 ♦ 29 ↔ 54 6 79 O 104 h 129 ü 154 Ü 179 │ 204 ╠ 229 Õ 254 digitando Alt + numero 5 ♣ 30 ▲ 55 7 80 P 105 i 130 é 155 ø 180 ┤ 205 ═ 230 µ 255 space decimale (nel tastierino 6 ♠ 31 ▼ 56 6 81 Q 106 j 131 â 156 £ 181 Á 206 ╬ 231 þ 7 32 space 57 9 82 R 107 k 132 ä 157 Ø 182 Â 207 ¤ 232 Þ numerico). 8 ◘ 33 ! 58 : 83 S 108 l 133 à 158 × 183 À 208 ð 233 Ú I caratteri evidenziati nella 9 ○ 34 " 59 ; 84 T 109 m 134 å 159 ƒ 184 © 209 Ð 234 Û cornice possono risultare 10 ◙ 35 # 60 < 85 U 110 n 135 ç 160 á 185 ╣ 210 Ê 235 Ù 11 ♂ 36 $ 61 = 86 V 111 o 136 ê 161 í 186 ║ 211 Ë 236 ý differenti a seconda 12 ♀ 37 % 62 > 87 W 112 p 137 ë 162 ó 187 ╗ 212 È 237 Ý dell’applicazione software 13 ♪ 38 & 63 ? 88 X 113 q 138 è 163 ú 188 ╝ 213 ı 238 ¯ 14 ♫ 39 64 @ apostrofo 89 Y 114 r 139 ï 164 ñ 189 ¢ 214 Í 239 ´ utilizzata. 15 ☼ 40 ( 65 A 90 Z 115 s 140 î 165 Ñ 190 ¥ 215 Î 240 - Diffuse codifiche più estese 16 ► 41 ) 66 B 91 [ 116 t 141 ì 166 ª 191 ┐ 216 Ï 241 ± (es. UNICODE 16 bit per 17 ◄ 42 * 67 C 92 \ 117 u 142 Ä 167 º 192 └ 217 ┘ 242 ‗ 18 ↕ 43 + 68 D 93 ] 118 v 143 Å 168 ¿ 193 ┴ 218 ┌ 243 ¾ carattere , 216=65.536) per 19 ‼ 44 , 69 E 94 ^ 119 w 144 É 169 ® 194 ┬ 219 █ 244 ¶ rappresentare anche le lingue 20 ¶ 45 - 70 F 95 _ 120 x 145 æ 170 ¬ 195 ├ 220 ▄ 245 § 21 § 46. 71 G 96 ` 121 y 146 Æ 171 ½ 196 ─ 221 ¦ 246 ÷ orientali 22 ▬ 47 / 72 H 97 a 122 z 147 ô 172 ¼ 197 ┼ 222 Ì 247 ¸ 23 ↨ 48 0 73 I 98 b 123 { 148 ö 173 ¡ 198 ã 223 ▀ 248 ° 24 ↑ 49 1 74 J 99 c 124 | 149 ò 174 « 199 Ã 224 Ó 249 ¨ 25 ↓ 50 2 75 K 100 d 125 } 150 û 175 » 200 ╚ 225 ß 250 · 21 Scala delle dimensioni binarie Grandezza prefisso Simb. Valore Analogo SI Diff % Sistema Internazionale Kilo binario Kibi Ki 210 1024,00 103 2,40% 1000,00 Mega binario Mebi Mi (210)2 1048576,00 (103)2 4,86% 1000000,00 Giga binario Gibi Gi (210)3 1073741824,00 (103)3 7,37% 1000000000,00 Tera binario Tebi Ti (210)4 1099511627776,00 (103)4 9,95% 1000000000000,00 Peta binario Pebi Pi (210)5 1125899906842620,00 (103)5 12,59% 1000000000000000,00 Exa binario Exbi Ei (210)6 1152921504606850000,00 (103)6 15,29% 1000000000000000000,00 Zetta binario Zebi Zi (210)7 1180591620717410000000,00 (103)7 18,06% 1000000000000000000000,00 Yotta binario Yobi Yi (210)8 1208925819614630000000000,00 (103)8 20,89% 1000000000000000000000000,00 22 Analogico e digitale Usa grandezze variabili con continuità Usa una sequenza finita di simboli (l’angolo formato dalle lancette con un appartenente ad un insieme finito riferimento fisso). (spesso un insieme di cifre, ad esempio quelle Più difficile essere precisi quando si decimali). Più facile essere precisi. legge l’ora 23 Origine e trasformazione dell’informazione Sorgenti dell’informazione Sorgenti acustiche Sorgenti visive Dati alfanumerici Forma del segnale per la trasmissione su lunghe distanze Segnali elettromagnetici Segnali ottici Trasformazione della natura del segnale = Trasduzione Microfoni Telecamere 24 La conversione analogico-digitale Campionamento e quantizzazione ▪ Gli elaboratori elettronici hanno natura discreta, ovvero ogni grandezza in gioco può essere rappresentata soltanto da un numero finito di elementi. ▪ Per essere elaborati da un calcolatore, segnali analogici (intrinsecamente continui) quali suoni, immagini, video ecc., devono essere discretizzati (digitalizzati) attraverso operazioni di campionamento e quantizzazione (conversione analogico-digitale). ▪ Parametri della procedura ▪ Frequenza di campionamento, misurata in hertz (Hz) ▪ Risoluzione = numero di bit utilizzati per la quantizzazione 25 Campionamento ampiezza segnale continuo ampiezza segnale campionato tempo tempo (discreto) t Il segnale continuo viene misurato (“campionato”) ad intervalli di tempo regolari t (t = intervallo di campionamento). Il segnale risultante è un insieme finito di punti equidistanti nel tempo. Tuttavia le ampiezze devono essere ancora approssimate ad intervalli discreti, ovvero quantizzate. Si noti che campionamento e quantizzazione comportano una perdita di informazione. Il segnale analogico originale non può essere recuperato esattamente 26 Quantizzazione 111 segnale quantizzato 110 Ampiezza 101 (discreta e codificata) 100 011 Codifica a 3 bit 010 001 000 Tempo (discreto) La quantizzazione suddivide l’intervallo di possibili valori del segnale in n sotto intervalli che vengono poi codificati in binario. Ogni valore del segnale campionato viene approssimato al più vicino valore discreto Più sotto-intervalli si utilizzano, più l’approssimazione risultante sarà precisa, ma occorre impiegare un maggior numero di bit per la codifica. 27 Le immagini digitali Campionamento e quantizzazione nello spazio: codifica bitmap (raster) Le immagini digitali non hanno una struttura continua ma sono costituite da un numero finito di componenti monocromatiche (pixel) prodotte dal campionamento dell’immagine reale. I pixel assumono valori finiti di intensità luminosa. I possibili valori dipendono dal numero di bit: con N bit, ci sono 2N valori distinti. 28= 256 224= 16.777.216 28 Le immagini digitali Per esempio nella codifica base RGB si codificano i 3 colori primari con 8 bit per colore per pixel. 8 bit = 28 = 256 valori da 0 a 255 (v. msg di errore in figura) Componenti primarie: –rosso (R, red) –verde (G, green) –blu (B, blue) 29 La codifica vettoriale delle immagini Nella grafica vettoriale l’immagine viene codificata con l’indicazione della forma geometrica dei singoli oggetti che la compongono (primitive geometriche) Gli oggetti si possono ingrandire, rimpicciolire, ruotare, ridimensionare, colorare (bordi e contenuto), estrarre o inserire senza nessuna perdita di qualità. Gli oggetti si possono trattare in modo indipendente, come se ognuno fosse tracciato su un foglio trasparente (layer). Gli oggetti possono essere messi uno sull’altro, eventualmente quello sopra può nascondere quello sotto, che comunque non viene permanentemente cancellato. Occupano molto meno spazio dell’equivalente raster L’ingrandimento non comporta una perdita di risoluzione 30 I segnali video I video vengono codificati come sequenze di immagini La frequenza con cui vengono campionate le immagini che formano la sequenza video viene chiamata frame rate Il frame rate deve essere abbastanza alto affinché l’occhio umano non percepisca il passaggio da un fotogramma all’altro (almeno 30 frame/s) 31 Il bit rate Il prodotto della frequenza di campionamento (campioni/s) e della risoluzione (bit/campione) fornisce la velocità di cifra, ovvero il numero di bit emessi nell’unità di tempo, misurata in bit/s La velocità di cifra viene comunemente indicata col termine inglese bit rate Esempio: Audio CD ➔ 2 x 44100 x 16 = 1441200 bit/s ≈ 1.4 Mbit/s – Frequenza di campionamento = 44.1 kHz – Risoluzione = 16 bit/canale – 2 canali (stereo) 32 Fedeltà e bit rate La fedeltà aumenta all’aumentare della frequenza di campionamento e del numero di bit/campione, ovvero all’aumentare del bit rate Il bit rate ha però delle limitazioni dovute al mezzo trasmissivo utilizzato (oltretutto condiviso) E’ opportuno ridurre il bit rate cercando di limitare al minimo l’impatto sulla qualità del segnale La riduzione del bit rate viene chiamata compressione del segnale 34 La compressione Compressione = Riduzione della quantità di dati per trasmettere la stessa informazione (testo, audio, video) La compressione viene realizzata dal compressore o codificatore (coder) Per ottenere l’informazione originaria occorre effettuare la decompressione La decompressione è effettuata dal decompressore o decodificatore (decoder) Spesso i due dispositivi (coder e decoder) sono raggruppati in un unico dispositivo (codec) Il rapporto tra la quantità di bit da inviare senza e con compressione è denominato fattore di compressione 35 Pro e contro della compressione Vantaggi Aumento della capacità effettiva dei supporti di memorizzazione (più brani audio in un lettore MP3, più filmati in un hard disk,...) Miniaturizzazione dei dispositivi di riproduzione Aumento della qualità del segnale a parità di banda disponibile sul canale trasmissivo Svantaggi Peggioramento della qualità all’aumentare del fattore di compressione Ritardo nella riproduzione 36 La fedeltà della riproduzione con compressione Codifiche lossless – La sequenza di bit ottenuta a valle del decoder è identica bit per bit a quella originale – Il fattore di compressione è tipicamente minore di 2:1 Codifiche lossy – La fedeltà al segnale originale non è perfetta – La qualità del segnale a valle del decoder peggiora all’aumentare del fattore di compressione 37 Codifica immagini Formato GIF Il formato supporta fino a 8 bit per pixel Il numero di colori è limitato a 256 La limitazione sul numero di colori lo rende poco adatto per immagini fotografiche a colori E’ adatto ad immagini geometriche E’ adatto per loghi con zone di colore omogeneo Grado di compressione tipico = 50% Il logo e l’immagine dell’Italia sono GIF L’immagine dell’Italia `e 125x160 px e pesa 6390 byte, ovvero circa 2.5 bit/pixel 38 Codifica immagini Formato JPEG Diminuisce la qualità della visualizzazione, ma utilizza tutta la gamma di colori RGB E’ adatto ad immagini di tipo fotografico con variazioni graduali del colore Non è adatto per immagini geometriche o con variazioni nette del colore (meglio TIFF o GIF o PNG) È lossy perché comporta una perdita di risoluzione Non è adatto per immagini che devono essere editate più volte, perché ogni operazione di decompressione/ricompressione introduce degradazioni Grado di compressione tipico = 90% 39 Esempi di codifica immagini GIF Il numero di colori è limitato a 256 (8 bit) Grado di compressione tipico 50% Disegno originale in bmp JPG Utilizza tutta la gamma di colori RGB 256^3= 6.777.216 Grado di compressione tipico 90% 40 Lumsa Dipartimento di Scienze umane Corso di studi in Scienze della Comunicazione, Marketing e Digital media Informatica per la comunicazione (Gruppo A-F e P-Z) Introduzione all’Intelligenza Artificiale Machine Learning Prof.ssa Alessandra Musolino A.A. 2024-25 Storia Nel 1956, nel Dartmouth College nel New Hampshire un gruppo di scienziati si riunì per confrontarsi su alcuni concetti che potevano riassumersi nell’espressione che l’anno precedente John McCarthy aveva proposto: Intelligenza artificiale (AI) I principali temi oggetto di studio della ricerca che ne scaturì erano: Elaborazione del linguaggio naturale Reti neurali Principi e tecniche di astrazione, teoria della computabilità Costruzione di modelli creativi 2 Storia La proposta di incontro riportava: «Lo studio procederà sulla base dell’ipotesi che l’apprendimento e qualunque altra caratteristica dell’intelligenza, possa in linea di principio essere descritta con una tale precisione che sia possibile costruire una macchina per simularlo.» «… costruire macchine che possano risolvere problemi oggi di competenza esclusiva degli uomini, macchine in grado di migliorare se stesse». 3 Una prima definizione di AI “L’intelligenza artificiale è la teoria e lo sviluppo di un sistema informatico in grado di eseguire compiti che normalmente richiedono l’intelligenza umana, come la percezione visiva, il riconoscimento del parlato, il processo decisionale “English Oxford Living Dictionary” 4 Intelligenza naturale (1) In relazione all’ambiente di appartenenza rileviamo: Percezione attraverso i sensi disponibili (in AI parliamo spesso di sensori) Osservazione e investigazione Ragionamento e Problem solving, comprensione per prendere decisioni e trovare soluzioni Il dato descrive in maniera elementare, un fatto, un oggetto, un evento o altro, attraverso simboli o combinazione di simboli. Il dato diventa informazione quando ci permette di scegliere. L’informazione diventa conoscenza quando ci permette di capire. La conoscenza diventa competenza quando ci permette di agire Prof.ssa Alessandra Musolino 5 Intelligenza naturale (2) Se ne consideriamo i processi caratteristici avremo: Apprendimento, inteso come trasformazione dell’esperienza accumulata in patrimonio conoscitivo da utilizzare autonomamente Comunicazione, scambio informativo tra entità intelligenti non necessariamente della medesima tipologia Comprensione Possiamo altresì pensare di sfruttare la potenza di calcolo di un computer a supporto di elaborazioni automatiche che possano riprodurre la flessibilità della mente umana. (Test di Alan Turing del 1950) 6 Paradosso di Moravec Il paradosso di Moravec è la scoperta da parte dei ricercatori di intelligenza artificiale e robotica che, contrariamente alle ipotesi tradizionali, il ragionamento di alto livello richiede pochissimo calcolo, ma le capacità sensomotorie di basso livello richiedono enormi risorse computazionali. Il principio è stato articolato da Hans Moravec, Rodney Brooks, Marvin Minsky e altri negli anni ottanta. Come scrive Moravec, "è relativamente facile fare in modo che i computer mostrino prestazioni di livello adulto nei test di intelligenza o nel giocare a dama, e difficile o impossibile dare loro le competenze di un bambino di un anno quando si tratta di percezione e mobilità“. Allo stesso modo, Minsky ha sottolineato che le abilità umane più difficili da decodificare sono quelle che sono inconsce. "In generale, siamo meno consapevoli di ciò che le nostre menti sanno fare meglio", ha scritto, e ha aggiunto "siamo più consapevoli dei processi semplici che non funzionano bene che di quelli complessi che funzionano perfettamente“. Fonte:Wikipedia 7 Interdisciplinarietà Intesa come competenze di base da utilizzare congiuntamente per predisporre gli strumenti, non solo come conoscenza dei domini di riferimento, indispensabile ma anche abbastanza ovvia. Informatica Biologia Psicologia Matematica Statistica Calcolo delle probabilità Il carattere interdisciplinare è una caratteristica peculiare e la capacità di lavorare in team diventa essenziale 8 Algoritmo : fondamento della disciplina Aumenta ogni giorno l’importanza di applicazioni che ne fanno uso, sono l’asse portante del mondo dell’informatica, ne tessono la trama. Stanno trasformando il nostro mondo e dobbiamo conoscerli per governare il nostro futuro Algoritmo: soluzione di un problema attraverso una sequenza di passi/istruzioni che portano alla soluzione Ing. Alessandra Musolino 9 Algoritmi di IA Sin dagli anni ottanta sono state sviluppate tecniche di apprendimento automatico ma molte delle applicazioni pratiche che oggi fanno parte del nostro quotidiano sono state possibili solo in tempi recenti per: La potenza computazionale fornita dagli elaboratori aumentata enormemente La disponibilità di grandi moli di dati da fornire in input alle macchine Queste tecniche possono essere ricondotte al percettrone di Rosenblatt del 1958 (reti neurali) Oggi non è solo la nostra interazione con gli algoritmi da valutare ma anche come gli algoritmi interagiscono tra loro. Ing. Alessandra Musolino 10 Deep Blue e AlphaGo: quali differenze? 1997: il campione mondiale di scacchi Garry Kasparov fu sconfitto dal programma «Deep Blue» sviluppato dall’IBM Si trattava di programmazione esplicita, cioè i programmatori avevano scritto le istruzioni utilizzando tutta la conoscenza disponibile in letteratura riguardo le regole da applicare in ogni possibile situazione 2016: AlphaGo batte Lee Sedol, campione coreano di Go (gioco nel quale anche l’intuito è importante) Sono state utilizzate tecniche di apprendimento automatico, dando in input all’algoritmo scritto dalla società Deep-Mind di Google la sequenza delle mosse di partite di grandi campioni 2017: un misterioso avversario online batte Ke Jie, campione in carica di Go; sarà rivelato dopo che aveva combattuto contro AlphaGo. Qualche mese dopo Ke Jie accetta una sfida ufficiale, affermando di avere una mossa a sorpresa per battere AlphaGo (sulla base della sua esperienza precedente) Ma la versione di AlphaGo non era più la stessa, era stato addestrato giocando contro se stesso. Milioni di partite contro se stesso erano state utilizzate come dati di input. Ke Jie perse ancora. Ing. Alessandra Musolino 11 Machine Learning:appunti Se chi ha il compito di scrivere le righe di codice per risolvere un problema, non è in grado di descrivere in modo “non ambiguo” i passi necessari per interpretare correttamente le informazioni a disposizione, possiamo scegliere di sviluppare un algoritmo che invece di descrivere come risolvere descriverà come imparare a risolvere, passeremo quindi dalla programmazione esplicita all’implementazione di algoritmi che, a seguito della lettura dei dati impostano gli algoritmi più adatti a risolvere correttamente il problema. Faremo sì che il sistema possa apprendere dai dati; l’apprendimento si dice supervisionato quando utilizziamo una quantità sufficiente di dati di Input e di Output con la finalità di addestrare un sistema a compiere un compito specifico. Ricordiamo che non possiamo addestrare un sistema per compiere in maniera generalizzata tutto, ma solo un “compito specifico”, e che i dati sono sempre etichettati da esperti. 12 Machine Learning:appunti L’apprendimento è invece non supervisionato quando si parte dai soli dati di Input per trovare delle “strutture” caratterizzanti all’interno dei dati. Il nucleo di ML è l'inferenza di un semplice modello nascosto, a seguito della convinzione che dietro tutti questi dati apparentemente complessi e voluminosi ci sia una spiegazione che non è agevole individuare attraverso un tradizionale trattamento dei dati grezzi. Possiamo quindi affermare che se, nella programmazione esplicita, ogni algoritmo produce un output a seguito di un input fornito, con il ML si capovolge il paradigma: si parte dai dati e dal risultato e si arriva alla definizione dell’algoritmo; l’apprendimento è così governato da algoritmi che creano altri algoritmi 13 Machine Learning Ritroviamo questa «tecnica» nel trattamento delle informazioni per apprendere dai dati: data mining: machine learning applicato a “database", ovvero raccolte di dati inferenza e / o stima nelle statistiche riconoscimento di un modello induzione ottimizzazione L’osservazione dovrà servire non solo per prendere decisioni direttamente derivate dall’osservazione, ma anche e soprattutto per far si che la macchina possa prendere in maniera autonoma decisioni in futuro sulla base dell’esperienza appresa 14 Un modello semplice nascosto Convinzione che dietro tutti questi dati apparentemente complessi e voluminosi ci sia una spiegazione semplice. Il nucleo di ML è l'inferenza di un semplice modello nascosto. Se ogni algoritmo produce un output a seguito di un input fornito, con il ML si capovolge il paradigma: si parte dai dati e si arriva alla definizione dell’algoritmo L’apprendimento è governato da algoritmi che creano altri algoritmi Esempi di dati provenienti dalle transazioni di un supermercato: ci sono milioni di record, ma una persona che organizza una festa acquisterà un determinato sottoinsieme di prodotti e una persona che ha un cane acquisterà un sottoinsieme diverso Ci sono fattori nascosti che spiegano il comportamento del cliente. 15 Macchine che apprendono Se chi ha il compito di scrivere le righe di codice per risolvere un problema, non è in grado di descrivere in modo “non ambiguo” i passi necessari per interpretare correttamente le informazioni a disposizione, come avviene nella programmazione esplicita, possiamo scegliere di sviluppare un algoritmo che → invece di descrivere come risolvere → descrive come imparare a risolvere Se disponiamo di una quantità adeguata di dati si potrà, con poche righe di codice di apprendimento, veder generare in automatico milioni di righe di codice 16 Macchine che apprendono Ad esempio, con il Data Mining possiamo estrarre dai dati tutto quello che gli esperti ancora non sanno Vogliamo imparare tutto quello che è possibile sapere Ad un maggior numero di dati corrisponde una maggior possibilità di imparare Ma non dimentichiamo che il ML usa la lingua della probabilità mentre l’ingegneria usa la lingua della conoscenza, alla base della programmazione classica, il linguaggio cioè della logica 17 Definizione Arthur Samuel, un pioniere dell’AI diede la seguente definizione di machine learning: il machine learning è il settore dell’AI che studia come dare ai computer l’abilità di apprendere senza essere esplicitamente programmati a farlo”. (1959) 18 Definizione Un «sistema» di ML viene addestrato e non programmato Vengono forniti dati in input, ed il sistema trova in essi una struttura statistica che, trasformata in algoritmo, sta alla base dell’automazione dello stesso compito, in presenza di dati nuovi Le dimensioni dei dataset utilizzati per addestrare i sistemi sono tali, che l’analisi statistica classica sarebbe inutilizzabile. 19 Classificazione Machine Learning Apprendimento Supervisionato Regressione Clustering Apprendimento NON Supervisionato Riduzione della dimensionalità Apprendimento con Rinforzo Prof.ssa Alessandra Musolino 20 Campi di applicazione (1) diagnostica classificazione delle immagini Classificazione identificazione delle frodi fidelizzazione dei clienti....... previsioni del tempo Machine Learning previsioni del mercato..... Regressione aspettative della speranza di vita trend di crescita........ Profilazione Clustering Market mirato.... Prof.ssa Alessandra Musolino 21 Campi di applicazione (2) ricerca di modelli nascosti estrazione di caratteristiche Riduzione della analisi e visualizzazione di Big Data dimensionalità compressione significativa delle informazioni Machine Learning ………...... decisioni in tempo reale Apprendimento giochi con Rinforzo acquisizione di competenze..... Prof.ssa Alessandra Musolino 22 Apprendimento supervisionato 23 Machine Learning: Apprendimento supervisionato DATI di INPUT MACHINE LEARNING Algoritmo DATI di OUTPUT 24 Elementi caratteristici Dati di Input: la migliore rappresentazione di questi sarà a sua volta oggetto di elaborazione durante l’addestramento Output atteso: es. in un problema di classificazione, si tratterà di identificare le etichette da assegnare Valutazione del risultato (feedback) per ottimizzare l’algoritmo Il sistema quindi non dovrà soltanto individuare un modello statistico contenuto nei dati forniti, ma si dovrà preoccupare anche di trasformare i dati, trovare una rappresentazione utile, per l’individuazione delle regole che portano all’output atteso. 25 Elementi caratteristici «Questo è, tecnicamente il Machine Learning: una ricerca delle rappresentazioni più utili dei dati di input, in uno spazio delle possibilità predefinito, usando come guida un segnale di feedback.»* Gli algoritmi ricercano le trasformazioni, utilizzando un insieme predefinito di operazioni, chiamate «spazio delle ipotesi» * Franḉois Chollet, Deep Learning con Python, Apogeo, 2019 26 Apprendimento supervisionato Abbiamo dati etichettati da esperti Se l'etichetta è numerica, si tratta di un problema di REGRESSIONE Se l'etichetta fa riferimento a categorie, allora è un problema di CLASSIFICAZIONE Nell’addestramento con supervisione dovremo: Scegliere: ▪ le caratteristiche da valutare e i dati di esempio etichettati ▪ una metrica prestazionale ▪ l’algoritmo Valutare le prestazioni del modello Ottimizzare l’algoritmo 27 Un esempio Dagli incontri dello scorso anno di squadre in campionati campioni: REGRESSIONE: prevedere il numero di punti nei loro gruppi CLASSIFICAZIONE: prevedere se passeranno o meno il turno 28 Apprendimento supervisionato: Classificazione Utilizzata per predire l’appartenenza a gruppi o variabili di tipo categorico Alcuni concetti chiave: Target: verità, quello che il modello dovrebbe produrre in output Valore loss (errore) la differenza tra quanto il modello produce ed il target Classi, un insieme di etichette fra le quali scegliere Etichetta, una istanza di un’annotazione appartenente ad una classe Classificazione multi-etichetta(es un’immagine contiene sia un gatto che un cane) Recap: utilizziamo per l’addestramento un dataset tra le cui variabili è contenuta l’etichetta, quando il sistema lavorerà con dati nuovi sarà la «variabile etichetta» a dover essere individuata. 29 Albero decisionale Un modello utilizzato per dividere i dati di input, effettuando una scelta sulla base di un certo numero di domande Partiamo dalla radice dell’albero e procediamo suddividendo i dati Prendiamo dati di input descritti mediante una serie di attributi, ed abbiamo in uscita una «decisione» I dati di input possono essere sia discreti che continui, come anche quelli di output Nell’esempio (*) abbiamo una classificazione, abbiamo dati discreti, ed in output possiamo avere Vero o Falso (SI/NO) (classificazione booleana) Una possibile rappresentazione per ipotesi Ad esempio, ecco l'albero "vero" per decidere se aspettare: 30 Alberi decisionali Affollato? Nessuno Pieno Qualcuno Attesa stimata? NO SÌ 0-10 >60 30-60 10-30 SÌ Alternativa? Fame? NO NO SÌ NO SÌ SÌ Alternativa? Prenotazione? Ven/Sab? NO SÌ NO SÌ NO SÌ SÌ Pioggia? Bar? SÌ NO SÌ NO SÌ NO SÌ NO SÌ NO SÌ 31 Apprendimento degli alberi decisionali Problema: decidere se attendere un tavolo in un ristorante, in base ai seguenti attributi: Alternativa: c'è un ristorante alternativo nelle vicinanze? Bar: c'è una comoda area bar dove aspettare? Ven / Sab: è oggi venerdì o sabato? Affamato: abbiamo fame? Clienti: numero di persone nel ristorante (Nessuno, Alcuni, Completo) Prezzo: fascia di prezzo ($, $$, $$$) Piove: fuori piove? Prenotazione: abbiamo effettuato una prenotazione? Tipo: tipo di ristorante (francese, italiano, tailandese, hamburger) Tempo di attesa : tempo di attesa stimato (0-10, 10-30, 30-60,> 60) 32 Rappresentazioni basate su attributi Esempi descritti da valori di attributo (booleano, discreto, continuo) Ad esempio, situazioni in cui aspetterò / non aspetterò un tavolo: La classificazione degli esempi è positiva (T) o negativa (F) 33 Apprendimento supervisionato: REGRESSIONE Predire le variabili target su scala continua Possiamo effettuare: analisi di tendenze Previsioni Comprendere le relazioni tra più variabili Alcuni concetti chiave: Target: verità, quello che il modello dovrebbe produrre in output Regressione scalare: il target è un valore scalare continuo Regressione vettoriale: il target è un insieme di valori continui 34 Regressione Predire le variabili target su scala continua Regressione lineare: Semplice se il modello utilizza una sola variabile descrittiva ed una sola variabile target (come in figura) Multipla se il modello utilizza due o più variabili descrittive 35 Apprendimento supervisionato VS apprendimento non supervisionato Apprendimento supervisionato: scopre modelli nei dati che mettono in relazione gli attributi dei dati con un attributo target (classe). Questi schemi vengono quindi utilizzati per prevedere i valori dell'attributo target in future istanze di dati Apprendimento non supervisionato: i dati non hanno attributi di destinazione. Vogliamo esplorare i dati per trovare alcune strutture intrinseche in essi. 39 Apprendimento non supervisionato 40 Apprendimento non supervisionato: Analisi dei cluster Trovare gruppi di oggetti nei dati in modo tale che gli oggetti in un gruppo siano simili (o correlati) tra loro e diversi dagli (o non correlati) agli oggetti in altri gruppi Le distanze intra-cluster sono minimizzate Le distanze tra cluster sono massimizzate Raggruppare dati in base a proprietà comuni Es. algoritmo k-means 41 Applicazioni dell'analisi dei cluster Comprensione Es. Raggruppa documenti correlati per la navigazione, raggruppa geni e proteine con funzionalità simili o raggruppa stock con oscillazioni di prezzo simili Riepilogo Ridurre le dimensioni di grandi set di dati Clustering precipitazioni in Australia 42 Reinforcement Learning Apprendimento di una serie di azioni, con l’obiettivo di ottimizzare la ricompensa Si basa sul concetto di apprendimento attraverso l’interazione Il modello apprende a seguito di interazioni con l’ambiente, per massimizzare una funzione di ricompensa Le etichette corrette durante il processo di apprendimento non sono note per le singole azioni, ma solo alla fine dell’intero processo, come ad esempio per il gioco degli scacchi 43 Lumsa Dipartimento di Scienze umane Corso di studi in Scienze della Comunicazione, Marketing e Digital media Informatica per la comunicazione (A- F e P-Z) Pensiero Computazionale e algoritmi Prof.ssa Alessandra Musolino A.A. 2024-25 1 Quanto tempo impiegherò per spostarmi tra due punti della città? Lo chiedo a Google Maps? 7 destinazione 4 3 origine 10 11 8 4 2 Algoritmi di routing INPUT ELABORAZIONE OUTPUT 18 anni 61 anni 43 anni fa 3 Pensiero computazionale Jeannette Wing, Executive Vice President for Research and Professor of Computer Science at Columbia “è il processo mentale che sta alla University, afferma che il pensiero computazionale base della formulazione dei problemi e delle loro soluzioni così che le soluzioni siano rappresentate in una forma che può essere implementata in maniera efficace da un elaboratore di informazioni sia esso umano o artificiale”. Ovvero è lo sforzo che un individuo deve mettere in atto per fornire a un altro individuo o macchina tutte e sole le “istruzioni” necessarie affinché questi, eseguendole, sia in grado di portare a termine il compito dato. Algoritmo 4 Da dove deriva il termine Algoritmo? Deriva dal nome del matematico persiano del IX secolo Muhammad al-Khwarizmi, scrisse « Algoritmi de Numero Indorum » che può essere considerato il primo trattato del sistema numerale indiano. Il termine Algebra deriva dal titolo arabo di questo testo. Algoritmo: regole, secondo un ragionamento logico, da impiegare per risolvere un problema secondo una sequenza prefissata https://www.treccani.it/enciclopedia/muhammad-ibn-musa-al-khuwarizmi/ 5 Algoritmo e coding Algoritmo: regole, secondo un ragionamento logico, da impiegare per risolvere un problema secondo una sequenza prefissata Coding: permette l’esecuzione dell’algoritmo secondo la sequenza fissata, utilizzando un linguaggio di programmazione. 6 Coding “Quando si diventa agili a leggere e scrivere non lo si fa unicamente per diventare uno scrittore di professione. Ma imparare a leggere e scrivere è utile a tutti. Accade lo stesso per la programmazione. La maggior parte delle persone non diventerà un esperto di informatica o un programmatore, ma l’abilità di pensare in modo creativo, pensare schematicamente, lavorare collaborando con gli altri […] sono cose che le persone possono usare, indipendentemente dal lavoro che fanno”. (Mitchel Resnick, Professore di ricerca sull’apprendimento presso il MIT Media Lab di Boston, Scratch) 7 Pensiero computazionale: note Nel 2006 Jeannette Wing, formulò una definizione ampiamente condivisa: Il pensiero computazionale è un processo di formulazione di problemi e di soluzioni in una forma che sia eseguibile da un agente che processi informazioni. Esso consiste nel pensare a diversi livelli di astrazione; è un’abilità fondamentale per tutti, che dovrebbe diventare la quarta abilità di base oltre al saper “leggere, scrivere e fare di conto”. J.M.Wing, “Computational Thinking,” https://www.cs.cmu.edu/afs/cs/usr/wing/www/ct-italian.pdf 8 Pensiero computazionale (3 A) Automazione Astrazione Pensiero computazionale Analisi 9 Le 3 A del pensiero computazionale Sarà quindi necessario costruire un modello della realtà (astrazione) per trovare una soluzione che possa agire sulla realtà attraverso il modello (automazione). L’esecuzione della soluzione trovata permetterà di analizzare il risultato (analisi) Il processo iterativo che sta alla base del pensiero computazionale è così caratterizzato dalle tre fasi: Ͱ Astrazione Ͱ Automazione Ͱ Analisi } Le 3 A del pensiero computazionale 10 Relazione tra Realtà e Modello Costruzione modello … Sì test No blocco 1 blocco 2 … Interpretazione della soluzione Mondo Reale Ricerca della soluzione 11 Relazione tra Realtà e Modello Il processo di astrazione richiede l’individuazione e la presa in esame delle informazioni significative in un contesto, tralasciando quelle ritenute non rilevanti. Per crearci un modello della realtà in esame, mediante l’astrazione, organizziamo le informazioni a disposizione, per ricercare una soluzione al nostro problema. Le informazioni di cui disponiamo sono quelle fornite in fase di "raccolta dati" nel contesto specifico, ma per valutarne la significatività dovremo utilizzare «strumenti cognitivi» che si appoggiano al nostro bagaglio di conoscenze pregresse. In fase di astrazione,disporremo così di un modello costruito sui «fondamentali», sugli elementi strutturali di base, privi di quei dettagli che offuscherebbero la chiarezza della «visione d’insieme» 12 Algoritmi: lo scenario di riferimento Aumenta ogni giorno l’importanza di applicazioni che ne fanno uso, sono l’asse portante del mondo dell’informatica, ne tessono la trama. Stanno trasformando il nostro mondo e dobbiamo conoscerli per governare il nostro futuro e non farci governare da essi. Non possiamo prescindere da una cultura digitale che permetta di analizzare i dati, dando significato ai fenomeni che i dati rappresentano, usando opportune tecniche algoritmiche. Dobbiamo essere sempre in grado di partecipare attivamente a gruppi di lavori nei quali non necessariamente si rivesta il ruolo di data scientist ma con il data scientist si dovrà interagire in maniera costruttiva Algoritmo 13 Algoritmo in breve Per giungere all’algoritmo si dovrà scegliere una strategia per scegliere i singoli passi da compiere e la loro sequenza Perché l’algoritmo diventi operativo, su un dispositivo di calcolo, dovremo, attraverso il coding, rendere quei passi «eseguibili» da un calcolatore Dovremo cioè, utilizzando un linguaggio di programmazione, procedere ad una formalizzazione utilizzabile da un dispositivo di calcolo automatico 14 Algoritmo in breve → Organizzazione di una sequenza di azioni, → comprensibili da un esecutore (si può trattare di uno strumento automatico), → per raggiungere il risultato atteso (come risolvere un “problema”). ▪ Istruzioni di montaggio di un elettrodomestico ▪ Uso di un terminale Bancomat ▪ Calcolo del massimo comune divisore di numeri naturali Algoritmo 15 Se il problema da risolvere è complesso? Problema complesso Sotto-problema Sotto-problema Sotto-problema Sotto-problema Compito Compito Compito Sotto-problema Sotto-problema Sotto-problema Sotto-problema (task) (task) (task) Compito Compito Compito Compito Compito Compito (task) (task) (task) (task) (task) (task) Divide et impera 16 note Se il problema da risolvere è complesso, per utilizzare agevolmente le tecniche di astrazione, procederemo alla «Decomposizione» del problema in sotto-problemi di complessità minore. (Divide et impera) Procediamo con la stessa metodologia, per scissioni successive, fin quando riteniamo possibile isolare un sotto-problema che possiamo risolvere attraverso un task (codifica, compito svolto) A valle del processo di astrazione, per l’implementazione dell’algoritmo, saranno presi in considerazione i dettagli, che si erano provvisoriamente ignorati quando l’attenzione era posta sull’identificazione della visione d’insieme. 17 Algoritmo – Coding (abilità da acquisire ) Comprensione Modifica Progettazione 18 Abbiamo già compreso che … Algoritmo = descrizione di come si risolve un problema Programma = algoritmo scritto in modo che possa essere eseguito da un calcolatore (linguaggio di programmazione) quindi dovremo disporre della traduzione in Linguaggio macchina = linguaggio effettivamente “compreso” da un calcolatore, caratterizzato da istruzioni primitive semplici attenzione all’efficienza (costi, complessità, velocità) difficile e noioso da utilizzare per un programmatore 19 Algoritmo e Programmazione Posto che possono sembrare equivalenti ma non lo sono: Algoritmo Sequenza di passi volti alla risoluzione di un problema; le istruzioni sono precise, non ambigue ma non necessariamente espresse attraverso un linguaggio di programmazione Programma Implementazione di un algoritmo espresso in un linguaggio di programmazione. Algoritmo 20 Come procedere? Eliminare le ambiguità nella formulazione del problema Individuare il risultato che si vuole ottenere, gli obiettivi da raggiungere Evidenziare le regole da rispettare i vincoli interni ed esterni i dati espliciti ed impliciti Eliminando quindi i dettagli inutili e quelli ambigui Algoritmo 21 Recap: come affrontare la complessità nel progettare algoritmi Posto che un algoritmo rappresenti la soluzione di un problema attraverso una sequenza di passi/istruzioni che portano alla soluzione possiamo procedere scomponendo il problema in sotto- problemi La struttura del problema originario viene così divisa in componenti dotate di minor complessità. Possono essere a loro volta scomposti in sotto-sottoproblemi, e si prosegue fino a giungere a problemi elementari (o primitivi) che possono cioè essere risolti direttamente dall’esecutore. La soluzione del problema originario è garantita attraverso le soluzioni dei singoli sotto-problemi (Tecnica «Divide et Impera») Un algoritmo deve essere corretto ed efficiente. Algoritmo 22 Proprietà degli algoritmi Correttezza L’algoritmo perviene alla soluzione del compito cui è preposto, senza difettare di alcun passo fondamentale Efficienza L’algoritmo perviene alla soluzione del problema usando la minima quantità di risorse fisiche tempo di esecuzione, memoria, … Algoritmo 23 Proprietà di un’azione elementare Finitezza l’azione deve concludersi in un tempo finito Osservabilità l’azione deve avere un effetto osservabile, cioè deve produrre qualcosa Riproducibilità a partire dallo stesso stato iniziale, la stessa azione deve produrre sempre lo stesso risultato Algoritmo 24 Il problema delle tre monete Problema: abbiamo tre monete apparentemente identiche. Solo una è falsa, di peso diverso dalle altre. Possiamo utilizzare una bilancia con due piatti. Vogliamo identificare quella falsa (ha peso diverso) Dobbiamo fare al massimo due pesate. Il problema delle tre monete 1 2 ≠ = 1 3 3 è Falsa * = ≠ * Si ricorda che per ipotesi abbiamo affermato che una è sicuramente falsa 2 è Falsa 1 è Falsa Il problema delle tre monete Ricerca di un possibile algoritmo; Scegliere la disposizione delle monete sulla bilancia Interpretare i risultati per ogni pesata Decidere se l’obiettivo è raggiunto o no Cominciamo con il confrontare due monete,1 e 2 Si aprono due percorsi di calcolo: 1=2 (la moneta falsa è la 3) oppure 1≠2 (sostituiamo la 2 con la 3) 1=3 (la moneta falsa è la 2) Altrimenti (la moneta falsa è la 1) Il problema delle tre monete Problema: abbiamo tre monete apparentemente identiche. Solo una potrebbe essere falsa, di peso diverso dalle altre. Possiamo utilizzare una bilancia con due piatti. Possono essere anche tutte autentiche Vogliamo sapere se una è falsa ed in questo caso se pesa più o meno delle altre due Dobbiamo fare al massimo due pesate. Il problema delle tre monete ◼ Falsa e più pesante 1 2  Falsa e più leggera 1>2 12 1=2 1

Use Quizgecko on...
Browser
Browser