Risultati Ricerca Intelligenza Artificiale Italia
482 elementi trovati per ""
- CIBERNETICA : Basi di Logonica ( e di teleologia )
Piccola premessa, anche in questo caso faccio riferimento ad appunti scritti negli anni ‘80, come per l’articolo riportato a questo link Indice : Sistemi controreazionati Il mondo delle variabili e l’intelligenza omeostatica Entalpia e Entropia Stati di conoscenza Sistemi controreazionati Quello che il genere umano ha sempre tentato di ottenere con il proprio lavoro è una condizione mentale che possiamo esprimere con il concetto di “certezza”, in effetti quello che sembra più naturale pensare è che tutti noi, la maggior parte delle volte, agiamo con uno scopo preciso, ovverosia operiamo per raggiungere dei fini, ci comportiamo in questo frangente come delle entità teleologiche e la dimostrazione di questo deriva proprio dalla evoluzione che ha avuto il pensiero teorico-scientifico: la maggior parte delle persone informate ha sentito nominare le teorie sul Relativismo di Albert Einstein, altri ancora sapranno delle ulteriori evoluzioni a cui ha condotto la Matematica Statistica applicata alla Fisica Quantistica, per non parlare delle elucubrazioni derivanti dalla filosofia-mistica. Ma ritorniamo per il momento al fatto che noi possiamo definirci dei meccanismi teleologici, questa è una considerazione assai importante poiché permette di accedere direttamente ad una tipologia di ragionamento che ci introduce immediatamente nel vivo dei sistemi controreazionati o Feed-Back. Se un elemento di un qualsiasi sistema opera per un fine, questo significa che a monte esiste una causa per la quale si presenta la necessità di ottenere un effetto (interessante la lettura del libro “Il caso e la necessità” di Jaques Monod), ad esempio, il fatto che per una persona il futuro sia un incognita, costringe il soggetto ad operare nel presente in modo tale da poter controllare o condizionare quest'incognita, al meglio delle sue potenzialità, in modo da rendere certo il più possibile ciò che si presenta totalmente incerto: in definitiva sussistono sicuramente delle relazioni molto strette che legano le cause agli effetti. Lo studio dei sistemi controreazionati è indubbiamente complesso, nasce come una nuova scienza accanto alle scienze fondamentali dopo la seconda guerra mondiale e viene denominata Cibernetica o la scienza del controllo automatico, si occupa per l'appunto di sistemi nei quali vi sia interazione fra causa ed effetto, pertanto in questo testo tenterò di darne una visione elementare che spero sia comprensibile a tutti. Partiamo come al solito del resto, cominciando con il fornire una visione semplificata di una rappresentazione dei sistemi controreazionati con un modello matematico rappresentato da un semplice schema a blocchi, ma prima, per poter capire che cosa venga rappresentato in uno schema a blocchi, bisogna far riferimento a delle sottigliezze mentali che ci aiutano nel lavoro costitutivo della teorizzazione e sono delle operazioni che la nostra mente può compiere facilmente se ben guidata. Per fare questo bisogna introdurre una visione del concetto di "scatola nera", non quella che usano gli aerei per raccogliere tutti i dati del volo, ma quella che esprime una relazione fra due o più grandezze che vengono messe a confronto fra di loro. Iniziamo col procedere passo dopo passo fino ad arrivare alla costituzione figurativa del concetto da esprimere e partiamo intanto con l'identificare che cosa siano queste grandezze, per fare questo riprendiamo il concetto di variabile e lo applichiamo a un evento fisico come la velocità di un oggetto; se dovessimo esprimere questa velocità con una lettera che contenga un dato potremmo dire che nel momento 'x', altra variabile che contiene il dato del tempo, il nostro oggetto avrebbe una velocità 'v', che per esempio si potrebbe supporre di 100 Km/h; allora le grandezze sono tutte quelle cose che noi possiamo misurare e trasformare mentalmente in variabili che ne esprimano il dato istantaneo: sono grandezze fisiche l'energia, la velocità, l'accelerazione, la potenza e molte altre ancora e tutte sono trasferibili su delle variabili che le possono esprimere numericamente, quindi sono delle cose in qualche modo calcolabili, che hanno dunque un loro campo di esistenza, una massa per esempio può assumere un campo di esistenza che va da zero kilogrammi-massa a dei numeri teoricamente tanto grandi da essere intesi come “infiniti” se per esempio dobbiamo fare la somma delle masse di tutto l'universo; anche per lo “spazio” è così, l'importante è capire che una variabile può contenere un dato di qualcosa che è omogeneo (faccio riferimento al processo di categorizzazione mentale già espresso nell’articolo precedente), e quel qualcosa sono proprio le grandezze che possono variare il loro stato momento per momento. Se adesso vogliamo controllare come una grandezza può in qualche modo influenzare un'altra grandezza, allora identifichiamo un sistema del quale non conosciamo nulla, consideriamo una grandezza come ingresso di una scatola di cui non ne conosciamo il contenuto e vediamo la grandezza messa in relazione come l'uscita del sistema o della scatola; ecco finalmente che ci appare chiaro il concetto di "scatola nera": è qualcosa che esprime la relazione esistente fra due o più grandezze, attraverso delle funzioni che sono il contenuto di questo particolare contenitore. A questo punto potremmo dire quindi che una grandezza viene messa in relazione con un'altra attraverso delle funzioni che sono a loro volta esprimibili non più solamente come dati, ma come operatori e quindi la scatola nera conterrà una serie di operatori matematici tipo moltiplicazioni o divisioni o altri tipi di operatori ancora, e dei dati o delle costanti o addirittura delle altre variabili, ma nessuno ci impedisce di far contenere a delle variabili anche delle funzioni e in definitiva ci saranno delle variabili che conterranno quella che è la relazione fra due o più grandezze, espressa appunto come funzione, quindi ancora numericamente utile, o forse addirittura quantizzabile. Ma vediamo a questo punto di introdurre un primo schema che ci possa aiutare a capire ancor meglio il concetto di "scatola nera": Questo semplicissimo schema è quello che ci può proprio servire; si notano subito quali siano le grandezze in ballo rappresentate da delle variabili, non solo, ma osservando l'indicazione delle frecce o dei vettori orientati, ci si accorge che la variabile indicata come 'x(s)’ è la variabile di ingresso della scatola nera, rappresentata questa con la funzione 'A(s)',mentre la variabile 'y(s)’ rappresenta l'uscita del sistema, perciò le due grandezze in questo caso verranno rappresentate tramite la variabile di ingresso che si suppone indipendente (o causa), e la variabile di uscita che assumerà dei valori in funzione dell'andamento della prima, indicherà dunque l'effetto del sistema. Proviamo ora a trasformare questa configurazione matematica in un esempio comprensibile, traendo spunto dal concetto di lavoro, inteso ovviamente dal punto di vista fisico: noi esprimiamo un lavoro ogniqualvolta siamo in grado per esempio, di spostare una cosa da un punto nello spazio ad un altro e quindi se supponessimo di avere la possibilità di fare un lavoro pari ad un valore numerico 10 diremmo che la variabile 'x(s)=10', ora se lo spostamento che la cosa ha fatto consiste in un altro valore misurabile, per esempio '100' diremmo altrettanto che la variabile 'y(s)=100'; se ripetiamo l'esperimento con le stesse modalità, supponendo che 'x(s)=100', otterremmo che la variabile 'y(s)' assumerà un valore1000'; non è difficile a questo punto capire che la funzione espressa dalla scatola nera è identificabile in una moltiplicazione per 10 ovvero, potremmo dire che ‘espressione matematica che lega le variabili di ingresso e uscita é: 'Y(s)=10*X(s)’ od anche che 'A(s)=10*'; spero finalmente di aver reso l'idea su un piano molto semplificato del concetto di “lavoro”, ma soprattutto è interessante capire che dallo schema sopra indicato è possibile trarre una relazione matematica. (la stranezza forse... consiste nel fatto che la relazione matematica riporta la Y(s) a sinistra, mentre nello schema a blocchi è a destra... ) Complichiamo un po' le cose e introduciamo adesso lo schema ad anello chiuso che rappresenta proprio il sistema controreazionato da un punto di vista matematico, ma non ci si preoccupi dell'apparenza, quello che sembra di difficile si potrà dissolvere con degli esempi di facile comprensione: Cerchiamo ora di identificare una alla volta tutte le variabili che sono rappresentate nello schema sopra esposto e quali siano le loro relazioni: La variabile 'x(s)' rappresenta l'ingresso del sistema, viene considerata classicamente come una grandezza analogica e cioè che può assumere dei dati in continuità numerica per quanto riguarda appunto un modo convenzionale di rappresentare questa tipologia di schema, si può dire che 'x(s)' è sempre una variabile indipendente in quanto può assumere nel suo campo di esistenza tutti i valori possibili, in altri termini con questa variabile noi possiamo identificare la "causa" di tutto il processo. La variabile 'y(s)' invece è considerata l'uscita del sistema e sarà perciò una grandezza il cui campo di esistenza dipenderà dal sistema stesso, classicamente viene chiamata come variabile controllata dal sistema, ovvero potremmo definire questa variabile come “l’effetto del processo”. La variabile 'z(s)' è una grandezza di confronto che dipende da 'y(s)' secondo una funzione indicata nello schema come 'B(s)' che rappresenta una "scatola nera", in sostanza la funzione 'B(s)' trasforma la grandezza di uscita 'y(s)' in un'altra che sia confrontabile con 'x(s)', ovvero questa scatola nera rappresenta il "controllo" effettuabile sull'effetto, è tutto ciò che si può fare con delle metriche: misure, calcolo delle tendenzialità ecc… La grandezza 'z(s)' serve per dare la possibilità, tramite la funzione indicata come 'N(s)', o "nodo di confronto", di fornire una grandezza 'e(s)' che rappresenta lo scarto o l'errore che si identifica rispetto alla variabile di uscita 'y(s)', tra il suo valore prescritto e il valore assunto istantaneamente, dovuto agli scostamenti della variabile indipendente dal valore teorico per cui si dovrebbe verificare il valore voluto per l'uscita stessa. Il "nodo di confronto" è quella parte del sistema che si incarica in qualche modo di fare delle comparazioni fra ciò che si ottiene istantaneamente come "effetto" e la "causa" che l'ha prodotto,indicando così, momento per momento, quali devono essere gli aggiustamenti da adottare per raggiungere il "fine". La funzione 'A(s)' rappresenta quindi nello schema del feed-back la relazione esistente fra la grandezza errore ‘e(s)’ e la variabile controllata 'y(s)'. Intuitivamente si può subito capire che la funzione 'A(s)' è quella che dà la possibilità al sistema di poter accedere a tutte le risorse necessarie per poter controllare 'y(s)', ovvero, per un buon funzionamento del sistema è necessario che la variabile 'e(s)’ abbia dei valori infinitesimali e quindi che la funzione 'A(s)' sia tendenzialmente molto “potente” od anche attiva dal punto di vista energetico e che assuma dei valori tendenti all'infinito o comunque molto elevati. Riassumendo il tutto in una sintesi, con questo metodo si può schematizzare un "sistema" che esprime l'andamento di un "processo" costituito nelle sue parti essenziali, ovvero la "causa", l'"effetto" e il "fine". Ora,sarebbe il momento di introdurre quelle che sono le relazioni matematiche fra le grandezze prese in esame, ma è stato provato che le formule matematiche rendono di difficile lettura qualsiasi testo poiché si impone al lettore una notevole domanda di attenzione rispetto al messaggio che si vuole fornire, molto meglio allora se si richiede di usare l'immaginazione per interpretare al meglio quello che avviene su sistemi che rispondono a queste caratteristiche. Un metodo divertente di interpretazione sarebbe quello di identificare col segnale di ingresso 'x(s)',il flusso di un fluido, che dopo aver attraversato il nodo 'N(s)' e non avendo trovato nessuno, incontra, nel posto indicato come 'A(s)', qualcosa che ne modifica le caratteristiche, ad esempio la pressione e la temperatura e lo trasforma quindi in 'y(s)'. Una parte di 'y(s)' viene ritrasformata da un altra apparecchiatura, nel caso specifico quella indicata con 'B(s)', in 'z(s)', che ha caratteristiche in qualche modo comparametrabili a 'x(s)', e questa viene introdotta nel nodo di confronto, in questo posto avvengono allora delle trasformazioni differenziali fra le caratteristiche di 'x(s)' e quelle di 'z(s)',dando origine a 'e(s)' che rappresenta proprio le differenze fra ciò che si dovrebbe ottenere momento per momento ed invece ciò che effettivamente avviene. Si potrebbe benissimo pensare ad un boyler per ottenere dell'acqua calda da quella emessa dalla rete idrica: allora 'x(s)' rappresenterà l'acqua fredda, 'A(s)' rappresenterà tutta l'apparecchiatura per riscaldare l'acqua (la resistenza elettrica o il tipo di forno ecc.), 'y(s)' rappresenterà l'acqua calda,'B(s)' rappresenterà un termometro e 'z(s)' rappresenterà la temperatura indicata da questo, il nodo di confronto 'N(s)' può essere benissimo rappresentato da un termostato che confronta la differenza di temperatura fra l'acqua calda e quella che noi vorremmo raggiungere, a questo punto 'e(s)' ci indica qual'è lo scarto di temperatura. Se ammettessimo allora che ad un certo istante 'y(s)'= (acqua calda), avesse delle caratteristiche di temperatura diverse da quelle per cui opera 'A(s)'=(resistenza elettrica), queste variazioni sarebbero riportate nel nodo di confronto da 'z(s)’=( temperatura misurata) e allora si provvederebbe a modificare la grandezza 'e(s)' = (scarto fra la temperatura istantanea e quella impostata), che a sua volta informerebbe 'A(s)' delle "decisioni" da prendere: continuare o meno a riscaldare l'acqua! Osservando attentamente la questione, si capisce che la funzione 'A(s)' determina l'andamento della funzione in uscita, mentre la funzione 'B(s)' = (il termometro) determina le possibilità di scostamento dai valori voluti. Ora è possibile trarre alcune considerazioni importanti, ma prima, per dovere di informazione, è giusto specificare che sia le variabili che le funzioni sono definibili come dei "numeri complessi" e in sostanza sono le cosiddette Laplace-trasformate delle grandezze e delle loro relazioni. In definitiva, le relazioni che legano l'ingresso all'uscita del sistema possono esprimersi in due casi attraverso le seguenti formule: A) Questa espressione indica appunto come vengono messe in relazione le due grandezze che più ci interessano, si può osservare che se il prodotto di 'A(s)' per 'B(s)' è di molto maggiore di '1' allora è eseguibile un'ulteriore semplificazione della formula sopra esposta in quest'ultima: B ) La prima considerazione che si può trarre da quanto sopra esposto, è che ‘y(s)’esiste in funzione di ‘x(s)’ (il loro rapporto è esprimibile tramite appunto una funzione, ossia una relazione matematica), e per riportare il discorso sulle cause e sugli effetti vediamo che se sussiste una variazione di ‘x(s)’ cioè della grandezza indipendente, causa attraverso una funzione, un effetto, che viene rappresentato come una variazione di ‘y(s)’. La seconda considerazione è quella relativa alla dipendenza di ‘y(s)’da ‘x(s)’, solo dalla espressione 'B', qualora sia verificato, come già detto, che il numero espresso dal prodotto delle due funzioni sia molto maggiore di '1', il che può anche significare che la funzione 'A(s)' sia esprimibile in un numero che tenda all'infinito o comunque molto molto grande rispetto a “B(s)”. La terza considerazione che si può trarre dipende dal ‘segno" positivo o negativo della espressione 'B(s)', ma a questo punto è utile riportare degli ulteriori esempi pratici per rendere comprensibile quanto finora espresso. Un altro esempio che può rendere un buona idea di che cosa significhi sistema controreazionato è quello che prende spunto dal comportamento di un qualsiasi automobilista che vuole provare per un certo tratto di strada a mantenere una velocità il più costante possibile, noi lo potremmo osservare tutto intento a controllare il tachimetro e la strada, e costantemente agire di conseguenza sul pedale dell'acceleratore premendo o lasciando il pedale stesso, in modo da ottenere l'effetto voluto; ora proviamo a riportare in variabili questa situazione e subito ci accorgiamo che la velocità è la grandezza controllata ossia 'y(s)', che la pendenza della strada è la grandezza indipendente ossia 'x(s)', che il sistema tachimetro-uomo-pedale dell'acceleratore assume la funzione 'B(s)' e con un po' di fantasia si potrebbe indicare come 'z(s)' il flusso del carburante che entra nel motore mentre la variazione apportata dall'azione dell'acceleratore può essere intesa come la grandezza errore 'e(s)', allora il sistema di alimentazione del carburante può avere la funzione 'N(s)' e il motore la funzione 'A(s)'. Si può osservare che qualora la potenza del motore, ovvero la funzione 'A(s)' sia esprimibile in un numero grande, tutto il sistema è imperniato sulla funzione 'B(s)', ossia su quello che in termini industriali viene chiamato servomeccanismo, nel nostro caso, l'autista che gioca con il pedale dell'acceleratore. Un'altra cosa importante da notare è quella relativa alla importanza del segno imposto alla funzione 'B(s)': supponiamo che, qualora la velocità della vettura tendesse a diminuire per effetto della pendenza percorsa in salita della strada, l'autista accorgendosi di questo scostamento agisca sul pedale dell'acceleratore premendolo, ossia darebbe più potenza al motore, mentre se al contrario la velocità tendesse ad aumentare per effetto di una pendenza della strada percorsa in discesa, il nostro autista agirebbe in modo contrario e quindi togliendo potenza, questo ci indica in sostanza che il sistema controreagirebbe sulla causa tramite la funzione 'B(s)', scende da ciò che il suo segno in questo caso è negativo. Ma che cosa succederebbe se il segno fosse positivo? E` facile da immaginare, succederebbe che in discesa l'autista tenderebbe, dando più potenza a far aumentare la velocità, mentre in salita tenderebbe a far fermare la sua corsa togliendo potenza al motore. Si può quindi fin d'ora notare che qualora il segno della funzione 'B(s)' sia negativo si ottiene un sistema "a controllo", mentre se il segno è positivo si ottiene un sistema "a tendenza", quindi concludendo questa constatazione, si può affermare che i sistemi a controllo o "controreazionati" sono quei sistemi che in qualche modo permettono una stabilità alla grandezza controllata attraverso una funzione ben determinata, mentre i sistemi a tendenza possono essere visti come quei sistemi che, sempre attraverso una funzione ben determinata, accentuano il processo indotto. Moltissimi processi naturali sono riconducibili a questa tipologia di sistemi, possiamo prendere ad esempio anche alcuni processi del nostro organismo, si pensi ad esempio al sistema visivo, tutti noi osserviamo la dilatazione della pupilla in riferimento alla variabilità di luce che riceve, o in riferimento al punto di attenzione che coglie la nostra mente, nonché la velocità di focalizzazione dell'immagine. Anche per quanto riguarda il funzionamento dell'apparato uditivo possiamo affermare che si tratta di un sistema controreazionato il cui campo d'azione si esprime da delle frequenze molto basse dell'ordine del centinaio di hertz fino ad arrivare ai sedicimila hertz circa, ma la sensazione in questo caso è data da una forma logaritmica di trasmissione del campo sonoro, mentre per quanto riguarda gli altri tre sensi possiamo dire che sono ancora dei sistemi la cui controreazione viene fornita da meccanismi mentali di carattere diverso da quelli sopra esposti, per esempio per il senso del gusto bisogna pensare ad un sistema complesso che interessa tutto quanto quello che riguarda il funzionamento del apparato digerente per capire che si tratta di un sistema controreazionato di tipo complesso che deriva dal fatto che si effettuano mentalmente una serie di operazioni cerebrali che associano il senso fisico del gusto al senso mentale di fame e quindi al troppo pieno e troppo vuoto tramite delle reazioni nervose di origine elettro-chimica, per non parlare del senso dell’olfatto, che è dovuto ad uno scambio periodico del flusso d’aria lasciato passare dalle narici! Nel genere umano quindi, come in qualsiasi essere vivente, troviamo dunque innumerevoli esempi di sistemi controreazionati, potremmo dire da un punto di vista meccanicistico che funzioniamo in conformità a dei complessi di sistemi a retroazione, dove chi gioca un ruolo fondamentale è il sistema nervoso. Spero che questi esempi siano stati utili per la comprensione del funzionamento dei sistemi controreazionati almeno da un punto di vista elementare, ma vediamo adesso di approfondire ulteriormente una cosa che mi sembra importante, perlomeno per quanto riguarderà in futuro le analogie che si possono ritrovare con le ipotesi di funzionamento della nostra mente, e quindi, per analogia alle funzioni implementabili a macchine che si basano su processi di intelligenza artificiale, supponiamo a questo punto di dover controllare come un disturbo interferisca su sistemi di questo tipo, vediamolo come al solito prima sotto un aspetto logico-matematico. Per fare questo utilizziamo un altro schema che ci fornisca la rappresentazione delle grandezze "disturbi", che sono in effetti dei fenomeni fisici che concorrono in modo indesiderato al funzionamento del sistema e ci dia la possibilità di capire altre cose ancora che saranno utili per una visione d'insieme, sia per quanto riguarda l'analisi della realtà effettuale e naturale, sia per quanto riguarda la comprensione del particolare osservato. Ecco allora un altro schema che indica la possibilità di inserimento nella catena chiusa, o anello che esprime la controreazione, delle grandezze definite come disturbi, ovvero di segnali che interferiscono col sistema preso in esame, in modo da rendere più completa la possibilità di comprensione del sistema stesso: Come si può notare da questo ulteriore schema a blocchi, i possibili inserimenti sono tre e sono rappresentati dalle grandezze 'd1(s)','d2(s)' e 'd3(s)' che si inseriscono nei tre rami della catena attraverso dei nodi sommatori andando a produrre le modificazioni delle grandezze di segnale che potremmo indicare con gli indici 'e1(s)','y1(s)' e 'z1(s)', questa volta, pur non facendo un'analisi più approfondita, ammetteremo soltanto che nei sistemi controreazionati, l'effetto dei disturbi viene sentito dal processo in modo tanto più attenuato, quanto più il sistema è controreazionato, ovvero, il sistema è quantomai efficace contro i disturbi che influenzano il processo in relazione alla possibilità di controllo che può eseguire sull'effetto istantaneo. Apriamo una parentesi e guardiamoli sotto un altro aspetto questi disturbi che influenzano il sistema in un modo indesiderato, ipotizziamoli dunque come prodotti a loro volta di altri sistemi di questo genere, ci accorgeremo allora che se tutto o gran parte di quello che succede in natura sono funzioni di sistemi controreazionati, questi tendono ad interagire fra loro ma in modo sempre decrescente fino a portare alcune catene di sistemi ad una forma di stabilità intrinseca, ovvero, possiamo ipotizzare una armonia di cause ed effetti che generano per certi versi una confusione di interazioni o casualità, ma che per altre ragioni tendono ad un ordine fisico di stabilità o quiete. (Una forma strana per definire l’effetto dell’entropia) Sotto questo aspetto diventa allo stesso tempo facile e difficile capire il gioco della natura, come del resto succederà per capire il gioco del funzionamento della mente, se supponiamo delle catene di sistemi controreazionati che tra loro interagiscono in modi differenti e con differente incisività, quello che nella visione dell'insieme diventa armonia viene ad essere confusione per la visione del particolare, solo la possibilità di tenere presenti in mente questi due aspetti della realtà ci può essere di aiuto per comprendere il gioco delle cose nell'armonia degli eventi. Per dare un esempio pratico a quanto sopra esposto, ritorniamo al nostro autista e supponiamo ad esempio che il disturbo venga localizzato nella distribuzione del carburante, ovvero che la macchina sia un poco ingolfata e che quindi tutto si riduca ad effettuare con maggior cura il gioco da fornire al pedale dell'acceleratore; possiamo anche pensare che la lancetta del tachimetro vibri un poco e quindi dia un segnale visivo disturbato al nostro povero autista, ma non si tratterà che di mantenere la vibrazione attorno al valore di velocità indicato e voluto come costante e tutto si risolve. Ma se pensiamo alle cause che, per esempio, hanno portato al malfunzionamento della distribuzione del carburante, dovremmo fare una ricostruzione storica degli eventi e probabilmente scopriremmo che può essere successo perché le vibrazioni del motore hanno fatto svitare una vitina dell'apparato di distribuzione, che il meccanico, l'ultima volta che aveva controllato la macchina, si era dimenticato di stringere bene a causa di una telefonata che proprio in quel momento lo aveva distolto dal lavoro a causa di un temporale che imperversava nella zona. Dovremmo stabilire quindi che tutto parte dal fatto che forse un giorno di tre mesi prima c'era stato un temporale nella zona, che a sua volta dipendeva dal fatto che in quel periodo vi era un'area di bassa pressione atmosferica e potremmo continuare così all'infinito, regredendo nella sequenza temporale degli eventi; provate ad immaginare adesso alle cause delle vibrazioni del segnale del tachimetro con lo stesso metodo, c'è da divertirsi. Vediamo ora di fare una analogia con dei sistemi che si possono indicare a controreazione logica, o meglio dei modelli di programmazione che permettono un controllo della variabile di uscita quando le grandezze analogiche trattate, come ad esempio tutte le grandezze fisiche che si possono individuare in natura come la velocità, l'accelerazione, la temperatura, l'umidità ecc., sono riconvertite tramite dei sistemi di lettura utilizzanti l'elettronica in funzioni logiche e quindi trattate e controllate tramite dei processi a controllo numerico. Il processo di conversione da grandezze analogiche a grandezze logiche è molto semplice, basti pensare che è sufficiente che ci sia la possibilità di trasformare quelle grandezze che vengono sentite tramite dei trasduttori, in grandezze elettriche, tipo tensione o corrente e queste a loro volta verranno convertite in segnali logici, ovvero dei codici che si basano sulla presenza o assenza di uno stato energetico, in un determinato punto ed in un determinato momento, tramite dei circuiti appositi, i convertitori analogico-digitali che sostanzialmente forniscono sequenze di impulsi di tensione che corrispondono, ad esempio nei linguaggi dei computers, a dei codici numerici binari, permettendo quindi di effettuare qualsiasi operazione di calcolo e di lettura delle grandezze che vengono campionate. ( vedasi l’articolo ) Si tratta in sostanza di utilizzare dei nuovi procedimenti che sono analoghi per funzionamento a quelli classici ma utilizzano là dove è possibile, tecnologie digitali che permettono una diversificazione sia del trattamento delle grandezze in ingresso sia dei processi di controllo di quelle in uscita. Con l'utilizzo quindi delle tecniche moderne a microprocessore o microcomputer si possono migliorare quelle che sono le prestazioni dei sistemi controreazionati classici poiché i controlli ed eventualmente altre operazioni di carattere matematico come per esempio la definizione istantanea delle tendenzialità della grandezza campionata o il calcolo della relazione con altre grandezze controllate o riparametrate viene eseguito a livello di "programma", in altre parole è possibile costruire un programma che agisca in funzione a delle letture effettuate sulla grandezza, o sulle grandezze indipendenti in modi assai complessi, ed è questa la nuova via aperta alla robotizzazione o alla completa automatizzazione di alcuni processi, specialmente per quanto riguarda il controllo di qualche attività operativa attinente all'elaborazione di dati. E` comprensibilmente inutile portare degli esempi a riguardo vista la quantità di questi sistemi adottati in tutte le nostre industrie, basti pensare alla automazione del controllo della climatizzazione o di processi di ottimizzazione di distribuzione e di frenata di alcune vetture o ai robots che sostituiscono l'operare umano sulle catene di montaggio o ancora ai computers che in qualche modo si comportano in modo “intelligente”, ma è appunto questo lo scoglio che si vuole analizzare: l'intelligenza delle macchine, ovvero l'intelligenza omeostatica. Il mondo delle variabili e l’intelligenza omeostatica Vediamo di chiarire un po’ il significato di intelligenza omeostatica e partiamo dal presupposto di dividere le macchine secondo un livello di intelligenza impiegata, senza per il momento scendere a spiegare il concetto di intelligenza, ma fornendo dei livelli di classificazione per quanto riguarda l'utilizzo di queste tipologie di processi di elaborazione dei dati. Si può parlare di intelligenza omeostatica ogniqualvolta si incontri un comportamento risolutivo di un determinato problema che presuppone una elaborazione di dati, ma parlare di elaborazione di dati ci porta di conseguenza a parlare di un mondo costituito da variabili. Come già fatto capire in precedenza, questo è un mondo che per alcuni lettori può sembrare strano perlomeno perché ci porta a dei ragionamenti del tutto teorici, ma è effettivamente un modo di concepire una realtà che ci sta attorno e oltretutto, è stato questo il fattore che ha portato l'uomo a realizzare la possibilità di mettere nelle macchine un sistema di lavoro che assomiglia per certi versi a quello che utilizza la nostra mente. La metodologia che ha reso possibile l'utilizzo delle variabili come elementi di elaborazione e di costituzione di processi di controllo e quindi di lavoro è stata data dalla possibilità di far effettuare a delle macchine anche le più complesse procedure di calcolo, in altre parole tutto quanto quello che è possibile calcolare fa parte del mondo delle variabili, la stessa divisione esaustiva del mondo in classi è stata riportata tramite delle elaborazioni permesse dalla tipologia della matematica matricale in variabili che si possono elaborare, e la qualità di queste variabili viene determinata dai tipi logici a cui fanno parte. Detto questo è facile capire che si possono introdurre nelle macchine determinati tipi di processi di elaborazioni di dati che possono far assumere alle stesse delle forme comportamentali e quindi è possibile capire che si possa parlare di comunicazione anche per quanto riguarda questi nuovi componenti della realtà fisica, ovvero, dobbiamo a questo punto ammettere che oltre alla comunicazione animale esiste una nuova forma di comunicazione artificiale che è quella che l'uomo ha introdotto nelle sue opere di maggior ingegno, quelle macchine che potranno un domani essere ancor più di oggi un notevole aiuto per l'uomo stesso nei più svariati campi di azione. (a questo proposito inviterei a dare una occhiata alla macchina di Turing, anno di grazia 1936) Ma se parliamo di forme comportamentali e di comunicazione per quanto riguarda questi nuovi prodotti non dobbiamo dimenticare che sono stati generati da una intelligenza creativa che si distingue nettamente da quella omeostatica perché frutto di combinazioni di attività mentali per nulla simili a quelle che sono all'origine delle elaborazioni di dati, quindi tutti gli attributi che potremmo dare a questi prodotti partiranno dal presupposto di essere attributi artificiali, in sostanza possiamo parlare di comportamento, di comunicazione e di intelligenza, artificiali, dove alla base di tutto c'è un mondo costituito da dati e da funzioni. Gli stessi sistemi sono composti per costituzione da un supporto cosiddetto hardware o pesante, che ne identifica la parte fisica di funzionamento, ossia i vari tipi di circuiterie, i supporti di memoria,l e varie tipologie di sonde, eventualmente le varie strutture di output come attuatori: motori, braccia e mani meccaniche o strumenti di lavoro dai sistemi stessi azionati, e da un supporto software o morbido, leggero, che invece ne identifica la metodologia di programmazione, la tipologia dei processi di elaborazione dei dati, eventualmente nei sistemi delle ultime generazioni la strutturazione dei "campi di conoscenza", in definitiva tutto ciò che un programma di elaborazione di dati e di conoscenza può identificare. Questo ad esempio è uno schema a blocchi semplificato di molto, che rappresenta il centro vitale della struttura hardware di un qualsiasi sistema di elaborazione di dati elementare: (notate i segni del tempo?) Come si può osservare, ci si trova di fronte ad una struttura rigida composta da una C.P.U. o centrale di controllo di processo che rappresenta il cuore o , se lo vogliamo, il centro nervoso vero e proprio dove avvengono le elaborazioni del sistema, da delle porte di ingresso e uscita dati che servono per mettere in comunicazione questo centro con delle periferiche intelligenti o meno, da una struttura di memoria a sola lettura rappresentata dalla R.O.M., da una memoria di lettura e scrittura o R.A.M. e da un sistema di logica di controllo; una tale struttura però può essere resa modulare dall'inserimento di altre strutture analoghe, tramite appunto le porte di input-output, apportando elasticità di elaborazione e potenziando la metodologia intellettiva, sempre dal punto di vista omeostatico, della macchina stessa. Per quanto riguarda la parte software dobbiamo subito distinguere almeno tre livelli di programmi ossia, quelli rivolti alla macchina che si identificano nei "programmi macchina" espressi in linguaggi adatti alle trasformazioni delle informazioni in segnali elettrici, chiamati in un unico termine "sistema operativo" o firmware, e residenti nelle R.O.M., (o altri tipi di memoria a sola lettura per l'utente), quelli applicativi che sono i programmi che danno la possibilità alla macchina di compiere determinate operazioni rivolte al mondo esterno e questi ultimi sono dei programmi che vengono scritti attraverso dei linguaggi che dipendono dal tipo di sistema operativo adottato, dal kernel, per quella macchina, entrambi residenti in altri supporti di memoria a lettura scrittura e poi elaborati in R.A.M.. Si può dire che i linguaggi più moderni e i sistemi operativi più evoluti crescano in simbiosi, non solo, ma in tutti e due questi tipi particolari di linguaggi, sia per quello del sistema operativo sia per quello di programmazione degli applicativi dobbiamo identificare due forme di informazione, ovvero, le informazioni che rappresentano i dati e quelle che rappresentano le funzioni, in sostanza, ritornando alle tipologie di conoscenze e alle metodologie di comunicazione ad esse sottintese possiamo asserire che queste macchine adottino una conoscenza fino a questo livello, di secondo tipo, sono in grado cioè di adottare una terminologia che indichi una conoscenza 'delle' cose e una conoscenza 'sulle 'cose, ma che per loro sono variabili, soltanto variabili, e tra l'altro, almeno fino a questo momento, la quantità di variabili e la loro qualità sono stabilite da chi è l'artefice della macchina stessa. Lo scoglio da superare è quello che si può identificare come implementazione della conoscenza che tutte le funzioni e tutti i dati che queste macchine possono trattare sono di per se stesse ancora delle variabili, ossia infondere la possibilità di elaborare sia le funzioni che i dati, secondo tipologie di programmazione ancor più evolute, questo specifico compito sarà quello che l'uomo si aspetta dai computers della quinta generazione: poter in qualche modo dare autonomia alle macchine sulla metodologia dei processi da adottare. (tenete conto che lo scritto era stato fatto negli anni ‘80) Tanto per dare una buona immagine delle varie tipologie di intelligenza omeostatica possiamo dire che qualora la risoluzione di un problema premetta la conoscenza di un numero finito di variabili, la metodologia di risoluzione del problema sia in qualche modo sempre la stessa, ossia, presupponendo il problema pratico di costruire una forchetta, ci sia sempre un solo processo utilizzato, ma non dobbiamo dimenticare che questo processo può essere un processo ottimizzato per quanto riguarda appunto la risoluzione del problema, sia in definitiva la migliore possibilità che si può attuare con un processo di elaborazione; ma se consideriamo il fatto che un processo è identificabile come una serie di operazioni dovute a delle funzioni possiamo dire che il medesimo può essere inserito in una variabile che lo identifica. Allora,quella che nei sistemi controreazionati classici veniva identificata come una singola funzione 'B(s)', qui deve identificare un singolo processo di elaborazione; si può anche supporre che al modificarsi dello stato delle variabili venga modificato il processo di risoluzione del problema, secondo una forma più evoluta di intelligenza e quindi si potrebbe parlare di una modificazione a livello più evoluto della macchina preposta alla risoluzione di quel particolare tipo di problema, poiché si presuppone la possibilità di modificare il processo indicato sopra come 'B(s)' in un altro 'B1(s)',secondo una inferenza imposta. Avremmo così ottenuto il risultato di immettere un motore inferenziale nella macchina che sarà quindi in grado di poter proporre una ottimizzazione di una risoluzione ad un determinato problema secondo una metodologia logica di analisi e scelte che questa effettuerà sempre però con lo stesso metodo, ovvero in relazione al motore inferenziale adottato, in termini molto più pratici diremmo che la macchina diviene tanto più intelligente quante più sono le possibilità di modificare i processi adottati in relazione al fine preposto. Possiamo a questo punto ipotizzare una modalità di suddivisione dei sistemi secondo una tipologia che ne indichi il livello evolutivo in termini comportamentali e se prendiamo come livello di base quelle macchine che utilizzano i sistemi controreazionati classici, ovvero dove la funzione 'B(s)' è unica, allora un secondo livello può essere benissimo interpretato come se al posto di una sola funzione la variabile sopra indicata rappresentasse un processo di funzioni che sia il prodotto di un sistema in grado di assolvere al compito di risolvere un problema o una qualsiasi attività, mentre un terzo stadio sarebbe rappresentato da sistemi che hanno possibilità inferenziali, ossia possono adottare comportamenti diversi qualora siano in grado di effettuare delle scelte dettate da una analisi autonoma relativa all'impostazione della risoluzione di un determinato problema, in altre parole, quei sistemi che hanno la possibilità di acquisizione sia percettiva che di categorizzazione secondo una metodologia inferenziale che ne sottintenda la possibilità deduttiva e induttiva del loro campo di conoscenza, in sostanza dotandole di possibilità analitica di processi ed eventi in riferimento ad una determinata problematica. Ma a questo punto della nostra analisi bisogna fare una riflessione importante sotto l'aspetto epistemologico relativamente alle possibilità di meccanizzare determinati processi evolutivi della cosiddetta intelligenza artificiale, non tanto per porre dei limiti invalicabili al nostro operare scientifico nell'ambito della materia del trattamento dell'informazione, ma in quanto la teorizzazione, che in noi è un'attività mentale di utilizzo comune, ci porta a trarre delle concettualizzazioni di carattere endogeno e nella sostanza semantiche, per darci la possibilità di indicizzare fino a dove è possibile la tipologia del gioco delle variabili che fa parte del modo di operare delle macchine, ma che invece nella mente umana ritrova, come in seguito sarà esposto, una metodologia fondamentalmente differente nell'operare cerebrale dei processi stessi di concettualizzazione. Partiamo quindi dal presupposto di indicare, ancora senza esprimere il concetto di variabile sotto una forma di operazioni mentali e sempre tenendo come base di analisi la conformazione in tipi logici della costituzione delle variabili, il fatto che se noi possiamo rappresentare un dato qualsiasi con una variabile adatta allora è vero anche che possiamo ripetere questa operazione con una fase teoricamente regredente fino a portare ad un limite l'espressione del dato che una variabile può contenere, sia nel senso entalpico che nel senso entropico della operazione che andiamo ad effettuare e tale limite può essere dato nei due casi al tutto o al nulla. Questa operazione la si può notare quando per esempio si passa dalla considerazione che ad una variabile si possono associare degli attributi, ossia supponiamo che la variabile 'f$' contenga sempre un nome femminile, gli attributi che potremmo associare a quella variabile sono moltissimi si pensi agli attributi del significato di donna, in questo caso effettueremmo sulla variabile delle operazioni mentali entalpiche, al contrario si potrebbe soltanto prendere come attributo della stessa il fatto che contiene un nome e in questo caso avremmo fatto delle operazioni mentali entropiche. Ora pensiamo al fatto che ogni attributo è una grandezza omogenea, per esempio se consideriamo l'attributo "bellezza" avremmo un campo di esistenza dello stesso che va da delle punte espresse secondo delle percezioni di sensi di bruttissima, orrenda a delle punte che si esprimono con le parole bellissima, incantevole e per lo stesso motivo, in altri termini dovremmo dire indifferente, ignorabile; allora dovremmo accorgerci che il risultato di queste espressioni è dovuto a delle comparazioni e ad altre operazioni mentali che fanno parte del sistema di percezione ed esprimiamo dei giudizi che però non hanno un ben distinto valore fra loro, non sono calcolabili e per di più del tutto soggettivi in senso stretto, oltretutto ricordiamoci che essendo gli attributi visti sotto l'aspetto di grandezze per la nostra percezione, sono trasportabili ancora in variabili e potremmo quindi riportare queste variabili in un sistema di calcolo, ma è appunto nel sistema di calcolo che si incontrano le prime difficoltà, per capire bene quanto sto tentando di esprimere si pensi al fatto che noi potremmo in qualche modo ripartire il campo di esistenza di una variabile in diversi settori, ed ammesso anche di introdurre una tipologia di identificazione del settore tramite un calcolo condotto con l'introduzione dei valori limite e con delle riparametrazioni di carattere statistico, non avremmo fatto altro che fornire ancora una struttura rigida di costituzione di elaborazione alle macchine in cui è stata inserita questa implementazione di intelligenza, in quanto siamo sempre legati a delle forme di matematica rigida che nulla hanno in comune con il sistema umano di trasformazione delle informazioni e oltretutto, come potremmo poi infondere quelle che sono le possibilità di intervenire sull'informazione stessa, sia nel senso entalpico che nel senso entropico? Supponiamo di partire dalla catalogazione in una classe che esprima il genere umano, e supponiamo di arrivare a fornire una variabile che contenga il nome di una persona, questa sarebbe una operazione intermedia, poiché di quella persona come di molte altre potremmo esprimere una nostra considerazione in base ad una qualsiasi elaborazione, per esempio dire che quel nome corrisponde ad una persona di una certa razza o di un certo ceto della società, o ancora di sesso maschile, o chissà quali altri attributi potremmo indicare, ma allora, ogni attributo indicato è ancora esprimibile in una variabile che ne sottintende il campo di esistenza, ed è appunto questo uno dei passi più difficili da compiere per una meccanizzazione dei sistemi di elaborazione: vedere sotto una certa ottica la posizione del dato indicato in una variabile rispetto al suo campo di esistenza, ossia fornire un giudizio di impressione, dovremmo ammettere che si vuole fornire alle macchine la capacità di individuare un punto di riferimento od un sistema di coordinate e di costruirci autonomamente una o più possibilità di elaborare delle metriche!. La meccanizzazione di un tale procedimento dichiarativo, che è una delle basi di funzionamento delle attività intellettive umane e rispetta quelle che potremmo definire come il risultato delle armonie di stati attenzionali o stati emergenti di funzioni neuronali che la nostra mente dispone per effettuare tali operazioni, nelle macchine deve comunque rispettare delle regole di procedure che al massimo possono essere compensate con l'introduzione di artifici matematici, come appunto la concezione di limite e quella di errore, nonché la concezione di fornire attraverso queste emulazioni artificiose la possibilità dichiarativa probabilistica e la possibilità dichiarativa di indicidibilità, oltreché naturalmente con il supporto della logica più elementare riconsiderare il tutto o in parte quelle informazioni che saranno in grado di essere percepite come vere o false, questo soprattutto quando ci sarà bisogno di ottenere delle comunicazioni di carattere collaborativo o di interscambio e di interazione fra macchina e macchina, macchina-ambiente o uomo-macchina. E` difficile a questo punto indicare quali siano le vere possibilità di ulteriori automazioni nel campo dell'intelligenza artificiale, ma è sicuro che una cosa non verrà mai emulata tanto bene come la possibilità creativa e di teorizzazione propria della costituzione della mente umana, specialmente per quanto riguarda l'autoapprendimento cosciente del mondo che ci circonda, per quanto riguarda il pensiero che non sarà mai trasportabile come espressione delle possibilità umane di modificazione delle informazioni; si potranno in definitiva emulare tanti processi omeostatici di concepimento dell'operare mentale ma mai, e perché assolutamente inutile ed assurdo, poter riprodurre meccanicamente ciò che di meccanico ha soltanto il fattore fisico della costituzione armonica degli stati di informazione. Un esempio che per quanto banale possa sembrare può far capire meglio i concetti sopra esposti lo si può individuare in un comportamento che andremmo ad analizzare quando pensiamo ad una macchina concepita con i migliori criteri per la produzione di forchette cucchiai e coltelli in maniera del tutto autonoma, allora bisogna pensare che questa sia una macchina tanto complessa da far immaginare un suo comportamento intelligente per quanto riguarda il settore di conoscenza che gli è stato dato, in effetti dovrà occuparsi di tutta la produzione di questi comuni oggetti di utilizzo con dei strumenti e dei servomeccanismi adeguati, compresi sistemi intelligenti per l'ottimizzazione dei risultati e dei controlli, potremmo anche dargli un motore inferenziale e interfacce di interazione evolute uomo-macchina ma come si comporterà qualora gli chiedessimo la procedura di sbucciare una mela? Sarà mai in grado di poter elaborare una procedura che le consenta di compiere una operazione così banale senza chiedere aiuto a chi gli impone una tale operazione? Vediamo ora nella realtà tecnica la realizzazione di un comportamento meccanizzato attraverso questo semplice algoritmo che ci serve per poter dare una forma più pratica a quanto sopra esposto. Il sistema che ci dobbiamo immaginare è composto da una sonda per misurare la temperatura e da un semplice computer che riceve il segnale da questa inviato e ne fa una elaborazione dando delle impressioni sulla temperatura; ovviamente per non introdurre un linguaggio per molti sconosciuto scriverò l'algoritmo in modo comprensibile, utilizzando un italiano stereotipato che è simile ad un linguaggio evoluto di programmazione, evitando di fornire ulteriori spiegazioni per quanto riguarda il sistema operativo su cui un simile linguaggio può essere inserito; passiamo subito a vedere questi semplici passaggi: 0) Dichiarazioni:'A' numerico 1) Stampa " vuoi una mia impressione?" 2) Attendi una risposta 3) Se "si"allora vai a 6 4) Se "no" allora stampa "ciao" e vai a FINE 5) Stampa "scusa non ho capito" e vai a 2 6) Leggi A 7) Se A è minore di -10 allora stampa "è freddissimo, mi si congela la sonda...", vai a1 8) Se A è compreso fra -9,99 e 5 allora stampa "è freddo, ma si può sopportare", vai a1 9) Se A è compreso fra 5,01 e 10 allora stampa "è fresco, si comincia a stare bene", vai a1 10) Se A è compreso fra 10,01 e 25 allora stampa "per me è una temperatura buona", vai a1 11) Se A è compreso fra 25,01 e 30 allora stampa "calduccio, si sta bene", vai a1 12) Se A è compreso fra 30,01 e 40 allora stampa "fa caldo,non vorrei scottarmi",vai a1 13) Se A è maggiore di 40 allora stampa" è caldissimo, mi sto scottando la sonda...",vai a1 14) FINE Mi rendo conto che come esempio è banalissimo e non vorrei con questo offendere nessuno, ma quello che mi interessa spiegare, sperando che la forma sopra utilizzata di linguaggio sia stata comprensibile per rendere l'idea di un processo di elaborazione di una variabile, è il fatto che indubbiamente al verificarsi di una condizione si otterrà sempre una stessa risposta, pur potendo affermare che la macchina in questo caso potrebbe, con algoritmi più complessi fornire risposte diversificate introducendo altri parametri di valutazione e altre variabili, restando ben si intende, nell'ambito di una condizione determinata, per esempio, se si introducessero delle variabili di comodo daremmo la possibilità di fornire non solo una diversificazione delle risposte ma potremmo condizionare la macchina a delle azioni diversificate. Il comportamento possibile che corrisponde alla forma di conoscenza di una macchina come questa potrebbe essere interpretato come un comportamento “stupidamente” intelligente, se impiegassimo algoritmi più complessi, ma non dobbiamo dimenticarci che da una analisi del linguaggio usato per colloquiare con questa macchina,l a sua conoscenza si limita al secondo livello e corrisponde una forma di intelligenza omeostatica che può arrivare fino ad un terzo stadio, sarà in grado quindi, tramite delle elaborazioni autonome dovute all'inserimento di un motore inferenziale, di trasformare i processi di risoluzione dei problemi al verificarsi di un determinato sviluppo delle variabili che dovrà considerare. Sarà sempre reso impossibile però, con quella forma di comunicazione l'operare sulla variabile 'A' che rappresenta la temperatura, una elaborazione in senso entalpico od entropico, associando intrinsecamente degli attributi alla stessa; per tentare di simulare questo dovremmo utilizzare dei linguaggi più complessi che permettano di formulare una variabile attraverso ad esempio strutture di questo tipo: 'A' ='0-1-1-0-1-1-0' dove gli elementi binari rappresentati vengono associati a determinati attributi che la variabile in considerazione può o meno prendere a seconda della posizione che assumono all'interno della struttura del vettore che la rappresenta, potremmo così associare e far elaborare diversamente i dati facendo riferimento al fatto che sia presente o meno un attributo in quella variabile, in altre parole, se alla prima posizione del vettore associamo l'attributo "personale", nella seconda "fisico", nella terza "chimico", nella quarta "classico", nella quinta "poetico" e quant'altro ancora potrà essere un attributo per quella variabile, potremmo ottenere così la possibilità di elaborare il dato che questa sottintende in modi differenti a seconda delle configurazioni che il vettore stesso può o meno assumere e in base al posto assegnato per ogni attributo considerato, quindi il livello logico assunto dalla variabile consiste nel "peso" che assumono i vari attributi presenti rispetto ad una loro particolare posizione, in sostanza bisognerebbe sviluppare in serie logica il vettore e così, di volta in volta, spostando gli attributi dalle loro posizioni in altre o inserendone di nuovi o togliendone, otterremo, a seconda delle configurazioni risultanti, un modo diverso di interpretazione della variabile stessa. Così per esempio ad una variabile contenente un nome come può essere 'f$' si potranno assegnare vari livelli logici a seconda che si consideri il dato contenente come puramente un nome e quindi l'attributo identificante il livello sarà solo "descrittivo", oppure si potrebbe far partire un programma inferenziale per elaborare la variabile se si identifica l'attributo "fisico", o "poetico", o "psicologico", ovvero la "sovrapposizione degli effetti" qualora questi appartenessero al vettore logico che identifica la variabile stessa, ma a questo punto non avremmo fatto altro che potenziare la fase di elaborazione e non per questo l'intelligenza che rimarrà sempre e comunque omeostatica fintantoché non gli sarà data la possibilità di inferire autonomamente su strutture complesse di vettori rappresentanti ognuno le variabili e questo si potrà avere soltanto con processi ancora una volta rigidi, matematici, per nulla simili a quelli che portano l'uomo a fare dei processi analoghi sui concetti che invece sono indotti da un funzionamento “libero”, che potremmo definire “emergente”, o costretto da delle forze endogene o da fattori esterni e contingenti. In definitiva, qualsiasi tipo di macchina che noi potremmo costruire, sebbene sia costituita con principi che assomigliano ai nostri metodi di elaborazione, non potrà mai avere un sistema di comunicazione ed intellettivo in grado di poter formulare delle possibilità di giudizio sulle variabili simili a quelle che può elaborare il genere umano: non esiste in queste macchine la "comunione universale". Quanto sopra esposto sul mondo delle variabili, sui processi omeostatici di elaborazione e sulla tipologia delle intelligenze, serve per introdurre la parte dedicata allo studio elementare del sistema operativo mentale, ma mi rendo conto che se fossi un arrampicatore in free climbing a questo punto mi si presenta un passaggio estremamente difficile, quasi acrobatico per riportare il discorso su una posizione che si avvicini ulteriormente alle ipotesi del funzionamento della nostra mente e per fare questo passaggio tenterò di assicurarmi con degli appigli che siano il più possibile sicuri. A tal fine si possono trarre alcune considerazioni sull'intelligenza omeostatica, derivante dalla implementazione di nuove tecnologie di programmazione dei sistemi di elaborazione. Si possono considerare due vie per produrre una evoluzione della intelligenza artificiale: la prima può essere quella dettata dallo studio del comportamento mentale nell'analisi di risoluzione di determinate problematiche come l'autoapprendimento, le facoltà associative e dissociative, di categorizzazione, o ancora le facoltà deduttive e induttive derivanti da atteggiamenti inferenziali, in parole povere tutte le attività che comportano dei processi di ragionamento omeostatico, la seconda invece deriva non tanto dallo studio dei processi mentali di ragionamento ma dal potenziamento della inferenza matematica che si può effettuare migliorando le tecniche di elaborazione delle variabili usufruendo di nuove metodologie di programmazione e di complesse strutture fornite dai campi di conoscenza., magari associandoli a elaborazioni quantistiche. E` interessante notare, per quanto riguarda le applicazioni possibili dell'intelligenza artificiale e le metodologie di generazione della stessa, che non è tanto importante considerare il metodo di implementazione della intelligenza artificiale sulle varie macchine che saremmo in grado di costruire, si possono seguire le due strade proposte simultaneamente, sia la strada dettata dallo studio delle procedure mentali di risoluzione di determinate problematiche, sia quella dettata dal potenziamento delle facoltà di calcolo, inserendo nelle macchine nuove costituzioni dell'operare matematico, che rispettino la possibilità di effettuare con cognizione di causa le operazioni di trasformazione delle procedure, partendo da delle modificazioni inferenziali effettuate sulle variabili considerate per l'ottenimento del risultato che ci si è prefissati. In sostanza sono dei percorsi paralleli, la emulazione delle procedure mentali o la implementazione di procedure matematiche più potenti per la risoluzione di determinati problemi sarà sempre rivolta a dei processi di ragionamento relativi a dei settori dove si abbisogna di una tipologia di intelligenza artificiale che comunque resterà sempre omeostatica. Si potranno ottenere così dei supporti di trattamento delle informazioni che saranno estremamente razionali e utili in molti settori delle attività umane, ma ciò che è più importante è il fatto che potenzieremmo in modo eccellente quella intelligenza creativa che solo l'essere umano può disporre e con questo ausilio potremmo provocare quella trasformazione della creatività umana necessaria per rendere migliore il nostro esistere, sia in armonia con la natura che nella evoluzione sociale, tutto questo almeno dal punto di vista teorico, considerando cioè che l'evoluzione mentale e la maggior capacità di controllo delle informazioni, riescano a far concepire in maniera diversa la nostra tendenzialità di rapporto con le strutture di carattere omeostatico che sono una delle basi delle nostre interazioni. Un'altra considerazione, proprio in merito alle metodologie utilizzate per l'avanzamento tecnologico, da ritenersi importante, permette di raddrizzare il tiro, riportando il discorso sull'ambiente mentale, è quella che deriva da una mia impressione che concerne nell'aver individuato una spaccatura fra il comportamento intellettivo tecnologico e il comportamento intellettivo sociale, anche per quanto riguarda la sfera psicologica e mentale degli individui. Ritengo che questo ultimo periodo di millennio abbia portato una evoluzione radicale nel comportamento tecnologico della società,vista come struttura, specialmente per le conquiste che si sono fatte e per le modalità con cui sono state portate a termine, a questa evoluzione però si è contrapposta una situazione di instabilità individuale dovuta non tanto al modificarsi dei valori o delle ideologie classiche che imperniavano la nostra società fino ad alcuni decenni fa, è forse ovvia una tale evoluzione, ma al fatto che, da un punto di vista analitico degli stati attenzionali che sono alla base delle operazioni mentali e che costituiscono uno dei motori intellettivi fondamentali, si è prodotta una variazione oserei dire logaritmica per quanto riguarda le possibilità di concepimento, sotto l'aspetto percettivo, del fattore tempo, che determina la facoltà mentale di controreazionare le situazioni attenzionali implicite, forse proprio dovuta allo stesso sistema di percezione. Tutto questo provoca un restringimento dei tempi di reazione, ovvero, costringe il passaggio da una attività attenzionale libera e ritmata dalle facoltà percettive naturali ad una attività attenzionale costretta ad assumere dei ritmi sempre più veloci, provocando così le condizioni ideali per una passività intellettiva. (sottolineo che questo testo fu scritto appena dopo la metà degli anni ‘80). In altri casi si possono verificare dei fenomeni di reazione, al subentrare delle situazioni di stress psicologico, poiché quelle che sono le informazioni percepite e correlate hanno assunto una frequenza elevatissima da una parte, che porta all'affaticamento cerebrale specialmente se considerate in relazione ai fattori di causa-effetto, e da un'altra sono per forza maggiore considerate, dal punto di vista costitutivo del pensiero, sequenzialmente, e quindi tutto diventa più difficile in una attività mentale di comparazione, mancano cioè i punti di riferimento attenzionali per poter stabilire un processo di adeguamento alla realtà così concepita:una mente comune, in definitiva, ci si trova dinanzi a due possibilità, la prima è quella di assorbire tutte le informazioni senza tentare di elaborarle e la seconda è quella di tentare di elaborare delle informazioni scoordinate che rendono possibile delle reazioni, nel terzo livello di conoscenza, che provocano quella sofferenza psicologica che ho identificato come angoscia esistenziale. C'è da sperare che con alcuni accorgimenti tecnici di carattere sociale si riesca ad instaurare quel salto, per altro difficile perché reso tale da una presa di coscienza diversa e non comune ancora nella maggior parte degli esseri umani, che si esegue passando dal terzo al quarto livello di conoscenza permettendo in tal modo una evoluzione parallela anche nel settore delle attività mentali più strettamente umane, con questo non voglio dire che una presa di coscienza razionale di tutta l'attività mentale sia dannosa sotto un aspetto umano, non si cambiano i presupposti di vivere diversamente i sentimenti, le emozioni, le impressioni e quant'altro la nostra mente è in grado di farci "sentire", ma di renderli ancor più vivibili, in quanto la conoscenza di quei processi che rendono possibile queste situazioni mentali rende meno pesante la trasformazione dei concetti che stanno alla base di ogni nostra operazione cerebrale, operazione che può sembrare per altro complessa e difficile da sostenere nel campo psicologico, ma necessaria per la sopravvivenza stessa dell'uomo, per quanto riguarda la sua stabilità e integrità mentale. Voglio ribadire con questo che il quarto livello di conoscenza prevede ancora una evoluzione verso il quinto livello che identifica a sua volta la completezza ed esprime nel modo più felice quelle che sono le potenzialità mentali che l'essere umano può controllare e utilizzare dando vita ad una concezione di se stesso che sia la più completa possibile e fornisca dei nuovi principi per una miglior consapevolezza del valore dei sentimenti, delle emozioni, degli stati d'animo, delle sensazioni e quant'altro; più in generale, di tutta l'espressione energetica della comunicazione intesa nel senso più evoluto del termine che indica tutte le facoltà di atteggiamento, comportamentali, relazionali e di vita. Entalpia e Entropia A questo punto, è obbligatorio riprendere in esame due concetti che sono stati esposti nei paragrafi precedenti e che ci danno la possibilità di concepire quello che si intende per "comunione universale", si tratta di individuare, nel senso più generale, i concetti di entalpia ed entropia, che indicano i modi diversi in cui si trasforma lo stato energetico delle cose. Un esempio interessante che ci può far capire che tutto parte da semplicissimi schemi di interconnessioni tra cose deriva dalle scoperte nel campo bio-genetico dove si è accertato che le quattro basi azotate delle catene del D.N.A. cioè la timina, la citosina, la guanina e la adenina, interagendo tra loro sulle strutture, portano a delle combinazioni differenziate degli amminoacidi che, a loro volta, danno origine allo sviluppo diverso delle cellule che compongono gli organismi e originano le diversità degli esseri vegetali e animali, possiamo notare così a quali risultati sia giunta la natura attraverso questo semplicissimo processo, basta guardarci attorno. Anche studi di fisica teorica tendono ad interpretare tramite delle “piramidi teorico-matematiche”, le tipologie delle trasformazioni energetiche che governano l'universo, tentando di unificare al meglio le basi di tutta l'evoluzione. Noi tutti in fine, abbiamo potuto constatare nei più svariati campi di indagine che non esiste in natura una qualche modificazione di stato se non ne esiste una causa e una situazione di quiete si ha soltanto qualora l'elemento in oggetto abbia raggiunto il livello entropico più elevato che il sistema nel quale è inserito gli abbia consentito di ottenere. Un semplice esperimento che ci può far capire il concetto da un punto di vista reale, lo si nota quando si lascia cadere una pallina all'interno di una scodella, la pallina dopo aver compiuto delle evoluzioni raggiunge il suo stato di quiete nel fondo della scodella e quella posizione ne identifica rispetto al sistema isolato lo stato di entropia più alto, ovvero, la pallina raggiunge uno stato di equilibrio qualora tutta la sua energia potenziale relativa si sia trasformata in energia cinetica e questa in lavoro, fintantoché la pallina non avrà raggiunto la posizione nella quale si trova il punto di energia potenziale relativa "zero" che l'ambiente è in grado di fornire: il fondo della scodella appunto. In questo sistema isolato si può notare che la pallina è un componente passivo e quindi il suo comportamento sarà soggetto a tutte le forze fisiche che entrano in gioco, raggiungendo quello stato di quiete definito e ordinato dalle leggi che concorrono alla dinamica possibile per quel sistema. Un caso analogo lo si può notare quando si mettono a contatto fra loro due corpi omogenei di diverse dimensioni e di diverse temperature, ciò che accadrà è lampante: si possono ipotizzare due casi, ossia che il corpo più grande abbia una temperatura minore del corpo più piccolo e quindi se questo viene messo a contatto con quello più grande si raffredderà riscaldandolo in percentuale; altrimenti succederà il contrario ovvero il corpo più piccolo avente in questo caso minor temperatura si riscalderà raffreddando però quello più grande e tutto il sistema tenderà ad assumere la temperatura dell'ambiente dove si trova. Quanto sopra esposto risponde a delle leggi ben definite di carattere fisico che sono indicate nel dare una tendenzialità all'infinito ad una grandezza chiamata appunto entropia che si può esprimere semplicemente come il rapporto fra la quantità di energia e la sua qualità. I due sistemi sopra citati rispondono entrambi passivamente a questa legge universale, ma vediamo ora alcuni sistemi che si comportano in modo assai diverso, ossia dove le trasformazioni energetiche possono permettere dei legami complessi di causa-effetto, quelli che abbiamo individuato come sistemi controreazionati e quindi partecipano in modo attivo alla trasformazione energetica. Uno degli esempi più classici che si può prendere in considerazione è quello delle volpi e delle lepri: se supponiamo un ambiente di vita sano per entrambe le specie di questi animali e ipotizziamo che le volpi si nutrano preferibilmente di lepri per la loro sopravvivenza, potremmo osservare che le funzioni esistenziali di questi animali assumono delle forme pressoché sinusoidali e sono in opposizione di fase o quasi, in altre parole con questo voglio sottintendere che quando le volpi saranno tante da non trovar lepri a sufficienza per la loro sopravvivenza cominceranno a ridimensionare il loro numero fino ad un certo limite e quindi daranno la possibilità a quelle poche lepri scappate alle loro fauci di ricominciare a riprodursi in maniera tale da aumentare numericamente fino ad un altro limite che dipende da vari fattori: dalla capacità di riproduzione propria e da quella delle volpi, dalla quantità di lepri che può essere cacciata per ogni volpe ecc., per poi ricominciare a decrementare nuovamente il loro numero in funzione della rinnovata quantità di volpi che le caccia. Altri casi di comportamenti simili sono ricercabili in tutta la biosfera, basti pensare al comportamento di certi insetti se riferito ai loro antagonisti naturali. L'equilibrio, in questo come in altri casi dunque non è più stabile, come nei precedenti, ma avrà appunto una sua legge armonica che dovremmo ricercare non solo nel contesto del sistema isolato ma in tutto l'ecosistema nel quale questo è inserito. Anche questa volta però si rispetta la tendenzialità entropica, ma il concetto di qualità energetica va ricercato nell'ecosistema ovvero nelle possibilità energetiche dell'ambiente. Da questa prima constatazione si può notare che la catena di cause ed effetti ci porterebbe ben lontano, inserendo questo contesto in contesti ancora più ampi fino ad arrivare alla evoluzione ambientale, alla ripetizione delle stagioni, alla stabilità del sistema solare e via così fino al concetto di ordine universale. Sarebbe bello che a questo punto si riflettesse per un attimo sul guizzo del ragionamento sopra esposto, che si sentisse la velocità di trasformazione dell'informazione, poiché ritengo importante far notare questo modo di associare e categorizzare i concetti, non solo, ma far capire quale potenza è in grado di sviluppare la nostra mente in questi passaggi così fulminei che rendono possibile una visione quasi simultanea del particolare e del generale, dove in realtà le operazioni mentali esprimono la loro forza più suggestiva in un modo che comunque rientra sempre nella armonia naturale, dove la trasformazione della informazione segue una legge che riporta in se un parallelismo con le leggi che fanno muovere la pallina sulla scodella fino a fermarla sul fondo, oppure il trasferimento della quantità calorica da un corpo ad un altro, ma ciò che è in movimento e che cambia di stato nella mente è l'informazione stessa. ( a tal riguardo consiglio degli approfondimenti sul “Pensiero sistemico” di Fritjof Capra) Sistemi come quello sopra esposto dove si può notare un'armonia di eventi ve ne sono infiniti, tutto funziona in questi termini, basti appunto pensare al ciclo armonico delle stagioni o al ciclo del sistema meteorologico o ancora al sistema solare facendo riferimento alle orbite dei pianeti e delle comete o alle galassie e quant'altro ci riserva questo meraviglioso universo. In natura tutto sembra rispettare un ordine quantomeno statisticamente pre-programmato, a volte indecifrabile e incomprensibile, ma se guardiamo più attentamente la questione ci accorgiamo che non è poi tanto difficile capire le basi di questo ordine, tutto risponde a delle funzioni elementari, anche se poi i processi di stabilizzazione degli eventi sono di difficile comprensione, vista la quantità di variabili che vengono ad essere interessate per lo studio approfondito degli stessi, basti pensare per esempio alla roccia che si trovava qualche milione di anni or sono vicino alla sorgente dei un fiume, che ora si trova quasi alla foce e che si è trasformata in un sassolino, chi mai potrebbe adesso anche con i mezzi più sofisticati poter ripercorrere il processo che ha portato a far assumere proprio quella posizione e quella forma a quel sasso? Per lo stesso motivo chi potrebbe sapere con esattezza se fra tre mesi in un certo posto avente il clima variabile ci sarà il sole o pioverà o cos'altro? o ancora chi potrebbe immaginare di conoscere con certezza quali saranno gli sviluppi tecnologici nei prossimi cinquant'anni? Eppure tutto è legato insieme da delle armonie di trasformazioni energetiche, tramite delle catene infinitamente regredenti di sistemi di causa-effetto che interagiscono tra loro in modo da stabilizzarsi secondo un ordine che la natura impone come sviluppo di leggi elementari, quelle leggi che regolano le trasformazioni energetiche nel contesto spazio-temporale, che noi riusciamo a percepire attraverso i nostri sensi comuni e che dovrebbero portare alla nostra mente uno spettacolo bellissimo, incantevole che forse adesso più che mai ci stiamo dimenticando di osservare e di trarre da questo quella che è la più interessante lezione di vita che ci viene data gratuitamente. La tendenzialità naturale si pensa sia quella di far trasformare prima o poi tutta l'energia in calore e di far assumere all'universo una temperatura costante, che sarebbe come affermare la tendenzialità all'infinito dell'entropia, ammenoché non subentrino delle attività interattive di causa-effetto che provocano quindi una stabilità in una armonia di eventi; ci sono quindi delle trasformazioni energetiche che possono instaurare una tendenzialità contraria a quella entropica e vengono chiamate trasformazioni entalpiche. Tali attività, in realtà, forniscono ad alcuni elementi l'innalzamento del loro stato entalpico a scapito di altri, per cui rimane rispettata la tendenzialità entropica universale. L'attività umana,come tutte le attività che si possono esprimere in lavoro, è in grado di poter fornire sistemi che possono avere un effetto opposto a quello stabilito tendenzialmente in natura utilizzando delle trasformazioni energetiche entalpiche ovvero, far assumere una energia qualitativamente più elevata a degli elementi, rendendoli però instabili, come nei processi di fissione nucleare che ne esprimono l'esempio più eclatante, ma questo è un discorso che può essere pericoloso se non si è poi in grado di stabilire una controreazione tale da non permettere effetti devastanti per l'equilibrio artificiosamente raggiunto, se non si riesce a stabilire un'armonia di trasformazioni energetiche; molto ancora si deve fare per poter sfruttare quelle che sono le potenzialità energetiche fornite in natura secondo un sistema di degradazione che sia il più lento possibile per lo stato energetico utilizzato, questo significa che bisogna utilizzare delle metodologie di controreazioni o delle fonti tali da poter sfruttare nel miglior modo possibile le qualità energetiche che può assumere un sistema nel livello entropico in cui si trova, ma con questo non voglio dire che non sia corretto agire entalpicamente sulla natura, soltanto che, nella consapevolezza che le azioni entalpiche sono in qualche modo destabilizzanti, bisogna trovare i sistemi adatti per far poi riassumere l'equilibrio a quelli elementi a cui lo si è tolto, e questo in modo corretto, ossia isolando il sistema stesso senza creare dei pericoli di destabilizzazione che possono interferire su delle catene di sistemi non interessati a questi processi. Si può sperare che i progetti che sono in cantiere adesso per favorire l'avanzamento delle conoscenze tecnologiche dell'uomo tengano ben presente queste considerazioni e, per quanto mi riguarda, rimango ottimista perché credo che, in considerazione degli effetti negativi che la nostra società ha prodotto sull'ecosistema terrestre e in base agli studi e agli esperimenti che vengono condotti per permettere la vita umana su altri pianeti, ci si renderà finalmente conto di quante operazioni sbagliate siano state compiute fino a oggi e quali danni siano stati fatti al patrimonio naturale. Considero questo periodo di fine millennio il più adatto per portare una svolta radicale alla convivenza dell'uomo con la natura, poiché credo che finalmente ci si possa rendere conto che è più conveniente e che in fondo ci sono sempre, in tutte le cose naturali compreso il nostro cervello, le basi che uniscono l'universo. (sottolineo ancora che il testo è stato scritto negli anni 80) Ma tralasciamo questi argomenti che possono sembrare divagazioni sul tema, in realtà anche la nostra mente è costantemente inquinata da informazioni mal generate, ma adesso è più utile fare una considerazione di carattere logonico che riporti il parallelismo fra le leggi naturali sopra citate e il nostro modo di operare sull'informazione. Stati di conoscenza Si potrebbe parlare di trasformazioni entalpiche ed entropiche anche dal punto di vista mentale, basti pensare per esempio alla possibilità di teorizzazione che ha la nostra mente per capire che, se questo significa in effetti rendere una forma logica più complessa a dei concetti percepiti e categorizzati in un certo modo, il risultato dell'operazione non può che essere inteso sotto un aspetto entalpico, dove il prodotto dell'operare mentale acquisisce una "energia potenziale" maggiore dei prodotti che ci sono stati alla base della sua costituzione, basti notare che il cervello ha una curva di consumo energetico che esprime il suo massimo attorno agli otto undici anni per poi ritornare a decrementarne il consumo, ed è appunto nella fascia di età che va dai tre a undici, dodici anni che le facoltà di apprendimento sono favorite in funzione al fatto che appunto per l'apprendimento di carattere percettivo e cognitivo il sistema mentale è costretto a teorizzare quasi tutte le informazioni che riceve, proprio perché, secondo il mio punto di vista, il sistema cerebrale è costretto a crescere e sviluppare le proprie conoscenze. C'è anche da notare che, per le stesse ragioni sopra elencate, una trasformazione entalpica richiede altrettanto un sistema di controreazione adatto per essere utilizzata, pena la salute psichica del soggetto o nei casi migliori e diversi per costituzione, la perdita della possibilità di riscontro funzionale dei concetti teorizzati con una realtà mentale che si lega a fattori molto concreti, dobbiamo sempre tenere presente quali siano i sistemi di comunicazione neuronica, ovvero quali siano le operazioni omeostatiche che rendono possibile lo sviluppo del pensiero. Per contro esistono anche delle operazioni entropiche ossia la funzione mentale contraria a quella della teorizzazione, di appesantimento logico concettuale, ovvero la trasformazione di concetti complessi in concetti meno complessi dal punto di vista energetico-mentale, in altre parole una trasformazione che tende a far acquisire "energia cinetica" a determinati concetti, inserendoli in processi di trasformazione che, tramite delle operazioni omeostatiche,s e viste sotto l'aspetto cerebrale, condizionano persino l'organismo stesso, si tratta in definitiva di operazioni che rendono la mente in grado di fornire le emozioni, i sentimenti, gli stati d'animo e quant'altro può costituire la possibilità di "sentire" a livello fisico l'influenza delle informazioni elaborate. Si può pensare che la possibilità di compiere queste operazioni dal punto di vista mentale è paradossalmente contraria a se stessa, in quanto nel tentativo di agire entropicamente sui concetti teorizzati si presuppone comunque un lavoro, dunque un impiego di energia che sviluppi una visione delle interconnessioni delle cose e per queste operazioni il linguaggio che più esprime l'adattabilità alla conoscenza da acquisire sembrerebbe essere il linguaggio matematico, quindi potremmo affermare che le operazioni entropiche possono essere costituite tramite delle teorizzazioni logico-matematiche che sottintendono il quarto livello di conoscenza, ma ciò non è corretto, infatti il linguaggio logico-matematico si sviluppa con delle operazioni omeostatiche che rendono possibile soltanto la stretta connessione fra delle cose concettualizzate e difficilmente permette di poter passare a delle trasformazioni di informazioni:le variabili utilizzate per esprimere delle leggi strutturali matematiche hanno soltanto la possibilità logica di contenere dei dati, ma non esprimono possibilità di modificare il loro stato. Possiamo invece partire con l'associare il quarto livello di conoscenza e il linguaggio che viene aggregato a questo alle operazioni mentali entalpiche che del resto, essendo sviluppate come lavoro, devono rispondere ad una fatica di teorizzazione intesa nel trasformare tramite il concepimento dei correlati primi in correlati secondi che assumono sempre una minor "energia cinetica", fino a perdere tutta la loro consistenza trasformandosi in una singola informazione teorico-logica. Per quanto riguarda invece le operazioni entropiche possiamo associarle a delle trasformazioni di informazione tramite dei processi sempre più complessi, dove la possibilità di mutamento del concetto si sviluppa in un modo che dipende dal carattere logico dello stesso, in sostanza, si sviluppa una forma di "energia cinetica" del concetto che cambia di stato, e può sviluppare perfino, in un terzo stadio di conoscenza una interazione con le funzioni fisico-cerebreali del cervello, mentre ad un quinto stadio di conoscenza provocherebbero ancora altre reazioni questa volta considerate trascendentali come lo sviluppo delle potenzialità telepatiche, telecinesiche ecc.; con questo voglio introdurre una ipotesi che mette un limite per le ragioni sopra elencate ai livelli di conoscenza e ai relativi linguaggi o comportamenti possibili nelle attività logoniche della mente poiché ritengo che sia a questo punto ovvio pensare che il quinto livello di conoscenza è in perfetta antitesi con il quarto, come le trasformazioni entropiche lo sono se riferite a quelle entalpiche, come il linguaggio ordinato della conoscenza razionale sfocia in una visione sempre più confusa della interconnessione tra materia ed energia e al contrario la conoscenza “a-razionale” del quinto livello, con lo sviluppo del linguaggio comportamentale aggregato, porta ad una comprensione della singolarità dell'universo della pluralità di informazioni percepite, senza però necessariamente passare per il quarto livello di conoscenza. A questo punto possiamo notare un primo paradosso logico derivante dai livelli di conoscenza e dai linguaggi a loro legati che consiste nella irrazionalità del raggiungimento della comprensione della realtà, condotta con una metodologia razionale perché la realtà stessa si scompone in una miriade di dettagli che difficilmente si riescono a concepire in una forma logica di disegno e al contrario, partendo dalla “a-razionalità” di un quinto livello di comunicazione, anche senza avere il corrispettivo livello di conoscenza si poterebbe acquisire una concezione ordinata dell'universo, senza per questo passare attraverso la conoscenza dei particolari o delle interconnessioni che sono alla base della realtà delle cose,in altre parole è come dire che "capire" razionalmente la realtà è in antitesi con il "sentire". (fare riferimento a quanto riportato da un mio precedente articolo per quanto concerne tipologia di linguaggio e livelli di conoscenza: Clicca qui ) Forse,quanto sopra affermato ci può mettere a disagio, ancora una volta i paradossi incidono sulla comprensione delle cose e la nostra mente tende subito a dare dei valori positivi a determinati processi o concetti e negativi ad altri, per alcuni sembrerà negativo il concetto di "capire" (che tra l'altro va inteso come possibilità di interpretare), per altri sembrerà imbarazzante il "sentire",l a stessa cosa dicasi per quanto riguarda il concetto di entalpia e quello di entropia, dove entalpia può essere interpretata come ordine logico, mentre entropia come disordine, d'altro canto entalpia potrebbe anche apparire come rigidità di comunicazione costretta e instabilità, mentre entropia andrebbe intesa come massima possibilità di comunicazione e stabilità. A questo punto bisogna anche affermare che casualità e causalità sembrano essere in antitesi tra loro, ma tutti e due questi concetti regolano i processi di trasformazione energetica universale, sembrano esistere delle cause casuali che generano dei processi di trasformazione energetica, come dei processi causali generano la casualità degli eventi, vedasi concettualizzazioni nel campo della fisica quantistica. La scienza moderna ha le sue grosse difficoltà ad interpretare tramite il linguaggio matematico la stretta connessione che esiste fra questi due concetti, questo a riprova di quanto esposto sopra, ma ricordiamoci che i paradossi, le antinomie esistono soltanto perché noi possiamo affrontare queste tipologie informazionali soltanto da un punto di coordinate e con una determinata logica. Possiamo così entrare nel vivo dell'argomento centrale di questo lavoro iniziando a valutare delle ipotesi che sono frutto di anni di analisi teoriche sul funzionamento della nostra mente e pertanto sono limitate al mio campo di conoscenza in grado di reperire da chi più di me ha avuto la possibilità, per esperienze e mezzi impiegati, nello studio di un settore tanto affascinante quanto complesso, poiché espressione della riflessione delle attività mentali su se stesse. Questi due articoli di introduzione allo studio della logonica (la nonna dell’intelligenza artificiale, se consideriamo la cibernetica, sua madre, che appartiene alla famiglia delle scienze cognitive...) sono voluti per dare un'impronta e per rendere la possibilità di famigliarizzare meglio con un linguaggio ed una metodologia espressiva che può sembrare strana se applicata all'analisi di attività mentali, ma che è necessaria per produrre ed invogliare una visione diversa dalla solita concezione filosofica o psicologica delle suddette attività, per introdurre una ulteriore possibilità di passaggio da uno stadio di conoscenza e di comunicazione a stadi superiori per le facoltà che questi offrono a noi tutti di poter usufruire al meglio di quanto più bello abbiamo: la nostra mente. Noi siamo esseri teleologici per definizione ! Possiamo produrre macchine che ci imitano, ma attenzione a produrre esseri che ci assomigliano !
- Esempio pratico deep learng (DL) : le previsioni del ristorante Collatz, con Python e Pytorch (LSTM)
Collatz è… un ristoratore DOLO_MITICO, a detta sua… anche perché non è facile gestire un rifugio in alta montagna… dove il tempo varia anche più volte al giorno… e questo è un fattore importante per chi deve prevedere quanti clienti si fermeranno a mangiare … il mio amico Collatz, sin da piccolo ha dimostrato di avere una gran passione per la matematica e, da quando ha scoperto che gli elaboratori sono in grado di fare delle previsioni, perché si è imbattuto nel sito di intelligenzaartificialeitalia.net si è messo in mente di sfruttare il suo PC, anche per cercare di gestire anticipatamente ordini e personale. Già da qualche tempo aveva visto che nel web c’erano dei diagrammi che indicavano ad esempio l’andamento della pandemia, come questo: o similmente qualcosa che riguardava il numero dei passeggeri che, nel tempo avevano deciso di imbarcarsi con una determinata flotta, come quest’altro: oppure, qualche diagramma che riportava l’andamento dei titoli in borsa, come quest’ultimo: Fu così che si mise a riportare, giorno per giorno, il numero di clienti che dall’inizio della stagione, erano andati al suo “ristorante”, che in realtà rimaneva sempre un rifugio di montagna in balia del tempo… e annotando su di un file del tipo “Seq_work.csv” i dati, ottenne un grafico come questo: Così, si rese conto che era veramente difficile fare delle previsioni, ma decise comunque di proseguire nel suo intento, quello di addestrare una rete neurale, nella versione LSTM (Long-Short Term Memory), come aveva visto fare visitando il sito: intelligenzaartificialeitalia.net , utilizzando però python e pytorch. al posto di keras. Armato di buona volontà installò il software occorrente sul suo PC, mi sembra abbia utilizzato una GUI che si chiama VisualStudio Code, e che gli abbia fornito in seguito, l’estensione per il linguaggio python. Mi disse anche che aveva generato uno spazio di memoria particolare, appositamente per inserirci dentro tutto l’occorrente, utilizzando il modulo “venv”, di pyhton che, mi disse, è un modo efficace per ottenere ambienti python virtuali sui quali lavorare in santa pace!. Per fare questo, mi disse che nel suo PC, aveva installato una versione di Linux “Ubuntu” in quanto lo riteneva adeguato allo scopo. Mi informò anche che python aveva diverse librerie e moduli, che si rendevano necessari per lavorare sui modelli di intelligenza artificiale, e che si dovevano installare anche queste librerie., come indicato dal sito intelligenzaartificialeitalia.net Poi incominciò a descrivermi il software che aveva scritto per l’occasione, per prima cosa bisognava importare le librerie contenenti il necessario per portare a termine il progetto: #!/usr/bin/python3# import numpy as np import torch import torch.nn as nn from sklearn.preprocessing import MinMaxScaler import pandas as pd import matplotlib.pyplot as plt In particolare mi disse che il modulo “numpy”, è una libreria per il trattamento di vettori e matrici e che ovviamente contiene molte funzioni matematiche, molto utili per il trattamento dei dati numerici, mi disse che il modulo “pandas” non è una malattia autoimmune, ma una libreria per il trattamento dei dati scritti in modo tabellare e che in questo caso la avrebbe utilizzata per leggere i suo file “Seq_work.csv”, aggiunse che, per dare una forma grafica ai dati riportati avrebbe utilizzato le funzionlità di “matplotlib”. Aggiunse poi, che per questo esperimento pensava di effettuare una “normalizzazione” dei dati tra un valore minimo e un massimo, che però al riguardo, gli rimanevano forti perplessità, ma, strizzandomi l’occhio, mi disse sottovoce, tentar non nuoce e quindi, che per fare le dovute trasformazioni – riparametrazioni dei dati grezzi, avrebbe usato il modulo “sklearn.preprocessing”. Infine, disse che per questo esperimento avrebbe utilizzato una libreria famosa (scoperta in Facesbook) che si chiamava Torch, ma che non aveva nulla a che fare con i citomegalovirus, ma con array di numeri rettangolari multidimensionali omogenei, che denominava “tensori”, e che con questa libreria si potevano costruire delle reti neurali, proprio quelle che avrebbe utilizzato per l’elaborazione di previsione che a lui interessava. Per prima cosa, disse, bisogna caricare i dati, che aveva scritto in formato “.csv”(acronimo di comma-separated values), nel file “DataSeeq.csv” e per fare questo veniva appunto utilizzato il modulo “pandas”: #acquisizione dati pd.read_csv("DataSeq.csv") #salvare i dati dentro una variabile dataset = pd.read_csv("DataSeq.csv") mi disse che, per sua curiosità personale, voleva vedere a schermo almeno una idea del formato dei dati caricati con pandas nella variabile dataset. E per fare questo bastavano due linee di programma: print ("*****************") print(dataset.head()) print(dataset.shape) print('***********') Se tutto fosse andato a buon fine si dovrebbe ottenere un risultato simile a questo: come si vede l’output è un file ordinato che contiene 200 sequenze per 4 colonne: le sequenze sono le registrazioni dei dati relativi al numero dei clienti (n_cycle) e suddivisi ulteriormente in ( numero di clienti maschili: n_alpha e numero di clienti femminili: n_beta). Si noti la deformazione professionale di Collatz nella nomenclatura dei dati…. Per il momento tralasciamo i valori di n_alpha e n_beta, che magari potranno essere utilizzati in un secondo momento per giocare con una applicazione successiva di predizione…. In qualsiasi caso, potremmo identificare la tipologia dei dati riportati nelle colonne facendo stampare l’oggetto colonne con l’istruzione: print(dataset.columns) a cui corrisponderà un output del tipo: Index(['n_sequence', 'n_cycle', 'n_alpha', 'n_beta'], dtype='object') La libreria PyTorch “predilige” i dati di tipo “float”(in inglese floating point) o numerazione a virgola mobile, e quindi si dovrà eseguire una prima trasformazione con l’istruzione: all_data = dataset['n_cycle'].values.astype(float) assegnando alla variabile “all_data”, tutto il pacchetto contenuto in dataset, relativo a “n_cycle”, che per Collatz, sarebbe il numero di clienti che hanno usufruito delle prestazioni culinarie del “ristorante”, giorno per giorno, nei primi “200 giorni” dalla data di apertura stagionale, qualcosa di simile a questo: [ 3. 1. 7. 2. 5. 8. 16. 3. 19. 6. 14. 9. 9. 17. 17. 4. 12. 20. 20. 7. 7. 15. 15. 10. 23. 10. 111. 18. 18. 18. 106. 5. 26. 13. 13. 21. 21. 21. 34. 8. 109. 8. 29. 16. 16. 16. 104. 11. 24. 24. 24. 11. 11. 112. 112. 19. 32. 19. 32. 19. 19. 107. 107. 6. 27. 27. 27. 14. 14. 14. 102. 22. 115. 22. 14. 22. 22. 35. 35. 9. 22. 110. 110. 9. 9. 30. 30. 17. 30. 17. 92. 17. 17. 105. 105. 12. 118. 25. 25. 25. 25. 25. 87. 12. 38. 12. 100. 113. 113. 113. 69. 20. 12. 33. 33. 20. 20. 33. 33. 20. 95. 20. 46. 108. 108. 108. 46. 7. 121. 28. 28. 28. 28. 28. 41. 15. 90. 15. 41. 15. 15. 103. 103. 23. 116. 116. 116. 23. 23. 15. 15. 23. 36. 23. 85. 36. 36. 36. 54. 10. 98. 23. 23. 111. 111. 111. 67. 10. 49. 10. 124. 31. 31. 31. 80. 18. 31. 31. 31. 18. 18. 93. 93. 18. 44. 18. 44. 106. 106. 106. 44. 13. 119. 119. 119. 26. 26. 26. 119. 26.] se si utilizzasse una istruzione tipo questa: print(all_data) Ora, Collatz mi disse, per verificare l’affidabilità di predizione del modello che andremo a testare, una cosa da fare, molto importante, è fargli fare allenamento su un numero sufficiente di dati, che chiameremo “train_data” e poi testare il modello su un set di dati conosciuti, che chiameremo “test_data”. Dopo averci pensato sopra un po’, affermò che, visto che avevamo a disposizione 200 sequenze, avremmo potuto utilizzarne la gran parte per allenare il modello e fare il test su un numero piccolo di sequenze, e visto che si trattava di dati ottenuti con una metodologia temporale, considerando i tempi di approvvigionamento delle materie prime e del preavviso ai dipendenti, aveva deciso di utilizzare le prime 185 sequenze per allenare il modello e le ultime per fare il test. Per fare questo, disse bastavano poche istruzioni, le seguenti: #configurazione train data e test data test_data_size = 15 train_data = all_data[:-test_data_size] test_data = all_data[-test_data_size:] print ('--- len train and test data ---') print(len(train_data)) print(len(test_data)) print('-----test data ------') print(test_data) e da quanto sopra viene ottenuto un output come questo: --- len train and test data --- 185 15 -----test data ------ [ 18. 44. 106. 106. 106. 44. 13. 119. 119. 119. 26. 26. 26. 119. 26.] A questo punto, per fare in modo di ottenere dei dati normalizzati, sulla parte dei dati utilizzata per l’allenamento: il train_data, appunto, centrandoli in questo caso, sullo zero, ed ottenendo quindi dei valori compresi tra -1 e 1, si sarebbe usato il modulo “sklearn.preprocessing” , con la seguente modalità : #normalizzazione dati scaler = MinMaxScaler(feature_range=(-1, 1)) train_data_normalized = scaler.fit_transform(train_data .reshape(-1, 1)) print('--- stampa esempio dati normalizzati ---') print(train_data_normalized[:5]) print(train_data_normalized[-5:]) ottenendo un output per le prime cinque sequenze che dovrebbe risultare simile a questo: --- stampa esempio dati normalizzati --- [[-0.96747967] [-1. ] [-0.90243902] [-0.98373984] [-0.93495935]] mentre per le ultime sequenze, l’output sarà: [[-0.72357724] [ 0.49593496] [ 0.49593496] [-0.72357724] [-0.30081301]] ed è forse per questo motivo che il mio amico Collatz, mi espresse la sua perplessità! (si riferiva probabilmente al fatto che nella ultima sequenza comparivano dei numeri negativi...) In qualsiasi caso, decise di continuare con l’esperimento, e di passare i dati al tesnore di PyTotch per il train_data normalizzato, con le seguenti istruzioni, che ne riportavano anche il risultato, se non altro per vedere la differenza di gestione degli oggetti: # passaggio a tnsore per train data train_data_normalized = torch.FloatTensor(train_data_normalized).view(-1) print('-----torch.FloatTensor--------') print (train_data_normalized) print('---------------------') l’output in questo caso dovrebbe essere questo: -----torch.FloatTensor-------- tensor([-0.9675, -1.0000, -0.9024, -0.9837, -0.9350, -0.8862, -0.7561, -0.9675, -0.7073, -0.9187, -0.7886, -0.8699, -0.8699, -0.7398, -0.7398, -0.9512, -0.8211, -0.6911, -0.6911, -0.9024, -0.9024, -0.7724, -0.7724, -0.8537, -0.6423, -0.8537, 0.7886, -0.7236, -0.7236, -0.7236, 0.7073, -0.9350, -0.5935, -0.8049, -0.8049, -0.6748, -0.6748, -0.6748, -0.4634, -0.8862, 0.7561, -0.8862, -0.5447, -0.7561, -0.7561, -0.7561, 0.6748, -0.8374, -0.6260, -0.6260, -0.6260, -0.8374, -0.8374, 0.8049, 0.8049, -0.7073, -0.4959, -0.7073, -0.4959, -0.7073, -0.7073, 0.7236, 0.7236, -0.9187, -0.5772, -0.5772, -0.5772, -0.7886, -0.7886, -0.7886, 0.6423, -0.6585, 0.8537, -0.6585, -0.7886, -0.6585, -0.6585, -0.4472, -0.4472, -0.8699, -0.6585, 0.7724, 0.7724, -0.8699, -0.8699, -0.5285, -0.5285, -0.7398, -0.5285, -0.7398, 0.4797, -0.7398, -0.7398, 0.6911, 0.6911, -0.8211, 0.9024, -0.6098, -0.6098, -0.6098, -0.6098, -0.6098, 0.3984, -0.8211, -0.3984, -0.8211, 0.6098, 0.8211, 0.8211, 0.8211, 0.1057, -0.6911, -0.8211, -0.4797, -0.4797, -0.6911, -0.6911, -0.4797, -0.4797, -0.6911, 0.5285, -0.6911, -0.2683, 0.7398, 0.7398, 0.7398, -0.2683, -0.9024, 0.9512, -0.5610, -0.5610, -0.5610, -0.5610, -0.5610, -0.3496, -0.7724, 0.4472, -0.7724, -0.3496, -0.7724, -0.7724, 0.6585, 0.6585, -0.6423, 0.8699, 0.8699, 0.8699, -0.6423, -0.6423, -0.7724, -0.7724, -0.6423, -0.4309, -0.6423, 0.3659, -0.4309, -0.4309, -0.4309, -0.1382, -0.8537, 0.5772, -0.6423, -0.6423, 0.7886, 0.7886, 0.7886, 0.0732, -0.8537, -0.2195, -0.8537, 1.0000, -0.5122, -0.5122, -0.5122, 0.2846, -0.7236, -0.5122, -0.5122, -0.5122, -0.7236, -0.7236, 0.4959, 0.4959, -0.7236, -0.3008]) --------------------- che, come si denota, gli elementi della “lista”, contenuta nella “tupla”, vengono troncati alla quarta cifra dopo la virgola, rispetto a quelli normalizzati in precedenza che avevano otto decimali. Collatz, mi disse che c’era un altro passaggio delicato per far effettuare l’allenamento alla macchina sul train_data, ma siccome era solo un esperimento, aveva deciso di dividere il blocco dei dati di training in modo simile alla quantità delle sequenze di test, cioè in blocchi da 15 sequenze. Per fare questo mi disse, utilizzerò una particolarità di elaborazione dei dati di python la “def”, con la quale ingloberò delle istruzioni che saranno in grado di elaborare l’operazione di suddivisione dei dati desiderata: # divisione tuple di numeri train_window = 15 # gestore di sequenza def create_inout_sequences(input_data, tw): inout_seq = [] L = len(input_data) for i in range(L-tw): train_seq = input_data[i:i+tw] train_label = input_data[i+tw:i+tw+1] inout_seq.append((train_seq ,train_label)) return inout_seq train_inout_seq = create_inout_sequences(train_data_normalized, train_window) print('*** tuple di inout sequence esempio (2) *******') print(train_inout_seq[:2]) print('*****************') Per prima cosa, dimensionò la variabile train_window a 15 (il valore a cui far corrispondere la lunghezza delle tuple) e posi scrisse le istruzioni per la costruzione della funzione “create_inout_sequences”, che prende i dati dalla istruzione train_inout_seq = create_inout_sequences(train_data_normalized, train_window) dove passerà i dati alla funzione in questo modo: input_data = train_data_normalized e tw = train_window) producendo un output di esempio le prime due: *** tuple di inout sequence esempio (2) ******* [(tensor([-0.9675, -1.0000, -0.9024, -0.9837, -0.9350, -0.8862, -0.7561, -0.9675, -0.7073, -0.9187, -0.7886, -0.8699, -0.8699, -0.7398, -0.7398]), tensor([-0.9512])), (tensor([-1.0000, -0.9024, -0.9837, -0.9350, -0.8862, -0.7561, -0.9675, -0.7073, -0.9187, -0.7886, -0.8699, -0.8699, -0.7398, -0.7398, -0.9512]), tensor([-0.8211]))] ***************** dove, mi fece notare, che il sedicesimo elemento rappresentava l’etichetta della prima tupla, mentre la seconda tupla inizia dal secondo elemento, termina al sedicesimo e la sua etichetta è il diciasettesimo… e cosi via… Questa cosa mi ha fatto meditare! Poi, con un grande sorriso, Collatz mi disse “E adesso facciamo un lavoro di Classe!”. E mi fece leggere le seguenti istruzioni: class LSTM(nn.Module): def __init__(self, input_size=1, hidden_layer_size=100, output_size=1): super().__init__() self.hidden_layer_size = hidden_layer_size self.lstm = nn.LSTM(input_size, hidden_layer_size) self.linear = nn.Linear(hidden_layer_size, output_size) self.hidden_cell = (torch.zeros(1,1,self.hidden_layer_size), torch.zeros(1,1,self.hidden_layer_size)) def forward(self, input_seq): lstm_out, self.hidden_cell = self.lstm(input_seq.view(len(input_seq) ,1, -1), self.hidden_cell) predictions = self.linear(lstm_out.view(len(input_seq), -1)) return predictions[-1] al ché, li per li, dissi soltanto “WOW”… e pensai… la cosa si fa complicata! Specialmente dopo aver letto qualche riga dal sito della documentazione di pytorch: https://pytorch.org/docs/stable/generated/torch.nn.LSTM.html Ero rimasto particolarmente sbalordito da cosa potesse significare la seguente concettualizzazione: Comunque, intuitivamente, pensai: c’è in primo layer che riceve un dato alla volta, lo trasferisce ad un layer composto da 100 neuroni, il quale a sua volta elabora i dati e il risultato lo trasferisce ad un layer di output che ha un solo elemento che conterrà di volta in volta il risultato ottimizzato in relazione a delle sequenze di calcolo elaborate ricorsivamente in relazione ad uno scostamento di confronto tra il valore ottenuto e il valore di controllo. Ma il mio amico Collatz, rincarò la dose, dicendomi, adesso che abbiamo lo scheletro del cervello, mettiamoci dentro le idee e mi fece leggere le seguenti istruzioni: model = LSTM() loss_function = nn.MSELoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) #------ print('----- modello ----') print(model) Mi disse, Python è un linguaggio che genera oggetti e LSTM è soltanto uno degli oggetti possibili che si possono generare con PyTorch, che in questo caso lo chiameremo semplicemente ”model”. Ora, mi chiese Collatz, che cosa dovrà fare il “model”? Io ci pensai un po’ e poi risposi, dovrà “imparare” in qualche modo a selezionare i dati più simili al “target”! Ovvero, visto che il risultato corretto di ogni operazione nel modello è già predeterminato, confrontiamo questo dato con le operazioni che la rete neurale mi fornisce come risultato “temporale”, ne identifichiamo in qualche modo l’errore e di volta in volta andiamo a correggere il “tiro”. In altri termini, mi disse Collatz, utilizzeremo una serie di formule che, da una parte andranno a calcolare lo scostamento statistico dal target, per esempio utilizzando una funzione che si potrebbe definire “perdita di entropia incrociata”, e dall’altra, riporteremo in ingresso un valore di correzione tramite ad esempio una riparametrazione sigmoidea! Io lo guardai e gli dissi… “Ecco… si!”. Lui sorrise e mi disse: proprio quello che è condensato in quelle di righe di programma di configurazione del “model”, che se vai a vedere l’output è semplicemente descritto così: ----- modello ---- LSTM( (lstm): LSTM(1, 100) (linear): Linear(in_features=100, out_features=1, bias=True) Apperò, dissi io, alla faccia della sintesi! E chiesi cosa significa il termine “bias”? Collaz mi rispose: quello è un modo che viene fornito alla rete neurale per “farsi un opinione”! Lo guardai, sorrisi e gli dissi: anche l’intelligenza artificiale allora si basa su dei “pregiudizi”! Si, si, rispose lui, ma facciamolo lavorare! E mi fece leggere le seguenti righe di programma: # fase di addestramento epochs = 150 for i in range(epochs): for seq, labels in train_inout_seq: optimizer.zero_grad() model.hidden_cell = (torch.zeros(1, 1, model.hidden_layer_size), torch.zeros(1, 1, model.hidden_layer_size)) y_pred = model(seq) single_loss = loss_function(y_pred, labels) single_loss.backward() optimizer.step() if i%25 == 1: print(f'epoch: {i:3} loss: {single_loss.item():10.8f}') print ('°°°°°°°°°°°°°°°°°') print(f'epoch: {i:3} loss: {single_loss.item():10.10f}') print('°°°°°°°°°°°°°°°°°°°') Spiegandomi a grandi linee che voleva cercare di far fare la procedura di allenamento per un numero limitato di sequenze, tanto per provare, limitandola a 150. Quindi per il numero di cicli prefissato, verrà preimpostato il gradiente a zero e verrà generato un tensore che conterrà dei valori scalari in relazione al calcolo dello scostamento per tutte le sequenze di “epochs” e per tutti i valori della tupla in esame, il risultato sarà riposto in una variabile e utilizzato ottimizzandolo, per la “back propagation”. Per farci un idea, mi disse Collatz, si dovrebbe ottenere un risultato simile a questo ogni 25 sequenze: epoch: 1 loss: 0.00829106 epoch: 26 loss: 0.00000873 epoch: 51 loss: 0.01431556 epoch: 76 loss: 0.02613759 epoch: 101 loss: 0.02043977 epoch: 126 loss: 0.00130326 (nota che la stampa dei dati di loss è limitata a 8 decimali) in pratica, per ogni ciclo, l’output dovrebbe essere una cosa analoga questa (l’ultimo risultato riportato con dieci cifre significative dopo la virgola): °°°°°°°°°°°°°°°°° epoch: 149 loss: 0.0008416197 °°°°°°°°°°°°°°°°°°° Ora, mi disse Collatz, la nostra rete dovrebbe avere una opinione sull’andamento dei dati e a questo punto possiamo passare al test di predizione: #-------------- fut_pred = 15 test_inputs = train_data_normalized[-train_window:].tolist() print(test_inputs) #----------------------- Per prima cosa forniamo la dimensione del test (le ultimi quindici variabili), prendiamone i dati normalizzati e vediamo a cosa corrispondono: [1.0, -0.5121951103210449, -0.5121951103210449, -0.5121951103210449, 0.28455284237861633, -0.7235772609710693, -0.5121951103210449, -0.5121951103210449, -0.5121951103210449, -0.7235772609710693, -0.7235772609710693, 0.49593496322631836, 0.49593496322631836, -0.7235772609710693, -0.3008130192756653] Questa lista contiene appunto i dati normalizzati da passare alla rete neurale addestrata per effettuare le previsioni, e il processo avverrà con la seguente modalità: model.eval() for i in range(fut_pred): seq = torch.FloatTensor(test_inputs[-train_window:]) with torch.no_grad(): model.hidden = (torch.zeros(1, 1, model.hidden_layer_size), torch.zeros(1, 1, model.hidden_layer_size)) test_inputs.append(model(seq).item()) #------------ print('--- test input ---') print(test_inputs[fut_pred:]) #-------------------- Verrà definito, nel “dominio dei nomi” il modello di valutazione e tramite un ciclo “for” operante nella lunghezza delle sequenze determinate dalla variabile “fut_pred”, All'interno del ciclo for questi 15 elementi verranno utilizzati per generare il valori di previsione sul primo elemento del set di test, ovvero l'elemento numero 185, Il valore di previsione verrà quindi aggiunto a test_imputs, mediante la funzione “append” . Durante la seconda iterazione, di nuovo gli ultimi 15 elementi verranno utilizzati come input e verrà effettuata una nuova previsione che verrà quindi nuovamente aggiunta a test_inputs e cosi via, il ciclo for verrà eseguito per 15 volte, alla fine del ciclo il “test_inputs”, conterrà 15 elementi normalizzati: --- test input --- [-0.5246923565864563, -0.5111703276634216, -0.6970333456993103, -0.46873635053634644, 0.34659910202026367, 0.36807361245155334, -0.5615038275718689, 0.14165163040161133, -0.3299140930175781, -0.17069603502750397, -0.24251092970371246, -0.20503830909729004, -0.02129334583878517, -0.48219528794288635, 0.041329968720674515] Questi valori, andranno dunque riportati alla configurazione originaria, mediante l’istruzione complementare a quella di normalizzazione: #-------------------- actual_predictions = scaler.inverse_transform(np.array(test_inputs[train_window:] ).reshape(-1, 1)) print ('***** ACTUAL PREDICTIONS') print(actual_predictions) #-------------------------- che darà un risultato simile a questo: ***** ACTUAL PREDICTIONS [[30.23142007] [31.06302485] [19.63244924] [33.67271444] [83.81584477] [85.13652717] [27.9675146 ] [71.21157527] [42.21028328] [52.00219385] [47.58557782] [49.89014399] [61.19045923] [32.84498979] [65.04179308]] Ovviamene il risultato non sarà riportato in numeri interi, ma poco importa (se si volessero riportare i valori in numeri interi c’è una apposita istruzione di python…) A questo punto a Collatz gli si illuminarono gli occhi e disse: finalmente adesso possiamo far disegnare i grafi con le elaborazioni fatte con il modulo di “matplotlib”, aggiunse una ultima istruzione di programma per configurare gli output, e mi fece leggere queste ultime righe in python: prima di stampare i grafici: x = np.arange(185, 200, 1) # grafi dati #-------vista particolare per previsione -------- plt.title('final sequences vs predictions') plt.ylabel('final cycles') plt.grid(True) plt.autoscale(axis='x', tight=True) plt.plot(dataset['n_cycle'][-train_window:]) plt.plot(x,actual_predictions) plt.legend() plt.savefig("Seq_predict.png") plt.show() Scegliemmo di visualizzare il confronto tra i dati del set di test e quelli delle previsioni ottenendo alcuni esempi: ottenuto con una configurazione impostata: fig_size = plt.rcParams["figure.figsize"] fig_size[0] = 15 fig_size[1] = 5 plt.rcParams["figure.figsize"] = fig_size ottenuto senza la configurazione impostata, con la configurazione delle ultime righe del programma. Fu allora che io e Collatz ci guardammo negli occhi e con una risata dicemmo: Se questi sono i risultati, allora è meglio prevedere sempre che i clienti abbiano tanta fame, onde programmare correttamente gli acquisti della materia prima e avvisare il personale che a volte ci sarà del super lavoro…. Oppure dovremmo ripensare meglio i criteri con cui abbiamo istruito la nostra rete neurale! p.s. Ringrazio il mio amico “matematico” Umberto Cibien che ha destato la mia curiosità per la : “Congettura di Collatz” https://umbertocibien.org/math/2021/01/28/la-congettura-di-collatz/ Vuoi Scaricare il progetto Gratis ? Accedi o registrati al portale Clicca qui e scarica il progetto Grazie mille per la lettura
- Case study sull'apprendimento automatico per esplorare il potere dell' intelligenza artificiale (IA)
Case study sull'apprendimento automatico: potenza che va oltre ogni immaginazione! Il machine learning è pubblicizzato come la "prossima grande novità" e viene messo in pratica dalla maggior parte delle aziende. Ha anche raggiunto un ruolo di primo piano in aree dell'informatica come il recupero delle informazioni, la coerenza dei database e il rilevamento dello spam per far parte delle aziende. Di seguito sono riportati alcuni casi di studio del mondo reale su applicazioni di machine learning per risolvere problemi reali. Abbiamo appositamente selezionato aziende diverse dalle solite (come Google, Amazon, Facebook, ecc... ). Così da rendere più concreto il caso di studio e vedere come le nuove tecnologie rivoluzionano anche aziende con più di 100 anni di vendite alle spalle. 1) Case study sull'apprendimento automatico su Dell La multinazionale leader nella tecnologia, Dell, fornisce a persone e comunità di tutto il mondo software e hardware di qualità superiore. Poiché i dati sono una parte fondamentale del disco rigido di Dell, il loro team di marketing aveva bisogno di una soluzione basata sui dati che aumentasse i tassi di risposta e mostrasse il motivo per cui alcune parole e frasi hanno prestazioni migliori di altre. Dell ha collaborato con Persado, la tecnologia leader a livello mondiale nell'intelligenza artificiale e nella creatività di marketing generata dal ML, per sfruttare il potere delle parole nel proprio canale di posta elettronica e raccogliere analisi basate sui dati per ciascuno dei loro segmenti di pubblico chiave. Come risultato di questa partnership, Dell ha notato un aumento medio del 50% del CTR e un aumento medio del 46% delle risposte dei clienti . Ha anche generato un aumento medio del 22% delle visite alle pagine e un aumento medio del 77% dei carrelli aggiuntivi . Entusiasta del loro successo e delle conoscenze acquisite con la posta elettronica, Dell non vedeva l'ora di migliorare l'intera piattaforma di marketing con Persado. Dell ora utilizza l'apprendimento automatico per migliorare la copia di marketing delle e-mail promozionali e del ciclo di vita, annunci Facebook, banner display, posta diretta e persino contenuti radio. 2) Case study sull'apprendimento automatico su Sky Sky UK trasforma le esperienze dei clienti con l'aiuto dell'apprendimento automatico e dell'intelligenza artificiale tramite Adobe Sensei. “Abbiamo 22,5 milioni di clienti molto diversi. Anche il tentativo di dividere le persone in base al loro genere televisivo preferito può portare a segmenti piuttosto ampi " ha affermato il responsabile delle decisioni digitali e dell'analisi, Sky UK. Questo sarà: Crea segmenti iper-focalizzati per coinvolgere i clienti. Usa l'apprendimento automatico per fornire intelligenza utilizzabile. Migliora le relazioni con i clienti. Applica le nozioni di intelligenza artificiale su tutti i canali per capire cosa conta per i clienti. L'azienda è stata in grado di dare un senso ai suoi grandi volumi di informazioni sui clienti con l'aiuto di framework di apprendimento automatico per consigliarli con prodotti e servizi che risuonavano di più con ogni cliente. "Le persone pensano al machine learning come a uno strumento per fornire esperienze rigorosamente definite e molto robotiche, ma in realtà è il contrario. Con Adobe Sensei, stiamo tracciando una linea che collega la customer intelligence e le esperienze personalizzate che sono preziose e appropriate ", afferma McLaughlin. 3. Case study sull'apprendimento automatico su Trendyol Trendyol, una delle principali società di e-commerce con sede in Turchia, è stata minacciata da concorrenti globali come Adidas e ASOS, in particolare per l'abbigliamento sportivo. Per aiutare a fidelizzare i clienti e migliorare il suo sistema di posta elettronica, ha collaborato con il fornitore Liveclicker, specializzato nella personalizzazione in tempo reale. Trendyol ha utilizzato l'apprendimento automatico e l'intelligenza artificiale per creare diverse campagne di marketing altamente personalizzate. Ha anche aiutato a distinguere quali messaggi sarebbero stati più rilevanti per i clienti. Ha anche creato un'offerta per una maglia da calcio che impone il nome del destinatario sul retro per aumentare la personalizzazione. Utilizzando in modo creativo la personalizzazione uno a uno, i tassi di apertura, le percentuali di clic, le conversioni e le vendite del rivenditore hanno raggiunto i massimi storici. Ha generato un aumento del 30% delle percentuali di clic per Trendyol, una crescita del 62% dei tassi di risposta e un impressionante aumento del 130% dei tassi di conversione . Ora ha anche impiegato solide funzioni di marketing come l'utilizzo dei social media, app per dispositivi mobili, blog SEO, approvazione di celebrità, ecc. Per raggiungere la sua base di clienti. BONUS ) Case study sull'apprendimento automatico su Harley Davidson Il luogo in cui ci troviamo oggi è quello in cui è difficile sfondare il marketing tradizionale. Per un'azienda come Harley Davidson NYC, Albert (un robot alimentato dall'intelligenza artificiale) ha molto fascino. Alimentati dall'apprendimento automatico e dall'intelligenza artificiale , i robot scrivono notizie, lavorano negli hotel, gestiscono il traffico e gestiscono persino McDonald's. Albert può essere applicato a vari canali di marketing, inclusi social media ed e-mail. Il software prevede quali consumatori hanno maggiori probabilità di convertire e modifica da solo le copie creative personali. Harley Davidson è l'unico marchio a utilizzare Albert. L'azienda ha analizzato i dati dei clienti per determinare il comportamento dei clienti precedenti le cui azioni sono state positive in termini di acquisto e di spesa superiore al tempo medio di navigazione sul sito web. Con queste informazioni, Albert ha creato segmenti di clienti e ha ampliato le campagne di test di conseguenza. I risultati mostrano che Harley Davidson ha aumentato le sue vendite del 40% con l'uso di Albert. Il marchio ha anche avuto un aumento del 2.930% dei lead , con il 50% di quelli da "sosia" ad alto tasso di conversione identificati dall'intelligenza artificiale e dal machine learning. Conclusioni Questi casi di studio sull'apprendimento automatico sopra elencati sarebbero stati quasi impossibili anche solo da pensare fino a dieci anni fa, eppure il ritmo con cui stanno avanzando scienziati e ricercatori è a dir poco sorprendente. Grazie mille per la lettura, condividi l'articolo se pensi che l' I.A. sia fondamentale nelle aziende oggi giorno.
- Intelligenza artificiale per la pubblicità online, le migliori piattaforme da usare nell'Advertising
intelligenza artificiale (AI) è l' innovazione più cruciale che plasma il futuro di diversi settori a livello globale e la pubblicità è una di queste. Il vantaggio immediato della pubblicità basata sull'intelligenza artificiale è che richiede tutto il duro lavoro degli inserzionisti, a partire dal targeting, dall'allocazione del budget e dall'aumento delle prestazioni, e li libera di prestare attenzione ai compiti strategici. Elaborando più dati più velocemente della mente umana, la pubblicità AI migliora la nostra capacità di identificare i migliori interessi possibili, parole chiave, affinità personalizzate e segmenti di targeting per creare i piani di targeting perfetti e fornire pubblicità migliore al cliente giusto. La pubblicità basata sull'intelligenza artificiale riduce i costi degli annunci poiché sposta in modo efficiente il budget verso campagne pubblicitarie più efficaci in tempo reale, mettendo in pausa quelle meno efficaci. Inoltre, fornisce feedback in tempo reale, che possono essere trasformati in aggiustamenti della campagna attuabili, come miglioramenti in volo all'allocazione delle offerte e del budget. Prima di esaminare alcuni dei migliori strumenti di intelligenza artificiale per la pubblicità, riassumeremo rapidamente i vantaggi dell'intelligenza artificiale nella pubblicità. Vantaggi dell'IA nella pubblicità L'intelligenza artificiale migliora notevolmente le prestazioni pubblicitarie grazie a una migliore personalizzazione in base agli interessi, al contesto, alle preferenze, alla posizione e ai dati demografici dei clienti. L'intelligenza artificiale consente agli inserzionisti di comprendere il comportamento dei consumatori per determinare il messaggio migliore per il suo tempo e luogo. Ottimizza gli annunci in modo che vengano mostrati solo agli utenti pertinenti, fornendo risultati ed esperienza utente migliori, poiché vengono visualizzati meno annunci a persone che non sono interessati a loro. L'intelligenza artificiale offre un'analisi più granulare rispetto ai sistemi basati su regole per la segmentazione, la selezione dei canali e l'ottimizzazione della messaggistica. L'intelligenza artificiale può analizzare miliardi di punti dati ogni giorno, in modo da poter scoprire tendenze statisticamente significative nel modo in cui i consumatori si comportano e quali strategie saranno più efficaci. Riduce i costi agendo su quei dati più velocemente e automaticamente. Inoltre, riduce il costo in termini di tempo per la pianificazione e la profilazione degli obiettivi. Aumenta la privacy dei dati degli utenti in modo da poter gestire e abbinare più flussi di dati. Inoltre, l'intelligenza artificiale migliora il livello di automazione nella pubblicità. I migliori strumenti pubblicitari AI sul mercato 1. Smartly Smartly è una piattaforma di intelligenza artificiale e apprendimento automatico che aiuta gli inserzionisti ad automatizzare e ottimizzare le loro campagne su Facebook, Instagram e Pinterest. Lo strumento non solo automatizza la produzione e l'acquisto di annunci, ma consente ai team creativi e di performance di collaborare, produrre, testare e lanciare gli annunci con le migliori prestazioni. Ha un'interfaccia pulita e facile da usare insieme a fantastici modelli di creatività, strumenti di iterazione, libreria, trigger basati sull'azione e altri strumenti per l'individuazione automatica, campagne di retargeting, test A / B, ecc. 2. Revealbot Revealbot è uno strumento avanzato di automazione degli annunci basato su AI per Facebook, Google e Snapchat. Completamente integrato nello strumento di chat aziendale Slack, aiuta gli inserzionisti a creare dozzine di varianti dell'annuncio e a gestirle automaticamente utilizzando regole predefinite. Revealbot monitora automaticamente ROAS, CPA e altre metriche dei pixel di Facebook e ottimizza i tuoi annunci in base a queste regole personalizzate. È facile mettere in pausa o potenziare gli annunci, regolare i budget e le offerte ogni 15 minuti. Puoi ricevere avvisi via e-mail o Slack, quando viene attivata una regola o quando viene raggiunto un benchmark specifico. Supporta Google Analytics, Google AdWords, Mailchimp, ecc. 3. Zalster Zalster è un altro strumento di automazione basato sull'intelligenza artificiale per le campagne pubblicitarie. I suoi algoritmi di intelligenza artificiale possono ottimizzare le offerte, i budget, i gruppi target e gli annunci dell'inserzionista e fornire i migliori risultati possibili. Riassegna il tuo tempo verso una pianificazione più strategica e la creazione di campagne, mentre l'automazione basata sui dati si prende cura delle tue prestazioni quotidiane, 24 ore su 24. Adatto per siti di e-commerce, lo strumento ha una dashboard completa che visualizza tutte le metriche che devi conoscere. 4. ReFUEL4 ReFUEL4 è un altro strumento basato sull'intelligenza artificiale con tutte le funzionalità necessarie di cui ogni inserzionista ha bisogno per visualizzare annunci su Google, Youtube, Facebook, Snapchat e Instagram. ReFUEL4 utilizza l'intelligenza artificiale per prevedere il rendimento della campagna e sostituisce automaticamente l'annuncio con un nuovo annuncio. Lo strumento utilizza una vasta rete di liberi professionisti specializzati in creatività pubblicitarie. Le sue funzionalità di analisi predittiva utilizzano algoritmi di visione artificiale per prevedere il successo dell'annuncio in base al design, come lo stile o il colore, i dati del pubblico di destinazione e i dati storici di annunci simili. Gli algoritmi hanno una precisione dell'87% e forniscono risultati più precisi nei test A / B. 5. Aitarget Aitarget utilizza l'intelligenza artificiale per analizzare, ottimizzare e ridimensionare le campagne pubblicitarie su Facebook, Instagram e Snapchat. Consente agli inserzionisti di gestire offerte, budget e campagne complesse che coinvolgono numerosi creativi, località e segmenti di pubblico. Aitarget ti consente di eseguire campagne pubblicitarie in quattro semplici passaggi: scegli l'obiettivo della campagna, imposta un budget, seleziona le impostazioni di targeting e carica le tue creatività. È anche facile costruire strategie di automazione con regole flessibili di qualsiasi complessità, impostare condizioni logiche con operatori e aggiungere tag alle regole per creare regole aggiuntive. Puoi gestire i tuoi annunci automaticamente, tenere sotto controllo la tua offerta pubblicitaria e il budget e ridimensionare le tue campagne. 6. Trapica Trapica è una piattaforma di targeting e ottimizzazione degli annunci basata sull'intelligenza artificiale per Facebook, Instagram, AdWords, Twitter e LinkedIn. Uno degli strumenti più ricercati, Trapica è progettato per identificare quale annuncio funziona e quale no automaticamente. Può analizzare migliaia di eventi di conversione in tempo reale dalle campagne e trovare i gruppi target più adatti. Trapica fornisce anche altre funzionalità come previsione dei ricavi, analisi dettagliata del gruppo target, modelli di attribuzione basati sui dati dettagliati, campagne multipiattaforma, ecc. Grazie mille per la lettura condividi l'articolo se l hai trovato utile.
- A.I.(mè) Spunto di riflessione sull' Intelligenza Artificiale ( I.A. ) ed il nostro futuro...
Dio ci creò a sua immagine. Il Padre è buono, mansueto, pieno di amore. Eppure non tutti gli esseri umani gli assomigliano, anzi nel mondo ahimè, spesso regna il maligno. L’intelligenza artificiale affascina ma allo stesso tempo preoccupa. Preoccupa semplicemente perché si ripone poca fiducia nell’essere umano che l'ha ideata e poi creata. Io, non credo che quest ultimo avesse buone intenzioni quando ideò l'I.A. Questo è poco ma sicuro. La curiosità, insieme alla creatività, risiede nel DNA umano. Siamo stati creati per creare non c’è dubbio e l’evoluzione è parte del piano divino. Avanziamo a gran ritmo verso una meta senza ritorno. Al giorno d’oggi, chi si pone delle domande diventa automaticamente complottista. Per ora, mettiamo da parte i cyborg e focalizziamoci sul presente. Covid-19, disoccupazione, distanziamento sociale, sono solo alcuni aspetti attuali che ci riguardano tutti. I tempi sono cambiati e ci ritroviamo nel bel mezzo del vortice: “Siamo solo dei numeri!”. Quest’affermazione ci accompagna da sempre ed oggi è più reale che mai. Siamo dei codici a barre fatti di carne ed ossa. Ci poniamo tutti le stesse domande: "Una macchina possederà mai una coscienza? Un robot potrà mai provare quello che proviamo? Riuscirà mai a consolarci, consigliarci, coccolarci?" E se dovessimo affidare le nostre vite a delle macchine senza cuore nè coscienza riusciremmo a fidarci ciecamente di loro, quando in fondo non ci fidiamo nemmeno di noi stessi? Le macchine ci sostituiranno nel mondo del lavoro. Ci assisteranno, diventeranno i nostri accompagnatori. Credo fortemente che ad un certo punto non riusciremo più a distinguere la macchina dall'uomo e che l’uomo si fiderà più della macchina che delle persone. Triste fantascienza? Solo il tempo ce lo dirà. L’augurio è quello di creare macchine così sofisticate al punto tale da diventare un esempio di educazione e civiltà. Il fatto che puntiamo sugli umanoidi per assistere o sostituire gli umani dovrebbe essere un campanello d'allarme, proprio come la colonizzazione su Marte. Anziché preservare il creato, lo distruggiamo. Anziché collaborare per il meglio di tutti, progettiamo un piano di fuga verso un altro pianeta, già morto. Le assurdità Made in Mondo, concedetemi il gioco di parole. Chip impiantati nel cervello per prevenire e curare malattie, secondo me passi da gigante inevitabili. Ammesso ci fossero secondi fini? Oggi più che mai, siamo consapevoli del fatto che la mente, ci mente. Siamo stati programmati a non ragionare più in modo autonomo quindi è lecito pensare che così facendo ci limiteranno in modo esponenziale, è in atto un cambiamento, agli occhi di tutti. La tecnologia avanza a tempi record. Esistono tecnologie avanzate non alla portata dell'uomo comune, il che secondo me è un piccolo indizio di malafede. I nostri figli crescono attaccati a degli schermi, gli hanno negato l’infanzia, soffrono di ansia e depressione già alla loro dolce età. ( Ricordandoci che proprio come le medicine le tecnologie sono nostre alleate ma un uso eccessivo o non controllato in giovane età può portare delle conseguenze negative ) Ed è questa la triste realtà? Muteremo in esseri opachi, senza sogni, senza aspettative, senza emozioni nè ambizioni? Spero di no ma se mi guardo intorno, posso già al giorno d’oggi notare qualche segnale. L’intelligenza artificiale dovrebbe essere un punto di svolta, di ispirazione, di speranza non un punto dove fermarsi e smettere di imparare . Oggi invece rappresenta dubbi, paure, forse un futuro nemico. Il fatto che alcuni umanoidi abbiano inspiegabilmente sviluppato in completa autonomia un modo per comunicare tra di loro è a dir poco allarmante e affascinante. Facile dire: “…nel caso ci volessero attaccare stacchiamo la spina” . Quante volte vi è capitato di pensare ad una cosa e come d’incanto ve lo trovate come risposta da Google o Siri sul cellulare? Che siamo connessi l’uno con l’altro attraverso l’universo è ovvio, affascinante. Il fatto che siamo diventati una cosa sola con la tecnologia, un po' meno, ma questo è un mio pensiero. In un mondo dove l’etica, il rispetto reciproco e l’amore non sono di casa, come riusciremo a programmare una macchina con sani principi? Affidiamo le nostre vite nelle mani di esperti, geni e visionari, con la speranza che abbiano il cuore al posto giusto. Seguimi su Instagram per altri contenuti Grazie mille per la lettura, commenta l'articolo con il tuo punto di vista e condividilo con i tuoi amici, colleghi o parenti per sapere se avete lo stesso punto di vista.
- RAIT88 e Inspired: una sinergia Nazionale per lo sviluppo del Machine Learning
Una sinergia tra due realtà imprenditoriali italiane in grande ascesa e fortemente orientate all’innovazione e alla ricerca: è quella siglata pochi giorni fa da Rait88 ed Inspired. "Abbiamo annunciato il rafforzamento ulteriore di una importante collaborazione in ambito tecnologico - dichiara Alessio Calabrò, CEO di RAIT88. Una sinergia che dimostra l’importanza crescente dell’implementazione di tecnologie avanzate a supporto di analisi dei dati approfondite e soluzioni software basate sull’Intelligenza Artificiale, Machine Learning, Internet of Things e Blockchain nel settore della Difesa, Health e Civile”. “Le tecnologie digitali hanno un ruolo centrale, in particolare l’Artificial Intelligence, il Machine Learning e la Blockchain – spiega il Dott. Alessandro Fidenzi, Chief Global Strategist di RAIT88 - che permettono di prevedere in modo più accurato il fabbisogno sistemico-strategico aziendale supportando e orientando un procurement sempre più efficace ed efficiente. Questa sinergia nazionale nasce nel segno del “fare”, attraverso una collaborazione basata su ecosistemi e per mettere l’Intelligenza Artificiale al servizio della ripresa e del rilancio delle aziende italiane colpite dalla pandemia. L’obiettivo è di accompagnare gli attori della supply chain in un percorso di consapevolezza e crescita sui dati di sostenibilità, incentivando l’approccio di squadra”. Costituita nel marzo del 2013, Inspired annovera tra i suoi fondatori figure che da anni ricoprono ruoli di responsabilità dell’area R&D e nella gestione e ideazione di progetti innovativi all’interno di società operanti nell’ambito dell’Innovation Technology, contribuendo attivamente alla realizzazione di diversi progetti di ricerca sia in ambito pubblico che privato. Inspired nasce quindi con la mission specifica di creare valore aggiunto attraverso l’innovazione tecnologica, la ricerca e l’analisi dei cambiamenti nel mondo IT, anche attraverso forti collaborazioni con il mondo Universitario. In particolare, tra le collaborazioni, segnaliamo quella con il Prof. Luigi Laura, docente Uninettuno, esperto in algoritmi per Big Data; con il Prof. Paolo Fantozzi, docente Lumsa, ricercatore attivo nell’Intelligenza Artificiale; il Prof. Valerio Rughetti, della Luiss, esperto di Internet of Things e Edge Computing e il Prof. Giorgio Piccardo, di Tor Vergata, specializzato in Data Visualization e UX/UI Design. RAIT88 è un Hub di riferimento nei settori della Robotica, Realtà Virtuale, Artificial Intelligence e Cbrn, che le consentono di partecipare ai PNRM (Piano Nazionale della Ricerca Militare), investendo in tecnologie Quantistiche del futuro prossimo come il Quantum LiDAR/Quantum Radar e in Sensoristica Avanzata per l’aiuto al Soldato. Competenze mirate e capacità di guardare costruttivamente al futuro: questi i segni distintivi di due realtà in espansione delle quali sentiremo di nuovo parlare molto presto.
- Dal processo al “giudizio” ( l’intelligenza artificiale vista da un vecchio cibernetico )
Piccola prefazione: questo testo è tratto da degli appunti che ho scritto negli anni ‘80 (...1986/7), quando ancora internet non c’era… in previsione di pubblicare un libro sulla cibernetica che però per varie vicissitudini, non ho mai pubblicato… il testo è stato rivisitato… ma solo nell’ultima parte! Indice Introduzione Teoria dei tipi logici. Conoscenza e comunicazione. Introduzione. Si può immaginare la realtà come una stanza buia che noi dobbiamo illuminare accendendo con l'intelligenza le luci della verità per guardare anche con gli occhi della mente ciò che di immenso vi è contenuto, per sentire, toccare e gustare quanto vi è predisposto, per tentare di capire ed amare un pensiero eterno. Forse questo è uno scopo, forse soltanto solo un pensiero, un’illusione dettata dal desiderio di comunicare con l'universo, sicuramente una tendenza a capire per tentare di interpretare al meglio la nostra funzione di esseri viventi, considerando che la conoscenza non ci appartiene e che per questo spesso sbagliamo, anche in buona fede, senza sapere quali saranno le conseguenze dei nostri errori. Quante volte la nostra mente si adopera per cercare delle risposte e per formulare delle domande che ci aiutino a capire quello che possiamo soltanto interpretare in riferimento al nostro sistema di coordinate o alla nostra logica, quante volte con poca umiltà pensiamo di poter conoscere la realtà del funzionamento di elementi che sottostanno a delle leggi universali, quante volte, con poco spirito estetico, fatichiamo il cervello per imporre la nostra volontà sulle strutture relazionali della natura e poi spesso, troppo spesso, partiamo col piede sbagliato per camminare lungo la nostra esistenza soltanto in considerazione al fatto che dobbiamo reagire ad un determinato evento. Si può pensare che sia un grande e nobile atto d'amore il fatto che si cerchi di capire il nostro funzionamento di esseri viventi, sia dal punto di vista della concezione fisica del nostro esistere, sia per quanto riguarda il contesto nel quale siamo inseriti, sia per quello che fa riferimento all'aspetto mentale e spirituale, se in considerazione di questi ultimi ci possiamo distinguere dagli altri animali. D'altro canto sarebbe doveroso comunque rispetto a noi stessi il tentare di darci delle spiegazioni sul nostro comportamento, in considerazione al fatto che ci riteniamo esseri dotati di intelligenza, affinché dai risultati che saremmo in grado di raggiungere con questo proposito, non si possa un giorno migliorare ancora di più i rapporti che riusciremmo a stabilire con la natura e con le macchine che saremmo in grado di costruire, nonché i rapporti che si possono instaurare tra di noi, per quello che concerne la nostra vita personale psicologica e la nostra vita sociale. Molto frequentemente il nostro pensiero, forse perché condizionato dalle esigenze primarie o artificiosamente imposte come tali da una società in costante evoluzione e quindi esterne a noi, si ferma a lavorare con delle categorizzazioni mentali derivanti da una posizione di necessità nel risolvere dei problemi che ogni giorno la nostra esistenza ci riserva o, in altri casi, si preferisce perché ritenuta più facile, o perché più immediata e meno laboriosa, un'analisi descrittiva delle situazioni, siano esse fisiche ed esterne a noi che interne al nostro organismo e quindi anche mentali, come se la domanda che ci poniamo alla base di questi nostri ragionamenti fosse proprio il "come?", tralasciando altre possibilità di costruire e approfondire con sistemi diversi l’analisi della nostra situazione e di quello che questa sottintende. A livello soggettivo quasi sempre il ragionamento parte da domande espresse nella forma indicata con delle proposizioni semplici: come posso fare io per... o, come mi sento di essere... oppure, come io ti vedo..., o ancora, com'è questa cosa... ecc...; possiamo così fondare i principi per i più svariati e raffinati ragionamenti, possiamo ricercare con questo metodo le cause primarie del nostro esistere, le fondamenta della vita, o i fini della nostra esistenza, ma questo modo di pensare sembra essere incompleto, anche se durante i nostri ragionamenti abbiamo inserito tanti "perché". C'è sempre qualcosa che sembra sfuggirci,che ci lascia insoddisfatti di questo nostro "ricercare mentale", in fondo a tutto rimane comunque quel fatale errore, quello che si può definire come l'errore filosofico. Questo errore è dovuto non tanto alla forma del linguaggio adottato, ma al fatto che il concepimento della realtà o della conoscenza è legato ad una metodologia che ne sottintende una forma espressiva di comunicazione che si identifica a livelli diversi a seconda del modo di affrontare il ragionamento su cui basiamo il nostro pensiero e che perciò dipende a priori dalle categorizzazioni mentali che formulano il pensiero stesso. Forse è addirittura una frode parlare di concepimento della realtà e della conoscenza dal punto di vista assolutistico di chi formula un qualsiasi ragionamento, anche se complesso sotto l'aspetto categoriale, come le piramidi teorico-matematiche di alcuni lumi della fisica e della matematica, meglio sarebbe dire che la nostra è una tendenzialià ad interpretare la realtà e a cercare di capire le relazioni che tengono assieme le cose agli eventi, ovvero i processi di trasformazione che riusciamo a percepire a malapena, viste le nostre potenzialità sensoriali comuni. Possiamo solo ammettere che queste operazioni mentali, intese come elaborazione del percepito, ci portano molto lontano, ci fanno affrontare molte asperità nel nostro percorso, ma alla fine se tutto viene condotto usufruendo delle qualità che tutti noi sappiamo riconoscere nei più bei sentimenti che il nostro animo è in grado di generare, la fatica che proviamo viene ripagata dalle soddisfazioni e dalle emozioni che si possono provare, forse si tratta di qualcosa di ancora più grande, qualcosa che la nostra immaginazione fatica a concepire; in fondo comunque, il risultato si basa su delle operazioni molto semplici, che per questo possono essere considerate basilari e naturali e forse proprio per queste ragioni fatichiamo a capire quali esse siano: la confusione che a volte in ognuno di noi fa da padrona non è altro che una sbagliata interpretazione di messaggi estremamente semplici che ci vengono proposti gratuitamente, basterebbe soltanto saper contemplare umilmente cercando di dare a tutto un significato logico. Non è molto facile da capire a prima vista, ma la nostra insoddisfazione, quel senso di vuoto e negativo che rimane in noi a volte, dopo essersi arrovellati il cervello fino a mandare in crisi le catene neuroniche, deriva proprio dalle categorizzazioni mentali indotte da quella domanda di base, perché spesso non possono trovare riscontro nella metodologia correlativa e nè possono trovare riscontro nel sistema comunicativo utilizzato per supportare le stesse: proviamo la stessa insoddisfazione sia quando tentiamo di dare una risposta ad una domanda qualsiasi usufruendo del supporto comunicativo classico che quando la risposta ci viene fornita da dei modelli matematici, ciò che non soddisfa mai il nostro pensiero è la possibilità interpretativa, in quanto saremmo sempre costretti a delimitare il campo del ragionamento in funzione ad un certo numero di concetti che esprimono la presunta funzione e le relazioni strutturali a cui sono interessati processi ed eventi. Approfondendo ulteriormente quanto sopra esposto, possiamo affermare che le categorizzazioni mentali sono delle operazioni che la nostra mente compie su dei concetti, mettendoli in relazione tra loro e definendoli attraverso la comunicazione logica, con le comuni parole che usiamo per farci capire, ma che ad un certo livello comportano l'utilizzo di discorsi astratti, dove tutto assume una configurazione teorica, dove l'espressione verbale fatica a dare l'immagine delle cose che si vogliono comunicare appunto perché queste sono delle operazioni mentali, allora si incomincia una attività di scambio di informazioni che concerne nel mettere in relazione le cose tra loro come facenti parte di un mondo “esterno” e per di più diviso in categorie rigide, dove tutto sembra essere prefissato da regole, in classi ad esempio: la classe degli animali, che congloba le varie classi delle specie e dei generi animali, la classe dei vegetali che congloba le varie classi delle specie e dei generi vegetali, la classe degli uomini con i capelli biondi, oppure quella delle persone appartenenti ad una certa razza e così via fino alla classe dei concetti che congloba tutti i concetti anche il concetto di classe, ma attenzione a non inciampare quando si tratta di operazioni mentali, evitiamo quegli errori che hanno portato per il passato a dei paradossi che in realtà sono l'espressione della inadeguatezza della metodologia mentale di analisi. Rimanendo sempre nell'ambito della operazione di classificazione, potremmo essere appunto anche in grado di formulare una classe dei paradossi, saremmo anche in grado di suddividere in varie categorie i paradossi appartenenti a questa classe, da quelli semantici a quelli pragmatici a quelli logico-matematici o mistici, comunque sia, una prima definizione di paradosso può essere formulata come una contraddizione che deriva dalla deduzione corretta da premesse coerenti; sta di fatto che è una situazione operativa derivante da degli stati attenzionali che la nostra mente non riesce a correlare correttamente, vuoi per la metodologia con cui vengono analizzate determinate sensazioni, vuoi anche perché siamo posti su un sistema di coordinate tale per cui la nostra immaginazione non riesce a far sviluppare il pensiero in modo tale da controreazionare in maniera efficace l'energia che viene accumulata durante un processo di trasformazione di informazioni, in altre parole non si riesce sempre a correlare correttamente i concetti: la nostra attenzione sembra rimanere sospesa nel vuoto, non trova appigli per passare su altri concetti, per espandersi, ovvero non riusciamo più a formulare delle operazioni mentali che consentano la continuità del ragionamento, un po' come succederebbe se considerassimo come unica possibilità quella di disegnare dei triangoli su un piano, ammetteremmo come Euclide che la somma degli angoli interni di un qualsiasi triangolo corrisponde ad un angolo piatto di 180 gradi, ma se qualcuno ci viene a dire che si possono ottenere dei triangoli particolari, per esempio quelli costruibili sulla superficie di una sfera che hanno la somma degli angoli interni superiore all'angolo piatto, dovremmo sentire la nostra mente che si oppone a questa affermazione, una cosa analoga succederebbe a chi ancora credesse che la terra sia piatta, dovrebbe trovare paradossale che procedendo in linea retta verso occidente ci si ritroverà alla fine del percorso allo stesso punto di partenza ma provenienti da oriente. (nota: bello riuscire a disegnare triangoli sferici su di un piano no?) Nulla di strano allora se si accetta umilmente la nostra condizione operativa mentale, l'importante è tentare di ottenere delle spiegazioni che ci consentano di migliorare ed affinare i nostri strumenti intellettuali, arrivare ad ammettere che ci sono delle spiegazioni a determinati concetti che possono sembrare paradossali, sembra essere il limite della nostra mente, ma anche la nostra forza che ci deve indurre a progredire se possibile, a stare più attenti a ciò che facciamo, a come siamo in grado di formulare un qualsiasi pensiero e al perché di queste nostre operazioni. L'evoluzione della comprensione umana sembra proprio impostata nella risoluzione dei paradossi, nel superamento di questi con dei metodi sempre più sottili che tendono a produrre uno sviluppo intellettivo coerente con una verità sconosciuta nell'ambito della più vasta possibilità di interpretazione. La scelta di affrontare sin da questo momento le difficoltà interpretative delle concezioni paradossali, anche se condotta tramite un metodo il più semplificato possibile, si rende necessaria in quanto, pur essendo uno scoglio notevole per la facilità delle spiegazioni fattibili sulle ipotesi di funzionamento della nostra mente, introduce ed indirizza il lettore ad una tipologia di analisi che rende possibile la corretta comprensione degli argomenti trattati su questo testo. I ragionamenti allora cominciano ad appesantirsi, bisogna far lavorare per un attimo la mente e la lettura in questo momento si complica, ma chi ha l'animo tranquillo sa che ciò che adesso può sembrare buio e pesante, più avanti si tramuterà in luce e leggerezza: queste cose possono dare fastidio, legano ed imprigionano la nostra attenzione castigando l'immaginazione, ma se adeguatamente avvicinati, ci aiutano a migliorare le nostre facoltà mentali e ci possono anche fornire la felicità di convivere meglio con noi stessi. Esempi classici di paradossi ne possiamo cogliere dovunque, sono come dei fiori che spuntano sul campo dalla conoscenza, ma quello che vorrei proporre, per la sua portata intellettuale e perché derivante dal superamento proprio di una concezione paradossale di carattere logico-matematico, che d'altro canto non sembra incidere nell'etica personale di ognuno di noi, ci viene fornito proprio dalla teoria delle classi, che come possiamo immaginare, sono dei concetti che la nostra mente produce tramite delle operazioni complesse di carattere categoriale, dovute alla necessità di catalogazione e suddivisione o riparametrazione e ordinamento, e quant'altro può servire per rendere comunicabili determinati concetti di origine percettiva, ma che assumono ad un determinato livello di comunicazione, una strutturazione particolare di relazione fra i concetti stessi, che a volte può essere appunto interpretata come antitetica. Prendiamo come esempio il caso dell'interpretazione della frase inerente a quella... ”classe di tutte le classi che non sono membri di se stesse"; sono sicuro che questo esempio potrà rendere bene l'idea delle possibilità che ci sono di scivolare teorizzando, su una buccia di banana e di finire contro un paradosso che invece paradosso non è se visto sotto un altro aspetto. Partiamo col definire in linea di massima il concetto di classe utilizzando delle correlazioni logico-matematiche: una buona definizione di classe va ricercata, nel linguaggio matematico come una collezione di termini, qualcosa di ben definito che non permette ambiguità. Allora se supponiamo di definire una classe come la totalità di tutti quegli elementi che hanno qualche proprietà o attributo in comune, potremmo affermare ad esempio che la classe delle pecore contiene tutte le pecore passate presenti e future, nessuna esclusa, quindi tutte le altre cose che ci sono, si possono considerare appartenenti alla classe delle non-pecore, poiché queste cose hanno in comune la proprietà di non essere appunto delle pecore. Ora, ogni asserzione che implichi l'appartenenza di una cosa a tutte e due le classi è una ovvia contraddizione, un ambiguità appunto. E` evidente per quanto sopra esposto, che la classe di tutti i concetti è essa stessa un concetto, al limite, se volessimo parificare le cose possiamo chiamarlo concetto-classe, mentre la nostra classe delle pecore non è una pecora. A questo livello possiamo notare di primo acchito che ci sono delle “classi” che sono membri di se stesse e quelle che invece non lo sono: la classe che colleziona tutte le classi degli opposti è sicuramente una classe appartenente alla collezione delle classi che sono membri di se stesse, ovvero è una classe, mentre la classe degli animali e a maggior ragione la classe delle pecore non è una classe che è membro di se stessa, ovvero non è un animale ne tantomeno una pecora, quella operazione che noi in effetti stiamo facendo è una riparametrazione comparativa fra due cose che si assomigliano ma non sono uguali e tentiamo di prenderle come uguali. Tuttavia se ripetiamo l'operazione ancora una volta potremmo affermare che conglobando nella classe 'A' tutte le classi che sono membri di se stesse e nella classe 'B' tutte quelle che non sono membri di se stesse, dovremmo ottenere una suddivisione chiara del concetto-classe di classe; ma se ora vogliamo determinare se la classe 'B' è o non è membro di se stessa si finisce subito nel famoso paradosso russelliano che ci propone questa asserzione: “se la classe 'B' è un membro di se stessa allora non è un membro di se stessa appunto perché 'B' è la classe delle classi che non sono membri di se stesse!” Non dimentichiamo però che la divisione dell'universo in classi è esaustiva, non ci possono essere eccezioni di sorta e quindi questa proposizione, con questa tipologia correlazionale è un paradosso, una vera antinomia, perché il risultato paradossale si basa su una rigorosa deduzione logica e non sulla violazione delle leggi della logica adottata. Teoria dei tipi logici. La proposizione sopra esposta come paradossalmente logica può essere anche interpretata come una fallacia; Russell l'ha resa evidente con la sua teoria dei tipi logici. Per spiegarla in parole povere, questa teoria postula il principio fondamentale che: qualunque cosa presupponga tutti gli elementi di una collezione non deve essere un termine della collezione. Ovvero, il paradosso russelliano è dovuto alla confusione dei tipi logici, o livelli: una classe ha un livello più elevato dei suoi membri. Per postulare questo abbiamo dovuto salire di un livello nella gerarchia dei tipi logici e contemporaneamente dovremmo salire di un livello nella tipologia espressiva per spiegare la cosa. Quanto sopra per dire anche di fare attenzione ai concetti, affermare infatti che la classe di tutti i concetti è essa stessa un concetto, non è privo di significato, poiché i concetti sono dei prodotti dell'operare mentale e quindi possiamo in qualche modo identificarne il tipo logico, ma questo sarà una delle problematiche trattate nei prossimi capitoli, per il momento invece è molto più utile dare una dimostrazione semplificata dell'argomento sopra esposto,sia perché ho una visione entropica della comunicazione (e di questo chiedo scusa agli addetti ai lavori), sia per rendere il più divulgativo possibile questo testo, in quanto ritengo che gli argomenti che saranno trattati in seguito debbano coinvolgere qualsiasi lettore, quindi il linguaggio utilizzato sarà il più possibile variegato nello stile onde tentare di ottenere una piacevole lettura che altrimenti potrebbe risultare ostica e pesante, sia per abituare il lettore stesso ad un tipo di descrizioni teorico-astratte dei processi di ragionamento. La dimostrazione della teoria dei tipi logici più semplice che mi viene in mente per le possibilità espressive che offre è una rappresentazione schematica dei concetti di classe che prendo in prestito dalla matematica “matricale”, in fondo la nostra mente è come un supermercato, basta saper scegliere i prodotti che servono al nostro fabbisogno. Per poter rendere comprensibile in maniera schematica quanto si vuole esprimere è necessario però spiegare a priori, anche se in un modo metaforico, le cose che vogliamo indicare, ed è utile partire col dare una rappresentazione del concetto di variabile utilizzando per questo una metodologia derivante dalle categorizzazioni mentali imposte dal rispondere alla domanda "com'è questa cosa?" che quindi non permette una descrizione operazionale del concetto ma ne indica una idea che aiuta a concepire l'immagine mentale, lasciando per ora sospesa una descrizione teorica dal punto di vista delle ipotesi relative alla costituzione mentale dello stesso. La variabile è una cosa che può essere intesa come un contenitore atto a contenere delle grandezze omogenee e di solito viene indicata con una lettera dell'alfabeto, per esempio: 'a' e 'b' possiamo immaginare che riescano a contenere dei dati numerici ossia, 'a' in un certo istante potrebbe contenere il numero '1',mentre 'b' potrebbe contenere il numero '-1' e sarebbe quindi lecito scrivere che a=1 e b=-1 secondo le nostre più semplici convenzioni grafiche. Di 'a' si potrebbe dire che riesca a contenere tutti i numeri positivi interi, invece di 'b' dire che riesca a contenere tutti quelli negativi e interi;potremmo inventare una terza variabile 'c' che possa contenere uno per volta tutti i numeri positivi e negativi interi e non, oppure 'd' che in generale possa contenere tutti i tipi di numeri esistenti, interi, decimali, fratti, immaginari ecc… (Vedasi altro articolo sui ferri del mestiere da usare nell’ambito della intelligenza artificiale). La nostra fantasia ci potrebbe permettere anche di "costruire" mentalmente delle variabili in grado di contenere dei nomi, per esempio 'f$' sarà una variabile adatta a contenere, uno alla volta, tutti i nomi femminili, mentre 'm$' tutti quelli maschili, invece 'i$' potrebbe contenere, sempre uno alla volta, tutti i nomi in generale e 'ni$' ancora, sarà quella che conterrà tutti i codici alfanumerici. In realtà tutti i computer, anche i più piccoli usano questa forma matematica per "giocare" con dei dati: il dato è appunto il contenuto della variabile e la variabile si identifica con questo in un determinato tempo e per delle ben determinate ragioni: si può benissimo scrivere senza dubbi di logica che nel tempo 'x' e “perché lo decide qualcuno”, in qualche luogo, qualcosa di identificabile con 'f$’ sia == “Kika”. (nota che Kika forse starà mangiando le crocchette!). Possiamo fin da ora constatare una cosa molto importante: le variabili che sono state elencate non appartengono tutte allo stesso tipo logico sebbene si assomiglino nella loro funzione, la variabile 'm$' è dello stesso tipo logico della variabile 'f$', ma di tipo logico inferiore alla variabile 'i$' poiché un dato contenuto in 'm$' è sempre "trasportabile" nella variabile 'i$', ma non viceversa: poniamo il caso che 'i$=tigre' o 'i$=Bibi', 'm$' non assumerà mai un dato del genere perché incompatibile con il suo tipo logico; d'altra parte possiamo ancora ammettere che se 'ni$==cccrmo60m11xxxx' non potremmo trasferire in nessun'altra variabile elencata questo dato, mentre se 'Giovanna' fosse il contenuto di 'f$', oppure 'Romeo' fosse quello di 'm$' o ancora '3' fosse il contenuto di 'd', potremmo sicuramente trasportare questi dati in 'ni$', poiché questo tipo di variabile può contenere tutti i tipi di codici composti da lettere e numeri che vogliamo, quindi può a maggior ragione contenere sia codici composti da sole lettere e anche codici composti da soli numeri. (notare che a volte ho messo un doppio “=” e a volte uno solo… gli informatici sicuramente avranno capito la differenza ma per molti altri potrebbe solo essere un refuso di battitura…) Vediamo ora di espandere il discorso alle 'classi' che, sempre utilizzando questa tipologia descrittiva, sono quei contenitori che possono contenere dei gruppi omogenei di cose associate per chissà quali attributi o fattori; se dovessimo riprendere come esempio una trasformazione della variabile sopra indicata, dovremmo soltanto dire che per identificare una classe useremo un tipo di scritture analoghe, ad esempio 'A$(n)' potrebbe benissimo rappresentare una classe contenente un numero 'n' di elementi, scrivere che 'A$(n)' rappresenta la classe degli animali può essere del tutto corretto, e assumere che 'A$(1)', ossia il primo (o il secondo) elemento di 'A$(n)' sia la classe dei felini anche è corretto, così potremmo proseguire nell'identificare e assegnare ai vari posti di 'A$(n)' i vari generi di animali, questo equivale a dire anche che si possono costituire in un certo modo delle altre classi del tipo 'F$(n)' che contengano a loro volta un certo numero di elementi; scrivere quindi che 'F$(n) = A$(1) = classe dei felini è del tutto corretto… mentalmente sembrano assegnazioni valide!… LOGICHE! Allora continuiamo! Potremmo indicare come primo elemento di 'F$(n)' ossia, 'F$(1)=tigre' e come secondo 'F$(2)=gatto' e così via; ma la nostra fantasia non si ferma ancora e potrebbe costruire delle classi rappresentabili con variabili a più dimensioni come 'A$(n,m)' o ancora ‘A$(n,m,z)', dove gli indici 'n,m,z', rappresentano in questo caso, il numero degli elementi nella “ipotizzazione spaziale” delle tre dimensioni e potremmo continuare per 'n' dimensioni, non ci sono limiti imposti alla possibilità di teorizzazione in questo senso, semmai sarà poi difficile trovare una forma logica di espressione di ricerca dei vari elementi, di elaborazione, di modificazione, di implementazione funzionale, ossia una forma matematica che permetta di lavorare su tutte le dimensioni che si sono impostate, ovvero una metodologia che dia la possibilità di inserire i dati, di estrarre gli stessi, di modificarli ed elaborarli, con “condizione di causa”! Ma vediamo a questo punto lo schema che può essere di notevole aiuto per coloro che abbisognano di un supporto visivo per poter immaginare una struttura relazionale: Che dire della posizione 'A$(0,0)' se non che è l'identificatore logico della classe? Ed è quindi l'unica posizione che si trova ad avere un “tipo logico” di livello superiore a tutte le altre? Ecco allora che partendo da questa affermazione possiamo dire che l'identificatore di una classe è soltanto dato dalla possibilità logica di raggruppamento della quantità di attributi appartenenti agli elementi della collezione sottintesa dalla classe stessa. Così quindi si spiega, in un modo del tutto semplificato, la fallacia del paradosso della "classe di tutte le classi non appartengono a se stesse" appunto perché il suo identificatore logico è di un livello superiore a quello che la collezione contiene. Ritengo a questo punto interessante invitare il lettore a fermarsi un attimo per controllare il suo stato d'animo. Coloro che hanno seguito il ragionamento lasciandosi trasportare dalla tipologia delle associazioni indotte dalle categorizzazioni mentali di chi scrive, saranno rimasti passivi e quindi avranno le stesse sensazioni di un turista che viene trasportato sulla barca del ragionamento e che si lascia cullare dalle onde del pensiero; ribadisco ancora che questa metodologia di spiegazione deriva dalle categorizzazioni mentali adottate per rispondere alla domanda di base "come?", mentre altri potrebbero essersi sentiti attivi invece nel gioco di "trasportare" e "trasformare" con l'immaginazione i vari concetti, perché questo è l'indice di chi ha affrontato il ragionamento rispondendo alla domanda di base "perché?". In questo caso è presupponibile che tutti dovrebbero essere arrivati alle stesse conclusioni, utilizzando però delle categorizzazioni mentali diverse. La proposta di fornire con una metodologia diversa la spiegazione del superamento di questa concezione paradossale, quella cioè fornita con delle categorizzazioni mentali derivanti dal rispondere alla domanda "perché?", dovrebbe ottenere allora la completa chiarezza: presupponiamo dunque che 'A$(0,0)' possieda 'y' attributi, tutte le altre posizioni della matrice avranno sicuramente meno attributi di questa posizione, allora, qualsiasi animale potrà essere un dato per una variabile avente gli attributi di 'A$(0,0)' ma non succede la stessa cosa se questa variabile supposta prende gli attributi da una qualsiasi altra posizione della matrice indicante la classe degli animali, se per esempio prendiamo una variabile che abbia gli attributi indicati dalla posizione 'A$(1,0)', questa non potrà sicuramente contenere l'animale descritto come 'pecora', se abbiamo assegnato a quella posizione “felini”, proprio perché le pecore non sono dei felini. A questo punto è dovere notare una cosa assai interessante che riguarda l'accomunanza degli attributi in relazione alla tipologia della classe di appartenenza: il nostro sistema “categoriale” ci suggerisce immediatamente che elementi simili hanno in comune attributi similari, ovvero, se per esempio prendessimo in considerazione la classe degli uccelli, dovremmo sicuramente ammettere che sono degli elementi accomunati dal fatto di avere in comune alcuni attributi: sono dei soggetti piumati ed alati, bipedi e ovipari. Se a questo punto considerassimo una sottoclasse degli uccelli, per esempio quella relativa alle cicogne, dovremmo ammettere che riusciremmo a trovare un maggior numero di attributi in comune e dovendo esasperare questa tipologia di ragionamento, troveremmo che una particolare famiglia di cicogne possiede un ancora maggior numero di attributi in comune, come può succedere pensando alle caratteriali di una certa etnia o di una certa famiglia umana. Al vertice di questo processo di restringimento dovrebbe esserci l'individualità di un singolo soggetto ossia l'unità, che raggruppa in se tutte le caratteristiche o gli attributi relativi alla sua classe di appartenenza. Attenzione, adesso possiamo sicuramente notare una cosa importante: tanto più è elevato il livello logico dell'identificatore di una classe, tanto più alta è la sua possibilità di contenere degli attributi, ma paradossalmente, diviene sempre maggiore la residenzialità a stabilire quali siano gli attributi accomunati: si pensi proprio al concetto di animale. L'interpretazione prospettata in questo senso della realtà dovrebbe fornire una suddivisione in classi aventi come indice 'y' il maggior numero di attributi possibili e come criterio di decremento logico un secondo indice 'x' che dia la possibilità di soddisfare la facoltà esaustiva della suddivisione stessa. Ecco allora che non dovrebbe sentirsi stupire nessuno se indicassi il numero '2' come espressione delle classi che contengono tutte le paia esistenti, potrebbe essere proprio la classe degli opposti, delle complementarietà o dei paradossi, o il numero '3' come quello che identifica tutte le terne, non si è fatto altro che attribuire un dato concettuale all'identificatore logico della classe che colleziona alcune cose che hanno tra loro delle caratteristiche in comune, caratteristiche o attributi che si esprimono appunto in concetti di numero. Che dire allora della classe di tutte le classi?, quale sarà il concetto da attribuire al suo identificatore? Tentiamo di fare un ragionamento semplificato: dapprima pensiamo alla "classe nulla", sarà quella classe che non contiene nessun elemento e il suo identificatore logico ovviamente si può considerare come il concetto di numero "Zero", passiamo ora a considerare la "classe di tutte le classi che appartengono a se stesse" e associamo al suo identificatore logico il concetto di "Infinito" poiché noi possiamo ottenere un'infinità di classi, partendo da qualsiasi tipologia di presupposti, non ci rimane adesso che "la classe di tutte le classi che non appartengono a se stesse" alla quale associamo il concetto di "Indefinito", in questo modo, il concetto che definisce questa particolare classe assume un livello logico superiore a qualsiasi elemento sottinteso dalla stessa, ora il gioco è fatto, basta a questo punto pensare che il concetto da associare alla "classe di tutte le classi" sia ancora una volta "l'Unità". La considerazione alla quale possiamo facilmente arrivare a riguardo del ragionamento sopra esposto si riferisce al fatto che abbiamo superato una concezione paradossale tramite il superamento della metodologia logica di analisi: abbiamo utilizzato al meglio le nostre “facoltà intellettive di processo”, per teorizzare dei rapporti fra dei concetti. Se il ragionamento appena fatto ci forniva in qualche misura la dimostrazione della dipendenza di un paradosso dalla tipologia della logica adottata, un altro esempio, che prende spunto sempre dalla matematica e ci può aiutare a capire che a volte tutto dipende dal sistema di coordinate che vengono prese in considerazione per superare una determinata concezione, è quello fornito dalla rappresentazione su assi cartesiani (x;y) del concetto di punto e di linea euclidei: possiamo immaginare il punto come un'entità senza nessuna dimensione e la linea invece come un insieme di punti avente una dimensione infinita. Sicuramente può sembrare paradossale che un insieme infinito di entità senza nessuna dimensione diano origine a qualcosa avente una dimensione infinita, ma la nostra immaginazione ci può venire incontro nel superamento di questa concezione, qualora si pensi ad esempio di ruotare opportunamente il sistema di coordinate relativo alla rappresentazione di una linea: scopriremmo che la linea può anche essere vista come un punto e viceversa. (vedasi l’altro articolo sugli strumenti del mestiere). Nessuno ancora dovrebbe stupirsi se anche un punto rappresentato negli assi cartesiani (x,y,z) può essere considerato come una linea su uno spazio quadridimensionale, avente cioè come assi quelli spaziali sopra citati e l'asse temporale: il punto spaziale è una linea spazio-temporale (curva): questo ci dimostra palesemente che alcune concezioni paradossali sussistono in funzione al sistema di coordinate che adottiamo o a cui siamo soggetti. E importante e necessario a questo punto notare una cosa, cioè che la verità espressa dovrebbe rispondere in modo del tutto uguale sia inducendo le categorizzazioni di pensiero rivolte al rispondere alla domanda "come?" che inducendo categorizzazioni per rispondere alla domanda "perché?", ora, qual'è la differenza fra queste categorizzazioni? In termini descrittivi si può tentare di dare una risposta affermando che il ragionamento derivante dalle categorizzazioni del pensiero derivante dal rispondere alla domanda "perché?" sono operazioni mentali di disgiunzione sulla strutturazione delle interconnessioni dei concetti analizzati, si tende, in altre parole, a frazionare e scollegare “attenzionalmente” i vari “continui attenzionali” che sono alla base del ragionamento, mentre per rispondere alla domanda "come?" si tende ad un processo di giunzione sulla strutturazione delle interconnessioni dei vari concetti analizzati, ovvero si tende a “congiungere attenzionalmente” i “continui attenzionali” in un sistema logico di interconnessioni e collegamenti; le due operazioni mentali sono quindi opposte nella loro strutturazione, ma la verità delle espressioni avanzate, o delle proposizioni, nel considerare una qualsiasi realtà, sia essa pratica o puramente teorica, risponde sempre a questi due processi di ragionamento e deve ulteriormente sottostare ad ulteriori assiomi di carattere squisitamente logico-matematico, assiomi che possiamo sempre ricondurre a proposizioni di base che sono, in altri termini, delle operazioni di analisi mentale che si assumono per produrre proprio i concetti. Conoscenza e comunicazione. La diversità operativa mentale nel rispondere a queste due domande: “come? e “perché?” ha sicuramente condotto a sviluppare in due settori la tipologia di conoscenza a cui possiamo attingere dall'interpretazione della realtà, si potrebbe benissimo dire che tutta la cultura umanistica, partendo da quella filosofica, è imperniata sulla metodologia di ragionamento preponderatamente condotto nel rispondere alla domanda "come?", mentre le discipline scientifiche sembrano maggiormente disposte al rispondere alla domanda "perché?!". Questo, quasi sicuramente per una imposizione storica derivante dalla tipologia di studio e analisi di discipline diverse. Si può ammettere che fosse stato più facile inizialmente capire dei fenomeni fisici o suggerire teorie matematiche rispondendo ai tanti perché di carattere percettivo che invece capire e rispondere a quelli del nostro operare mentale, così si è prodotta una diversità nel porsi nei confronti dell'osservato che nei confronti introspettivi dell'osservatore. Indubbiamente però dobbiamo ammettere che la metodologia di analisi finora adottata nelle discipline umanistiche ha portato a dei livelli di teorizzazione sempre più elevati e viene supportata con un linguaggio che ci permette costantemente di continuare a concettualizzare cose sempre più astratte, lo stesso dicasi per le teorie scientifiche, con la differenza che queste hanno portato a sviluppare delle forme matematiche di interpretazione dei fenomeni fisici del tutto fuori della portata della nostra immaginazione, comunque sia, queste due discipline, pur con modalità del tutto diverse di correlazioni e categorizzazioni mentali, ci dimostrano che a determinati livelli si assomigliano, perlomeno dal punto di vista dei risultati a cui portano per quanto riguarda l'interpretazione della realtà; in sostanza, la traduzione verbale di determinate formule matematiche inerenti allo studio dell'universo corrispondono alle più elevate interpretazioni filosofiche. Quanto sopra ci deve far riflettere, il filosofo è un uomo come il matematico o il fisico, sono entrambi appartenenti allo stesso genere e quindi è molto difficile che non utilizzino gli stessi strumenti per cercare di capire il mondo che li circonda, più in generale, tutti noi abbiamo le stesse potenzialità interpretative della realtà, soltanto che le possiamo utilizzare in modo diverso, nel caso del filosofo-mistico e del fisico-matematico la metodologia di interpretazione sembra essere derivante da correlazioni e categorizzazioni del tutto opposte, ma ricordiamoci allora che percorrere una strada in direzioni opposte può portare allo stesso punto, ed esisterà perlomeno una nuova strada che sicuramente dimostrerà l'esistenza di questo; uno degli scopi da raggiungere è dimostrare come mai esiste una tale situazione. In questa parte del testo, si è accennato alle categorizzazioni mentali, si è affermata la loro diversità nei confronti di due domande di base, si è infine spiegato in termini descrittivi in che cosa consiste questa diversità, ma per formulare un'analisi più profonda è opportuno vedere, quali siano i livelli di comunicazione che si possono adottare per produrre e ricevere delle informazioni, quindi dei concetti che in qualche modo ci forniscono le basi della nostra conoscenza, ovvero viceversa, in funzione alla tipologia di conoscenza che noi disponiamo, possiamo adottare diverse metodologie di comunicazione. L'argomento si presenta alquanto complesso, si sono spesi fiumi di parole per spiegare la metodologia della comunicazione, abbiamo inventato la pragmatica dei sistemi di comunicazione evoluti e meccanizzati anche fra macchine ed è quindi lecito, nonché necessario ed essenziale, analizzare il sistema di conoscenza e di comunicazione che ci contraddistingue dagli altri esseri viventi o dalle macchine che siamo in grado di costruire: in fondo, per farsi capire non bisogna soltanto comunicare, ma anche stabilire proprio quali sono le metodologie che si utilizzano nell'espletare questa funzione basilare di carattere universale, in parole povere, la comunicazione non va intesa soltanto come un trasferimento di informazioni da una parte all'altra dell'universo, ma qualcosa di molto più utile: un continuo trasformarsi di energia; ed è per questo che si tratta di uno dei compiti più difficili a cui siamo sottoposti. Spendere dunque il proprio tempo nel cercare di chiarire un poco questo settore di studio in riferimento alla mente umana è sicuramente un lavoro che porta i suoi frutti, specialmente quando si tenta al contempo di migliorarsi. Partiamo allora con l'identificare un sistema informativo nelle sue linee essenziali: per avere una qualsiasi tipologia di comunicazione è necessario che esista una fonte di informazione e una ricevente, questo significa ben poco se si può soltanto avere una comunicazione monodirezionale, ma è importante osservare che se ciò può essere considerato un sistema elementare di trasmissione e ricezione, questo ci fa giungere lo stesso a dei risultati di ragionamento notevoli: pensiamo infatti per un attimo a quello che i nostri occhi vedono o a cosa sentono le nostre orecchie e più in generale pensiamo a quante informazioni ci trasmettono tutti i nostri organi, (siamo sulla media delle diecimila impressioni sensoriali al secondo per il genere umano), pensiamo inoltre che questo succede in modo analogo a tutto il genere animale, qualcuno ha affermato che forse qualcosa di simile succede anche nel mondo vegetale, e sotto un certo aspetto è anche giusto pensarlo, ma non e proprio in questo testo che si vuole studiare quella metodologia di comunicazione in un modo approfondito, invece è interessante notare che per avere una fonte di comunicazione è necessario trasformare dell'energia, e altrettanto si sostiene per una ricevente, anche se queste sono di origini artificiali. Esiste allora sicuramente una relazione profonda fra energia e comunicazione. Le considerazioni più immediate che si possono trarre per quanto ci riguarda sono queste: se succede qualcosa il nostro organismo ci trasmette delle informazioni che possono derivare da degli stati che assumono i nostri organi o derivare da eventi esterni, quindi si vengono a stabilire delle interazioni fra gli organi stessi che ne modificano lo stato, queste informazioni dunque vengono trasmesse al cervello tramite il sistema nervoso e in questo posto vengono elaborate con delle operazioni mentali. Ma che cos'è la mente? Nulla che abbia un posto fisico ma un'espressione comunicativa, un concetto che indica tutto ciò che di software avviene nel nostro sistema nervoso che ne è il supporto hardware, per dirla con una impostazione informatica, ovvero tutto il complesso di sensazioni, percezioni, cognizioni, stati d'animo, idee ragionamenti ecc. che il nostro cervello ci fa assumere tramite delle operazioni cerebrali, se le guardiamo in modo elementare da un punto di vista bio-neurologico. Quello che immediatamente deriva da una tale situazione è il nostro atteggiamento, o più in generale, l'atteggiamento di un qualsiasi essere che è in grado di assumere o meno volontariamente determinate posizioni o stati, sussiste quindi, come minimo, proprio uno scambio energetico tra ambiente e organismo e a questo punto non si può non concludere affermando che esistenza e comunicazione sono concetti inseparabili sul piano della realtà effettuale, come sono inseparabili il concetto di energia e di informazione. Si potrebbe ancora notare che tendenzialmente, tutte le attività sensoriali si trasformano in attività percettive mentali e che negli animali più evoluti avvengano delle ulteriori trasformazioni con il tempo in attività cognitive ed evidentemente negli esseri umani in attività mentali ancora più complesse. La conseguenza di tutto ciò è che, per un certo verso, gli esseri dotati di movimento proprio non possono non comunicare, ma una visione più teorica della realtà che prenda come spunto la possibilità di interazioni fra cose, ci indica che tutto si potrebbe osservare come se "L’universo fosse impermeato di messaggi rivolti a chi di interesse". (Norbert Wiener). Se facciamo riferimento al genere umano, a questo punto possiamo dire che noi siamo individualmente una ricevente di informazioni e con il nostro atteggiamento, al contempo, siamo fonte di informazione, non solo, ma che tutto ciò che ci circonda a sua volta è ancora fonte di informazione, dunque, anche se la convivenza con altri esseri viventi avvenisse pure ad un livello primitivo e se considerassimo il fatto che le reazioni del nostro organismo, ovvero l'atteggiamento che noi assumiamo, influenzerà l'ambiente stesso, saremmo consapevoli che si verificheranno delle interazioni complesse e causali fra noi e ciò che ci coinvolge, dotate quindi di significato, a questo punto però non bisogna pensare che le interazioni casuali non abbiano significato, soltanto che il loro significato va ricercato usufruendo di un supporto analitico diverso. Il sistema di comunicazione possibile su queste premesse allora, partendo dal presupposto che ci si possa muovere autonomamente, sarà costituito da una tipologia elementare di atteggiamenti e potremmo indicarlo come metodo “cinesico” di comunicazione: figuratevi una conversazione pressoché mimica o la comunicazione dei bambini piccoli che ancora non hanno appreso il linguaggio logico; indubbiamente un sistema imperfetto che andrà decodificato al meglio da parte di chi riceve una informazione così fatta, ma è il sistema che per forza si instaurerà dando origine ai primi passi della conoscenza delle cose e che nulla potrà dare invece sulla conoscenza dei percepiti stessi, in altre parole, la mente sarà potenzialmente attiva per dare e ricevere informazioni ad un primo stadio e con una metodologia che permetterà di fornire appunto le indicazioni delle cose "sentite" ma nulla più, non possiamo ancora parlare di vere e proprie percezioni mentali. Potremmo invece asserire che questo sistema di comunicazione sarà derivante da una metodologia di primo livello, come d'altro canto, la qualità conoscitiva ne sottintende l'aspetto, che però nel complesso della strutturazione informativa, rimane persistente come complementarietà di comunicazione a tutti i livelli successivi. Il linguaggio cinesico dunque va interpretato proprio come tutta quella serie di informazioni che derivano dal movimento che ognuno assume, compreso lo stato degli organi: quante volte noi sappiamo già fornire delle indicazioni di carattere generale soltanto attraverso determinati atteggiamenti o stati di altre persone, tutti sappiamo distinguere il fare gioioso o circospetto, spigliato o impacciato ecc.; la fisiognomica ci insegna proprio a percepire questa tipologia di linguaggio, persino nell'interpretazione dei tratti somatici. Ecco allora che subito si viene a spiegare il termine conoscenza come possibilità interpretativa della realtà e si intravede la logica dell'esistenza degli eventi casuali come forme di interconnessioni comprensibili soltanto a livelli logici o su sistemi di coordinate diversi. Con la persistenza dell’individuo o della specie e quindi con l’esistenza, tramite il sistema genetico, nonché con l'esperienza e con l'evoluzione mentale e dunque con il subentrare delle capacità categoriali, di quelle propriamente percettive e cognitive, di quelle associative e dissociative, di comparazione, inferenziali ecc., perlomeno per quanto ci riguarda, quindi attraverso un sistema intrinseco alla strutturazione funzionale della nostra mente,s i concepisce un secondo livello di conoscenza, non fosse altro che soltanto per mettere in relazione una cosa percepita con un'altra, si possono acquisire allora delle conoscenze sulle cose percepite vedendole attenzionalmente nel contesto fra oggetto di percezione e soggetto, oppure fra percepito e ambiente, ad esempio possiamo porci in modo differente nel percepire e mettere in relazione un pezzo di legno e un pezzo di corda, una volta potremmo vederlo come arco e un'altra come frusta, questo dinamismo mentale derivante dalla possibilità di armonizzare in modi differenti gli stati attenzionali e con l'evoluzione endogena, porta ad un secondo livello di comunicazione che corrisponde in sostanza al linguaggio verbale pesudo-logico, parlato, che potremmo identificare come comunicazione di secondo livello, quella in sostanza che si usa come comunicazione descrittiva normale. A questo livello corrisponde anche il linguaggio negativistico-metaforico o analogico, che è sempre una forma di comunicazione, per quanto indefinita, che si sviluppa a questo stadio ma corrisponde a livelli di conoscenza superiori e in alcuni casi è l'unico modo per comunicare, in sostanza si tratta del linguaggio delle analogie, degli esempi e delle metafore, nel caso più bello è il linguaggio delle parabole, delle Upaniṣhad o dei koan. Quando però si passa da delle considerazioni generiche sulla realtà effettuale a delle considerazioni soggettive, o meglio quando l'atteggiamento mentale prende in considerazione il proprio operare per un fine, ossia le categorizzazioni mentali vengono estese attenzionalmente dal soggetto all'oggetto tramite appunto l'operare costitutivo del pensiero, il tipo di conoscenza subisce un ulteriore salto di livello,si prende atto di come il nostro atteggiamento sia in qualche modo causale della realtà e ciò che ci circonda sia a sua volta causale del nostro comportamento. Teoricamente allora dovrebbe corrispondere un terzo livello di comunicazione, ma non sempre nella realtà questo accade, la sistematicità di utilizzo del secondo livello di comunicazione è preponderante e può succedere che l'essere umano incontri invece delle difficoltà psicologiche se le premesse di terzo ordine, quelle che appunto mettono in relazione stretta il soggetto con il mondo in cui si trova, non riescono a spiegare un universo per lui assurdo, ovvero, se i correlati primi derivanti dalle attività percettive e cognitive, o concetti di primo livello, non corrispondono con i correlati secondi derivanti dalle attività di teorizzazione o astrazione, o concetti di livelli superiori, si può ammettere che non sapendo spiegare in alcun modo questo avvenimento, possono manifestarsi invece nell'individuo, le premesse per delle manifestazioni di sofferenza psicologica, quella che possiamo individuare come angoscia esistenziale. Ma vediamo di approfondire sin d'ora, almeno per rendere più chiare le affermazioni sopra esposte, quelle che sono le ragioni che provocano l'interazione fra la sfera mentale e la sfera psicologica, se proprio dobbiamo dividere in due settori ciò che è la risultanza delle operazioni mentali viste sotto un profilo comportamentale e fisiologico. Partiamo con il considerare il fatto che ogni individuo ha una “sua immagine” di se stesso che chiamiamo immagine dell'Io, ovvero tutta quella serie di concetti strettamente correlati fra loro che costituiscono la personalità o il carattere di ognuno di noi, ovviamente è un'immagine mentale che deriva da dei processi molto complicati, perlomeno per quanto riguarda la strutturazione relazionale dei concetti che concorrono alla sua costituzione. Ora, ogni individuo recepisce la realtà in conformità alla tipologia di processi che derivano dalla interconnessione delle informazioni con questa sua immagine da cui si sviluppano tutta una serie di stati mentali o psicologici che appartengono ad un unica famiglia: quella degli stati d’animo, delle sensazioni, delle emozioni, dei sentimenti, delle impressioni e quant’altro concorre a provocare l’evoluzione di questa immagine stessa. Consideriamo a questo punto gli effetti che queste situazioni mentali provocano a livello fisico, è indubbio che vi sia una relazione fra gli stati mentali e delle condizioni cerebrali e nervose, dobbiamo sempre far riferimento al fatto che esiste una forte interconnessione fra informazione ed energia, alla base di tutto ciò dobbiamo allora individuare delle funzioni che determinano la possibilità di sviluppare una trasformazione energetica tale da rendere possibile l'evoluzione fra le informazioni ricevute e quelle fornite, in altre parole, se consideriamo le facoltà attenzionali della mente, siamo in grado di stabilire l'esistenza di un complesso sistema di cause-effetti che comprende sia la tipologia costitutiva relazionale dei pensieri, sia la compartecipazione fisica dell'organismo a questi processi. Sulla base delle considerazioni sin qui postulate, non si individua comunque un salto di livello di comunicazione, semmai si possono fare delle asserzioni sulla tipologia espressiva della costituzione relazionale delle informazioni che concorrono alla evoluzione dell'immagine dell'io, ovvero, osservando che la metodologia espressiva derivante da una situazione di compartecipazione dei processi mentali con le informazioni ricevute, origina un sistema di comunicazione che sopra abbiamo individuato come linguaggio analogico che difficilmente riesce a produrre degli effetti positivi se deriva da questa posizione; è molto più probabile allora, che a questo livello, si instauri un sistema di comunicazione degenerante che, non solo riduce le possibilità evolutive sulla tipologia di interazione fra il soggetto e il suo ambiente, ma molto spesso accade che venga anche pesantemente condizionata l'immagine dell'io in senso negativo, ossia provocando effetti patologici da un punto di vista psicologico. Per comprendere ancor meglio quanto sopra esposto dobbiamo far riferimento ad una tipologia di comunicazione dove si individuano due elementi in grado di ricevere e fornire informazioni dirette alla loro reciproca evoluzione, è il mondo delle relazioni intellettuali ed umane, dei rapporti uomo-uomo, uomo-donna, donna-uomo e donna-donna, ma per altre ragioni è anche il caso che riguarda la relazione più generale individuo-ambiente ,individuo-società ecc..., dove in sostanza le informazioni che vengono trasferite da una parte all'altra dell'universo provocano degli effetti che a loro volta saranno le cause di altre informazioni, dove si instaurano dei sistemi a tendenza e non è più sufficiente una metodologia di comunicazione intesa a mettere in relazione le cose fra di loro o ad identificarne le relazioni, dove anche la conoscenza delle cose e sulle cose non è più sufficiente, ma si rende necessario poter intervenire sulle possibilità di modificare, di trasformare e determinare sia le relazioni fra le cose che i processi necessari per queste operazioni, dove la comunicazione logica abbisogna di un supporto strutturale sulla sua applicazione in relazione sia alle possibilità di intervento dell'individuo che la esercita che in relazione alla propria evoluzione. Il supporto comunicativo relativo a questo livello dunque deve essere in grado di poter definire la strutturazione del linguaggio logico-descrizionale, deve individuare le posizioni logiche delle fonti di comunicazione e delle riceventi e deve soprattutto poter spiegare la sua metodologia espressiva in relazione alle cause che lo generano e agli effetti che vuole ottenere, indubbiamente si tratta di qualcosa di complesso, specialmente in riferimento alle possibilità di poter stabilire la propria posizione logica sia nei confronti dell'oggetto del sistema relazionale che per quanto riguarda il supporto informazionale adottato, ne consegue allora, che questa tipologia di comunicazione sia difficilmente raggiungibile soggettivamente. In pratica però e possibile ottenere un terzo livello di comunicazione qualora la presa forte di coscienza del soggetto, fra lui stesso e la realtà effettuale in cui è inserito, dia origine a quella che gli addetti ai lavori chiamano “metacomunicazione” e che consiste nell'utilizzare la comunicazione logica per spiegare quali siano le relazioni esistenti appunto fra il soggetto e la realtà, oppure fra due oggetti percepiti e controllati nel loro campo di esistenza, situazione questa che è tanto più facile da capire quanto più il soggetto risulti sostanzialmente staccato attenzionalmente da ciò che sta analizzando, come lo scienziato che studia un evento mettendo in relazione gli elementi che compongono il sistema analizzato, o come uno psichiatra che controlla la configurazione interattiva della comunicazione di una diade, si tratterebbe in definitiva di poter interferire sulla tipologia del sistema di comunicazione adottato, ovvero di definire, controllare e modellare la relazione esistente fra i componenti di un qualsiasi sistema interattivo. Si potrebbe osservare, a questo punto, che comunicare premesse del terzo ordine non significa più soltanto trasferire informazioni da un punto all'altro dell'universo, tramite delle "stazioni trasmittenti e riceventi", ma poter dare atto a dei processi di trasformazione energetica che coinvolgono i partecipatori alla comunicazione, strutturando in questo senso un sistema interattivo di carattere organicistico. E' presupponibile dunque che, per quanto riguarda la pragmatica della comunicazione umana, sia a questo livello che avvengono delle trasformazioni sull'immagine dell'Io, ovvero che su questi presupposti si basi la maggior parte degli stati d'animo, delle sensazioni, delle emozioni e dei sentimenti che caratterizzano ognuno di noi, dove i processi di trasformazione energetica prendono spunto da una forma di comunicazione che potremmo stereotipare alle seguenti asserzioni: “ecco come io interpreto che tu mi interpreti che io ti interpreto, o ecco perché io interpreto in questo modo il fatto che tu mi interpreti in quel modo, che io ti posso interpretare.” Prende corpo così un primo livello di “Giudizio!”. L' assunzione di coscienza di questa metodologia di indagine e l'adozione di questa tipologia di interpretazione rendono possibile il presupposto che ci debba essere un “quarto livello di conoscenza” a cui in teoria dovrebbe corrispondere un “quarto livello di comunicazione”, ovvero, per poter esprimere delle relazioni sulle premesse di terzo ordine e a maggior ragione, per modificarle, sono necessarie delle strutturazioni costitutive del pensiero che prendono vita ad un livello di interconnessione fra informazioni e processi derivanti dall'immagine dell'io che si sviluppano con una logica propriamente appartenente alla strutturazione relazionale matematica. Sotto l'aspetto delle attività mentali si può capire che c'è la possibilità di modificare anche volontariamente attraverso delle operazioni più complesse dal punto di vista propriamente fisico che non mentale, quelle che sono le categorizzazioni indotte dalle correlazioni attenzionali costitutive del pensiero, in altre parole, si può pensare che le armonie degli stati attenzionali, che si possono presupporre alla base delle nostre operazioni mentali, si possano modificare, ottenendo così dei mutamenti di concettualizzazioni a livello conscio. Si potrebbe supporre allora, che sia proprio questo il livello di costituzione delle concezioni paradossali che tanto influenzano la nostra mente, quindi fondate su delle premesse del tutto razionali che condizionano fortemente le possibilità relazionali dei concetti, dove le correlazioni logiche sono sostanzialmente date dalle facoltà elementari di interpretazione, ovvero, dove le operazioni mentali sono date dalle strutturazioni omeostatiche del sistema cerebrale: quelle che si potrebbero definire operazioni sinaptiche. Sta di fatto effettivamente che, a questo punto, si debba pensare ad una catena infinitamente regredente sulle tipologie di conoscenza e sui relativi sistemi di comunicazione, ma io suppongo però che esista un limite! Possiamo indubbiamente affermare che un quarto livello di comunicazione sia reso possibile soltanto dalla interazione nella comunicazione delle metodologie logico-matematiche e che quindi il sistema di comunicazione si presenti per certi versi indubbiamente di difficile comprensione per la maggior parte di noi, c'è da sperare comunque che una tale barriera non sia insuperabile per la nostra immaginazione. Ed è quindi bene ribadire che anche a questo livello di comunicazione, ossia utilizzando una forma correlativa che sia la più adatta possibile per la descrizione della realtà fisica delle cose, chiamiamola pure linguaggio matematico, esistono delle forme paradossali dovute al fatto che esiste sia un modo mentale di ragionamento dove la concezione di una cosa può sempre sembrare dualistica e paradossalmente appunto più si tenta di stabilire una delle due realtà interpretate, meno si è in grado di concepire l'altra parte, come se si tentasse di capire un disegno guardandolo attraverso una lente di ingrandimento che ne chiarisca il particolare fino a riconoscerne il tratto anche quello più evanescente e si perdesse così di vista il disegno nella sua completezza, sia che la realtà stessa si presenta per vari aspetti in modo indefinito o perlomeno indeterminabile. Soltanto con la comprensione di un linguaggio talmente logico perfino da essere paradossale e con il superamento di questo in una visione completa della realtà, che in sostanza consiste nel tenere presente in una operazione di analisi mentale quello che raffigura il particolare con la concezione dell'intero, una operazione mentale estremamente complessa poiché richiede di non staccare l'attenzione fra una concezione di pluralità dei percepiti e una concezione di singolarità dell'insieme degli stessi, avremmo così la possibilità di ottenere una comprensione della stessa realtà analizzata che dà la sensazione di essere completa, dove il nulla, l’infinitesimo e l’infinito si configurano con l’unità in una indefinizione di termini. Dove il “Giudizio” non può essere più espresso poiché tutto diventa interazione, compartecipazione, interconnessione funzionale. Sembrerà strano, ma il fatto che ci siano dei paradossi logici è del tutto logico poiché se ammettiamo che esiste una variabile 'a' esiste anche il suo contrario: ‘!a’, quella che nel linguaggio comune definiamo come la sua “negazione”, ma che invece dovremmo identificare come “complementarietà”! E qui dobbiamo ancora presupporre un “quinto livello di conoscenza”, quindi un “quinto livello di comunicazione” che, nell'ambito normale della vita comune si presuppongono trascendentali. Si può a questo punto ipotizzare che un quinto livello di comunicazione sia quello derivante da fattori paranormali come la telepatia, la telecinesi od altro, ma di solito a queste forme di comunicazione non corrisponde una presa di coscienza razionale del sistema di conoscenza del livello corrispondente a livello soggettivo. Gli esempi più classici dell'esistenza di queste metodologie di comunicazione li possiamo notare in coloro che posseggono una "coscienza mistica", che sembra proprio essere in antitesi con la "coscienza razionale" dei teorici-matematici, ovvero, l'immagine della realtà di un mistico prende origine da delle metodologie mentali di correlazioni, categorizzazioni ecc. che non sembrano aver nulla in comune con quelle del matematico, perlomeno a certi livelli, ma se ci soffermassimo più attentamente su queste considerazioni ci accorgeremmo che esiste sempre qualcosa che lega assieme anche quello che sembra essere del tutto disgiunto, il nostro ragionamento, a questo punto però deve compiere un salto notevole per portarci a interpretare qualcosa che sta al di fuori della nostra mente, qualcosa di strutturale che la sola razionalità non riesce a spiegare. Sotto questo aspetto allora, si può ritenere che il limite esistente sulle tipologie di conoscenza e sulle metodologie di comunicazione , sia da ritenersi dovuto al fatto che abbiamo individuato due sistemi di comunicazione apparentemente in antitesi fra loro ed esistenti sullo stesso sistema di coordinate. Ora, è possibile pensare ad ulteriori tipologie di conoscenza e ad ulteriori tipologie di comunicazione, ma è difficile immaginare che questi esistano sul nostro pianeta, perlomeno per quanto riguarda la normalità dei sistemi esistenti, invece c'è da notare che, per quanto riguarda la strutturazione della comunicazione umana, dobbiamo ammettere che sussistano contemporaneamente tutte queste componenti, pragmaticamente dunque è per questa ragione che diviene inscindibile il legame fra esistenza e comunicazione, in altre parole è impossibile non comunicare quando si esiste, e se si comunica, a meno di qualche anomalia, questo avviene a tutti i livelli. Ma ritorniamo per il momento al fatto che qualsiasi tipo di atteggiamento instaura, fra chi lo compie e l'ambiente che lo circonda, una serie complessa di interazioni causali ed è quindi comprensibile che si venga a creare una catena di cause ed effetti, vedendola quindi sotto questa ottica, l'esistenza è una funzione fra il soggetto, l'organismo e il suo ambiente, nell'ambito umano questa interazione raggiunge quindi dei livelli di complessità notevoli, i vari tipi di conoscenza e di linguaggio che ne derivano sono la prova tangibile di questa complessità, ma non ci scoraggi questo, in fondo le operazioni mentali che sono alla base dei nostri pensieri hanno un carattere omeostatico e possiamo tentare di aiutarci nell'interpretazione usufruendo di un grafico che ci potrà dare l'immagine che illuminerà l'estrema somiglianza dei processi mentali che originano i livelli di conoscenza e di comunicazione con delle operazioni comuni di studio e analisi delle funzioni. Ecco un semplice esempio: Per la comprensione di questo grafico dobbiamo partire dal presupposto che la presa di coscienza di esistere corrisponde ad un sistema di conoscenza di secondo ordine e ne sottintende una metodologia di comunicazione adeguata: è come se noi fossimo in grado di riconoscere quella che sul grafico sopra esposto è la curva di funzione “vita”, quindi la metodologia di comunicazione utilizzata corrisponderebbe appunto al nostro classico porsi a livello comunicativo in maniera descrittiva della nostra esistenza che in sostanza risponde alle esigenze di tutti i giorni e sottintende quel linguaggio comune che utilizziamo per farci capire, quella simbologia comunicativa che identifica la possibilità mentale di concettualizzare i percepiti ma che nulla può dire sulla conoscenza della concettualizzazione stessa. Non appena però la nostra mente si pone attenzionalmente attiva tra il soggetto e la funzione della sua esistenza e quindi sussistono le premesse di terzo ordine, si prende coscienza anche del grado di qualità della nostra esistenza ed è come se la nostra mente facesse l'operazione di integrale della curva di funzione, come se in parole povere, ne misurasse l'area sottintesa o meglio, effettuasse un confronto fra questa, che può rappresentare il grado di libertà raggiunta e quello ipotizzato, non effettuerebbe in sostanza che un raffronto fra un percepito primo dovuto, come ripeto alle operazioni mentali di percezione e cognizione, e un percepito secondo dovuto a quelle di teorizzazione, (uso la forma di percepito e non di correlato in quanto intendo far capire che vi sono modi diversi per identificare operazioni simili mentali, in questo caso i concetti vengono pensati come presi attenzionalmente da una funzione soggettiva e da un operare); la forma di comunicazione che sottintende questo livello di conoscenza deve quindi spiegare i rapporti in modo logico fra il soggetto e il mondo che lo circonda ovvero si tratterebbe di saper metacomunicare, spiegarsi i vari perché delle cose e dei metodi di comunicazione. In definitiva l'unità di misura che si potrebbe affidare alla funzione integrale (l'area sottintesa alla curva di funzione esistenziale) sarebbe la libertà acquisita in senso fisico di sensazione esprimibile con dei raffronti rispetto ad una teorizzata che invece è frutto come vedremo più oltre di situazioni attenzionali della mente. In fine,la presa di coscienza di questi tre livelli di conoscenza e di comunicazione si esprimerebbe con la funzione di derivata della funzione esistenziale, ossia quella funzione che nel tempo ‘x’ è in grado di stabilire quali saranno i rapporti fra i percepiti primi e quelli secondi nel tempo 'x+dt', ovvero nell'immediato futuro, che corrisponde nel grafico alla tangente della curva di esistenza nella posizione data dal tempo 'x'; ne rappresenta altresì il grado di verità, in altre parole possiamo dire benissimo che la nostra mente può arrivare ad ipotizzare una situazione tendenziale appunto attraverso le capacità di teorizzazione, quindi di stabilire quelle che saranno le situazioni di "domani" a meno dell'imponderabile, ma a questo punto la metodologia di comunicazione è forzatamente una metodologia che integra nel linguaggio parlato o scritto anche un linguaggio logico-matematico, in questo caso allora si può osservare che negli assi cartesiani abbiamo utilizzato un solo quadrante, nulla si può dire di che cosa rappresentino gli altri tre quadranti a meno di un discorso paradossale dal punto di vista logico che derivi da una considerazione del tutto trascendentale che presuppone una conoscenza o degli sprazzi di intelligenza che si suppongono derivanti soltanto dalle potenzialità mentali di ordine ancora superiore, quelle che deriverebbero dall'associare alla curva di esistenza non solo altre operazioni matematiche in modo da completare tutta l'analisi della curva stessa, ma di poter stabilire al di là di ogni esperienza possibile ed esprimibile con questo linguaggio una conoscenza ancora maggiore della realtà, poiché il grafico esprime negli assi una riparametrazione fra una situazione percepita nel contesto spazio-temporale e quindi esistenziale, dove alla base si considera soltanto la realtà effettuale delle cose, che non è la “realtà esterna”, ma una specie di raffigurazione insita nelle nostre potenzialità inferenziali, un’insieme di “engrammi” (che possiamo immaginare come configurazioni energetiche neuronali), che ci permettono di avere la “percezione” di una realtà esterna e che se dovessi sintetizzare il concetto in una immagine il concetto, vorrei esprimerlo così: Spero a questo punto di non aver esagerato con questa tipologia di dimostrazioni, anche perché queste erano le premesse di base per dei ragionamenti che dovrebbero in realtà aprire la mente ad astrazioni di tipo ancora più evoluto, visto che l'argomento che vorrei affrontare riguarda in fondo la tipologia e la metodologia mentale di operare, e vi assicuro, sebbene nulla si possa ritenere difficile ma forse tedioso, che non vorrei rendere di difficile comprensione i soggetti trattati né deformare quelle che sono le vostre convinzioni sulle attività mentali, ma soltanto ipotizzare una metodologia di funzionamento che spero comunque riscontrabile e non sminuisca in formule il nostro pensiero, ma che dia origine ad altri metodi di analisi e ci possa aiutare a capirci di più. In fondo credo che se dovessimo solo definirci in termini matematici potremmo usare una semplice formula: e definirci come il punto finale di una geodetica esistenzaile! Dopo questa parentesi riflessiva che mi sentivo di inserire, vorrei riprendere un argomento poco sopra trattato, quello dei rapporti causa-effetto, poiché esiste una branca della matematica che ne studia la fenomenologia e ritengo altrettanto basilare dedicare un altro articolo, forse il prossimo appunto, a questo tipo di analisi per introdurre poi il discorso nel vivo della ipotesi della metodologia di studio della mente umana e della “intelligenza artificiale”. Il prossimo articolo sarà incentrato sullo studio, condotto a livello elementare dei sistemi a retroazione o feed-back poiché ritengo che siano una buona base di partenza per la comprensione di molti concetti che sono relativi alla metodologia mentale di elaborazione e non solo, ma sono in qualche modo alla base degli studi sulla intelligenza artificiale e si propongono anche come modelli matematici elastici per poter dare una immagine, per quanto limitata alle mie teorizzazioni e ai miei studi del funzionamento della nostra mente, se non proprio da un punto di vista scientifico, nel senso di comprendere a livello fisico-chimico o bio-neurologico tutte le trasformazioni che avvengono nel cervello ogni volta che si effettua una operazione mentale, perlomeno da un punto di vista logico-matematico, che ci conceda lo spazio per una visione armonica e inserita nel contesto di una comprensione della realtà che non sminuisca per queste ragioni ciò che la nostra mente è in grado di produrre nel senso più nobile della parola, come i sentimenti, le emozioni gli stati d'animo e quella miriade di atteggiamenti che ci contraddistinguono gli uni dagli altri e noi stessi nel tempo, dare una immagine in sostanza, che migliori la comprensione delle cose che siamo in grado di concepire, siano esse esterne a noi che mentali, dove il termine “intelligenza” è soltanto uno tra i vari concetti categorizzabili. Per poter iniziare parlare quindi di “intelligenza artificiale” è sicuramente necessario aver ben chiaro il concetto di “intelligenza”, che a mio avviso, non è semplicemente definibile con un paragrafo enciclopedico; se dovessi esprimere un mio personale parere, direi che per quanto concerne questa parola, “intelligenza”, non la assocerei a delle potenzialità teleologico-inferenziali che si possono in qualche modo generare in macchine od anche in organismi biologici elementari, il termine “intelligenza artificiale” in questi casi, lo ritengo del tutto inappropriato! Una delle operazioni più comuni della mente umana, anche perché funziona in modalità omeostatica, è la “categorizzazione per similitudine”, che in effetti siamo stati in grado di trasferire a delle macchine, basti pensare agli algoritmi di computervision, ed è dovuto a tale procedura il fatto che si è utilizzato il termine “intelligenza” per definire certe “facoltà” operative di carattere artificiale. Un “primitivo”, guardando un aereo lo definirebbe come uccello di ferro, guardando un UFO lo potrebbe definire come un “Clipeus Ardens”… o un uovo volante…. (l’utilizzo stesso della metacomunicazione fa riferimento a questo processo)… e quindi l’uomo moderno definisce “Sophia” un “androide intelligente”! L’intelligenza è un processo di interconnessione informatico-energetica a carattere teleologico complesso coscienziale, che ha delle premesse sul sistema di comunicazione e di consapevolezza che poco hanno a che spartire con combinazioni binarie od anche quantistiche, dettate da algoritmi. Parlare quindi di “intelligenza artificiale” significa addentrarsi su un mondo che parte dagli algoritmi genetici “sessuati” o meno, implementabili su organoidi di Xenobot, per arrivare al transumanesimo! ( a questo punto però vi chiedo di non sparare sul pianista...) Grazie mille per la lettura
- I migliori computer a scheda singola per progetti di intelligenza artificiale(IA) e deepLearning(DL)
I computer a scheda singola (SBC) sono molto apprezzati sia dai tinker che dagli hobbisti, offrono molte funzionalità in un fattore di forma molto piccolo. Un SBC ha la CPU, la GPU, la memoria, le porte IO, ecc... su un piccolo circuito stampato e gli utenti possono aggiungere funzionalità aggiungendo nuovi dispositivi alle porte GPIO . Alcuni degli SBC più popolari includono la famiglia di prodotti Raspberry Pi e Arduino . Tuttavia, vi è una crescente domanda di SBC che possono essere utilizzati per applicazioni di elaborazione edge come Intelligenza Artificiale (AI) o Deep Learning (DL) e ce ne sono parecchie. L'elenco seguente è costituito da alcuni dei migliori SBC che sono stati sviluppati per l'edge computing. L'elenco non è in un ordine di classifica particolare. Andiamoli a vedere... Indice Famiglia Nvidia Jetson ROCK Pi N10 BeagleBone AI BeagleV HiKey970 Google Coral Dev Board Google Coral Dev Board Mini Conclusioni 1. Famiglia Nvidia Jetson Nvidia ha una vasta gamma di SBC che si rivolgono sia agli sviluppatori di intelligenza artificiale. La loro linea di " kit per sviluppatori Jetson " sono alcuni degli SBC più potenti e convenienti disponibili sul mercato. Di seguito è riportato un elenco delle loro offerte. Kit per sviluppatori Nvidia Jetson Nano A partire da circa 59€ , il Jetson Nano è l'SBC più economico della lista e offre un buon rapporto prezzo / prestazioni. Può eseguire più reti neurali insieme ad altre applicazioni come il rilevamento di oggetti, la segmentazione, l'elaborazione del testo e la classificazione delle immagini. Il Jetson Nano è rivolto agli appassionati di intelligenza artificiale, hobbisti e sviluppatori che desiderano realizzare progetti implementando l'intelligenza artificiale. La scheda Jetson Nano viene offerta in due varianti: 4 GB e 2 GB. Le principali differenze tra i due sono il prezzo, la capacità della RAM e le porte IO offerte. La variante da 4 GB è stata mostrata nell'immagine sopra. Specifiche chiave • CPU: ARM A57 quad-core a 1,43 GHz • GPU: NVIDIA Maxwell a 128 core • Memoria: 4 GB LPDDR4 a 64 bit a 25,6 GB/s oppure 2 GB LPDDR4 a 64 bit a 25,6 GB/s • Memoria: supporto per scheda microSD • Display: HDMI e Display Port o HDMI Kit per sviluppatori Nvidia Jetson Xavier NX Il Jetson Xavier NX è un passo avanti rispetto al Jetson Nano e si rivolge maggiormente agli OEM, alle start-up e agli sviluppatori di intelligenza artificiale. Jetson Xavier NX è pensato per applicazioni che necessitano di una potenza di elaborazione IA più seria che un'offerta entry level come Jetson Nano semplicemente non può fornire. Il Jetson Xavier NX viene offerto a circa 386€. Specifiche chiave • CPU: NVIDIA Carmel ARM v8.2 a 6 core a 64 bit • GPU: architettura NVIDIA Volta con 384 core NVIDIA CUDA e 48 core Tensor • Acceleratore DL: 2x motori NVDLA • Acceleratore di visione: processore di visione VLIW a 7 vie • Memoria: 8 GB a 128 bit LPDDR4x a 51,2 GB/s • Memoria: supporto microSD • Display: HDMI e Display Port Kit per sviluppatori Nvidia Jetson AGX Xavier Jetson AGX Xavier è il prodotto di punta della famiglia Jetson, è pensato per essere implementato in server e applicazioni di robotica in settori come la produzione, la vendita al dettaglio, l'automobile, l'agricoltura, ecc. Con un prezzo di circa 694€ , Jetson AGX Xavier non è pensato per i principianti, è pensato per gli sviluppatori che desiderano prestazioni di elaborazione edge di alto livello a loro disposizione e per le aziende che desiderano una buona scalabilità per le loro applicazioni. Specifiche chiave • CPU: ARM v8.2 a 8 core a 64 bit • GPU: a 512 core con Tensor Core • Acceleratore DL: 2x motori NVDLA • Acceleratore di visione: processore di visione VLIW a 7 vie • Memoria: LPDDR4x da 32 GB a 256 bit a 137 GB / s • Memoria: 32 GB eMMC 5.1 e presa per scheda uSD / UFS per l'espansione della memoria • Schermo: HDMI 2.0 2. ROCK Pi N10 Il ROCK Pi N10, sviluppato da Radxa è la seconda offerta più economica in questo elenco con la sua variante di base che arriva a circa 99€ , la sua variante top di gamma arriva a circa 169€. Il ROCK Pi N10 è dotato di una NPU (Neural Processing Unit) che lo aiuta a elaborare con facilità i carichi di lavoro IA / Deep Learning. Offre fino a 3 TOPS (Tera Operations Per Second) di prestazioni. Viene offerto in tre varianti: ROCK Pi N10 Model A ROCK Pi N10 Model B ROCK Pi N10 Model C le uniche differenze tra queste varianti sono il prezzo, la RAM e le capacità di archiviazione. Il ROCK Pi N10 è disponibile per l'acquisto tramite Seeed Studio . Specifiche chiave • CPU: RK3399Pro con Cortex-A72 a 2 core a 1,8 GHz e Cortex-A53 a 4 core a 1,4 GHz • GPU: Mali T860MP4 • NPU: supporta l'elaborazione a 8 bit / 16 bit con una potenza di elaborazione fino a 3.0 TOPS • Memoria: LPDDR3 da 4 GB / 6 GB / 8 GB a 64 bit a 1866 Mb / s • Memoria: 16 GB / 32 GB / 64 GB eMMC • Schermo: HDMI 2.0 3. BeagleBone AI BeagleBone AI è l' SBC open source di BeagleBoard.org , pensato per colmare il divario tra i piccoli SBC e i computer industriali più potenti. L'hardware e il software del BeagleBoard sono completamente open source. È pensato per l'uso nell'automazione di case, industrie e altri casi d'uso commerciali. Ha un prezzo di circa 110€ , il prezzo varia tra i rivenditori, per maggiori informazioni controlla il loro sito web . Specifiche chiave • CPU: Texas Instrument AM5729 con ARM Cortex-A15 dual-core a 1,5 GHz • Co-processore: 2 x Dual-core ARM Cortex-M4 • DSP: 2 x C66x VLIW a virgola mobile • EVE: 4 motori di visione integrati • GPU: PowerVR SGX544 • RAM: 1 GB • Memoria: 16 GB eMMC • Display: microHDMI 4. BeagleV Il BeagleV è l'ultimo lancio nell'elenco, è un SBC che esegue Linux fuori dalla scatola e ha una CPU RISC-V . È in grado di eseguire applicazioni di elaborazione edge senza sforzo, per saperne di più su BeagleV controlla la copertura del lancio. Il BeagleV avrà due varianti, una da 4 GB di RAM e una da 8 GB di RAM. I prezzi partono da circa 119€ per il modello base e 149€ per il modello da 8 GB di RAM, è possibile preordinare tramite il loro sito web . Specifiche chiave • CPU : RISC-V U74 2-Core @ 1.0GHz • DSP: Vision DSP Tensilica-VP6 • Acceleratore DL: motore NVDLA 1-core • NPU: motore di rete neurale • RAM: 4 GB / 8 GB (2 x 4 GB) LPDDR4 SDRAM • Memoria: slot microSD • Schermo: HDMI 1.4 5. HiKey970 HiKey970 è il primo SBC a 96 schede pensato per applicazioni di elaborazione edge ed è la prima piattaforma IA NPU dedicata al mondo. HiKey970 è dotato di CPU, GPU e NPU per accelerare le prestazioni dell'IA, può anche essere utilizzato per l'addestramento e la creazione di modelli DL (Deep Learning). HiKey970 ha un prezzo di circa 299€ e può essere acquistato dal loro negozio ufficiale . Specifiche chiave • SoC: HiSilicon Kirin 970 • CPU : ARM Cortex-A73 4-Core a 2,36 GHz e ARM Cortex-A53 4-Core a 1,8 GHz • GPU: ARM Mali-G72 MP12 • RAM: 6 GB LPDDR4X a 1866 MHz • Memoria: microSD UFS 2.1 da 64 GB • Display: HDMI e porta MIPI / LCD a 4 linee 6. Google Coral Dev Board Il Coral Dev Board è il primo tentativo di Google di un SBC dedicato all'edge computing. È in grado di eseguire inferenze ML (Machine Learning) ad alta velocità e supporta TensorFlow Lite e AutoML Vision Edge. La scheda ha un prezzo di circa 129€ ed è disponibile sul sito ufficiale di Coral . Specifiche chiave • CPU: SoC NXP i.MX 8M (Cortex-A53 a 4 core, Cortex-M4F) • Acceleratore ML : coprocessore TPU di Google Edge • GPU: grafica GC7000 Lite integrata • RAM: 1 GB LPDDR4 • Memoria: 8 GB eMMC e slot microSD • Display: HDMI 2.0a, connettore FFC a 39 pin per display MIPI-DSI (4 corsie) e connettore FFC a 24 pin per fotocamera MIPI-CSI2 (4 corsie) 7. Google Coral Dev Board Mini Coral Dev Board Mini è il successore della Coral Dev Board, racchiude una maggiore potenza di elaborazione in un fattore di forma più piccolo e un prezzo inferiore di circa 99€. Il Coral Dev Board Mini può essere acquistato dal loro negozio web ufficiale . Specifiche chiave • CPU: SoC MediaTek 8167s (Arm Cortex-A35 a 4 core) • Acceleratore ML: coprocessore TPU di Google Edge • GPU: IMG PowerVR GE8300 • RAM: 2 GB LPDDR3 • Memoria: 8 GB eMMC • Display: micro HDMI (1.4), connettore FFC a 24 pin per fotocamera MIPI-CSI2 (4 corsie) e connettore FFC a 24 pin per display MIPI-DSI (4 corsie) Pensieri conclusivi È disponibile un SBC in ogni fascia di prezzo per applicazioni di elaborazione edge. Alcuni sono solo di base, come Nvidia Jetson Nano o BeagleBone AI e alcuni sono modelli orientati alle prestazioni come BeagleV e Nvidia Jetson AGX Xavier. Se stai cercando qualcosa di più universale, puoi controllare il nostro articolo sulle alternative Raspberry Pi che potrebbero aiutarti a trovare un SBC adatto al tuo caso d'uso. Se mi sono perso qualche SBC dedicato al calcolo edge, sentiti libero di farmelo sapere nei commenti qui sotto. Grazie mille per la lettura, condividi l'articolo se ti è stato di aiuto!
- RAIT88: passione e resilienza al servizio del Sistema Paese
Robotica e Realtà Virtuale come volani per rilanciare l’economia Italiana dando supporto e valore aggiunto per la didattica a distanza o l’assistenza medica; per la progettazione, previsualizzazione o per il loro impiego nella simulazione militare, civile, avionica e robotica. RAIT88, hub di Eccellenza per la Difesa nel campo del Reverse Engineering, gestione e monitoring dell’Obsolescenza, è tra le aziende strategiche per il Ministero della Difesa, affermata anche nello sviluppo di software 3D interattivi. Fondata nel 1988, la società della famiglia Calabrò ha l’innovazione nel proprio DNA. Premiata nel 2019 e nel 2020 come Eccellenza dell’Anno Innovazione & Leadership Electronic Supply Chain nell’ambito del premio Le Fonti Awards, l’azienda romana ha iniziato il suo 2021 come una delle Srl più in crescita del settore. La Realtà Virtuale e le applicazioni innovative Fin dai primi anni 2000, le tecnologie di Realtà Virtuale si sono fatte strada nel mercato dell’intrattenimento e delle applicazioni aziendali, mostrando però i lati deboli di una tecnologia ancora acerba. Grazie allo studio di queste tecniche, è stato finalmente possibile sviluppare soluzioni fino a poco tempo fa impensabili: questo è il contesto in cui RAIT88 ha coltivato il know-how dei sistemi di sviluppo software 3D interattivi. Con il tempo e la cura che solo un’azienda con una vocazione che si può definire artigianale può esprimere, questa piccola società ha saputo conquistarsi uno spazio di esclusività ed Eccellenza totalmente made in Italy, e ad oggi può quindi porsi come Partner Strategico nella realizzazione di soluzioni all’avanguardia in molti sistemi industriali, anche diversi tra loro ma interconnessi. La passione artigiana al servizio dei Future Trends “Ricerca e Sviluppo, le Nanotecnologie, i Nanomateriali e la Quantum Technology - interviene l’AD di RAIT88 Alessio Calabrò - sono i cardini su cui ci muoviamo, che richiedono uno sforzo costante di investimento nell’Innovazione e figure competenti altamente specializzate che selezioniamo dai migliori Atenei ed Enti di Ricerca, al fine di mantenere in Italia i cervelli che altrimenti andrebbero all’estero. Queste eccellenze professionali inserite nel nostro contesto industriale, ci permettono di sviluppare prodotti di nuova concezione con tecnologie all’avanguardia”. Non è un caso che RAIT88, unica azienda italiana a sviluppare prodotti FFF (Form-Fit-Function) senza documentazione fornita dal Prime - perché smarrita o introvabile sul mercato - abbia inserito lo sviluppo della Realtà Virtuale nella sua già ampia fornitura di servizi di sviluppo e innovazione. Soprattutto in questo momento di profondo cambiamento del paradigma, l’azienda guidata dalla famiglia Calabrò ha voluto mettere il proprio know-how al servizio dell’Industria Italiana, rimanendo continuamente aperta durante il Lockdown senza ricorrere ad alcun ammortizzatore sociale per il Covid-19, e ponendosi come antesignana nelle innovazioni per fronteggiare le criticità del futuro. Clicca qui per visitare il Sito RAIT88 e scoprire di più
- Che cosa è il ROS (Robot Operating System) e quali sono le sue applicazioni + Esempio pratico
ROS Industrial (Robot operating system) Robot Operating System (ROS) è un insieme di librerie software e strumenti per la creazione di applicazioni robotiche. Dai driver agli algoritmi all'avanguardia e con potenti strumenti di sviluppo, ROS Non è un semplice ambiente di simulazione, ma una complessa piattaforma open source, un “middleware” basato su un meccanismo di pubblicazione / sottoscrizione anonimo (server / client) che consente il passaggio di messaggi tra diversi processi ROS e che incorpora anche la possibilità operativa in real time introdotta da ROS Industrial ed ulteriormente sviluppata con la nuova “suite” ROS2. ROS Industrial è un progetto dedicato allo sviluppo di robotica basata su ROS e soluzioni di automazione per strumenti hardware e software rilevanti per il settore. Questa iniziativa è nata come una collaborazione tra Southwest Research Institute, Yaskawa Motoman Robotics e Willow Garage (l'organizzazione che ha fondato ROS) nel 2012 e mira ad accelerare l'adozione di robot con comportamenti migliorati come la collaborazione umana, la manipolazione mobile e il movimento guidato dalla percezione ampliando l'orizzonte delle soluzioni robotiche industriali oltre a saldatura, dispensazione e movimentazione dei materiali. Nonostante ROS2 sia ancora nella fase iniziale di sviluppo, fornisce un progetto promettente per future implementazioni industriali. Si stanno realizzando requisiti per il suo impiego in robot industriali in meccanismi di sicurezza ecc., Le prestazioni di programmazione in tempo reale e interoperabilità con ROS motiverà migliaia di sviluppatori e ricercatori sia dell'industria che del mondo accademico a migliorare lo sviluppo di ROS2 per il campo delle automazioni a qualsiasi livello. Aziende di robotica come ABB, Fanuc, Universal Robots, Robotiq, Omron, Staubli e Fanuc dispongono di controller ROS, pacchetti software e driver per i loro robot nel repository Github. Forniscono supporto ROS-I e soluzioni che consentono l'integrazione dei loro strumenti con altre piattaforme del settore, sfruttando l'ecosistema ROS. Nel prossimo futuro, verranno rilasciati al pubblico altri prodotti software autonomi basati su ROS2. I pacchetti ABB ROS-I e Fanuc ROS-I forniscono passaggi per configurare ABB ROS Server sui loro controller industriali, installare il ROS Server sul client ROS (solitamente un PC) e utilizzare l'ecosistema ROS con il loro software di simulazione personalizzato RobotStudio . Motoman fornisce soluzioni di simulazione della pianificazione del percorso e l'installazione del server ROS Motoman sui suoi controller FS, DX e FRC. Come accennato in precedenza, ROS Industrial estende le capacità di ROS e conforma gli strumenti agli standard del settore. Il progetto definisce pacchetti standard di settore per interfacce utente grafiche (GUI), strumenti end-of-arm (EOAT), sensori, manipolatori e dispositivi di rete utilizzati nelle fabbriche. ROS2 Consente alle industrie di sviluppare soluzioni a livello di attività, integrazione con strumenti di settore come PLC e switch e protocolli di comunicazione come CAN ed Ethercat. Il livello ROS è in grado di interfacciare qualsiasi hardware esistente con ROS. ROS ha tre paradigmi di comunicazione di base: • Sottoscrittore editore • Servizi • Agenti La seguente immagine riassume le peculiarità di ROS1 e ROS2. Il software nativo di ogni dispositivo hardware può essere avvolto attorno al livello ROS per creare nodi ROS utilizzando gli standard industriali ROS. Diversi pacchetti ROS Industrial di solito utilizzano l'API del software nativo per l'hardware e la integrano con l'ambiente ROS creando così un canale per interagire con loro attraverso l'ecosistema ROS. Il cuore di qualsiasi sistema ROS 2 è il ROS graph. Il grafico ROS si riferisce alla rete di nodi in un sistema ROS e alle loro connessioni di comunicazione. Un nodo è un software specifico del grafico ROS, i nodi ROS utilizzano una libreria client ROS per comunicare con altri nodi. I nodi possono pubblicare o ricevere degli argomenti ("Topics") e possono anche fornire o utilizzare servizi e azioni. Ci sono parametri configurabili associati a un nodo che lo rende unico. Le connessioni tra i nodi vengono stabilite tramite un processo di rilevamento distribuito. I nodi possono trovarsi nello stesso processo, in processi diversi o su macchine diverse. Le librerie client ROS consentono ai nodi scritti in diversi linguaggi di programmazione di comunicare. Esiste una libreria client ROS (RCL) di base che implementa le funzionalità comuni necessarie per le API ROS di diversi linguaggi. Vi sono librerie scritte in vari linguaggi ma principalmente le librerie client sono gestite dal team ROS 2: • rclcpp = libreria client C ++ • rclpy = libreria client Python ROS2 Supporta più sistemi robotici, aggiunge il supporto per sistemi multi-robot e migliora le prestazioni di rete della comunicazione tra multi-robot. ROS2 non si rivolge solo al campo della ricerca scientifica, ma si preoccupa anche del passaggio dalla ricerca all'applicazione dei robot, che può consentire a più robot di portare direttamente i sistemi ROS2 sul mercato. ROS2 non solo può funzionare su sistemi X86 e ARM esistenti, ma supporta anche microcontrollori incorporati come MCU (ARM-M4, core M7). ROS2 supporta il “real time” e aggiunge anche il supporto per il controllo che può migliorare la tempestività del controllo e le prestazioni dell'intero robot. ROS2 non solo funziona su sistemi Linux, ma aggiunge anche supporto per Windows, MacOS, RTOS e altri sistemi, offrendo agli sviluppatori più scelte. Per la comunicazione tra nodi, ROS2 utilizza DDS, uno standard di comunicazione industriale di OMG, per il trasporto di pubblicazione-sottoscrizione. Il vantaggio dell'utilizzo di DDS è che esistono specifiche concrete che terze parti possono esaminare, verificare e implementare con diversi gradi di interoperabilità. QoS (Quality-of-Service) di DDS offre impostazioni di parametri flessibili per controllare l'affidabilità della comunicazione, inoltre, ROS2 può lavorare con diversi fornitori di DDS come FastRTPS, RTI-Connext, OpenSplice e altri. La portabilità tra i fornitori di DDS fornisce agli utenti alternative per selezionare i requisiti specificati, nonché contro i cambiamenti nei fornitori di DDS. Se il modello di comunicazione di ROS1 include principalmente meccanismi di comunicazione come argomenti e servizi, il modello di comunicazione di ROS2 è leggermente più complicato in quanto sono stati aggiunti molti meccanismi di comunicazione DDS. Il modello di comunicazione ROS2 basato su DDS contiene i seguenti concetti chiave: Partecipante: in DDS, ogni editore o abbonato è chiamato partecipante. In corrispondenza di un utente che utilizza DDS, è possibile utilizzare un tipo di dati definito per leggere e scrivere lo spazio dati globale. Editore: l'esecutore della pubblicazione di dati supporta la pubblicazione di più tipi di dati e può essere associato a più autori di dati (DataWriter) per pubblicare messaggi di uno o più argomenti. Sottoscrittore: l'esecutore della sottoscrizione dati supporta sottoscrizioni di più tipi di dati. Può essere associato a più lettori di dati e iscriversi ai messaggi di uno o più argomenti. DataWriter: l'applicazione di livello superiore aggiorna l'oggetto dei dati all'editore. Ogni scrittore di dati corrisponde a un argomento specifico, simile a un editore di messaggi in ROS1. DataReader: l'applicazione di livello superiore legge i dati dagli abbonati. Ogni lettore di dati corrisponde a un argomento specifico, simile a un sottoscrittore di messaggi in ROS1. Argomento ("Topic"): simile al concetto in ROS 1, gli argomenti devono definire un nome e una struttura dati, ma ogni argomento in ROS2 è un'istanza che può memorizzare i dati storici dei messaggi in quell'argomento. Qualità del servizio: abbreviato come Politica QoS, questo è un concetto nuovo e molto importante aggiunto in ROS2. Controlla tutti gli aspetti del meccanismo di comunicazione con il livello sottostante, principalmente dagli aspetti di limite di tempo, affidabilità, continuità e cronologia per soddisfare i requisiti dei dati degli utenti per diversi scenari. La architettura di ROS 2 (ros industrial) si può esprimere con il seguente grafo: Con la versione ROS – Industrial e ROS2 quindi si espande sempre di più il bacino d’utenza delle aziende che potrebbero adottare questa piattaforma software per lo sviluppo di nuove applicazioni basate sull’utilizzo delle nuove tecnologie emergenti anche in ambito industriale, quali quelle che adottano la “Computer Vision” (openCV) anche in abbinata alle implementazioni di “machine learnig”, per quanto riguarda applicazioni del sistema SLAM ( Simultaneous localization and mapping). Sono molte quindi le potenzialità che offre questa piattaforma a coloro i quali intendano fare un cambiamento di paradigma nello studio della robotica industriale, poiché la richiesta di mercato in questo ambito risulta ovviamente essere in forte espansione, come evidenziato dalla seguente immagine che prende in considerazione solo una minima parte dei modelli di robot che attualmente richiedono personale altamente qualificato negli studi robotici. Per coloro che vogliono approcciarsi allo studio di Robot Operating System anche a livello di principiante, il mio consiglio è quello di partire con delle buone conoscenze di C++ e Python che fondamentalmente sono i linguaggi principali di ROS(2) e tanto per dare una primissima infarinatura, utilizzando il più classico dei tutorial, “turtlesim”, faccio notare che in questo ambiente viene utilizzata molta manualità per l’inserimento di codice da riga di comando (da qui il cambio di paradigma richiesto per gli aspiranti professionisti). In questo esempio, che prevede una installazione di ROS2 completa di dipendenze, come da istruzioni ufficiali del sito, si può notare che per avere un minimo di potenzialità operativa (nel far muovere la tartarughina in un ambiente grafico c’è bisogno dell’utilizzo di: 1) Un terminale per avere un help in linea sull’utilizzo dei comandi ROS: 2) Un terminale per l’help in linea per l’utilizzo del comando “run”: 3) Un terminale per l’help in linea per visualizzare l’elenco dei nodi del pacchetto eseguibile: 4) Un terminale per il “lancio” del pacchetto eseguibile, che produrrà in out la finestra grafica dell’ambiente virtuale. 5) Un terminale per il “lancio” del nodo di comando dell’applicazione “azione”: 6) In fine un terminale per il lancio del “topic” desiderato: Tutte queste operazioni produrranno l’effetto di far disegnare un quadrato alla nostra robot-tartaruga in un ambiente protetto. Ambienti di simulazione per applicazioni industriali evidentemente utilizzano dei plugin di ROS. Appositamente sviluppati ad esempio Il plugin “gazebo_ros_api_plugin”, che si trova con il pacchetto gazebo_ros, Questo software inizializza un nodo ROS chiamato "gazebo" che Integra lo scheduler di callback ROS (passaggio di messaggi) con lo scheduler interno di Gazebo per fornire le interfacce ROS utili alla gestione di ambienti virtuali. Questa API ROS consente a un utente di manipolare le proprietà dell'ambiente di simulazione su ROS, nonché di generare e analizzare lo stato dei modelli nell'ambiente, come intuibile dalla seguente figura. Per concludere, ROS (ROS2), a mio avviso è la base sulla quale coloro che intendono approcciarsi al mondo della robotica, in un’ottica professionale ad alto livello (non da operatori), dovrebbero far riferimento. ROS quindi è un ambiente operativo dove gli algoritmi dell’intelligenza artificiale trovano molteplici applicazioni, basti pensare alla “navigazione autonoma”, al trattamento delle immagini, alla gestione della sensoristica applicata ai COBOT ecc. Per coloro che volessero approcciarsi al mondo della robotica propongo un libro di testo, acquistabile si Amazon approfittando anche dell' iniziativa Bonus Cultura 18app e di Carta del Docente. Il libro è disponibile sia in formato fisico che digitale, clicca qui per vedere il libro Annuncio inoltre che è stata da poco attivata una sezione per gli utenti di lingua italiana sulla piattaforma ROS.org: https://discourse.ros.org/c/local/Italy/70 per entrare dovrai prima crearti un account su ROS.org Grazie mille per la lettura
- Esempio pratico di Deep Learning con Python : Previsione del prezzo delle azioni
Prerequisiti : Se non sai perchè utilizzeremo python, clicca qui Se non hai ancora installato Python, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui In questo articolo ti mostrerò come scrivere un programma python che prevede il prezzo delle azioni utilizzando una tecnica di apprendimento automatico chiamata Long Short-Term Memory (LSTM) . Questo programma è davvero semplice e dubito che da questo programma ne riusciare a trarre un profitto importante, ma è leggermente meglio che indovinare! Ricorda che il prezzo delle azioni può essere influenzato da molti parametri diversi. Lunga memoria a breve termine (LSTM) è una rete neurale artificiale ricorrente (RNN) utilizzato nel campo dell'apprendimento profonda. A differenza delle reti neurali feed forward standard, LSTM ha connessioni di feedback. Non solo può elaborare singoli punti dati (come le immagini), ma anche intere sequenze di dati . - Wikipedia Gli LSTM sono ampiamente utilizzati per i problemi di predizione di sequenza e si sono dimostrati estremamente efficaci. Il motivo per cui funzionano così bene è perché LSTM è in grado di memorizzare le informazioni passate che sono importanti e dimenticare le informazioni che non lo sono. -Stackabuse.com Iniziamo a programmare il nostro modello: Inizierò affermando cosa voglio che faccia questo programma. Voglio che questo programma preveda i prezzi delle azioni Apple Inc. 60 giorni nel futuro in base al prezzo di chiusura corrente. Per prima cosa scriverò una descrizione del programma. # Descrizione: questo programma utilizza una rete neurale artificiale ricorrente chiamata Long Short Term Memory (LSTM) per prevedere il prezzo di chiusura delle azioni di una società (Apple Inc.) utilizzando il prezzo delle azioni degli ultimi 60 giorni. Successivamente caricherò / importerò le librerie che verranno utilizzate in questo programma. import math import pandas_datareader as web import numpy as np import pandas as pd from sklearn.preprocessing import MinMaxScaler from keras.models import Sequential from keras.layers import Dense, LSTM import matplotlib.pyplot as plt plt.style.use('fivethirtyeight') Riceverò la quotazione delle azioni della società "Apple Inc." utilizzando il ticker di borsa delle società (AAPL) dal 1 gennaio 2012 al 17 dicembre 2019. #Ricevi la quotazione di borsa df = web.DataReader('AAPL', data_source='yahoo', start='2012-01-01', end='2019-12-17') #stampa le quotazioni df Output: High Low Open CloseVolumeAdj CloseDate 2012-01-0314.73214214.60714214.62142814.686786302220800.012.5666762012-01-0414.81000014.61714314.64285814.765715260022000.012.6342132012-01-0514.94821514.73821414.81964314.929643271269600.012.7744812012-01-0615.09821414.97214314.99178615.085714318292800.012.9080232012-01-0915.27678615.04821415.19642815.061786394024400.012.887549.....................2019-12-1167.77500267.12500067.20249967.69249778756800.066.5678862019-12-1268.13999966.83000266.94500067.864998137310400.066.7375182019-12-1368.82499767.73249867.86499868.787498133587600.067.6447072019-12-1670.19750269.24500369.25000069.964996128186000.068.8026352019-12-1770.44249769.69999769.89250270.102501114158400.068.937851 2003 rows × 6 columns Queste sono le quotazione di azioni Apple. Successivamente, mostrerò il numero di righe e colonne nel set di dati. Il risultato mostra che abbiamo 2003 righe o giorni in cui è stato registrato il prezzo delle azioni e 6 colonne. df.shape Output: (2003, 6) Crea un grafico per visualizzare i dati. #Visualizza la cronologia del prezzo di chiusura plt.figure(figsize=(16,8)) plt.title('Close Price History') plt.plot(df['Close']) plt.xlabel('Date',fontsize=18) plt.ylabel('Close Price USD ($)',fontsize=18) plt.show() Output: Grafico che mostra la cronologia dei prezzi delle azioni di chiusura di Apple Inc. Crea un nuovo data frame con solo il prezzo di chiusura e convertilo in un array. Quindi creare una variabile per memorizzare la lunghezza del set di dati di addestramento. Desidero che il set di dati di addestramento contenga circa l'80% dei dati. #nuova dataframe solo con le chiusure data = df.filter(['Close']) #Convertiamolo in un numpy array dataset = data.values training_data_len = math.ceil( len(dataset) *.8) Ora ridimensiona il set di dati in modo che sia valori compresi tra 0 e 1 incluso, lo faccio perché è generalmente buona pratica ridimensionare i dati prima di darli alla rete neurale. #Scala tutti i dati in modo che siano valori compresi tra 0 e 1 scaler = MinMaxScaler(feature_range=(0, 1)) scaled_data = scaler.fit_transform(dataset) Creare un set di dati di addestramento che contenga i valori del prezzo di chiusura degli ultimi 60 giorni che si desidera utilizzare per prevedere il valore del prezzo di chiusura 61 °. Quindi la prima colonna nel set di dati ' x_train ' conterrà i valori dal set di dati dall'indice 0 all'indice 59 (60 valori in totale) e la seconda colonna conterrà i valori dal set di dati dall'indice 1 all'indice 60 (60 valori) E così via e così via. Il set di dati " y_train " conterrà il 61 ° valore situato all'indice 60 per la sua prima colonna e il 62 ° valore situato all'indice 61 del set di dati per il suo secondo valore e così via e così via. #Crea il set di dati per l'addestramento in scala train_data = scaled_data[0:training_data_len , : ] #Dividi i dati nel x_train e y_train x_train=[] y_train = [] for i in range(60,len(train_data)): x_train.append(train_data[i-60:i,0]) y_train.append(train_data[i,0]) Ora converti il set di dati indipendente " x_train " e il set di dati dipendente " y_train " in array numpy in modo che possano essere utilizzati per l'addestramento del modello LSTM. # Converti x_train e y_train in array x_train, y_train = np.array(x_train), np.array(y_train) Rimodellare i dati in modo tridimensionale nella forma numero di campioni numero di fasi temporali numero di caratteristiche Il modello LSTM si aspetta un set di dati tridimensionale. #Reshape i dati nella forma accettata da LSTM x_train = np.reshape(x_train, (x_train.shape[0],x_train.shape[1],1)) Costruisci il modello LSTM per avere due strati LSTM con 50 neuroni e due strati densi, uno con 25 neuroni e l'altro con 1 neurone di output. #Costruiamo il LSTM network model model = Sequential() model.add(LSTM(units=50, return_sequences=True,input_shape=(x_train.shape[1],1))) model.add(LSTM(units=50, return_sequences=False)) model.add(Dense(units=25)) model.add(Dense(units=1)) Compilare il modello utilizzando la funzione di perdita dell'errore quadratico medio (MSE) e l'ottimizzatore adam. #Compila il modello model.compile model.compile(optimizer='adam', loss='mean_squared_error') Addestra il modello utilizzando i set di dati di addestramento. La dimensione del batch è il numero totale di esempi di addestramento presenti in un singolo batch ed epoch è il numero di iterazioni in cui un intero set di dati viene passato avanti e indietro attraverso la rete neurale. #Allena il modello model.fit(x_train, y_train, batch_size=1, epochs=10) Output: Epoch 1/10 1543/1543 [==============================] - 21s 14ms/step - loss: 6.0664e-04 Epoch 2/10 1543/1543 [==============================] - 21s 13ms/step - loss: 2.9017e-04 Epoch 3/10 1543/1543 [==============================] - 21s 13ms/step - loss: 2.4941e-04 Epoch 4/10 1543/1543 [==============================] - 20s 13ms/step - loss: 1.5669e-04 Epoch 5/10 1543/1543 [==============================] - 21s 13ms/step - loss: 1.6930e-04 Epoch 6/10 1543/1543 [==============================] - 21s 13ms/step - loss: 1.5684e-04 Epoch 7/10 1543/1543 [==============================] - 21s 14ms/step - loss: 1.6119e-04 Epoch 8/10 1543/1543 [==============================] - 22s 14ms/step - loss: 1.4235e-04 Epoch 9/10 1543/1543 [==============================] - 24s 15ms/step - loss: 1.4032e-04 Epoch 10/10 1543/1543 [==============================] - 23s 15ms/step - loss: 1.4214e-04 Crea un set di dati di test. #Dati di test test_data = scaled_data[training_data_len - 60: , : ] #Crea i set di dati x_test e y_test x_test = [] y_test = dataset[training_data_len : , : ] #Recupera tutte le righe dall'indice 1603 al resto e tutte le colonne (in questo caso è solo la colonna "Chiudi"), così 2003 - 1603 = 400 righe di dati for i in range(60,len(test_data)): x_test.append(test_data[i-60:i,0]) Quindi converti il set di dati di test indipendente ' x_test ' in un array numpy in modo che possa essere utilizzato per testare il modello LSTM. # Converti x_test in un array numpy x_test = np.array(x_test) Rimodellare i dati in modo tridimensionale nella forma [numero di campioni , numero di fasi temporali e numero di caratteristiche ]. Questo deve essere fatto, perché il modello LSTM si aspetta un set di dati tridimensionale. #Reshape i dati nella forma accettata da LSTM x_test = np.reshape(x_test, (x_test.shape[0],x_test.shape[1],1)) Ora ottieni i valori previsti dal modello utilizzando i dati del test. #Otteniamo le predizioni del modello predictions = model.predict(x_test) predictions = scaler.inverse_transform(predictions) Ottieni l'errore quadratico medio (RMSE), che è una buona misura dell'accuratezza del modello. Un valore pari a 0 indica che i valori previsti dai modelli corrispondono perfettamente ai valori effettivi del set di dati del test. Più basso è il valore, migliori saranno le prestazioni del modello. Ma di solito è meglio usare anche altre metriche per avere davvero un'idea di come si è comportato bene il modello. # Calcola / Ottieni il valore di RMSE rmse=np.sqrt(np.mean(((predictions- y_test)**2))) rmse Output: 1.020505485309228 Tracciamo e visualizziamo i dati. # Traccia / Crea i dati per il train = data[:training_data_len] valid = data[training_data_len:] valid['Predictions'] = predictions #Visualize the data plt.figure(figsize=(16,8)) plt.title('Model') plt.xlabel('Date', fontsize=18) plt.ylabel('Close Price USD ($)', fontsize=18) plt.plot(train['Close']) plt.plot(valid[['Close', 'Predictions']]) plt.legend(['Train', 'Val', 'Predictions'], loc='lower right') plt.show() Output: Il grafico che mostra i prezzi di formazione (allenamento), effettivi (validi) e previsti (previsioni).Mostra i prezzi validi e previsti. valid Output: Close Predictions Date 2018-05-1746.74750146.8632932018-05-1846.57749946.3976942018-05-2146.90750146.3534812018-05-2246.79000146.7314762018-05-2347.09000046.534359.........2019-12-1167.69249766.0610052019-12-1267.86499866.4198382019-12-1368.78749866.5070722019-12-1669.96499667.5563352019-12-1770.10250168.624374 400 rows × 2 columns I valori del prezzo effettivo (chiusura) e previsto (previsioni).Voglio testare ancora il modello e ottenere il valore del prezzo di chiusura previsto di Apple Inc. per il 18 dicembre 2019 (18/12/2019). Convertirò i dati in un array che contiene solo il prezzo di chiusura. Quindi otterrò il prezzo di chiusura degli ultimi 60 giorni e ridimensionerò i dati in modo che siano valori compresi tra 0 e 1 inclusi. Dopodiché creerò un elenco vuoto e vi aggiungerò il prezzo degli ultimi 60 giorni, quindi lo convertirò in un array numpy e lo rimodellerò in modo da poter inserire i dati nel modello. Ultimo ma non meno importante, inserirò i dati nel modello e otterrò il prezzo previsto. # Ottieni la citazione apple_quote = web.DataReader('AAPL', data_source='yahoo', start='2012-01-01', end='2019-12-17') #Crea un nuovo dataframe new_df = apple_quote.filter(['Close']) # Ottieni il prezzo di chiusura degli ultimi 60 giorni last_60_days = new_df[-60:].values #Scala i dati in modo che siano valori compresi tra 0 e 1 last_60_days_scaled = scaler.transform(last_60_days) #Crea un elenco vuoto X_test = [] #Appendi agli ultimi 60 giorni X_test.append(last_60_days_scaled) # Converti il set di dati X_test in un array X_test = np.array(X_test) #ridimensioni i dati X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1)) # Ottieni il prezzo scalato previsto pred_price = model.predict(X_test) pred_price = scaler.inverse_transform (pred_price) print (pred_price) Output: [[68.51323]] Ora vediamo qual era il prezzo effettivo per quel giorno. apple_quote2 = web.DataReader('AAPL', data_source='yahoo', start='2019-12-18', end='2019-12-18') print(apple_quote2['Close']) Output: Date 2019-12-18 69.934998 Name: Close, dtype: float64 Proprio come volevamo "quasi" una predizione Perfetta. Scarica Gratuitamente tutto il Progetto Per scaricare gratuitamente devi prima registrati/accede al portale. Scorri in fondo alla pagina per registrati o accedere Condividi e commenta l'articolo se ti è stato utile , Grazie !
- Aumentare vendite usando l'intelligenza artificiale e il machine learning
Questo articolo non è dedicato solo alle grandi aziende o multinazionali, ma soprattutto a medie e piccole imprese, alle quali risulta anche più facile inserire gli spunti che troverai nell'articolo nella propria realtà aziendale. L'utilizzo dell'intelligenza artificiale per potenziare la business intelligence e le campagne di marketing cambierà la tua analisi da Descrittiva a Predittiva, portando infiniti vantaggi al tuo business. Se la tua è come la maggior parte delle aziende, stai annegando nei dati provenienti da sistemi di gestione delle relazioni con i clienti (CRM), piattaforme ERP (Enterprise Resource Planning), ricerche di mercato, interazione con i clienti e altre fonti... Hai i dati grezzi, ma come trasformare quei dati in decisioni che possono aiutare a incrementare le vendite? Utilizzando l'intelligenza artificiale (I.A.), puoi creare modelli predittivi che ti dicono di più sul comportamento dei tuoi clienti, sulle tendenze di mercato e sulle nuove opportunità di vendita. Se non hai chiaro il concetto di Analisi Predittiva o modelli predittivi immaginali cosi : L'analisi predittiva è uno strumento di vendita incredibilmente potente che utilizza dati storici, algoritmi statistici e apprendimento automatico per anticipare i risultati in base a modelli storici. Questa non è certamente una nuova disciplina (i bookmakers lo fanno da anni), ma il crescente volume di dati disponibili e la crescente sofisticazione dei modelli di Machine Learning stanno rendendo l'analisi predittiva delle vendite più accurata e più preziosa per migliorare il business sotto tanti punti di vista . Se vuoi sfruttare l' intelligenza artificiale per le vendite , devi iniziare filtrando gli oceani di dati. Le tecniche dei big data possono aiutarti a vagliare le informazioni disponibili, ma invece di smuovere l'oceano alla ricerca di bocconcini, vuoi determinare dove e come raccogliere i dati giusti. L'automazione è un ottimo strumento per la raccolta di dati, l'archiviazione di dati normalizzati da fonti affidabili come CRM e altri strumenti nello stack tecnologico di vendita. I dati automatizzati sono generalmente dati di qualità migliore ed è certamente meno costoso da raccogliere. Raccogliendo i dati giusti e assicurandoti che siano strutturati e interconnessi, puoi utilizzare l'apprendimento automatico e l'intelligenza artificiale per rivelare le tendenze ed evidenziare le opportunità. Abbiamo scoperto che l'intelligenza artificiale e l'analisi predittiva svolgono un ruolo particolarmente utile in quattro aree di vendita. Dopo un attenta analisi su queste aree abbiamo raccolto per te i punti principali su come utilizzando l'I.A. in questi quattro settori incrementerai sicuramente le tue vendite. Mi raccomando leggili con attenzione e prova a riportarli nella tua realtà aziendale, perchè un utilizzo sbagliato potrebbe invece portare ad altri tipi di risultati meno piacevoli... 1) Valutazione dei lead più accurata La profilazione delle vendite è più precisa con delle predizioni. Il social selling genera più richieste di informazioni in entrata, ma è difficile determinare quale di questi potenziali clienti è pronto a prendere una decisione di acquisto. Con l'analisi predittiva, puoi assimilare dati come background aziendale, dati demografici e altro per creare buyer personas (acquirenti) ben definiti. Utilizzando profili di clienti simili già memorizzati nel database, è più facile fare confronti e identificare le caratteristiche che indicano una probabile vendita. Ancora più importante, puoi utilizzare l'analisi per prevedere quando chiudere le vendite. L'analisi può rivelare le esigenze del cliente in relazione al tuo prodotto o servizio e persino creare una probabile tempistica per una chiusura finale. Più preciso è il profilo predittivo, maggiore è il tasso di chiusura di vendita. 2) Prospettive di vendita La personalizzazione è diventata una parte vitale del percorso di vendita del cliente e l'analisi predittiva può aiutare a stimolare le risposte alle domande. Applicando l'apprendimento automatico, è possibile programmare passaggi specifici per automatizzare la formazione e la qualificazione dei lead, fornendo un'esperienza personalizzata e persino gestendo le obiezioni fino a quando il rappresentante di vendita non è pronto a intervenire. L'analisi predittiva può anche essere utilizzata per monitorare i progressi e aiutare a identificare quando il potenziale cliente è pronto per l'acquisto. Il modo in cui ti avvicini a un potenziale cliente è importante per sapere quando e se acquisterà, e la raccolta e l'analisi dei dati possono migliorare le presentazioni di vendita, mostrando quali argomenti o pubblicità funzionano meglio. L'analisi può anche aiutare a creare la giusta offerta di vendita in base alle target, al budget e alle esigenze dell'azienda. 3) Riduzione del tasso di abbandono e dell'upselling È risaputo che il costo per mantenere un cliente attuale è una frazione del costo per acquisire un nuovo cliente. Sempre più aziende si stanno ristrutturando per trarre vantaggio dai ricavi ricorrenti, quindi la fidelizzazione e l'espansione dei clienti sono cruciali. L'analisi predittiva può dirti molto sulla soddisfazione del cliente. Ad esempio, può mostrare se il cliente sta sottoutilizzando il tuo servizio, ha problemi con il supporto o cerca nuove funzionalità. L'attività di monitoraggio può rivelare quando potresti essere pronto a perdere clienti. Puoi anche creare modelli predittivi per identificare i clienti pronti ad acquistare di più. Puoi sapere il modo in cui utilizzano un prodotto o un servizio oppure analizzare con il sentiment analysis le recensioni di ciò che stai proponendo al mercato. Una tecnica che spesso usano le grandi aziende, anche se può sembrare controproducente. La tecnica è quella di rilasciare buoni al cliente in cambio di risposte ad alcune domande, e fin qui nulla di anomalo, solo che queste domande non avranno lo scopo di mettere in evidenza i tuoi lati positivi, ma quelli che al cliente non piacciono. Una sequenza di domande molto usata è questa . Pensi che il nostro prodotto/servizio possa essere migliorato ? Se SI come ? Consiglieresti un nostro prodotto/servizio ad amici,collegi o sui social? Se Non lo faresti spiegaci il motivo Se per un giorno fossi a capo della nostra azienda cambieresti qualcosa ? Se si cosa cambieresti? Effettuando questa tecnica su un campione di clienti attualmente non entusiasti del prodotto/servizio potresti ottenere i tre seguenti benefici : Conosce o approfondire i "punti deboli" dell'azienda o del prodotto, ciò che non rende felice il nostro cliente. Effettuare una Retention ( ulteriore fedelizzazione ad un cliente insoddisfatto ) con il buono. Una volta lavorato sui punti emersi dall'indagine intelligente, potrai ricontattare gli stessi clienti ( via email o telefonica ) e fargli notare che l'azienda ha ascoltato i loro "consigli" arrivando così al grado massimo di fedelizzazzione, ossia la partecipazione attiva non retribuita all'interno dell'azienda. Cosa significa partecipazione attiva non retribuita all'interno dell'azienda? Vuol dire che il cliente si sente importante e vorrà un domani rispondere nuovamente ad altre domande anche senza la necessità del buono. 4) Migliorare la gestione delle vendite L'analisi predittiva si è anche dimostrata uno strumento inestimabile per la gestione delle vendite, non solo migliorando le previsioni di vendita ma aggiungendo informazioni sulla strutturazione dei team di vendita: Quote di vendita più precise: l' incorporazione di fattori oltre alle prestazioni del rappresentante di vendita consente di creare quote di vendita più precise e più aggressive che sono ancora realizzabili. Ottimizzazione dei territori di vendita: indipendentemente dal fatto che tu venda per territori o verticali, l'analisi può aiutarti ad allineare le competenze e le risorse di vendita con i territori per fornire risultati ottimali. Riallineamento delle politiche di vendita e dei compensi : l'analisi predittiva può anche indicare nuovi modelli di vendita, inclusa la distribuzione dei ricavi. Ad esempio, Microsoft ha ristrutturato la retribuzione delle vendite premiando i livelli di consumo di servizi piuttosto che le commissioni dirette. Revisione del personale : l'analisi predittiva può indicare probabili cambiamenti nelle richieste di personale nel prossimo trimestre o anno. Poiché occorre tempo per trovare nuove risorse di vendita, anticipare la domanda può guidare le strategie di assunzione, fornendo tempo sufficiente per l'assunzione e la formazione per ottimizzare la produttività delle vendite. Proiezione dell'impatto delle modifiche ai prodotti: nuovi prodotti, rilasci, funzionalità e modelli di prezzo avranno un impatto diretto sulle vendite. L'analisi predittiva può aiutare a scoprire il potenziale impatto delle modifiche ai prodotti e ridurre al minimo l'impatto sulle vendite. Sebbene l'analisi predittiva sia chiaramente uno strumento potente, trovare il modo più efficace per implementarli è ancora una sfida. Potresti assumere programmatori per sviluppare i tuoi modelli di analisi predittiva, ma più aziende trovano più conveniente affidare l' analisi delle vendite e la modellazione predittiva a società di consulenza. Qualunque sia il tuo approccio, l'analisi predittiva può trasformare il modo in cui ti avvicini alle vendite, offrendoti maggiore precisione, maggiore controllo e maggiori entrate. Grazie mille della lettura, commenta e condividi l'articolo.
- Robotica e Intelligenza Artificiale ( I.A. ) le conoscenze di base e gli strumenti per iniziare
Indice : Principio d’indeterminazione Presupposti elementari Alla base di tutto : i numeri I "Super-Numeri" Geometrie Informatica classica e Logica Q-bit Conclusioni Nei vari studi relativi al “principio d’indeterminazione”, in meccanica quantistica, si stabiliscono i limiti nella misurazione dei valori di grandezze fisiche coniugate: nella forma più nota, il principio di indeterminazione viene espresso dalla relazione: fra l’incertezza sulla posizione spaziale “Dx” e quella sulla quantità di moto “DPx” di una particella, dove “h” è la costante di Planck ridotta (o costante di Dirac, valore sperimentale equivalente a 1,0545…E-34 J*s). Enunciato nel 1927 da Werner Karl Heisenberg e confermato da innumerevoli esperimenti, rappresenta un concetto cardine della meccanica quantistica e sancisce una radicale rottura rispetto alle leggi della meccanica classica. Ulteriori evoluzioni teorico pratiche del principio di indeterminazione sono state condotte da vari scienziati con l’utilizzo di formule complesse e l’utilizzo di “dispositivi numerici” sempre più raffinati. Io credo che l’impiego di un concetto di numero universale, possa essere giustamente rappresentato nelle sue componenti naturali e immaginarie, e che solo in questo modo si possano utilizzare per esprimere correttamente la rappresentazione energetico esistenziale della materia. Vorrei chiarire il concetto partendo da questi presupposti elementari: Il genere umano per comunicare effettua delle “categorizzazioni mentali” esprimendo tali operazioni tramite concetti più o meno complessi. Nell’ambito delle categorizzazioni mentali, quelle che riguardano il concetto di relazioni numeriche, sono sicuramente quelle che impegnano moltissimo le facoltà mentali e che nel tempo sono state soggette a trasformazioni sempre più complesse. L’approccio mentale per comprendere le relazioni dei concetti nel campo delle categorizzazioni numeriche ha sviluppato linguaggi sempre più “coerenti” sotto l’aspetto funzionale: l’ambito LOGICO. Partendo dal concetto primordiale di numeri naturali si sono definiti dei simboli per identificare delle quantità : “N” → (0… 1… 2… 3… 4 … 5… 6… 7… 8… 9…) (simbologia moderna ma di antica origine indiana). Le relazioni interattive di carattere pratico, quali combinazioni utilizzanti i concetti numerici di cui sopra hanno permesso di concepire operazioni elementari di somma, sottrazione dando origine alla estensione “intuitiva” di questa tipologia di categorizzazione mentale introducendo la definizione dei numeri interi relativi : “Z” → (… -3… -2… -1… 0 … 1… 2… 3… …) che comprendono i “numeri negativi” Dalle necessità pratiche, probabilmente dovute a esigenze di spartizione dei beni vennero introdotti i concetti di divisione e moltiplicazione, portato alla categorizzazione ancora adesso definita come “insieme dei numeri razionali”, anche se a mio parere la parola “razionale” non è del tutto adeguata, perlomeno in italiano. La rappresentazione dei numeri razionali è la seguente: “Q” → (… -(Nx/Nx)… -(Nx/Ny) … (Nx/Nx)… (Ny/Nx) … ) → (…-1/2 … -1/3 … 1/2 … 1/3 …) tali numeri solitamente sono anche rappresentabili in questo modo: … -1.0… -0.9999… -0.5…. 0.0 … 0.5… 0.75555… 1.0… …. (come separatore decimale si può usare anche la virgola “,”….. (nota: si passa dalle categorizzazioni mentali alle convenzioni sociali…) che però può implicare qualche difficoltà interpretativa nei casi in cui venga considerato anche il numero : (Zero) “0” → ( 0/Nx …. Nx/0 …) questa particolarità ha portato alla concettualizzazione elementare di infinito: “Ꝏ” Dalle esigenze dovute alle misurazioni spaziali invece, le categorizzazioni mentali relative all’utilizzo della simbologia hanno fatto in modo, per noi occidentali, di dover introdurre il concetto dei “numeri algebrici”, basti pensare alle applicazioni della “Geometria Euclieda” ed in particolare al teorema di Pitagora, dove una variante dell’enunciato recita: “La misura dell’ipotenusa è data dalla “radice quadrata” della misura dei cateti…” anche se questi enunciati erano noti anche ad altre culture…. perlomeno in oriente. In particolare, la condizione che probabilmente portò Ippaso al concetto dei “numeri irrazionali” e che sono esprimibili come “radici” di equazioni algebriche: in altre parole numeri non esprimibili correttamente se usassimo una delle versioni precedenti: √2 =1,4142135623730950488016887242097… (e non può essere il risultato di una frazione) da questa categorizzazione di numeri si può dedurre un altro concetto interessante: dati come valori infiniti quelli rappresentati da No, il valore rappresentato da N1 è sicuramente maggiore: un infinito più grande…. (fare riferimento al valore della radice quadrata) Ulteriori esigenze di misurazione, in particolare dovute a procedure di misurazioni orografiche o che in qualche modo comprendessero misure di curve portarono alla categorizzazione dei numeri trascendenti, quali “ Л“ ed “e”, il primo come sappiamo viene definito come l’area di un cerchio di raggio “1”, mentre il secondo viene definito come risultato di una serie infinita di frazioni di numeri fattoriali: Ecco allora l’esigenza di far “rientrare” tutte queste tipologie di numeri in una categoria mentale che li rappresentasse: l’insieme dei numeri reali “R”, che comprende i numeri esprimibili con o senza virgola (decimali), quindi i numeri “razionali”, e quelli “irrazionali”, algebrici e trascendenti. Attraverso questi numeri si possono esprimere le grandezze scalari (quantità di cose…) o determinare delle istantanee di grandezze vettoriali (forze, velocità ecc) , tuttavia si resero necessarie ulteriori categorizzazioni mentali per spiegare dei concetti in grado di esprimere dei vettori variabili nel tempo (vettori rotanti.. onde sinusoidali…): rappresentazione di numeri complessi: I=X+JY dove “J” è semplicemente un rotore immaginario che farà in modo di ottenere un particolare risultato: Ecco allora che tutte le categorizzazioni precedenti, ancora una volta verranno “incluse” in un nuovo “insieme numerico”, che tradotto nel sistema di comunicazione coerente dovuto al linguaggio matematico si traduce in: da quanto sopra si può desumere allora, che nelle categorizzazioni mentali, quella che contempla tutti gli altri numeri sia appunto quella dei numeri complessi. Ma il genere umano evidentemente fa buon uso della fantasia e quindi alcuni “addetti ai lavori”, per particolari esigenze, hanno introdotto delle ulteriori concettualizzazioni nel campo dei numeri complessi, definendo i “Quaternioni”(usati anche in robotica), gli “Ottonioni”, gli “Sedenioni”, nonosolo, nel campo dei numeri reali sono stati introdotti concetti come i “numeri iper-reali”, numeri “non standard” che fungono da base per l’analisi matematica moderna nel calcolo delle derivate e degli integrali. La loro forma descrittiva è la seguente: dato come assunto, che vi sia un numero dx compreso tra “0” ed un valore “1/n”, il numero iperreale si può scrivere come “ X+dx” ovvero “X + ɛ” o “monade” → “μ(x)”. Non solo, ma sono stati definiti concettualmente anche i cosiddetti numeri “p-adici” che assumono la seguente formula di rappresentazione nel linguaggio matematico: che ad esempio (10-adici) si potrebbero rappresentare come una somma infinita di interi a sinistra della virgola come riportato dalla seguente: Nella forma 10_adica quindi …99999 = -1. Questa tipologia di categorizzazione numerica venne introdotta probabilmente per effettuare operazioni complesse in analisi matematica delle metriche. Quanto sopra descritto porta nella direzione della categorizzazione “numerologica” quale approccio di analisi dei fenomeni fisici, dove possiamo indicare semplicisticamente che i “numeri”, con le loro relazioni funzionali, stanno alla base di un linguaggio logico, quindi coerente, in grado generare dei modelli atti ad interpretare quella che riteniamo essere la realtà fenomenologica dell’universo. Alcuni esempi: Il peso è una forza, ha una unità di misura numerica e si può rappresentare con un vettore (non rotante): La massa invece esprime una quantità di materia, ha una unità di misura ed è una grandezza scalare: siccome un atomo d’oro ha una massa pari a 3.2707068*10-22g presumibilmente ci vorranno circa un numero pari a 3,05744311902247E+018 atomi di oro (senza scorie di altri materiali) A proposito di numeri, quando questi vengono utilizzati per rappresentare qualcosa nel mondo geometrico, trasferiscono, come è intuibile alcune delle loro proprietà ad alcuni elementi, per il calcolo di aree, di lunghezze di archi ecc. Esistono diversi tipi di geometrie, alcune anche molto complesse e apparentemente paradossali e di difficile comprensione. A me piace immaginare la geometria come un metodo di rappresentazione verosimile della realtà fisica degli elementi e ad esempio, se mi riferisco ad un punto, che concettualmente non ha dimensioni, se lo riporto su una geometria piana cerco di immaginare un cerchio con un diametro nullo (ma sempre un cerchio) e quindi, se devo immaginare un segmento immagino una serie infinita di cerchi, uno accanto all’altro… (ma un infinito determinato dai confini del segmento), se dovessi immaginare una linea sarebbe una serie infinita di punti senza limiti, se dovesse essere un piano lo vedrei come cerchi disposti su un area e così via perlomeno fino ad immaginare dei solidi. E’ importante inoltre, assumere come concetto di base delle geometrie, che si deve fare sempre riferimento ad un sistema di coordinate, ad esempio, nella geometria piana si definiscono le ascisse e le ordinate (le coordinate “cartesiane” introdotte concettualmente da Cartesio). Ora, prendiamo in considerazione un punto e associamolo ad una coordinata, in qualsiasi direzione spaziale… potrebbe anche essere interpretato come una linea: Se aggiungiamo un’altra coordinata potremmo vedere un piano: Se aggiungessimo un’altra coordinata scopriremmo un solido: Con un po’ di immaginazione i numeri “razionali” potrebbero essere associati a dei cerchi… e i numeri iperreali come dei cerchi più piccoli… Nella geometria solida potremmo immaginare i numeri come delle sfere, magari introducendo i numeri immaginari e fornendo un concetto di “propagazione d’onda”, se non proprio i quaternioni… Nella meccanica computazionale classica e quindi nell’informatica classica, i numeri vengono generati in relazione a degli stati energetici di interdizione o saturazione di canali di passaggio della corrente elettrica, rendendo possibile un trasferimento informazionale binario. Curiosamente, questo sistema numerico, fu adottato anche da alcune popolazioni sin dal neolitico: i Gumulgal australiani (dal 10000 a.C. al 3500 a.C.) o altre antiche popolazioni africane o sudamericane. In altre parole, la forma più piccola di decodificazione su uno stato energetico complementare o logico: il BIT (contrazione di “binary-digit” o cifratura binaria). Nella simbologia rappresentativa il BIT utilizza solo due simboli derivati dal sistema decimale rappresentato con la metodologia simbolica pseudo indiana, lo “0” e l’ “1”, che indicano due possibili condizioni logiche: “VERO o FALSO” ad equivalenza simbolica positiva o negativa rispetto alla condizione di stato energetico: In logica positiva VERO = 1 e FALSO =0, ovviamente la rappresentazione è complementare in logica negativa in quanto “se non è A allora è (!)A”. Sotto l’aspetto numerologico quindi si parla di “sistema numerico” in base al raggruppamento simbolico di base: ne consegue che, intuitivamente nel sistema binario avremmo due simboli e nel sistema decimale a noi più consono, ne avremmo 10, ma evidentemente sono solo due metodi, tra innumerevoli possibilità rappresentative. La conversione tra sistemi numerici rappresentativi si può quindi effettuare con dei metodi convenzionali assumendo come equivalenza la corrispondenza simbologica relativa: Per convertire ad esempio un numero alla base 10 scritto in una base diversa da 10 bisogna sviluppare il numero nella sua forma polinomiale. Se (x)B è un numero qualsiasi scritto nella base B e se { an, an−1, an−2 …,a2, a1, a0 } sono le cifre del numero (da 0 a B−1) avremo: (x)B=an * Bn+an−1*Bn−1+⋯+a2*B2+a1*B1+a0*B0 Ovvio pensare dunque che nella computazione meccanizzata classica, partendo da una base numerica 2 si siano di seguito sviluppate le numerazioni ottali (byte) ed esadecimanli (word), che possiamo quantizzare in termini numerici come segue: Nei computer attualmente in commercio, di norma l’indirizzamento è a 64 bit e questo significa in termini numerici che un registro a 64 bit può contenere uno qualsiasi di 2 64 (oltre 18 quintilioni o 1,8 × 10^19 ) valori diversi. L'intervallo di valori interi che possono essere memorizzati in 64 bit dipende dalla rappresentazione intera utilizzata. Con i due più comuni rappresentazioni, l'intervallo è 0 e 18.446.744.073.709.551.615 (2^64 - 1) per la rappresentazione come ( senza segno ) numero binario , e -9.223.372.036.854.775.808 (-2^63 ) attraverso 9.223.372.036.854.775-807 (2^63 - 1) per rappresentazione come complemento a due. Quindi, un processore con indirizzi di memoria a 64 bit può accedere direttamente a 2^64 byte (= 16 exabyte ) di memoria indirizzabile a byte tenendo presente che la quantità di memoria viene quantizzata in multipli di byte: Kilobyte (kb) => un kilobyte ha un'unità di memoria di 1024 (2^10) Megabyte (Mb) => un megabyte ha un'unità di memoria se 1.048.576 (2^20), si tratta di circa 1 milione di byte. Gigabyte (Gb) => un gigabyte ha un'unità di memoria di 1.073.741.824 (2^30), questo circa miliardi di byte. Terabyte (Tb) => un terabyte ha un'unità di memoria di (2^40). Si tratta di circa 1 trilione di byte. Petabyte (Tb) => un petabyte ha un'unità di memoria di (2^50). Si tratta di 1,15292150460685E+018 byte. Da quanto sopra si evince che, anche con l’utilizzo di sistemi computazionali a portata di tutti, le potenzialità di rappresentazione delle metodologie di quantificazione sono potenzialmente interessanti almeno in riferimento a due fattori: Il primo fattore è la potenzialità di trattamento dei numeri, che come desumibile da quanto riportato, devono essere adeguatamente rappresentati, quindi trattabili come risultato di operazioni e computerizzati con approssimazioni il più raffinate possibili (valore assoluto dell’esponenziale o quantità di cifre decimali), poiché questa potenzialità avvicina al digitale (discreto), il concetto di contiunuum, tanto per intenderci, si tratta di rappresentazioni di numeri interi o a virgola mobile (“floats” o decimali), ma anche di numeri irrazionali e numeri complessi, poiché le esigenze sono quelle di rappresentare non solo i numeri positivi o negativi, ma anche infiniti ed infinitesimali, nonché grandezze vettoriali o matricali, le quali sono fondamentali per la rappresentazione di campi numerici e degli spazi vettoriali. Il secondo fattore invece, prende spunto dalla potenzialità di elaborare decisioni su “grandezze discrete” derivanti da elaborazioni statistiche, facendo entrare in gioco appunto, anche la “facoltà” di sviluppo di sistemi inferenziali che danno origine alla cosiddetta intelligenza artificiale, in altre parole, data una raffinata potenzialità rappresentativa dei numeri da 0 a 1 e dati dei “criteri”, che possono anche essere variabili all’interno di questo campo, si può elaborare un flusso decisionale ad albero ad esempio utilizzando un criterio di CART (Classification and Regression Trees) dove la potezialità di scelta passa da FALSO (0) a VERO (1) in un continuum statistico, in relazione al verificarsi di elaborazioni su discreti, intendendo come discreti ad esempio in termini elementari nullo, minimo, medio, massimo, magari introducendo anche i criteri di mediana e di moda, o di stima dei quartili… che a tal proposito mi rimandano il pensiero alla nuova frontiera per l’elaborazione dei dati, costituita dalle interconnessioni quantiche delle particelle subatomiche, la cui esistenza viene elaborata partendo appunto dal loro “stato potenziale” espresso nello spazio vettoriale di Hilbert e si chiamano Q-BIT che vengono rappresentati appunto come due vettori i quali assumono i valori di: e sono valori probabilistici: Notare che un q-bit in questo stato di sovrapposizione non ha un valore compreso tra "0" e "1"; piuttosto, quando misurato, il q-bit ha una probabilità |alpha|^2 del valore "0" e una probabilità |beta|^2 del valore "1", dove α e β sono ampiezze di probabilità e in generale possono essere entrambi numeri complessi. Questi sono i “ferri del mestiere” per chi si appresta ad entrare nel mondo della automazione, della robotica e dell’intelligenza artificiale. Grazie mille per la lettura !
- I 5 migliori algoritmi di machine learning ( ML ) che ogni principiante dovrebbe conoscere
Iniziamo questo articolo con un bellissimo teorema, chiamato " No Free Lunch(NFL)". In poche parole, afferma che : " Dati due algoritmi di predizione qualsiasi, sono equivalenti, quando le loro prestazioni sono approssimativamente uguali su tutti i possibili problemi" ed è particolarmente rilevante per l'apprendimento supervisionato (cioè la modellazione predittiva) perchè questo teorema va applicato quando si tratta di scegliere l'algoritmo migliore per il nostro problema . Ad esempio, non si può dire che le reti neurali siano sempre migliori degli alberi decisionali o viceversa. Ci sono molti fattori in gioco, come la dimensione e la struttura del tuo set di dati. Di conseguenza, dovresti provare molti algoritmi diversi per il tuo problema, mentre utilizzi un "test set" di dati per valutare le prestazioni e selezionare il vincitore. Ovviamente, gli algoritmi che provi devono essere appropriati per il tuo problema, ed è qui che entra in gioco la scelta del compito del modello predittivo corretto. Come analogia, se hai bisogno di pulire la tua casa, potresti usare un aspirapolvere, una scopa o uno straccio , ma non tireresti fuori una pala e inizieresti a scavare. Allora iniziamo a parlare dei 5 migliori algoritmi da imparare per risolvere semplici problemi di machine learning. Indice Il principio fondamentale Regressione lineare Regressione logistica Analisi discriminante lineare Classificazione e alberi di regressione Naive Bayes Conclusioni 1- Il principio fondamentale Tuttavia, esiste un principio comune alla base di tutti gli algoritmi di apprendimento automatico supervisionato per la modellazione predittiva. Gli algoritmi di apprendimento automatico sono descritti come l'apprendimento di una funzione di destinazione (f) che mappa al meglio le variabili di input (X) su una variabile di output (Y): Y = f (X) Questo è un compito di apprendimento generale in cui vorremmo fare previsioni in futuro (Y) dati nuovi esempi di variabili di input (X). Non sappiamo come sia la funzione (f) o la sua forma. Se lo facessimo, lo useremmo direttamente e non avremmo bisogno di apprenderlo dai dati utilizzando algoritmi di apprendimento automatico. Il tipo più comune di apprendimento automatico è imparare la mappatura Y = f (X) per fare previsioni di Y per il nuovo X. Questo è chiamato modellazione predittiva o analisi predittiva e il nostro obiettivo è rendere le previsioni più accurate possibili. Per i neofiti dell'apprendimento automatico desiderosi di comprendere le basi dell'apprendimento automatico, ecco un breve tour sui 5 migliori algoritmi di apprendimento automatico utilizzati dai data scientist. 2- Regressione Lineare La regressione lineare è forse uno degli algoritmi più noti e ben compresi in statistica e apprendimento automatico. La modellazione predittiva si occupa principalmente di ridurre al minimo l'errore di un modello o di effettuare le previsioni più accurate possibili, a scapito della spiegabilità. Prenderemo in prestito, riutilizzeremo e ruberemo algoritmi da molti campi diversi, comprese le statistiche, e li useremo per questi scopi. La rappresentazione della regressione lineare è un'equazione che descrive una retta che meglio si adatta alla relazione tra le variabili di input (x) e le variabili di output (y), trovando ponderazioni specifiche per le variabili di input chiamate coefficienti (C). Ad esempio: y = Cx + C2 Prevederemo y dato l'input x e l'obiettivo dell'algoritmo di apprendimento della regressione lineare è trovare i valori per i coefficienti C e C2. È possibile utilizzare diverse tecniche per apprendere il modello di regressione lineare dai dati, come una soluzione di algebra lineare per i minimi quadrati ordinari e l'ottimizzazione della discesa del gradiente. La regressione lineare esiste da più di 200 anni ed è stata ampiamente studiata. Alcune buone regole pratiche quando si utilizza questa tecnica sono rimuovere le variabili che sono molto simili (correlate) e rimuovere il rumore dai dati, se possibile. È una tecnica veloce e semplice e un buon primo algoritmo da provare. 3 - REGRESSIONE LOGISTICA La regressione logistica è un'altra tecnica presa in prestito dall'apprendimento automatico dal campo della statistica. È il metodo di riferimento per i problemi di classificazione binaria (problemi con due valori di classe). La regressione logistica è come la regressione lineare in quanto l'obiettivo è trovare i valori per i coefficienti che pesano ogni variabile di input. A differenza della regressione lineare, la previsione per l'output viene trasformata utilizzando una funzione non lineare chiamata funzione logistica. La funzione logistica ha l'aspetto di una grande S e trasformerà qualsiasi valore nell'intervallo da 0 a 1. Ciò è utile perché possiamo applicare una regola all'output della funzione logistica per agganciare i valori a 0 e 1 (ad esempio SE minore di 0,5 allora output 1) e prevedere un valore di classe. A causa del modo in cui il modello viene appreso, le previsioni fatte dalla regressione logistica possono essere utilizzate anche come probabilità che una data istanza di dati appartenga alla classe 0 o alla classe 1. Ciò può essere utile per i problemi in cui è necessario fornire più motivazioni per una predizione. Come la regressione lineare, la regressione logistica funziona meglio quando si rimuovono attributi che non sono correlati alla variabile di output e attributi molto simili (correlati) tra loro. È un modello veloce da apprendere ed efficace sui problemi di classificazione binaria. 4- ANALISI DISCRIMINANTE LINEARE La regressione logistica è un algoritmo di classificazione tradizionalmente limitato a soli problemi di classificazione a due classi. Se si hanno più di due classi, l'algoritmo di analisi discriminante lineare è la tecnica di classificazione lineare preferita. La rappresentazione dell'ADL è piuttosto semplice. Consiste di proprietà statistiche dei dati, calcolate per ciascuna classe. Per una singola variabile di input questo include: Il valore medio per ogni classe. La varianza calcolata in tutte le classi. Le previsioni vengono effettuate calcolando un valore discriminante per ciascuna classe e facendo una previsione per la classe con il valore più grande. La tecnica presuppone che i dati abbiano una distribuzione gaussiana (curva a campana), quindi è una buona idea rimuovere prima i valori anomali dai dati. È un metodo semplice e potente per la classificazione dei problemi di modellazione predittiva. 5 - ALBERI DI CLASSIFICAZIONE E REGRESSIONE Gli alberi decisionali sono un tipo importante di algoritmo per l'apprendimento automatico della modellazione predittiva. La rappresentazione del modello dell'albero decisionale è un albero binario. Questo è il tuo albero binario da algoritmi e strutture dati, niente di troppo stravagante. Ogni nodo rappresenta una singola variabile di input (x) e un punto di divisione su quella variabile (assumendo che la variabile sia numerica). I nodi foglia dell'albero contengono una variabile di output (y) che viene utilizzata per fare una previsione. Le previsioni vengono effettuate percorrendo le divisioni dell'albero fino ad arrivare a un nodo foglia e restituire il valore della classe a quel nodo foglia. Gli alberi sono veloci da imparare e molto veloci per fare previsioni. Inoltre sono spesso accurati per un'ampia gamma di problemi e non richiedono alcuna preparazione speciale per i dati. 6 - NAIVE BAYES Naive Bayes è un algoritmo semplice ma sorprendentemente potente per la modellazione predittiva. Il modello è composto da due tipi di probabilità che possono essere calcolate direttamente dai dati di allenamento: La probabilità di ogni classe La probabilità condizionata per ogni classe dato ogni valore x. Una volta calcolato, il modello di probabilità può essere utilizzato per fare previsioni per nuovi dati utilizzando il teorema di Bayes. Quando i dati sono a valori reali, è comune assumere una distribuzione gaussiana (curva a campana) in modo da poter stimare facilmente queste probabilità. Naive Bayes è chiamato ingenuo perché presuppone che ogni variabile di input sia indipendente. Questo è un presupposto forte e irrealistico per i dati reali, tuttavia, la tecnica è molto efficace su una vasta gamma di problemi complessi. Conclusioni Una tipica domanda posta da un principiante, di fronte a un'ampia varietà di algoritmi di apprendimento automatico, è "quale algoritmo devo usare?" La risposta alla domanda varia a seconda di molti fattori, tra cui: la dimensione la qualità e la natura dei dati il tempo di calcolo disponibile l'urgenza del compito cosa si desidera fare con i dati. Anche un esperto di data scientist non può dire quale algoritmo funzionerà meglio prima di provare diversi algoritmi. Sebbene esistano molti altri algoritmi di Machine Learning, questi sono i più popolari. Se sei un principiante del Machine Learning, questi sarebbero un buon punto di partenza per imparare. Grazie mille la lettura, condividi l'articolo a chi pensi non conosca questi algoritmi.
- Classificatore vs Regressione quale usare? Machine learning esempi pratici
Quando sei alle prime armi con gli algoritmi ed i modelli di apprendimento può accadere di trovarti in una situazione antipatica: hai i tuoi dati ma non sai che algoritmo di apprendimento utilizzare. Prima di illustrare le differenze tra le due famiglie di algoritmi e quale è più efficace per i tuoi dati, ricordiamo che stiamo operando all'interno della branca del machine learning chiamato apprendimento supervisionato. Se non conosci le tre principali famiglie del machine learning clicca qui. Questo tipo di apprendimento si basa su dei dati strutturati, quindi variabili indipendenti ( i valori delle X ) e la variabile di target ( il nostro obbiettivo Y). Questi modelli o algoritmi ricevono in input X,Y e generano una funzione del tipo F(x1,x2,..,xn) = y. Dove x1,x2, .. , xn sono le variabili che descrivono e caratterizzano il nostro target y. Vediamo ora la differenza principale tra classificatore e regressione con alcuni esempi di utilizzo nel machine learning. Indice il Classificatore Scarica l'esempio delle differenze tra i classificatori in Python gratis la Regressione Scarica esempio di Regressione Lineare in Python gratis il Classificatore I classificatori proprio come suggerisce il nome servono a catalogare o classificare il nostro target. Il nostro target dovrà quindi essere una Classe. Facciamo qualche esempio pratico per capire quando il nostro target è una variabile da classificare e quindi una classe. Un esempio in ambito della sentiment analyst : vogliamo classificare se un commento sotto i video dei nostri prodotti o servizi è uno spam o meno. Quindi la nostra variabile di target sarà "spam", se il commento è di spam, o "non spam" se il commento non conterrà altri prodotti o servizi di altre aziende. Un esempio in ambito della Computer Vision : dobbiamo creare un modello in grado di distinguere se nell'immagine è presente o meno un determinato oggetto o animale. Anche questa volta il nostro modello riceverà in input un'immagine e la dovrà classificare in base alla presenza o meno dell'oggetto che cerchiamo. Quindi anche in questo caso il nostro target è una classe, "si" se l'oggetto o l'animale è presente nell'immagine oppure "no". Un esempio nell'ambito del Marketing : supponiamo di avere i dati anagrafici, i servizi acquistati e un campo che indica se il cliente è soddisfatto o meno dei nostri clienti. Vogliamo creare un modello che passati in input nuovi dati sui clienti che hanno recentemente acquistato un servizio predica se loro sono o meno soddisfatti. Come è possibile notare il nostro target è una classe divisa in due gruppi "soddisfatto" e "non soddisfatto" quindi anche questa volta utilizzeremo un classificatore. Un esempio in ambito della Medicina : decidiamo di creare un modello che passate in input le cartelle mediche di pazienti affetti da una determinata malattia, questo possa predire lo stadio, ad esempio "Stato iniziale", "Stato avanzato" , "Stato terminale" e "Nessuno Stato" nel caso la malattia sia regredita. Quindi anche in questo tipologia di problema il nostro target è una classe divisa in 4 gruppi : "Stato iniziale", inizio malattia "Stato avanzato", avanzamento della malattia "Stato terminale" , verso il termine della malattia "Nessuno Stato" , malattia estinta dal paziente con successo Quindi ricapitolando gli algoritmi di classificazione si vanno ad utilizzare quando ciò che dobbiamo stimare non è una variabile che oscilla, ad esempio come il prezzo o gli indici di borsa, ma qualcosa di statico che è possibile suddividere o catalogare. Tra gli algoritmi di Classificazione, nel campo del machine learning i più diffusi ed utilizzati sono i seguenti: Regressione Logistica (anche se il nome tende a far pensare che sia una regressione) Albero decisionale Classificatore Bayesiano kNN Scarica l'Esempio delle differenze tra i classificatori in Python la Regressione Questi modelli al contrario, non devono trovare " uno o più piani o nodi " che classificano il target, ma una funzione che descrive il nostro target. Quindi il suo scopo è di prevedere i valori di una variabile numerica a partire da una o più variabili. Vediamo alcuni esempi dove è utile utilizzare la regressione Un esempio nell'ambito del Marketing : Abbiamo i dati delle nostre sponsorizzazioni sui social-network e quante vendite ci hanno portato. Quindi in questo caso dobbiamo cercare una funzione capace di descrivere quanto aumentando le sponsorizzazioni aumentano le vendite. Questo è proprio il lavoro della Regressione 😉. Un esempio in ambito della Medicina : decidiamo di creare un modello che passato in input il numero di antenati affetti da una determinata patologia, questo possa predire le probabilità che tu la possa aver ereditata. Anche in questo caso la Regressione risolverà il problema. Un esempio nel ramo Immobiliare: Se volessimo creare un algoritmo in grado di fare una stima del prezzo di un appartamento avremmo le nostre variabili indipendenti ( gli attributi che descrivono la casa : dimensioni, numero di stanze, numero di bagni, ecc...) che andranno a descrivere variabile di target, ossia il prezzo. In questo caso il prezzo è una variabile che a noi interessa sapere il più preciso possibile per questo motivo anche qui utilizzeremo la Regressione. L'algoritmo più utilizzato è la regressione Lineare. Scarica un Esempio di Regressione Lineare in Python Grazie per la lettura, condividi l'articolo per supportarci.