Qual è lo strumento principale del mestiere di un data scientist? Una risposta giusta (e ovvia) è un computer, poiché elabora i dati molto più velocemente di noi. Immagina di provare a svolgere qualsiasi attività che coinvolga dati senza uno, con — sussulto — carta e matita al tuo fianco, disegnando a mano un numero estenuante di tabelle, grafici e calcoli per quello che sai che su un computer richiederebbero pochi secondi. È abbastanza sicuro affermare che la scienza dei dati oggi non esisterebbe senza i computer.
Dato che i computer lo sono IL strumento essenziale richiesto per eseguire la scienza dei dati, ti aspetteresti che il lavoro richieda una comprensione di come funzionano i computer. Dopotutto, è difficile fare bene un lavoro quando non conosci i tuoi strumenti. Tuttavia, per l’aspirante data scientist, è fin troppo facile trascurare di prendersi il tempo necessario per sviluppare le conoscenze fondamentali sul campo.
E questo è comprensibile. Gli argomenti teorici di matematica, informatica e ingegneria sono spesso relegati al ruolo di obiettivi di apprendimento secondari perché non sono così immediatamente gratificanti (o immediatamente impiegabili, onestamente) come lo sono obiettivi di apprendimento più incentrati sull'applicazione come Python, Tensorflow o Amazon Web. Servizi. Perché un data scientist in erba non dovrebbe gravitare verso questi tipi di argomenti che forniscono miglioramenti immediati e misurabili in termini di competenze e comprensione, come dimostrato dal loro portafoglio di progetti in rapida crescita?
È un ottimo punto di partenza per il tuo viaggio nella scienza dei dati, ma apprendere il lato più teorico del mestiere può aiutarti a superare la fase iniziale e fare il passo successivo. Questo è lo scopo di questo articolo (e, si spera, di molti altri): presentarti il background teorico alla base delle tecnologie che utilizzi quotidianamente nella scienza dei dati.
Fantastico, ora che il trambusto introduttivo è finito, possiamo passare alle cose divertenti. Inizieremo con una domanda su cui probabilmente hai riflettuto, anche se solo brevemente: perché i computer usano il binario? Metterò in chiaro il punto fondamentale e ti dirò: è perché sarebbe inefficiente non farlo. Lo scopo di questo articolo è spiegare Perché è inefficiente.
Se sai già cos'è il binario, sentiti libero di saltare questa sezione. Altrimenti, questo è per te!
Immagina di incontrare una vita aliena intelligente. Diciamo che hanno 3 dita, invece di 5 su ciascuna delle due mani. Come potrebbero contare? Abbiamo le cifre da 1 a 9, ma dopo riportiamo la prima cifra su 0 e apriamo la cifra successiva su 1, per creare 10. Ma i nostri amici alieni potrebbero pensare che abbia poco senso: potrebbero aprire la cifra successiva su 6. , poiché loro hanno solo 6 dita, mentre noi ne abbiamo 10. Stai iniziando a vedere come il valore posizionale che assegniamo ai numeri sia arbitrario? Se gli esseri umani non nascessero con 10 dita, probabilmente non conteremmo come le contiamo. Invece di iniziare una nuova cifra da 10, possiamo fare 6, 2, 16, 46 o qualsiasi altro numero, purché abbiamo un simbolo univoco per ciascun valore. Confrontiamo come conterebbero gli alieni rispetto a noi. I valori in ogni riga sono uguali tra loro:
Chiamiamo questi nuovi sistemi numerici base “X”, dove X è il valore in cui ti sposti su una nuova cifra. Ad esempio, il nostro sistema numerico è un sistema numerico a base 10 poiché ogni cifra raggiunge il massimo prima del 10. I nostri amici alieni avrebbero un sistema numerico a base 6 poiché i loro numeri raggiungono il massimo prima del 6. I computer funzionano in un sistema numerico a base 2, noto come binario . Applichiamo la stessa logica di conteggio che abbiamo applicato al sistema in base 6 dell'alieno a un sistema binario.
Se questo aveva senso per te, capisci come funziona il sistema binario. Non troppo intimidatorio, spero! Molte persone sono intimidite perché lo sentono chiamare “linguaggio”, ma il binario è semplicemente un sistema numerico diverso e funziona proprio come i nostri familiari sistemi a base 10. L'aritmetica funziona essenzialmente allo stesso modo anche nel nostro sistema.
Proprio come i nostri numeri possono essere rappresentati come somma di potenze di 10, i numeri binari possono essere rappresentati come somma di potenze di 2. Il modo migliore per spiegarlo è attraverso un esempio. (Come nota, i numeri binari verranno spesso rappresentati inserendo uno 0b prima del numero. È così che li rappresenterò d'ora in poi in questo articolo).
In base 10,
Allo stesso modo, in base 2,
Eseguendo queste somme, troviamo che ob1101 = 13. Questo è un modo semplice per convertire dal binario alla base 10.
Ora che abbiamo una conoscenza di base di come funziona il sistema binario, possiamo affrontare la questione centrale di questo articolo. Perché i computer rappresentano le informazioni in formato binario? Non è perché questo sia l'unico modo in cui i computer possono rappresentare le informazioni: è un malinteso comune. Alcuni dei primi computer, come ENIAC, erano computer base 10. In verità, ci sono tre grandi ragioni per cui i computer moderni utilizzano il binario per rappresentare le informazioni.
Un altro motivo per cui utilizziamo i sistemi binari è che sono più semplici di altri. Per dirla semplicemente, è più semplice e richiede meno componenti fisici per rappresentare solo 2 stati (0 o 1). Per capire perché ciò accade, è necessario capire che i sistemi digitali come i computer sono… beh… digitali. Ciò significa che utilizzano hardware che funziona utilizzando rappresentazioni discrete di numeri anziché continue. Come ricorderete dalle lezioni di matematica, i numeri discreti sono numeri interi ( 0, 1, -4, ecc.) e i numeri continui sono numeri interi e ogni parte decimale intermedia ( 0 1, -4, .2, -.2343, e ogni valore a cui potresti pensare nel mezzo). Tuttavia, i computer sono sistemi reali che funzionano con l'elettricità, solitamente utilizzando il livello di tensione dell'elettricità per rappresentare le informazioni. La tensione è un valore continuo (puoi avere 3,22682393 volt). Tuttavia, il nostro computer è digitale: sa operare solo utilizzando valori discreti. In qualche modo, dobbiamo costruire un sistema che utilizzi un valore continuo (tensione) per rappresentare un sistema digitale. Lo facciamo impostando intervalli di tensione che equivalgono ai valori digitali. Di seguito è riportato un esempio di tale configurazione:
I circuiti che funzionano utilizzando gli intervalli della figura sopra considererebbero qualsiasi livello di tensione tra 0 e 2 V come 0b0, tra 4 V e 6 V come 0b1, e qualsiasi altra cosa ci farebbe sapere che il sistema è incasinato. Da notare l'inclusione di una zona di transizione al centro. Se non sei abituato a pensare ai sistemi fisici, può sembrare strano che abbiamo una zona di transizione: sembra che dovremmo essere in grado di andare immediatamente tra 0 e 1. Tuttavia, nei sistemi fisici, dobbiamo costruire un margine di errore, altrimenti il nostro sistema sarà molto più fragile di quanto abbia bisogno (o dovrebbe) essere. Senza saltare nella tana del coniglio, costruiamo una zona di transizione nella nostra logica perché i circuiti digitali sono fatti di porte logiche e le porte logiche hanno bisogno di spazio per accendersi e spegnersi. Quando blocca il flusso, di solito c'è un intervallo di tensione tra basso e alto in cui il cancello è “in un certo senso” acceso. Rimanere in questo intervallo può effettivamente danneggiare i componenti, quindi costruiamo una zona di transizione in cui non lasciamo riposare i componenti.
Immagina se volessimo costruire un sistema base 3. Quindi dovresti aggiungere un altro stato:
L'aggiunta di un altro stato, naturalmente, richiede più componenti hardware. Ciò rende la progettazione di un sistema che utilizza un sistema superiore alla base 2 intrinsecamente più complessa in termini di hardware (sia design che numero di componenti). Questa è davvero la radice del motivo per cui i computer utilizzano il binario. Ma richiamerò l'attenzione su due ramificazioni particolarmente importanti dell'utilizzo di calcoli superiori alla base 2.
Prendiamoci un secondo per definire l'energia elettrica. L'equazione è davvero semplice:
dove P è la potenza (Watt), I è la corrente (Amp), R è la resistenza (Ohm) e V è la tensione (Voltz). Aumentando la tensione per ogni nuovo livello logico, si aumenta esponenzialmente il consumo di energia per l'intero dispositivo, presupponendo che la resistenza sia costante (un presupposto ragionevole, nella maggior parte dei casi). Più energia consumata corrisponde a più soldi spesi per far funzionare il dispositivo, il che è un ottimo motivo per evitare questi sistemi nella maggior parte dei casi.
Hai mai toccato il retro di un laptop dopo che ha lavorato duramente per un'ora o due? Probabilmente hai sentito molto calore. Il calore eccessivo è nemico dell’elettronica ed evitarne la produzione è una priorità per gli ingegneri. Consideriamo l'equazione del calore:
Dove Q è il calore (Joule), t è il tempo (secondi) e R e I sono di nuovo resistenza e corrente. Ogni nuovo componente utilizzato in un circuito assorbirà più corrente per funzionare. Ciò, a sua volta, aumenta il calore.
In questo articolo, abbiamo spiegato perché i computer utilizzano il binario (oltre a introdurre cos'è il binario). Sappiamo che è inefficiente e abbiamo studiato i meccanismi che lo spiegano, introducendo concetti come tensione, corrente e potenza. Abbiamo visto che l'utilizzo di altri sistemi numerici nell'informatica ci richiederebbe di rappresentare più stati con i nostri circuiti logici digitali. Ciò a sua volta richiede più potenza e componenti del circuito creando più calore, tutte cose che ingegneri e consumatori vogliono evitare.
Ma non l'abbiamo veramente coperto Come i computer rappresentano effettivamente queste informazioni: abbiamo appena detto che utilizzano circuiti digitali per farlo. Nei prossimi articoli esploreremo questa questione in modo più approfondito. Cercherò di spiegare come funzionano i circuiti logici digitali, iniziando dal livello più basso possibile, il semiconduttore. Se sei interessato a questo, resta sintonizzato! Proprio come in questo articolo, cercherò di rivolgermi a voi, data scientist in erba, senza dare per scontato che conosciate i concetti di ingegneria elettrica alla base di questa tecnologia.
Si spera che tu sia un data scientist nuovo o affermato, hai trovato questo articolo interessante. Sebbene l’hardware del computer non sia esattamente un concetto di scienza dei dati o di apprendimento automatico, questi sono gli strumenti del nostro mestiere e penso che valga la pena svilupparne una comprensione di base. Se sei d'accordo e hai trovato interessante questo articolo, spero di vederti la prossima volta!
(1) R. Palaniappan, Progettazione dei sistemi digitali (2011), https://dvikan.no/ntnu-studentserver/kompendier/digital-systems-design.pdf
Fonte: towardsdatascience.com