Sono tutti intorno a noi e studiano i nostri comportamenti. Non si tratta di un complotto, ma degli algoritmi che entrano ormai da tempo nella nostra vita quotidana. Il tutto con l'obiettivo di trovare regolarità nelle nostre abitudini e sfruttarle per facilitarci nella vita di tutti i giorni. Insomma, un compito tutt'altro che semplice quello svolto giornalmente dalle decine di migliaia di algoritmi che "affollano" la nostra esistenza sotto forma di applicazioni, programmi e software "esperti" di ogni genere.
Anche se non ce ne accorgiamo, infatti, decine e decine di istruzioni (raccolte in uno o più algoritmi) si nascondono dietro l'interfaccia di una singola applicazione per smartphone. Inviare un semplice messaggio su Facebook – solo per fare uno degli esempi più immediati – necessita infatti della corretta interazione di diversi algoritmi per poter funzionare correttamente. Con l'esplosione dell'Internet of Things, dell'intelligenza artificiale e del machine learning poi, gli algoritmi sono diventati ancora più importanti e decisivi per il corretto funzionamento di dispositivi e sensori di rilevamento di ogni genere.
Cosa sono gli algoritmi
Quando si parla di algoritmo ci si riferisce a una serie finita di istruzioni elementari che permettono di risolvere un determinato problema. In particolare, l'algoritmo consente di scomporre un problema in un numero finito di passaggi logici in modo da renderne più semplice la risoluzione. In questo modo, dati valori iniziali definiti, l'algoritmo è in grado di fornire una soluzione univoca e precisa al problema. Gli algoritmi sono quindi utilizzati per risolvere un gran numero di problemi, da quelli più semplici – mettere in ordine un vocabolario di parole – ai più complessi – gestire la traiettoria iniziale di un razzo spaziale.
Quali sono gli algoritmi più utilizzati nell'IoT
L'evoluzione e l'applicazione degli algoritmi al settore dell'apprendimento automatico ha fatto sì che, in alcuni casi, i supercomputer fossero in grado di prevedere il comportamento delle persone. Merito di set di istruzioni sempre più avanzate e complesse, capaci di analizzare grandi moli di dati (i big data) e ricavarne tutte le informazioni di cui i "programmi esperti" hanno bisogno per "prendere decisioni". Alcuni algoritmi, più di altri, godono però di maggior fortuna nel campo del machine learning, grazie alla loro potenza di esecuzione e capacità di analizzare e prevedere i comportamenti umani. Ecco quali sono:
- Albero di decisione. Come dice il nome, questo algoritmo si compone di un "tronco", ovvero le istruzioni principali da cui si parte; "rami", istruzioni derivate dai risultati e dalle decisioni prese in precedenza; e "foglie", che descrivono stati o eventi finali risultanti dall'esecuzione delle istruzioni precedenti. Nell'ambito del machine learning, l'albero di decisione è un modello predittivo nel quale ogni ramo rappresenta una variabile del sistema, le ramificazioni successive sono una dei possibili valori che la variabile può assumere, mentre la foglia è il valore predetto. Applicando questo algoritmo al gioco degli scacchi, il tronco è rappresentato dalla situazione di partenza, i rami sono le varie mosse possibili, mentre le foglie rappresentano la situazione sulla scacchiera derivante dalla "ramificazione" seguita
- Classificatori bayesiani. Questi algoritmi sono utilizzati soprattutto nell'ambito della sicurezza informatica e della lotta allo spam. I classificatori bayesiani permettono infatti di calcolare la probabilità con la quale un evento torna a ripetersi basandosi sull'assunzione che un precedente evento, di cui è nota la probabilità, sia effettivamente accaduto. Grazie ad algoritmi di questo genere, sarà possibile classificare oggetti e variabili basandosi su esperienze e dati pregressi. Nel caso già citato di software antispam, ad esempio, un classificatore analizzerà il testo di una email e, basandosi su altri testi già classificati come "posta spazzatura", deciderà se il messaggio in arrivo sia da inserire nella casella antispam oppure no
- Macchine a vettori di supporto. Vi siete mai chiesti come fa Facebook (ma anche Google e qualunque altro gestore di portali fotografici) a distinguere e classificare le immagini in base al sesso di chi vi compare? Semplice: grazie alle macchine a vettori di supporto. Nel campo del machine learning, questi algoritmi sono in grado di analizzare un set di dati ed effettuare una scelta "assegnandoli" a uno di due insiemi di destinazione. Si tratta, dunque, di un classificatore binario che basa le proprie decisioni su di un insieme di dati precedentemente categorizzati. Nell'esempio precedente, se a un algoritmo di macchine a vettori di supporto sono "date in pasto" migliaia di foto con volti, facendo affidamento sull'esperienza pregressa (ovvero, su un set di immagini già analizzato), sarà in grado di distinguere quelle contenenti visi maschi e visi femminili e categorizzarle – dividerle in due gruppi – di conseguenza
- Analisi delle componenti principali. Questo algoritmo si basa su procedure statistiche che consentono di individuare, all'interno di un insieme di dati e variabili non correlate, quelle che sono le componenti principali chepermettono di rappresentare l'insieme stesso in modo più lineare e semplice possibile. La successiva analisi si fonderà, dunque, sull'esame delle sol componenti principali, rendendo più immediata la risoluzione di problemi legati alla previsione di comportamenti relativi alla base dati utilizzata. Questo algoritmo torna particolarmente utile nell'analisi predittiva dei big data: anziché passare in rassegna l'intera base dati, l'analisi dei componenti principali sarà in grado di individuare le informazioni più importanti e fondare l'analisi solo su un insieme ristretto di dati