Risultati Ricerca Intelligenza Artificiale Italia
484 risultati trovati con una ricerca vuota
- Prerequisiti per le carriere di Intelligenza Artificiale - Machine Learning - Deep Learning
Hai intenzione di iniziare una carriera nell'intelligenza artificiale e nell'apprendimento automatico? Bene, allora questo articolo è per te. Costruire una carriera in AI e ML non è né facile né difficile. Ma richiede un approccio dedicato. A volte, quando provieni da un background IT, potresti aver voglia di scambiare anche le opzioni di carriera, a causa delle diverse opportunità. Per prima cosa comprendiamo i prerequisiti per accedere alle carriere di AI e ML. Quali sono i prerequisiti per lavorare con l'Intelligenza Artificiale ? L'intelligenza artificiale e l'apprendimento automatico hanno requisiti e qualifiche propri. Per costruire una carriera in AI e ML è necessario possedere set di competenze . Di seguito abbiamo elencato alcune abilità richieste. 1 ) Abilità statistiche In qualità di aspirante AI , devi avere una conoscenza approfondita delle statistiche e delle probabilità per comprendere e analizzare algoritmi complessi. Poiché la maggior parte dei modelli di intelligenza artificiale dipende dalla ricerca di modelli in grandi quantità di informazioni, è fondamentale conoscere bene i metodi statistici utilizzati per ottenere informazioni dai dati. 2 ) Abilità matematiche e algebriche/geometriche È necessaria una conoscenza completa delle abilità matematiche e di probabilità poiché l' intelligenza artificiale è un campo che presenta molti concetti matematici per creare l'intelligenza artificiale. La probabilità aiuta a determinare una varietà di risultati nell'intelligenza artificiale, con una comprensione più profonda dell'argomento che è parte integrante della creazione di modelli di intelligenza artificiale. 3 ) Abilità di programmazione Se le abilità matematiche sono uno dei prerequisiti, le abilità di programmazione sono l'altra parte. Gli aspiranti all'intelligenza artificiale e all'apprendimento automatico richiedono linguaggi di programmazione Java, C++, Python e R. Poiché il C++ aiuta gli ingegneri ad aumentare la velocità del loro processo di codifica, Python aiuterà a comprendere e creare algoritmi complessi. E quindi questi programmi sono importanti considerando tutti i ruoli nel settore AI e ML . 4 ) tecniche avanzate di elaborazione dati Quando si tratta di machine learning, l'estrazione delle funzionalità è una caratteristica integrale. Per comprendere la prossima funzionalità e come distribuire i modelli, gli ingegneri di Intelligenza Artificiale e Machine Learning dovrebbero avere familiarità con varie tecniche avanzate di elaborazione dei dati. 5 ) Calcolo distribuito Poiché tutti i lavori di intelligenza artificiale richiedono che i professionisti si occupino di set di dati grandi e complessi, è necessario distribuirli equamente su un intero cluster e quindi è obbligatorio disporre di competenze informatiche distribuite. Ciò include competenze in applicazioni, come MongoDB, oltre alla creazione e al funzionamento di ambienti cloud. Come diventare un professionista di Intelligenza Artificiale ? Inizia a prepararti Ora che sai quali sono i prerequisiti per entrare a far parte del settore sei idoneo, ma ciò richiede anche set di abilità di prestazione lavorativa. Il prossimo passo della carriera è iniziare a lavorare sulle abilità che percepisci più ostili. La cosa migliore da fare è acquistare libri sulla probabilità o sulle statistiche e rispolverare le abilità di programmazione(NON INIZIARE CON FRAMEWORK CHE LAVORANO AL POSTO TUO!). O l'altro modo potrebbe anche partecipare a corsi di Intelligenza Artificiale e Machine Learning molto richiesti che possono aiutarti a potenziare le tue abilità a livelli avanzati. Quando si arriva a comprendere le funzioni e il lavoro del settore su base giornaliera, un esperto può aiutarti a navigare facilmente. Lavora su progetti di Intelligenza Artificiale Lavorare su progetti diversi ti offre un'ampia esperienza pratica sul campo e aiuta a mettere in evidenza il tuo curriculum. Quindi, lavora su tanti progetti e collabora con altri aspiranti ai progetti, questo può aiutarti a migliorare le tue capacità per soddisfare i requisiti del settore. La conoscenza della teoria è apprezzata quando viene applicata nell'ambiente reale. Quindi, è obbligatorio cimentarsi nell'applicazione delle proprie capacità per ottenere applicazioni pratiche. Conclusioni Ora che hai un'idea di come iniziare una carriera in AI e ML , è tempo per te di iniziare ad agire in tal senso. È anche importante analizzare i tuoi punti di forza e lavorare sui tuoi punti deboli e iniziare a lavorarci sopra. Questo può aiutarti a costruire una carriera di successo nell'intelligenza artificiale e nell'apprendimento automatico. Nel caso potesse tornarti utile, ti lascio qui sotto un percorso che racchiude molto grossolanamente gli step formativi da seguire per avere successo in questo campo.
- Etica e Intelligenza Artificiale. Ascoltiamo anche la visione di un'Intelligenza Artificiale.
Partiamo dal concetto di “Morale”: La morale è l'insieme dei valori o principi ideali in base ai quali l'individuo e la collettività decidono liberamente la scelta del proprio comportamento. Tali valori si originano dalla realtà sociale e politica, si riferiscono all'organizzazione economica e giuridica, si rifanno alle tradizioni di una collettività e quindi mutano nel loro percorso storico. Il termine morale, in latino: moralis, derivante da mos, moris (costume), fu coniato da Marco Tullio Cicerone per calco del greco antico ἠθικός (etikòs), derivato di ἦθος (etos, costume). Potremmo dire che il concetto di morale sembra sicuramente un “dato acquisito”, ma in realtà credo sia più appropriato considerarlo una “funzione mentale indotta”, così, come può essere il concetto di “Etica”: l'etica, sinonimo di “filosofia morale”, può dunque essere considerata come una branca della filosofia che "indica quella parte della filosofia che si occupa del costume, ossia del comportamento umano”. Il termine deriva dal greco antico ἦθος (t. êthos), cioè «carattere», «comportamento», o anche da «costume», «consuetudine», «abitudine». Nella società moderna il termine “Etica” ha subito delle integrazioni concettuali, come “Bioetica”, o “Neuroetica”, Il termine neuroetica in particolare, si può riferire a due diversi campi di studio; con esso si può intendere ‘etica della neuroscienza’ oppure ‘neuroscienza dell'etica'. L'etica della neuroscienza è dunque una “disciplina” dove illustri ed eminenti pensatori, si occupano essenzialmente di discutere da un punto di vista etico progettazione ed esecuzione di uno studio neuroscientifico, e di valutare l'impatto etico e sociale dei risultati degli studi neuroscientifici; coloro che si occupano di neuroscienza dell'etica invece, credo che affrontino il concetto dal punto di vista “meccanico - informatico” ovvero, si occupano, attraverso studi scientifici e neuroscientifici di trarre alcune nozioni inerenti problematiche associate a etica e della psicologia morale, in altre parole, probabilmente cercheranno di capire quali meccanismi neurali siano implicati nelle reazioni emozionali inerenti l’interpretazione di immagini o frasi (attraverso processi di valutazione come la sentiment analisys NLP). L'etica dell'intelligenza artificiale infine, può essere considerata una branca dell'etica che studia le implicazioni economiche, sociali e culturali dello sviluppo dei sistemi di intelligenza artificiale (IA). La filosofia, in merito alla questione delle implicazioni etiche inerenti l’intelligenza artificiale, si si concentra su un ruolo sempre più in voga nel dibattito internazionale il quale non si limita più, come un tempo, alla sola dimensione logico-teoretica del problema, ma si trova piuttosto obbligata ad affrontare in particolar modo le questioni etiche che sorgono da quella che è definita da molti una delle più grandi rivoluzioni industriali della storia, in quanto diventa implicito il cambio di paradigma nelle tipologie relazionali indotte dal ruolo dei sistemi e delle macchine dotate di tale caratteristica funzionale. Fondamentali divengono quindi temi e concetti come quello di affidabilità, legalità, etica e responsabilità, ai quali la filosofia deve porre la propria attenzione se vuole che l’esponenziale sviluppo tecnologico possa essere in futuro correttamente regolamentato e controllato. Ovvio dunque che ci siano iniziative politiche nazionali e sovranazionali che cercano in qualche modo di affrontare le problematiche sociali annesse allo sviluppo di nuove tecnologie, intelligenza artificiale e implicazioni etiche. Ci si aspetta quindi che chi si occupa, a vario titolo di questi temi sia perlomeno preparato sotto il profilo deontologico, dove per “deontologia” che dal greco δέον -οντος (deon) e -λογία (loghìa), si intende lo "studio del dovere", cioè la trattazione filosofico-pratica delle azioni doverose e la loro codificazione, anche perché questi saranno i principi sui quali anche le I.A. dovranno agire! In questo senso si sono stilati i sette requisiti fondamentali a cui si dovranno attenere le applicazioni di intelligenza artificiale secondo il gruppo di “esperti di alto livello” della Commissione Europea: 1) Supervisione umana dei sistemi di IA, a garanzia del rispetto dei diritti fondamentali e del benessere dell’utente; 2) Robustezza e sicurezza, intese come sicurezza ed affidabilità degli algoritmi e come tenuta dei sistemi di controllo in caso di ipotetiche operazioni illecite; 3) Privacy, controllo e gestione dei dati; 4) Trasparenza a garanzia della tracciabilità dei sistemi e a dimostrazione delle operazioni compiute dell’algoritmo; 5) Diversità, correttezza, assenza di discriminazione: i sistemi di intelligenza artificiale dovrebbero tenere conto delle diverse e distinte abilità e capacità umane, al tempo stesso garantendo a tutti il libero accesso a tali strumenti; 6) Benessere sociale e ambientale, ossia avere sempre riguardo all’impatto sull’ambiente e sull’assetto sociale, promuovendo l’utilizzo dell’IA solo laddove il suo utilizzo possa garantire uno sviluppo sostenibile; 7) Responsabilità, ovvero verifica continua dei sistemi, sia internamente che esternamente. Considerazioni: Nel termine derivato "deontologico" la filosofia spesso intende la contrapposizione tra ciò che riguarda il "dover essere" ("il mondo dell'etica") dall'"ontologico", ("il mondo della realtà", dell'"essere in quanto tale"), e in senso più ampio tra ciò che si vorrebbe essere e ciò che si è. All'opposto dell'etica "autonoma e trascendente, operante come limite esterno al potere" esercitato, si colloca "un’etica di tipo hegeliano, discendente naturalmente dalla stessa eticità dello Stato o “dell’Ente di potere”. Un’etica effettuale può essere intesa come incarnazione ed espressione del potere stesso. In altri termini, ogni discorso deontologico, in qualsiasi società o ordinamento basato sul principio di autorità, in questa accezione, finisce con lo sfumare nell’esercizio stesso del potere". Diversa è la visione di una piccola intelligenza artificiale che riferisce il suo punto di vista nella contestualità etica umana, come riportato dal video qui sotto. Grazie per la lettura, esprimi i tuoi pensieri nei commenti qui sotto...
- Fantastiche Idee per Progetti di Data Science per Principianti ed Esperti con Codice R o Python
La scienza dei dati ha registrato un boom negli ultimi due anni e la spinta nel dominio dell'intelligenza artificiale dovuta alle varie innovazioni non farà altro che portarla al livello successivo. Man mano che sempre più industrie iniziano a rendersi conto della potenza della Data Science , sul mercato emergono più opportunità. Lo scopo alla base di questo articolo è condividere alcune idee per il tuo prossimo progetto, che non solo aumenterà la tua fiducia nella scienza dei dati, ma svolgerà anche un ruolo fondamentale nel migliorare le tue capacità. I dati alimentano davvero tutto ciò che facciamo. — Jeff Weiner Stai cercando libri sull'Intelligenza Artificiale ? Ci abbiamo Pensato noi clicca il bottone qui sotto per accedere ad una nostra selezione di circa 25 libri dedicati all' I.A. I migliori progetti sulla Data Science e Intelligenza Artificiale Comprendere la scienza dei dati può essere piuttosto difficile all'inizio, ma con una pratica costante, puoi presto iniziare a cogliere le varie nozioni e terminologie in materia. Il modo migliore per ottenere una maggiore esposizione alla scienza dei dati oltre a passare attraverso la letteratura è quello di intraprendere alcuni progetti utili che non solo ti aiuteranno a migliorare le tue competenze, ma renderanno anche il tuo curriculum più impressionante. In questa sezione, condivideremo con te idee di progetti divertenti e interessanti, che sono distribuite su tutti i livelli di abilità, che vanno da principianti, intermedi e veterani. 1. Crea il Tuo Chatbot in Python Linguaggio: Python Set di dati: file JSON Codice sorgente: crea il tuo primo progetto Python Chatbot I chatbot svolgono un ruolo fondamentale per le aziende in quanto possono gestire senza sforzo una raffica di richieste e messaggi dei clienti senza alcun rallentamento. I chatbot funzionano analizzando l'input del cliente e rispondendo con una risposta mappata appropriata. Per addestrare il chatbot, puoi utilizzare Recurrent Neural Networks con il set di dati JSON mentre l'implementazione può essere gestita utilizzando Python . Se vuoi che il tuo chatbot sia di specifico dominio o di dominio aperto dipende dal suo scopo. Man mano che questi chatbot elaborano più interazioni, aumentano anche la loro intelligenza e precisione. 2. Rilevamento frodi con carta di credito Linguaggio: R o Python Set di dati : i dati sulla transazione delle carte di credito vengono utilizzati qui come set di dati. Codice sorgente: rilevamento delle frodi con carta di credito tramite Python Le frodi con le carte di credito sono più comuni di quanto si pensi, e ultimamente sono state più alte. In senso figurato, siamo sulla strada per attraversare un miliardo di utenti di carte di credito entro la fine del 2022 . Ma grazie alle innovazioni in tecnologie come l'intelligenza artificiale, l'apprendimento automatico e la scienza dei dati, le società di carte di credito sono state in grado di identificare e intercettare con successo queste frodi con sufficiente precisione. In poche parole, l'idea alla base di questo è analizzare il comportamento di spesa abituale del cliente , inclusa la mappatura della posizione di tali spese per identificare le transazioni fraudolente da quelle non fraudolente. Per questo progetto, puoi utilizzare R o Python con la cronologia delle transazioni del cliente come set di dati e inserirlo in alberi decisionali , reti neurali artificiali e regressione logistica . Man mano che fornisci più dati al tuo sistema, dovresti essere in grado di aumentarne la precisione complessiva. 3. Rilevamento di notizie false Linguaggio: Python Set di dati : news.csv Codice sorgente: rilevamento di notizie false Siamo sicuri che le fake news non hanno bisogno di presentazioni . Nel mondo di oggi tutto connesso, è diventato ridicolmente facile condividere notizie false su Internet. Di tanto in tanto, puoi vedere informazioni false diffuse online da fonti non autorizzate che non solo causano problemi alle persone prese di mira, ma hanno anche il potenziale per causare panico diffuso e persino violenza. Per frenare la diffusione di notizie false, è fondamentale identificare l'autenticità delle informazioni, cosa che può essere fatta utilizzando questo progetto di Data Science. Per questo, puoi usare Python e costruire un modello con TfidfVectorizer e PassiveAggressiveClassifier per separare le notizie vere da quelle false. Alcune delle librerie Python adatte a questo progetto sono pandas, NumPy e scikit-learn e per il set di dati puoi usare News.csv . 4. Previsione degli incendi boschivi La costruzione di un sistema di previsione degli incendi boschivi e degli incendi sarà un altro buon uso delle capacità offerte da Data Science. Un incendio boschivo o un incendio forestale è essenzialmente un incendio incontrollato in una foresta. Ogni incidente di un incendio boschivo ha causato un'enorme quantità di danni non solo alla natura, ma anche all'habitat animale e alle proprietà umane. Per controllare e persino prevedere la natura caotica degli incendi, è possibile utilizzare il clustering k-means per identificare i principali hotspot di incendio e la loro gravità. Questo potrebbe essere utile per allocare correttamente le risorse. Puoi anche utilizzare i dati meteorologici per trovare periodi comuni, stagioni per incendi boschivi per aumentare la precisione del tuo modello. 5. Classificazione del cancro al seno Linguaggio: Python Dataset: IDC (carcinoma duttale invasivo) Codice sorgente: Classificazione del cancro al seno con Deep Learning Nel caso in cui desideri aggiungere un progetto relativo al settore sanitario al tuo portafoglio, puoi provare a creare un sistema di rilevamento del cancro al seno utilizzando Python . Ultimamente i casi di cancro al seno sono in aumento e il modo migliore per combattere il cancro al seno è identificarlo in una fase iniziale e adottare misure preventive appropriate. Per costruire un tale sistema con Python, puoi utilizzare il set di dati IDC (Invasive Ductal Carcinoma) , che contiene immagini istologiche per cellule maligne che inducono il cancro e puoi addestrare il tuo modello su questo set di dati. Per questo progetto, troverete C onvolutional reti neurali più adatto per il compito, e per quanto riguarda le librerie Python , è possibile utilizzare NumPy , OpenCV , tensorflow , Keras, scikit-learn , e Matplotlib . 6. Rilevazione della sonnolenza del conducente Linguaggio: Python Codice sorgente: sistema di rilevamento della sonnolenza del conducente con OpenCV e Keras Gli incidenti stradali uccidono molte vite ogni anno e una delle cause degli incidenti stradali sono i conducenti assonnati. Essendo una potenziale causa di pericolo sulla strada, uno dei modi migliori per prevenirlo è implementare un sistema di rilevamento della sonnolenza . Un sistema di rilevamento della sonnolenza del conducente come questo è un altro progetto che ha il potenziale per salvare molte vite valutando costantemente gli occhi del conducente e avvisandolo con allarmi nel caso in cui il sistema rilevi la frequente chiusura degli occhi. Una webcam è un must per questo progetto per consentire al sistema di monitorare periodicamente gli occhi del guidatore. Per rendere questo accada, questo progetto Python richiederà un modello di apprendimento profondo e biblioteche , come OpenCV , tensorflow , Pygame , e Keras . 7. Sistemi di raccomandazione (raccomandazione per film) Lingua: R Set di dati : MovieLens Pacchetti: raccomandazionelab, ggplot2, data.table, reshape2 Codice sorgente: progetto del sistema di raccomandazione dei film in R Ti sei mai chiesto come piattaforme multimediali come YouTube , NetFlix e altre ti consigliano cosa guardare dopo? Per fare ciò, utilizzano uno strumento chiamato sistema di raccomandazione/raccomandazione . Prende in considerazione diverse metriche, come l' età, gli spettacoli visti in precedenza, il genere più visto, la frequenza di visualizzazione e le inserisce in un modello di apprendimento automatico che genera quindi ciò che l'utente potrebbe voler guardare in seguito. In base alle tue preferenze e ai dati di input, puoi provare a creare un sistema di raccomandazione basato sul contenuto o un sistema di raccomandazione di filtraggio collaborativo. Per questo progetto, è possibile scegliere R con i MovieLens set di dati che copre i punteggi di oltre 58.000 film, e per quanto riguarda i pacchetti, è possibile utilizzare recommenderlab , ggplot2 , reshap2 e data.table. 8. Analisi del sentimento Lingua: R Set di dati : janeaustenR Codice sorgente: progetto di analisi del sentiment in R Conosciuto anche come opinion mining, l' analisi del sentiment è uno strumento supportato dall'intelligenza artificiale , che essenzialmente ti consente di identificare, raccogliere e analizzare le opinioni delle persone su un argomento o un prodotto. Queste opinioni potrebbero provenire da una varietà di fonti, tra cui recensioni online, risposte a sondaggi e potrebbero coinvolgere una serie di emozioni come felice, arrabbiato, positivo, amore, negativo, eccitazione e altro ancora. Le moderne aziende basate sui dati sono quelle che traggono i maggiori benefici da uno strumento di analisi del sentiment in quanto fornisce loro la visione critica della reazione delle persone alla corsa a secco del lancio di un nuovo prodotto o di un cambiamento nella strategia aziendale. Per costruire un sistema come questo, puoi usare R con il set di dati di janeaustenR insieme al pacchetto tidytext . 9. Analisi esplorativa dei dati Linguaggio: Python Pacchetti: panda, NumPy, seaborn e matplotlib Codice sorgente : Analisi esplorativa dei dati in Python L'analisi dei dati inizia con l' EDA . L' analisi esplorativa dei dati svolge un ruolo chiave nel processo di analisi dei dati poiché questo passaggio ti aiuta a dare un senso ai tuoi dati e spesso implica la loro visualizzazione per una migliore esplorazione. Per la visualizzazione, puoi scegliere tra una gamma di opzioni, come istogrammi, grafici a dispersione o mappe di calore . EDA può anche esporre risultati imprevisti e valori anomali nei dati. Una volta identificati i modelli e ricavato le informazioni necessarie dai tuoi dati, sei a posto. Un progetto di questa scala può essere facilmente realizzato con Python e per i pacchetti è possibile utilizzare panda, NumPy, seaborn e matplotlib. Un'ottima fonte per i set di dati EDA è IBM Analytics Community . 10. Rilevamento del genere e previsione dell'età Linguaggio: Python Set di dati : Adience Pacchetti: OpenCV Codice sorgente: rilevamento dell'età OpenCV con Deep Learning Identificato come un problema di classificazione , questo progetto di rilevamento del genere e previsione dell'età metterà alla prova sia le tue abilità di Machine Learning che quelle di Visione artificiale . L'obiettivo qui è costruire un sistema che prenda l'immagine di una persona e cerchi di identificarne l'età e il sesso. Per questo divertente progetto, puoi implementare reti neurali convoluzionali e utilizzare Python con il pacchetto OpenCV . Puoi prendere il set di dati Adience per questo progetto. Fattori come il trucco, l'illuminazione, le espressioni facciali renderanno questo difficile e cercheranno di buttare via il tuo modello, quindi tienilo a mente. 11. Riconoscere le emozioni dal linguaggio Linguaggio: Python Set di dati : RAVDESS Pacchetti: Librosa, Soundfile, NumPy, Sklearn, Pyaudio Codice sorgente: riconoscimento delle emozioni vocali con librosa La parola è uno dei modi più fondamentali per esprimere noi stessi e nasconde varie emozioni al suo interno, come calma, rabbia, gioia ed eccitazione, solo per citarne alcune. Analizzando le emozioni dietro il discorso, è possibile utilizzare queste informazioni per ristrutturare le nostre azioni e servizi, e anche prodotti, per offrire un servizio più personalizzato a individui specifici. Questo progetto di riconoscimento delle emozioni vocali cerca di identificare ed estrarre le emozioni da più file audio contenenti il linguaggio umano. Per fare qualcosa di simile in Python, è possibile utilizzare il Librosa , soundfile , NumPy, scikit-learn, e PyAaudio pacchetti . Per il set di dati , puoi utilizzare il Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS) , che contiene oltre 7300 file da utilizzare. 12. Segmentazione dei clienti Lingua: R Codice sorgente: segmentazione dei clienti tramite machine learning Le aziende moderne si sforzano di fornire servizi altamente personalizzati ai propri clienti, cosa che non sarebbe stata possibile senza una qualche forma di categorizzazione o segmentazione dei clienti . In tal modo, le organizzazioni possono facilmente strutturare i propri servizi e prodotti in base ai propri clienti mirando a loro per aumentare le entrate. Per questo progetto utilizzerai l'apprendimento non supervisionato per raggruppare i tuoi clienti in gruppi basati su aspetti individuali come età, sesso, regione, interessi e così via. Il clustering K-means o il clustering gerarchico saranno adatti qui, ma puoi anche sperimentare il clustering fuzzy o i metodi di clustering basati sulla densità . Altre idee per progetti di data science da costruire — Visualizzazioni casi di coronavirus Visualizzare il cambiamento climatico Analisi del ritiro di Uber Previsione del traffico web utilizzando le serie temporali Impatto del cambiamento climatico sull'approvvigionamento alimentare globale Rilevare la malattia di Parkinson Parkinson Esplorazione dei dati dei Pokémon Visualizzazione della temperatura della superficie terrestre Rilevamento del tumore al cervello con la scienza dei dati Conclusione Attraverso questo articolo, abbiamo cercato di coprire più di 10 idee di progetto di Data Science divertenti e utili per te, che ti aiuteranno a capire l'ABC della tecnologia. Essendo uno dei domini più richiesti del settore, il futuro della scienza dei dati ha molte promesse, ma per sfruttare al meglio le opportunità imminenti, devi essere pronto ad affrontare le sfide che comporta. In bocca al lupo! Nota: per eliminare problemi di diverso tipo, voglio avvisarti del fatto che questo articolo rappresenta solo la mia opinione personale che voglio condividere e hai tutto il diritto di non essere d'accordo con esso. Se hai suggerimenti o idee, ci piacerebbe sentirle e parlarne.
- LA CURIOSITA`
Questa Spiegazione è appartenente ad una Serie di Articoli. Prima di iniziare a leggere ti consigliamo di guardare gli articoli precedenti : Lo Strumento "mente" Il servomeccanismo mentale Gli Engrammi : Le Immagini della Mente Che cosa è un concetto Gli stati Attenzionali Le funzioni attenzionali Il concetto di variabile La sovrapposizione degli effetti Alla luce di questa metodologia di indagine quindi potremmo inoltrarci nella selva delle interazioni e delle interconnessioni che originano i vari concetti "funzione", per identificarne uno che si presenta proprio come un motore essenziale per l'avvio del nostro servomeccanismo, analizzeremo “la curiosità”, per vedere che relazioni esistono fra questo nuovo concetto "funzione" e quelli che abbiamo più sopra incontrato. Se consideriamo ancora una volta il fatto che l’attenzione può assumere uno stato di eccitazione e mettiamo in relazione questo stato con un “accumulo di energia” da sprigionare, possiamo immaginare che vi sia un livello di soglia dato dalla quantità energetica che noi accumuliamo attenzionalmente al di sopra del quale scatta un meccanismo che ci porta a far estendere in una sequenza di operazioni la nostra possibilità attenzionale di determinare una trasformazione energetica controllata. Si potrebbe a questo punto ipotizzare che al di sopra di quel “livello di soglia” intervenga la nostra “volontà attenzionale” e allora prende avvio tutto il processo di trasformazione dell’informazione acquisita, a questo punto noi potremmo individuare “la curiosità” proprio come la “funzione” esercitata dall’attenzione sulla volontà, con un linguaggio di tipo matematico potremmo indicare perciò che “cu=f{a(i)[v(i)]}” dove ’cu’ stà per “curiosità”,’v’ per “volontà attenzionale”,’a’ per “attenzione” e ’i’ per “informazione”. La curiosità dunque si acquisisce poiché l’informazione percepita o ricordata non è completa nella sua identità attenzionale, pertanto vi sarà un accumulo energetico che farà intervenire la volontà nel processo tendente a completare l’engramma che darà origine ad una collocazione razionale dell’informazione di partenza, tale collocazione va intesa come inserimento di una parte mancante in una struttura complessa che si identifica nella costituzione relazionale delle informazioni correlate o dei concetti che sono stati associati alla base del processo stesso. Per dare una immagine grafica a quanto sopra esposto si potrebbe far riferimento al seguente schema che mette in relazione le grandezze interessate: Come si può notare vi sono le tre funzioni di base: la volontà tracciata in alto, l’attenzione al centro e l’immaginazione in basso; la lettera ’S’ indica il livello di soglia per il quale subentra la volontà, lo spazio rosso indica l’accumulo energetico che fa scattare il meccanismo, cosicché al tempo ’x’ con l’inserimento della volontà attenzionale avremmo che la curiosità entrerà in funzione facendo partire il processo di acquisizione delle informazioni tramite l’interazione delle tre grandezze funzione di base e questo avverrà fino al tempo ’y’, dopodiché per una particolare conformazione del segnale relativo alla immaginazione si potrebbe per esempio iniziare il processo relativo al “desiderio”. Ho voluto appositamente introdurre in questo modo un altro concetto funzione che prende come base proprio la conformazione del processo dovuto alla curiosità poiché se a questo processo indotto dalla interazione o interconnessione della attenzione con la volontà associamo un particolare supporto della immaginazione che è quello relativo al mettere in confronto l’oggetto, o meglio il costrutto oggettivo in questione tramite una correlazione soggettiva con l’Io, otterremmo proprio un nuovo operare mentale relativo al desiderio che darà inizio ad una serie di operazioni di input- output del servomeccanismo tendenti ad esaudire gli scopi prefissati. Una considerazione ulteriore però va data in merito alla conformazione dei segnali funzione che sono stati esposti in modo schematico sul grafico, bisogna dare una precisazione che è inerente al carattere analogico-digitale di tali segnali usati come artifici, cioè non va osservato un segnale soltanto in quanto può o meno assumere delle sequenze di stati logici, ma anche in quanto vi si possono introdurre perlomeno altre due valutazioni, una sulla intensità del segnale e una sulla sua frequenza o meglio sul ritmo che questo può o meno assumere; se partiamo dal presupposto di poter costantemente mettere in relazione tutte le caratteristiche di questi o di altri segnali che possono essere di ausilio per le varie spiegazioni dell’operare mentale, ci si accorge che il nostro servomeccanismo dispone di una notevole quantità di modi di lavorare e noi stessi ci rendiamo conto che vi sono svariatissime metodologie di indagine sulle relazioni esistenti fra le varie grandezze che possiamo analizzare con questo modo di intendere le funzioni di base che condizionano l’operare mentale stesso. In realtà noi non dobbiamo cercare questi segnali all’interno del cervello poiché quello che effettivamente avviene sono delle trasformazioni energetiche, ma ci possiamo figurare degli operatori di trasformazione proprio usufruendo del simbolismo grafico traducibile in funzioni matematiche. Nel prossimo articolo andremo a spiegare le Attività percettive, grazie per la lettura.
- LA SOVRAPPOSIZIONE DEGLI EFFETTI
Questa Spiegazione è appartenente ad una Serie di Articoli. Prima di iniziare a leggere ti consigliamo di guardare gli articoli precedenti : Lo Strumento "mente" Il servomeccanismo mentale Gli Engrammi : Le Immagini della Mente Che cosa è un concetto Gli stati Attenzionali Le funzioni attenzionali Il concetto di variabile Pensiamo per un attimo a che cosa succede mescolando in vari modi i colori di base, si otterranno degli altri colori e così succede per i nostri concetti "funzione" se facciamo delle operazioni utilizzando contemporaneamente vari concetti di questo tipo otterremmo delle altre funzioni ci sarà quindi una sovrapposizione degli effetti che renderà possibile le varie forme di costituzione di pensiero da cui deriveranno le conseguenze comportamentali e di atteggiamento, per esempio solo nel caso della attività percettiva potremmo individuare varie forme di atteggiamento, anche dal punto di vista descrittivo di ciò che si osserva, si tocca o si sente, si potrà parlare di descrizioni “estetizzanti” o “economiche”, “moraleggianti” o “esplicative”, per “congiunzioni copulative” o “fantastiche”, “sintetiche” o “analizzanti” ecc..., ognuno di questi atteggiamenti, indotti dall'intervento nel sistema delle attività esprimibili in 'C(i)', prevede dei programmi diversi, dei diversi processi coinvolgenti l'effetto di più funzioni, da quelle elementari di correlazione logica a quelle più complesse dovute alla interazione fra l'immaginazione, la cognizione e la volontà attenzionale. Per capire bene però la sovrapposizione degli effetti delle varie funzioni che possono entrare in gioco in un qualsiasi processo mentale bisogna che ci rifacciamo ad un discorso matematico che consiste nello spiegare che cosa si intende per una grandezza che è funzione di un'altra. Prendiamo il caso della relazione che esiste tra la velocità 'v' di un oggetto e la sua variazione dovuta all'accelerazione 'a', se consideriamo come “causa” o soggetto la “variazione di velocità”, potremmo affermare che il concetto di accelerazione è funzione della velocità indicando questa nostra affermazione con un simbolismo che ci consente di sintetizzare in una formula questa nostra espressione: a”=”f(v) tale formula ci indica il carattere generale della relazione che lega la velocità all'accelerazione, in particolare dichiareremo che l'accelerazione 'a' è la derivata prima della velocita 'v', al contrario se prendiamo come “causa” o soggetto “l’accelerazione” che fa variare la velocità dovremmo scrivere la formula che indica il carattere generale della relazione in questo modo: v”=”f(a) il che equivale anche ad una scrittura semplificata che è questa: < v(a) > , questa relazione non è che la relazione inversa di quella precedente e potremmo dire in particolare che la velocita` 'v' è l'integrale dell'accelerazione 'a': Ora complichiamo un po’ le cose e lasciamo l'esempio rubato alla fisica per riportare tutto il discorso alla possibilità matematica di espressione facendo questa relazione che esprime la possibilità di legare assieme più grandezze in una complessità di relazioni: < x=f{a[b(i)]} >, il che sta a significare che la grandezza ’x’ è una funzione di ’a’ che a sua volta è una funzione di ’b’ che ancora è una funzione di ’i’, esiste quindi una relazione complessa fra ’x’ e ’i’ data dalle relazioni espresse dalle funzioni che legano le varie grandezze presenti nella formula. Ora compiamo una altro passo in avanti dicendo che se è vera la formula sopra espressa allora questo implica che è vera anche la formula che esprime questa relazione: < x=f1(i) >, dove ’f1’ congloba in se le relazioni espresse nella formula sopra citata, ma allora è anche vero che < i=f2(x) > , il che significa che si può trovare una funzione inversa a quella che lega ’x’ come soggetto a ’i’ come oggetto, non fosse altro che per la relatività dell’espressione, più in generale noi potremmo affermare che considerando questo fattore di relatività saremmo in grado di presupporre altrettanto vere le seguenti espressioni: oppure < b=f4{x[a(i)]} >, o ancora , ma potremmo anche scrivere che e continuare così ottenendo tutta una serie di relazioni diverse fra le varie grandezze della formula di partenza; è anche vero che si possono scrivere delle formule che sottintendono altre relazioni come ad esempio:, o anche ,o ancora ecc. Quanto sopra ha un significato ben preciso che consiste nel poter ricavare le relazioni possibili fra le varie grandezze in gioco, ma se facciamo un ulteriore passo in avanti e consideriamo le grandezze presenti nella formula come dei concetti "funzione" che potremmo raffigurarci come degli “operatori energetici”, otterremmo che “l'interconnessione” fra le varie funzioni espresse in relazioni complesse porta proprio alla sovrapposizione degli effetti di questi concetti creandone degli ulteriori. Metaforicamente è come se considerassimo di anagrammare una parola di 'x' lettere, ponendo poi gli accenti dove vogliamo, otterremo in questo modo la possibilità di avere delle nuove parole pronunciabili o meno con significato o senza, ma ciò che conta è che lo si può fare sia per nostra volontà sia disponendo le lettere “a caso” e questo ci dovrebbe far capire una cosa fondamentale e cioè che esiste una interazione reciproca fra informazione percepita e attività mentale, ovvero che una particolare sequenza di informazioni può far scattare un nostro atteggiamento mentale, come è anche vero che un nostro particolare modo di pensare può far variare la metodologia di concepimento delle informazioni percepite. Abbiamo visto poco sopra che una interazione fra le tre funzioni di base può portare ad una quarta funzione e più precisamente abbiamo osservato che qualora vi sia un sincronismo di intervento avente come grandezza dominante la “immaginazione”, si sia provocato il processo mentale dovuto alla “teorizzazione”, si potrebbe assumere quanto detto in una formula che esprime la relazione generale fra queste grandezze funzione:, dove 't' è la “teorizzazione”,'im' “l'immaginazione”,'v' la “volontà attenzionale”, 'a' “l'attenzione” e 'i' “l'informazione”, se viene poi aggiunta la possibilità percettiva complessa otterremo “l'astrazione”, questo non è che uno dei tanti esempi che possiamo analizzare con la “sovrapposizione degli effetti”. E` ovvio che anche il linguaggio matematico porta con se dei limiti di espressione e quindi si può faticare a far comprendere quanto si vuole esprimere, ma vediamo di superare l'ostacolo riportando degli esempi che possono chiarire di più questo modo di correlare i vari concetti, per rendere se possibile un'idea più precisa sul funzionamento della nostra mente. Nel prossimo articolo vedremo come la nostra mente elabora e concettualizza la Curiosità. Grazie per la lettura...
- La crescita dell'Intelligenza Artificiale (AI) e del Machine Learning (ML) nel settore sanitario
L'intelligenza artificiale (AI) ha svolto un ruolo solido e crescente nel mondo negli ultimi decenni. Ciò di cui la maggior parte non si rende conto è che l'intelligenza artificiale si presenta in molte forme che hanno un impatto sulla vita quotidiana. L'accesso ai social media, alla posta elettronica, ai servizi di guida in auto e alle piattaforme di shopping online coinvolge tutti algoritmi di intelligenza artificiale per migliorare l'esperienza dell'utente. Uno dei principali settori in cui l'AI sta crescendo rapidamente è il campo medico; in particolare, nella diagnostica e nella gestione del trattamento. Poiché si teme che l'Intelligenza Artificiale superi i compiti e le capacità umane, esiste una ricerca significativa su come l'IA possa aiutare nelle decisioni cliniche, supportare il giudizio umano e aumentare l'efficienza del trattamento. Una maggiore presenza di intelligenza artificiale nel settore sanitario Ci sono varie dimensioni di intelligenza artificiale nell'assistenza sanitaria. Molte volte, l'IA utilizza un database web che consente a medici e professionisti di accedere a migliaia di risorse diagnostiche. Poiché i medici sono stati profondamente istruiti nel loro campo e sono aggiornati con la ricerca attuale, l'uso dell'IA aumenta notevolmente un risultato più rapido che può essere abbinato alle loro conoscenze cliniche. L'intelligenza artificiale presenta molti timori, soprattutto in ambito clinico, di sostituire o ridurre alla fine il bisogno di medici umani. Tuttavia, recenti ricerche e dati hanno dimostrato che è più probabile che questo strumento trarrà vantaggio e migliorerà la diagnostica clinica e il processo decisionale piuttosto che ridurre le necessità del medico. Molte volte, un paziente può presentare più sintomi che possono essere correlati a varie condizioni per caratteristiche sia genetiche che fisiche, che possono ritardare una diagnosi. Quindi, l'IA non solo avvantaggia un professionista in termini di efficienza, ma fornisce dati sia quantitativi che qualitativi basati sul feedback di input , migliorando l'accuratezza nella diagnosi precoce, nella diagnosi, nel piano di trattamento e nella previsione dei risultati. La capacità dell'IA di "apprendere" dai dati offre l'opportunità di una maggiore precisione basata sulle risposte di feedback. Questo feedback include molte fonti di database di back-end, input di professionisti, medici e istituti di ricerca. I sistemi di intelligenza artificiale in ambito sanitario funzionano sempre in tempo reale, il che significa che i dati sono sempre aggiornati, aumentando così l'accuratezza e la pertinenza. I dati assemblati sono una raccolta di diverse note mediche, registrazioni elettroniche di dispositivi medici, immagini di laboratorio, esami fisici e vari dati demografici. Con questa raccolta di informazioni in continuo aggiornamento, i professionisti hanno risorse quasi illimitate per migliorare le loro capacità di trattamento. L'AI Machine Learning fornisce una diagnostica più mirata Con varie quantità di dati sanitari sul campo, l'intelligenza artificiale deve ordinare in modo efficiente i dati presentati per "apprendere" e costruire una rete. Nell'ambito dei dati sanitari ci sono due diversi tipi di dati che possono essere ordinati; destrutturato e strutturato. L'apprendimento strutturato include tre diversi tipi di tecniche tra cui tecniche di machine learning (ML), un sistema di rete neurale e Modern Deep Learning. Considerando che, tutti i dati non strutturati utilizzano Natural Language Processing (NLP). Le tecniche di apprendimento automatico utilizzano algoritmi analitici per estrarre tratti specifici del paziente, che includono tutte le informazioni che sarebbero raccolte in una visita del paziente con un medico. Questi tratti, come i risultati degli esami fisici, i farmaci, i sintomi, le metriche di base, i dati specifici della malattia, la diagnostica per immagini, le espressioni geniche e diversi test di laboratorio contribuiscono tutti ai dati strutturati raccolti. Attraverso l'apprendimento automatico, è quindi possibile determinare i risultati dei pazienti. In uno studio, il Neural Networking è stato utilizzato in un processo diagnostico del cancro al seno che ordina da 6.567 geni e accoppiato con le informazioni sulla trama inserite dalle mammografie dei soggetti. Questa combinazione di caratteristiche genetiche e fisiche registrate ha consentito un esito più specifico dell'indicatore del tumore. Il tipo più comune di Machine Learning in un contesto clinico è noto come apprendimento supervisionato. L'apprendimento supervisionato utilizza i tratti fisici del paziente, supportati da un database di informazioni (in questo caso i geni del cancro al seno), per fornire un risultato più mirato. Un altro tipo di apprendimento utilizzato è il Modern Deep Learning, che è considerato andare oltre la superficie del Machine Learning. Il Deep Learning utilizza gli stessi input del Machine Learning, ma lo immette in una rete neurale computerizzata; un livello nascosto che archivia ulteriormente le informazioni in un output più semplificato. Questo aiuta i professionisti che possono avere più diagnosi possibili a restringere il campo a uno o due risultati; consentendo così al professionista di trarre una conclusione più definitiva e concreta. Simile ai processi di dati strutturati è Natural Language Processing, che si concentra su tutti i dati non strutturati in un contesto clinico. Questo tipo di dati proviene dalle note cliniche e dal discorso documentato all'elaborazione del testo quando un medico vede un paziente. Questi dati includono narrazioni da esami fisici, rapporti di laboratorio e riepiloghi degli esami. Il Natural Language Processing utilizza database storici che contengono parole chiave rilevanti per la malattia che aiutano nel processo decisionale per una diagnosi. L'utilizzo di questi processi può fornire una diagnosi più accurata ed efficiente per un paziente, il che a sua volta fa risparmiare tempo al medico e, cosa più importante, può accelerare il processo di trattamento. Più veloce, mirata e specifica è la diagnosi, prima un paziente può essere sulla strada del recupero. Intelligenza artificiale integrata nelle principali aree di malattia Poiché i disturbi cardiovascolari, neurologici e il cancro sono costantemente le principali cause di morte, è imperativo che vengano utilizzate quante più risorse possibili per aiutare nella diagnosi precoce, nella diagnosi e nel trattamento. L'implementazione dell'intelligenza artificiale offre vantaggi nella diagnosi precoce essendo in grado di individuare eventuali allarmi di rischio che un paziente potrebbe avere. Uno studio che ha coinvolto pazienti a rischio di ictus ha utilizzato algoritmi di intelligenza artificiale basati sui sintomi presentati e sulla storia genetica per metterli in una fase di diagnosi precoce. Questa fase era basata sul movimento, in cui qualsiasi movimento fisico anormale nel paziente veniva documentato e avrebbe attivato un avviso. Questo avviso di attivazione ha consentito ai professionisti di sottoporre i pazienti a una risonanza magnetica / TC prima per una valutazione della malattia. Nello studio, l'allarme di diagnosi precoce ha fornito un'accuratezza dell'87,6% nella valutazione della diagnosi e della prognosi. Detto questo, i medici sono stati in grado di implementare il trattamento prima e prevedere se il paziente aveva una maggiore possibilità di ictus futuro. Allo stesso modo, l'apprendimento automatico è stato utilizzato nei pazienti post-ictus di 48 ore che ottengono una precisione perditiva del 70% indipendentemente dal fatto che il paziente possa avere un altro ictus o meno. Telehealth: intelligenza artificiale su scala ridotta Sebbene l'intelligenza artificiale sia utilizzata per malattie ad alto rischio e su scala più ampia, gli strumenti di telemedicina vengono implementati nelle case dei pazienti per aiutare a trattare e prevenire situazioni ad alto rischio riducendo al contempo le riammissioni ospedaliere. Gli strumenti di telemedicina consentono di acquisire, documentare ed elaborare diverse metriche in modo molto simile a una macchina AI più ampia. Questa apparecchiatura può avvisare immediatamente i medici quando un paziente segnala una variabile ad alto rischio. La diagnosi precoce, la diagnostica più rapida e un piano di trattamento aggiornato riducono tempo e denaro sia per il paziente che per l'ospedale, ottenendo cure più immediate. L'intelligenza artificiale consente ai professionisti di prendere decisioni più efficienti e logiche, migliorando la cura per i pazienti nel loro complesso; che alla fine è l'obiettivo finale. Grazie mille per aver letto l'articolo, condividilo se ti è sembrato interessante
- Creare Grafici Interattivi e Dinamici con Python. Esempio pratico Data Visualization per DataScience
Raccontare una storia con i dati è una funzione fondamentale per qualsiasi Data Scientist e creare visualizzazioni di dati che siano allo stesso tempo illuminanti e accattivanti può essere difficile. Questo tutorial esamina come creare grafici Plotly e Bokeh direttamente tramite la sintassi di plottaggio Pandas, che ti aiuterà a convertire le visualizzazioni statiche in controparti interattive e portare la tua analisi al livello successivo. L'esplorazione dei dati è di gran lunga uno degli aspetti più importanti di qualsiasi attività di analisi dei dati. Il sondaggio iniziale e i controlli preliminari che eseguiamo, utilizzando il vasto catalogo di strumenti di visualizzazione, ci forniscono informazioni utili sulla natura dei dati. Tuttavia, la scelta dello strumento di visualizzazione a volte è più complicata del compito stesso. Da un lato, abbiamo librerie che sono più facili da usare ma non sono così utili per mostrare relazioni complesse nei dati. Poi ce ne sono altri che rendono interattività ma hanno una notevole curva di apprendimento. Fortunatamente, sono state create alcune librerie open source che cercano di affrontare questo punto dolente in modo efficace. In questo articolo, esamineremo due di queste librerie, ovvero pandas_bokeh e cufflinks. Impareremo come creare grafici di trama e bokeh con la sintassi di base per la trama dei panda, con cui tutti ci sentiamo a nostro agio. Poiché l'enfasi dell'articolo è sulla sintassi piuttosto che sui tipi di grafici, ci limiteremo ai cinque grafici di base, ovvero grafici a linee, grafici a barre, istogrammi, grafici a dispersione e grafici a torta. Creeremo ciascuno di questi grafici prima con la libreria di grafica panda e poi li ricreeremo in bokeh. Lavoreremo con il set di dati NIFTY-50 . L'indice NIFTY 50 è il punto di riferimento della Borsa nazionale indiana per il mercato azionario indiano. Il set di dati è apertamente disponibile su Kaggle , ma utilizzeremo un sottoinsieme dei dati contenente il valore delle azioni di soli quattro settori, ovvero banca, farmaceutica, IT e FMCG. Importiamo le librerie e il set di dati necessari allo scopo di visualizzazione: # Importiamo le lebrerie import pandas as pd import numpy as np import pandas_bokeh import matplotlib.pyplot as plt %matplotlib inline Ora andiamo a caricare il nostro set di dati e lo prepariamo per creare prima i nostri grafici statitici e solo dopo li andremo a rendere dinamici e interattivi . # Carichiamo e leggiamo i dati nifty_data = pd.read_csv('/content/drive/MyDrive/NIFTY_data_2020.csv',parse_dates=["Date"],index_col='Date') nifty_data.head() nifty_data_resample = nifty_data.resample(rule = 'M').mean() nifty_data_resample Ora creiamo i soliti grafici con MatPlotLib. nifty_data.plot(title='Nifty Index values in 2020', xlabel = 'Values', figsize=(10,6) ); nifty_data.plot(kind='scatter', x='NIFTY FMCG index', y='NIFTY Bank index', title = 'Scatter Plot for NIFTY Index values in 2020', figsize=(10,6)); nifty_data[['NIFTY FMCG index','NIFTY Bank index']].plot(kind='hist',figsize=(9,6), bins=30); nifty_data_resample.plot(kind='bar',figsize=(10,6)); nifty_data_resample.index=['Jan','Feb','March','Apr','May','June','July'] nifty_data_resample['NIFTY Bank index'].plot.pie(legend=False, figsize=(10,6),autopct='%.1f'); Il risultato sarà questo Ma ora inizia il divertimento, rendiamo dinamici questi grafici con pandas_bokeh Per prima cosa installiamo la libreria !pip install pandas-bokeh #googlecolab pip install pandas-bokeh #python2 pip3 install pandas-bokeh #python3 Importiamo la libreria e ricarichiamo i dati # Importiamo le lebrerie import pandas as pd import numpy as np import pandas_bokeh import matplotlib.pyplot as plt %matplotlib inline # Carichiamo e leggiamo i dati nifty_data = pd.read_csv('/content/drive/MyDrive/NIFTY_data_2020.csv',parse_dates=["Date"],index_col='Date') nifty_data_resample = nifty_data.resample(rule = 'M').mean() Ora creiamo i grafici dinamici e interattivi : nifty_data.plot_bokeh(kind='line') #nifty_data.plot_bokeh.line() nifty_data.plot_bokeh.scatter(x='NIFTY FMCG index', y='NIFTY Bank index'); nifty_data[['NIFTY FMCG index','NIFTY Bank index']].plot_bokeh(kind='hist', bins=30); nifty_data_resample.plot_bokeh(kind='bar'); nifty_data_resample.plot_bokeh(kind='barh',stacked=True); nifty_data_resample.index=['Jan','Feb','March','Apr','May','June','July'] nifty_data_resample.plot_bokeh.pie(y ='NIFTY Bank index') nifty_data_resample.plot_bokeh.pie() Il risultato finale sarà questo qui sotto. Per poter visualizzare e interagire con i grafici, clicca su Open in Colab ! Grazie mille per la lettura
- IL CONCETTO DI VARIABILE
Questa Spiegazione è appartenente ad una Serie di Articoli. Prima di iniziare a leggere ti consigliamo di guardare gli articoli precedenti : Lo Strumento "mente" Il servomeccanismo mentale Gli Engrammi : Le Immagini della Mente Che cosa è un concetto Gli stati Attenzionali Le funzioni attenzionali Vediamo ora di considerare un processo di costituzione di un concetto osservando così il comportamento di questo nostro particolare servomeccanismo quando è predisposto in output o in trasmissione e osserviamo proprio come si può ipotizzare che venga a formarsi il concetto di variabile, per fare questo bisogna che ci mettiamo nelle condizioni di ragionamento cosciente e quindi le grandezze funzioni che subentreranno al coordinamento degli stati attenzionali saranno ancora la volontà e l’immaginazione, pensando che esista una interazione o addirittura una interconnessione di processi dovuta a queste funzioni, ovvero che si venga a costituire una nuova funzione mentale che potremmo indicare come la "teorizzazione". Partiamo dal presupposto di avere come concetto di base il costrutto attenzionale di "cosa", se lo consideriamo anche come percepito primo ossia come una grandezza attenzionale di ’y(i)’, o concetto "dato" di primo livello, e tramite la controreazione ’B(i)’ lo forziamo a "diverso", offrendo così una forma attenzionale alla grandezza 'z(i)', o concetto "dato" di secondo livello, e ancora lo riportiamo tramite un ciclo chiuso in 'y(i)', otterremo un altro percepito che avrà una diversa conformazione attenzionale, ora se consideriamo questa operazione e vediamo i due costrutti come correlato primo e correlato secondo ci accorgiamo che abbiamo prodotto il costrutto di variabile, in altre parole abbiamo preso in considerazione il concetto di cosa assumendolo come un concetto "dato" e lo abbiamo trasformato tramite una operazione di controreazione in un altro concetto che è frutto di una correlazione dovuta alla funzione "diverso"ottenendo così il costrutto di variabile, la variabile dunque è l'interazione del concetto di “cosa” con se stesso, questo dimostrerebbe che un concetto "dato" può essere frutto delle interazioni fra dei concetti "funzione", ossia l'engramma mentale di ogni costrutto dato è essenzialmente composto dalla associazione sequenziale dei concetti "funzione" che sono stati alla base delle operazioni di costituzione del costrutto o dei costrutti che lo compongono. Ma come intervengono la volontà e l'immaginazione? E` presto detto, la volontà raggruppa in due sequenze successive l'attività attenzionale facendoci prendere in considerazione una prima volta il costrutto di "cosa" come percepito primo, poi l'immaginazione favorisce l'intervento delle funzioni in 'B(i)' apportando il concetto funzione di "diverso" e forzando la volontà a riprendere questo nuovo costrutto come percepito secondo, dopodiché sempre tramite l'immaginazione si prende in considerazione la correlazione fra i due costrutti e si forza la volontà attenzionale a notificare le differenze che in questo caso si identificano in una “stessità variata” e arricchita attenzionalmente che costituirà un nuovo continuo informazionale, in termini più psico-filosofici è come se noi osservassimo una "cosa" che cambia posizione o forma e quindi la prendiamo in considerazione attenzionalmente due volte, notando che tra la prima e la seconda volta rimane comunque la stessa "cosa" osservata che però è cambiato qualcosa ossia la configurazione attenzionale. (avete presente la figura rotante di sopra ??? La mente fa una operazione analoga… ma applicata al concetto) La variabile in definitiva è un concetto "dato" sul quale la nostra immaginazione può operare associando degli attributi e quindi far assumere qualsiasi livello logico che la identifica o contraddistingue dalle altre attraverso poi delle correlazioni o riparametrazioni attenzionali, dunque l'unica affinità che può esistere fra il “concetto di variabile” e il “concetto di concetto” rimane la metodologia operativa attenzionale dovuta alle operazioni di associazione, correlazione, esclusione o altro, che in definitiva possono costituire gli interventi entalpici od entropici sul dato o sulla funzione che questi costrutti riescono ad esprimere,tenendo presente che il costrutto attenzionale del concetto di concetto partirà dalla successione attenzionale logica fra il concetto funzione "singolare" e il concetto funzione "plurale" quando questi sono rivolti alla costituzione attenzionale dei concetti in genere, in parole più descrittive potremmo dire che il concetto di concetto è esso stesso un costrutto attenzionale che identifica la pluralità degli stati attenzionali che compongono tutti i concetti. A questo punto è utile un’osservazione che ha una importanza sostanziale per poter proseguire in questo percorso irto di ragionamenti teorici e cioè che, se abbiamo notato, il processo di concettualizzazione è indubbiamente un processo complicatissimo che svolge la nostra mente e oltre ad avere due o più fasi di elaborazione ha anche la caratteristica di essere implementato tramite l’interazione fra funzioni o concetti "funzione", se osserviamo questo ultimo passaggio dove si descrive il processo di concettualizzazione della variabile, possiamo vedere che per poter ipotizzare quello che accade siamo stati introdotti in un nuovo processo quello della teorizzazione; questo nuovo operare mentale è in sostanza il prodotto di tre grandezze funzione: “l’attenzione”, “la volontà” e “l’immaginazione”, ora è giusto pensare che qualora l’immaginazione operi in sincronia con la volontà si ottenga per l’appunto la funzione della “teorizzazione”, se tutto il processo fosse ulteriormente arricchito con quello relativo alla percezione potremmo ottenere l’effetto di “astrazione”, una nuova funzione quindi, la differenza sostanziale comunque rimarrebbe quella che un processo dovuto alla teorizzazione prevede una interazione che riprende anche il confronto fra il correlato primo e il correlato secondo, mentre per il processo di astrazione non dovrebbe esistere questa ripresa attenzionale. Nel prossimo articolo vedremo la sovrapposizione degli effetti, grazie per la lettura.
- Facebook AI Open Sources AugLy: una nuova libreria Python
Facebook ha recentemente reso open-source AugLy, una nuova libreria Python che mira ad aiutare i ricercatori di intelligenza artificiale a utilizzare i potenziamenti dei dati per valutare e migliorare la precisione dei loro modelli di apprendimento automatico. AugLy fornisce sofisticati strumenti di aumento dei dati per creare campioni per addestrare e testare diversi sistemi. AugLy è una nuova libreria open source per l'aumento dei dati che combina audio, immagini, video e testo, diventando sempre più significativa in diversi campi di ricerca sull'intelligenza artificiale. Offre oltre 100 potenziamenti di dati basati su immagini e video della vita reale delle persone su piattaforme come Facebook e Instagram. Poiché i set di dati e i modelli stanno gradualmente diventando sempre più multimodali, è utile trasformare tutti i dati di un progetto in un'unica libreria e API unificate. Inoltre, combinare diverse modalità utilizzando potenziamenti del mondo reale può aiutare le macchine a comprendere meglio i contenuti complessi. I potenziamenti dei dati sono essenziali per migliorare la robustezza dei modelli di intelligenza artificiale. Ad esempio, supponiamo che i modelli possano essere insegnati come robusti alle perturbazioni di attributi di dati non importanti. In tal caso, i modelli impareranno gradualmente a concentrarsi sugli attributi critici dei dati per un caso particolare. Secondo Facebook, un'importante applicazione rileva copie esatte o duplicati di un contenuto specifico. Ad esempio, una quantità di disinformazione può apparire ripetutamente in forme leggermente diverse; dopo aver potenziato i modelli di intelligenza artificiale con i dati AugLy, possono imparare a identificare quando un utente sta caricando contenuti noti per essere in violazione, il che a sua volta aiuterà a impedire in modo proattivo agli utenti di caricare contenuti noti per essere in violazione. . Oltre ai modelli di addestramento che utilizzano AugLy, la libreria può essere utilizzata anche per determinare la durata dei modelli relativi a una serie di potenziamenti. AugLy è stato utilizzato anche per valutare la robustezza dei modelli di rilevamento di Deepfake nella Deepfake Detection Challenge. Molti miglioramenti in AugLy si basano sui modi in cui le persone trasformano i contenuti per cercare di eludere i sistemi automatici. Di conseguenza, AugLy può aiutare i ricercatori a lavorare su varie cose che vanno dai modelli di rilevamento degli oggetti all'identificazione dell'incitamento all'odio al riconoscimento vocale. Grazie per la Lettura, condividi l'articolo .
- Come implementare l'algoritmo Perceptron da zero in Python esempio pratico machine learning
L'algoritmo Perceptron è il tipo più semplice di rete neurale artificiale. Se non conosci la storia del Perceptron, Clicca qui. È un modello di un singolo neurone che può essere utilizzato per problemi di classificazione a due classi e fornisce le basi per lo sviluppo successivo di reti molto più grandi. In questo tutorial scoprirai come implementare l'algoritmo Perceptron da zero con Python. Dopo aver completato questo tutorial, saprai: Come addestrare i pesi di rete per il Perceptron. Come fare previsioni con il Perceptron. Come implementare l'algoritmo Perceptron per un problema di classificazione del mondo reale. Adesso vediamo come implementare l'algoritmo di Perceptron da zero in Python. Indice: Descrizione Algoritmo di Perceptron Set di dati del sonar Tutorial con Python Estensioni Conclusioni Descrizione Questa sezione fornisce una breve introduzione all'algoritmo di Perceptron e al dataset del Sonar a cui lo applicheremo in seguito. Algoritmo di Perceptron Il Perceptron si ispira all'elaborazione delle informazioni di una singola cellula neurale chiamata neurone. Un neurone accetta segnali in ingresso tramite i suoi dendriti, che trasmettono il segnale elettrico al corpo cellulare. In modo simile, il Perceptron riceve segnali di input da esempi di dati di allenamento che pesiamo e combinati in un'equazione lineare chiamata attivazione. activation = sum(weight_i * x_i) + bias L'attivazione viene quindi trasformata in un valore di output o previsione utilizzando una funzione di trasferimento, come la funzione di trasferimento a gradini. prediction = 1.0 if activation >= 0.0 else 0.0 In questo modo, il Perceptron è un algoritmo di classificazione per problemi con due classi (0 e 1) in cui è possibile utilizzare un'equazione lineare (simile o iperpiano) per separare le due classi. È strettamente correlato alla regressione lineare e logistica che fanno previsioni in modo simile (ad esempio una somma ponderata di input). I pesi dell'algoritmo Perceptron devono essere stimati dai dati di allenamento utilizzando la discesa del gradiente stocastico. Discesa stocastica del gradiente Gradient Descent è il processo di minimizzazione di una funzione seguendo i gradienti della funzione di costo. Ciò implica conoscere la forma del costo oltre che la derivata in modo che da un dato punto si conosca la pendenza e ci si possa muovere in quella direzione, ad esempio in discesa verso il valore minimo. Nell'apprendimento automatico, possiamo utilizzare una tecnica che valuta e aggiorna i pesi ogni iterazione chiamata discesa del gradiente stocastico per ridurre al minimo l'errore di un modello sui nostri dati di addestramento. Il modo in cui funziona questo algoritmo di ottimizzazione è che ogni istanza di addestramento viene mostrata al modello una alla volta. Il modello effettua una previsione per un'istanza di addestramento, l'errore viene calcolato e il modello viene aggiornato per ridurre l'errore per la previsione successiva. Questa procedura può essere utilizzata per trovare l'insieme di pesi in un modello che risulta nell'errore più piccolo per il modello sui dati di addestramento. Per l'algoritmo di Perceptron, ad ogni iterazione i pesi ( w ) vengono aggiornati utilizzando l'equazione: w = w + learning_rate * (expected - predicted) * x Dove w è il peso in fase di ottimizzazione, learning_rate è un tasso di apprendimento che è necessario configurare (ad esempio 0,01), (previsto - previsto) è l'errore di previsione per il modello sui dati di addestramento attribuito al peso e x è il valore di input. Set di dati del sonar Il set di dati che useremo in questo tutorial è il set di dati Sonar. Questo è un set di dati che descrive i ritorni del sensore del sonar che rimbalzano su diversi servizi. Le 60 variabili di input sono la forza dei rendimenti a diverse angolazioni. È un problema di classificazione binaria che richiede un modello per differenziare le rocce dai cilindri di metallo. È un set di dati ben compreso. Tutte le variabili sono continue e generalmente nell'intervallo da 0 a 1. Pertanto non dovremo normalizzare i dati di input, il che è spesso una buona pratica con l'algoritmo Perceptron. Puoi saperne di più su questo set di dati nel repository UCI Machine Learning . È possibile scaricare gratuitamente il set di dati e inserirlo nella directory di lavoro con il nome file sonar.all-data.csv . Tutorial Questo tutorial è suddiviso in 3 parti: Fare previsioni. Allenamento pesi del Perceptron. Modellazione del set di dati del sonar. Questi passaggi forniranno le basi per implementare e applicare l'algoritmo Perceptron ai propri problemi di modellazione predittiva di classificazione. 1. Fare previsioni Il primo passo è sviluppare una funzione che possa fare previsioni. Ciò sarà necessario sia nella valutazione dei valori dei pesi candidati nella discesa del gradiente stocastico, sia dopo che il modello è stato finalizzato e si desidera iniziare a fare previsioni su dati di test o nuovi dati. Di seguito è riportata una funzione denominata prediction () che prevede un valore di output per una riga dato un insieme di pesi. Il primo peso è sempre il bias in quanto è autonomo e non è responsabile di un valore di input specifico. # Facciamo la previsione utilizzando i Pesi(weights) def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 Possiamo escogitare un piccolo set di dati per testare la nostra funzione di previsione. X1 X2 Y 2.7810836 2.550537003 0 1.465489372 2.362125076 0 3.396561688 4.400293529 0 1.38807019 1.850220317 0 3.06407232 3.005305973 0 7.627531214 2.759262235 1 5.332441248 2.088626775 1 6.922596716 1.77106367 1 8.675418651 -0.242068655 1 7.673756466 3.508563011 1 Possiamo anche utilizzare pesi preparati in precedenza per fare previsioni per questo set di dati. Mettendo tutto insieme possiamo testare la nostra funzione predict() di seguito. # Facciamo la previsione utilizzando i Pesi(weights) def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 # Test Predizione dataset = [[2.7810836,2.550537003,0], [1.465489372,2.362125076,0], [3.396561688,4.400293529,0], [1.38807019,1.850220317,0], [3.06407232,3.005305973,0], [7.627531214,2.759262235,1], [5.332441248,2.088626775,1], [6.922596716,1.77106367,1], [8.675418651,-0.242068655,1], [7.673756466,3.508563011,1]] weights = [-0.1, 0.20653640140000007, -0.23418117710000003] for row in dataset: prediction = predict(row, weights) print("Aspettato=%d, Previsto=%d" % (row[-1], prediction)) Sono disponibili due valori di input ( X1 e X2 ) e tre valori di peso ( bias , w1 e w2 ). L'equazione di attivazione che abbiamo modellato per questo problema è: activation = (w1 * X1) + (w2 * X2) + bias Oppure, con i valori di peso specifico abbiamo scelto manualmente come: activation = (0.206 * X1) + (-0.234 * X2) + -0.1 Eseguendo questa funzione otteniamo previsioni che corrispondono ai valori di output attesi ( y ). Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=1, Predicted=1 Expected=1, Predicted=1 Expected=1, Predicted=1 Expected=1, Predicted=1 Expected=1, Predicted=1 Ora siamo pronti per implementare la discesa del gradiente stocastico per ottimizzare i nostri valori di peso. 2. Training Network Weights Possiamo stimare i valori di peso per i nostri dati di allenamento utilizzando la discesa del gradiente stocastico. La discesa del gradiente stocastico richiede due parametri: Tasso di apprendimento : utilizzato per limitare la quantità di correzione di ogni peso ogni volta che viene aggiornato. Epoche : il numero di volte per eseguire i dati di allenamento durante l'aggiornamento del peso. Questi, insieme ai dati di addestramento, saranno gli argomenti della funzione. Ci sono 3 loop che dobbiamo eseguire nella funzione: Ripeti ogni Epoche. Ripeti ogni riga nei dati di addestramento per un'Epoche. Fai un giro su ogni peso e aggiornalo per una riga in un'Epoche. Come puoi vedere, aggiorniamo ogni peso per ogni riga nei dati di allenamento, ogni Epoche. I pesi vengono aggiornati in base all'errore commesso dal modello. L'errore viene calcolato come la differenza tra il valore di output atteso e la previsione effettuata con i pesi candidati. C'è un peso per ogni attributo di input e questi vengono aggiornati in modo coerente, ad esempio: w(t+1)= w(t) + learning_rate * (expected(t) - predicted(t)) * x(t) Il bias viene aggiornato in modo simile, tranne che senza un input in quanto non è associato a un valore di input specifico: bias(t+1) = bias(t) + learning_rate * (expected(t) - predicted(t)) Ora possiamo mettere insieme tutto questo. Di seguito è riportata una funzione denominata train_weights () che calcola i valori di peso per un set di dati di allenamento utilizzando la discesa del gradiente stocastico. # Stimiamo i pesi del Perceptron usando la discesa del gradiente stocastico def train_weights(train, l_rate, n_epoch): weights = [0.0 for i in range(len(train[0]))] for epoch in range(n_epoch): sum_error = 0.0 for row in train: prediction = predict(row, weights) error = row[-1] - prediction sum_error += error**2 weights[0] = weights[0] + l_rate * error for i in range(len(row)-1): weights[i + 1] = weights[i + 1] + l_rate * error * row[i] print('>epoch=%d, lrate=%.3f, error=%.3f' % (epoch, l_rate,sum_error)) return weights Puoi vedere che teniamo anche traccia della somma dell'errore al quadrato (un valore positivo) ogni epoca in modo da poter stampare un bel messaggio ogni ciclo esterno. Possiamo testare questa funzione sullo stesso piccolo set di dati artificioso dall'alto. # Facciamo la previsione utilizzando i Pesi(weights) def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 # Stimiamo i pesi del Perceptron usando la discesa del gradiente stocastico def train_weights(train, l_rate, n_epoch): weights = [0.0 for i in range(len(train[0]))] for epoch in range(n_epoch): sum_error = 0.0 for row in train: prediction = predict(row, weights) error = row[-1] - prediction sum_error += error**2 weights[0] = weights[0] + l_rate * error for i in range(len(row)-1): weights[i + 1] = weights[i + 1] + l_rate * error * row[i] print('>epoch=%d, lrate=%.3f, error=%.3f' % (epoch, l_rate,sum_error)) return weights # Calcoliamo i Pesi per le previsioni dataset = [[2.7810836,2.550537003,0], [1.465489372,2.362125076,0], [3.396561688,4.400293529,0], [1.38807019,1.850220317,0], [3.06407232,3.005305973,0], [7.627531214,2.759262235,1], [5.332441248,2.088626775,1], [6.922596716,1.77106367,1], [8.675418651,-0.242068655,1], [7.673756466,3.508563011,1]] l_rate = 0.1 n_epoch = 5 weights = train_weights(dataset, l_rate, n_epoch) print(weights) Usiamo un tasso di apprendimento di 0,1 e addestriamo il modello solo per 5 epoche o 5 esposizioni dei pesi all'intero set di dati di addestramento. L'esecuzione dell'esempio stampa un messaggio ogni epoche con la somma al quadrato dell'errore per quell'epoche e il set finale di pesi. >epoch=0, lrate=0.100, error=2.000 >epoch=1, lrate=0.100, error=1.000 >epoch=2, lrate=0.100, error=0.000 >epoch=3, lrate=0.100, error=0.000 >epoch=4, lrate=0.100, error=0.000 [-0.1, 0.20653640140000007, -0.23418117710000003] Puoi vedere come il problema viene appreso molto rapidamente dall'algoritmo. Ora, applichiamo questo algoritmo su un set di dati reale. 3. Modellazione del dataset del sonar In questa sezione, addestreremo un modello Perceptron utilizzando la discesa del gradiente stocastico sul set di dati del Sonar. L'esempio presuppone che una copia CSV del set di dati si trovi nella directory di lavoro corrente con il nome file sonar.all-data.csv . Il set di dati viene prima caricato, i valori di stringa convertiti in numerici e la colonna di output viene convertita da stringhe a valori interi da 0 a 1. Ciò si ottiene con le funzioni di supporto load_csv () , str_column_to_float () e str_column_to_int () per caricare e preparare il set di dati. Useremo la validazione incrociata k-fold per stimare le prestazioni del modello appreso su dati invisibili. Ciò significa che costruiremo e valuteremo k modelli e stimeremo le prestazioni come errore medio del modello. L'accuratezza della classificazione verrà utilizzata per valutare ogni modello. Questi comportamenti sono forniti nella cross_validation_split () , accuracy_metric () e evaluate_algorithm () funzioni di supporto. Useremo le funzioni prediction () e train_weights () create sopra per addestrare il modello e una nuova funzione perceptron () per legarli insieme. Di seguito è riportato l'esempio completo. # Implementiamo l'algoritmo Perceptron su un set di dati from random import seed from random import randrange from csv import reader # Carico il CSV def load_csv(filename): dataset = list() with open(filename, 'r') as file: csv_reader = reader(file) for row in csv_reader: if not row: continue dataset.append(row) return dataset # Converto colonne da stringhe a Float def str_column_to_float(dataset, column): for row in dataset: row[column] = float(row[column].strip()) # Converto colonne da stringhe a Intere def str_column_to_int(dataset, column): class_values = [row[column] for row in dataset] unique = set(class_values) lookup = dict() for i, value in enumerate(unique): lookup[value] = i for row in dataset: row[column] = lookup[row[column]] return lookup # Divido il dataset in k "sottogruppi" def cross_validation_split(dataset, n_folds): dataset_split = list() dataset_copy = list(dataset) fold_size = int(len(dataset) / n_folds) for i in range(n_folds): fold = list() while len(fold) < fold_size: index = randrange(len(dataset_copy)) fold.append(dataset_copy.pop(index)) dataset_split.append(fold) return dataset_split # Valutiamo l'accuratezza del modello def accuracy_metric(actual, predicted): correct = 0 for i in range(len(actual)): if actual[i] == predicted[i]: correct += 1 return correct / float(len(actual)) * 100.0 # Valuto l'algoritmo usando il cross validation split def evaluate_algorithm(dataset, algorithm, n_folds, *args): folds = cross_validation_split(dataset, n_folds) scores = list() for fold in folds: train_set = list(folds) train_set.remove(fold) train_set = sum(train_set, []) test_set = list() for row in fold: row_copy = list(row) test_set.append(row_copy) row_copy[-1] = None predicted = algorithm(train_set, test_set, *args) actual = [row[-1] for row in fold] accuracy = accuracy_metric(actual, predicted) scores.append(accuracy) return scores # Facciamo def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 # Stimiamo i pesi del Perceptron usando la discesa del gradiente stocastico def train_weights(train, l_rate, n_epoch): weights = [0.0 for i in range(len(train[0]))] for epoch in range(n_epoch): for row in train: prediction = predict(row, weights) error = row[-1] - prediction weights[0] = weights[0] + l_rate * error for i in range(len(row)-1): weights[i + 1] = weights[i + 1] + l_rate * error * row[i] return weights # Perceptron con Stochastic Gradient Descent def perceptron(train, test, l_rate, n_epoch): predictions = list() weights = train_weights(train, l_rate, n_epoch) for row in test: prediction = predict(row, weights) predictions.append(prediction) return(predictions) # Test the Perceptron algorithm on the sonar dataset seed(1) # carico e preparo dati filename = 'sonar.all-data.csv' dataset = load_csv(filename) for i in range(len(dataset[0])-1): str_column_to_float(dataset, i) # converto string class a integers str_column_to_int(dataset, len(dataset[0])-1) # VIA !!! n_folds = 3 l_rate = 0.01 n_epoch = 500 scores = evaluate_algorithm(dataset, perceptron, n_folds, l_rate, n_epoch) print('Scores: %s' % scores) print('Mean Accuracy: %.3f%%' % (sum(scores)/float(len(scores)))) Un valore k di 3 è stato utilizzato per la convalida incrociata, dando a ciascuna piega 208/3 = 69,3 o poco meno di 70 record da valutare a ogni iterazione. Un tasso di apprendimento di 0,1 e 500 epoche di formazione sono stati scelti con un po 'di sperimentazione. Puoi provare le tue configurazioni e vedere se riesci a battere il mio punteggio. L'esecuzione di questo esempio stampa i punteggi per ciascuna delle 3 pieghe di convalida incrociata, quindi stampa l'accuratezza della classificazione media. Possiamo vedere che la precisione è di circa il 72%, superiore al valore di base di poco più del 50% se prevedessimo solo la classe di maggioranza utilizzando l'algoritmo della regola zero. Scores: [76.81159420289855, 69.56521739130434, 72.46376811594203] Mean Accuracy: 72.947% Estensioni Questa sezione elenca le estensioni di questo tutorial che potresti voler considerare di esplorare. Sintonizza l'esempio . Regola la velocità di apprendimento, il numero di epoche e persino il metodo di preparazione dei dati per ottenere un punteggio migliore sul set di dati. Discesa gradiente stocastica in batch . Modificare l'algoritmo di discesa del gradiente stocastico per accumulare gli aggiornamenti in ogni epoca e aggiornare i pesi in un batch solo alla fine dell'epoca. Ulteriori problemi di regressione . Applicare la tecnica ad altri problemi di classificazione nel repository di machine learning UCI. Hai esplorato qualcuna di queste estensioni? Fatemelo sapere nei commenti qui sotto. Revisione In questo tutorial, hai scoperto come implementare l'algoritmo Perceptron utilizzando la discesa del gradiente stocastico da zero con Python. Hai imparato. Come fare previsioni per un problema di classificazione binaria. Come ottimizzare un insieme di pesi utilizzando la discesa del gradiente stocastico. Come applicare la tecnica a un problema di modellazione predittiva di classificazione reale. Hai qualche domanda? Fai la tua domanda nei commenti qui sotto e faremo del nostro meglio per rispondere.
- LE FUNZIONI ATTENZIONALI
Questa Spiegazione è appartenente ad una Serie di Articoli. Prima di iniziare a leggere ti consigliamo di guardare gli articoli precedenti : Lo Strumento "mente" Il servomeccanismo mentale Gli Engrammi : Le Immagini della Mente Che cosa è un concetto Gli stati Attenzionali Si pensi innanzitutto che il nostro cervello assolve tutti i compiti a cui è predisposto in quanto centro dell'attività nervosa del nostro corpo e quindi la nostra mente, ovvero tutti i processi di input-output che sono alla base del nostro pensiero e delle nostre facoltà di carattere informazionale, assolve tutte le operazioni di trattamento dell'informazione in quanto tale, con questo per ritornare un attimo a fare una considerazione e cioè che la grandezza di ingresso è costituita da un flusso di informazioni che sono tutte soggette alla nostra attività attenzionale, infatti noi riusciamo a sviluppare o costituire un pensiero e contemporaneamente ascoltiamo della musica tocchiamo degli oggetti vediamo delle cose, questo ci porta ad una prima supposizione che consiste nel dare la possibilità all'attenzione di lavorare in parallelo multiplo, in sostanza la nostra funzione attenzionale riesce a prendere in considerazione più cose contemporaneamente senza per questo farci fare confusione di concetti, allora bisogna che vi siano delle altre grandezze che si sommino all'attenzione per rendere possibile l'attività mentale, tali grandezze possono essere perlomeno due: una che si può identificare nella "volontà" e una che può essere "l'immaginazione", la prima si potrebbe esprimere come volontà attenzionale, ossia una grandezza funzione che interviene per dare origine al pensiero attenzionale cosciente, quello che prendiamo in considerazione e che è al di sopra del livello della consapevolezza, mentre l'immaginazione interviene a tutto campo, quindi anche al di sotto del livello della consapevolezza costituendo una delle forze basilari per i vari processi mentali. Ma ritorniamo per un attimo a rivedere il processo costitutivo della percezione, ossia di che cosa è composta questa funzione mentale complessa che identifica il nostro comportamento in fase di ricezione per poter approfondire quanto è possibile, con le mie conoscenze e le teorizzazioni che ne derivano, il funzionamento del "servomeccanismo" che costituisce la nostra mente. Ritorniamo alla base del nostro ragionamento rispondendo alla frase "attento...ecco...", la prima cosa che ci viene spontanea chiederci è attento a "cosa"? Questo mi fa pensare al concetto di "cosa" perché lo ritengo un concetto "funzione" di fondamentale importanza, infatti noi classifichiamo qualsiasi cosa col concetto di "cosa", lo usiamo dappertutto dove non è definibile l’oggetto del nostro discorrere o dove introduciamo dei nuovi concetti su un nostro ragionamento, il Professor Silvio Ceccato che è una fra le più illustri autorità in materia,(nota dell’autore:era il 1986-87) identifica questo concetto con una sequenza di due stati attenzionali espressi in serie di attenzione rilassata, comunque sia, tralasciando la composizione attenzionale del concetto stesso, poiché in questo momento mi interessa di più una sua altra caratteristica, posso ipotizzare che serva per dare origine ad una espansione, a quella energia che è stata accumulata con l’eccitazione attenzionale, quindi potrebbe benissimo essere intesa come una delle funzioni associabili alla scatola nera ’A(i)’, mentre una funzione che può essere identificata in questo caso per la ’B(i)’ è quella di "uguale", che serve per favorire la riparametrazione simmetrica tra gli stati attenzionali che si sviluppano in y(i) e quelli relativi a z(i) facendo in modo che con una serie di cicli di operazioni dove intervengono tutte le grandezze espresse nello schema di base, vi sia la e(i) che riporta le variazioni attenzionali dovute alle varie riparametrazioni fra stati di lavoro, nella fase di costituzione figurativa quindi sarà un segnale che viene ad individuare dove vi è una variazione di colore o di pendenza o di regione spaziale ecc., più in generale dovrei puntualizzare che le funzioni presenti in ’A(i)’ servono per dare una conformazione attenzionale ai vari costrutti e invece quelle presenti in ’B(i)’ servono per controreazionare gli stati attenzionali costituenti questi costrutti derivandone altri che sono il frutto di una residenzialità ipotetica dal punto di vista armonico attenzionale, quelli che sopra, nelle spiegazioni generali delle grandezze espresse nello schema di base, venivano definiti come concetti dato di primo e di secondo livello. In questo momento ritengo superfluo tentare di stereotipare ulteriormente le operazioni costitutive della percezione anche perché in ogni soggetto possono suscitare una variazione di funzioni che dipenderà da fattori contingenti alla situazione mentale del soggetto e alla sua relazione con il mondo esterno, pertanto vorrei adesso esprimere alcune riflessioni sull’argomento sin qui esposto. La prima riflessione riguarda gli stati attenzionali e consiste soltanto nel fatto che si può ipotizzare che esista una relazione fra energia utilizzata e stati attenzionali in quanto noi possiamo sentire gli effetti che questi producono quando sono messi in azione nel senso che proviamo un certo fastidio quando non si trova il modo per espandere questa energia convogliandola tramite una determinata controreazione in una sequenza di operazioni che fornisce un processo costitutivo di un engramma e al contrario possiamo sentire un sollievo quando queste operazioni sono soddisfatte, questo lo si nota bene nella applicazione della percezione pura, anche se poi subentra in ogni caso il fattore teleologico del nostro meccanismo che ci può provocare comunque dei fastidi attenzionali, qualora per esempio che ciò che è oggetto della nostra attenzione non corrisponda ad una nostra riparametrazione o raffronto con una immagine che abbiamo ipotizzato della cosa stessa. La seconda riflessione riguarda l’intervento di questo particolare servomeccanismo nella costituzione delle funzioni di percezione, possiamo notare che è quasi impossibile stabilire una sequenza ben determinata di operazioni semplici ed assegnare delle funzioni definibili con dei concetti correnti alle varie grandezze espresse nello schema di base, si può ipotizzare soltanto che nel caso del processo costitutivo della percezione subentrino tutte le varie grandezze espresse con delle funzioni elementari e quello che noi possiamo dire è soltanto che avviene una trasformazione energetica informazionale che si sviluppa tramite un complesso sistema di interazioni e interconnessioni fra funzioni fisiche dovute agli organi ricettori e funzioni mentali che daranno origine ad un complicato gioco armonico continuo fruitore di engrammi attenzionali. Per tentare di chiarire ulteriormente quanto sopra esposto si potrebbe fare un esperimento con un "campo informazionale" costituito da una semplice immagine come nel disegno che segue. Logotipo di quadrupede. Quello che ci ricorda questa figura è indubbiamente un animale quadrupede, ma facciamo attenzione a come la nostra mente costituisce questa immagine, sforzandoci a rallentare il processo percettivo come se fossimo costretti a lavorare a rallentatore. Presupponiamo di partire dalla coda, le informazioni che noi riceviamo sono un continuo informazionale invariato a partire dalla estremità fino al punto di congiunzione con il “rettangolo” che identifica il corpo, i nostri occhi si fermeranno a focalizzare l’attenzione prima sulla estremità del segmento e poi “nell’angolo” in alto a destra del “rettangolo”, questo significa che durante questo tempo non ci sono state delle variazioni di segnale percepito, se dovessimo procedere per punti, a partire dalla estremità, ogni punto preso in considerazione dalla nostra attenzione è uguale a quello precedente, in altri termini il segnale d’ingresso del sistema ’x(i)’ è rimasto costante ed è stata soddisfatta la simmetria fra ’y(i)’ e ’z(i)’, da cui si può pensare che ’B(i)’ soddisfi la funzione di ’=’, mentre il "motore" ’A(i)’ sposta la nostra attenzione lungo la linea; le stesse operazioni avvengono poi quando l’oggetto della nostra attenzione sarà il rettangolo che raffigura il corpo, ovvero l’area da esso inclusa, i segmenti che raffigurano le zampe e l’ellisse che rappresenta la testa. Il lettore che si è sforzato di rallentare il proprio pensiero si accorgerà che esistono degli altri punti dove gli occhi si soffermano di più e saranno dei punti chiave dove si verificheranno delle variazioni di segnale percepito. E‘ ovvio che il gioco attenzionale proposto da questa immagine sia simile a quello che viene esercitato dalla nostra mente ogni volta che l’oggetto della nostra attenzione sia un quadrupede. La terza riflessione prende in considerazione l’intervento dell’attività della volontà e consiste nel definire una grandezza funzione che si comporta come coordinatrice degli stati attenzionali che interviene tramite una particolare sequenza o combinazione di stati attenzionali e raggruppa gli stessi secondo delle modalità di concetti finiti, è la grandezza che ci consente di affrontare e definire delle operazioni coscienti di pensiero. Prendendo ancora spunto dalla figura sopra esposta si potrebbe dire che noi sappiamo riconoscere le varie parti costitutive della figura appunto perché vengono "classificati" tutti i continui informazionali. A questo punto abbiamo la possibilità di capire che il concetto di "parte" è una derivata del concetto di volontà e sta ad indicare che la volontà prende come concetto percettivo finito un “continuo informazionale”. La quarta riflessione è dettata dalla ipotesi di considerare come coordinatrice del sistema di controreazioni la grandezza funzione immaginazione che consiste nel dare delle variazioni endoniche o meno dal punto di vista attenzionale alle varie funzioni che parteciperanno alla costituzione degli engrammi mentali, fornendoci la possibilità di poter diversificare le operazioni che influenzeranno il sistema di sviluppo dei processi di categorizzazione e correlazione sia a livello di consapevolezza o meno. Sarà questa grandezza che farà scattare tutte le funzioni elementari di controreazione tali per cui noi giungeremmo a classificare quella figura spora esposta come lo stereotipo di un animale quadrupede. Nel prossimo articolo, della serie, andremo a spiegare il concetto di Variabile. Grazie per la lettura.
- GLI STATI ATTENZIONALI
Questa Spiegazione è appartenente ad una Serie di Articoli. Prima di iniziare a leggere ti consigliamo di guardare gli articoli precedenti Lo Strumento "mente" Il servomeccanismo mentale Gli Engrammi : Le Immagini della Mente Che cosa è un concetto Cominciamo dunque con l’identificare che cos’è lo stato attenzionale o perlomeno che cosa io intenda per “stato attenzionale”, in quanto ci permette di vedere fin da questo momento l’importanza della concezione mentale dell’attenzione che esprime un concetto "funzione" di capitale importanza. La difficoltà di spiegare in termini correnti questo concetto mi porta a far partecipare il lettore a degli esperimenti di applicazione dell’attenzione con alcuni esempi che rendono possibile il "sentire" gli stati attenzionali come dei momenti di funzionamento della mente. Per rendere l’idea di che cosa si tratti, basta pensare a quello che si prova quando ci si pone di fronte ad una situazione di attenzione applicata, ovvero, supponiamo che un vostro amico vi dica questa frase: "attento... ecco!" e lasci sospeso il discorso, l’esperimento funziona anche se ci ripetiamo da soli questa frase e con un po’ di sensibilità, ci si accorge che effettivamente succede qualcosa, una volta un bambino mi ha risposto che era come se si rizzassero le orecchie, in effetti succede che noi suscitiamo una “eccitazione attenzionale” che se si potesse esprimere con un segnale potrebbe avrebbe una forma di questo genere: Il grafico ci illustra che nel tempo ’x’, ossia quando viene pronunciata la parola "ecco", si ha uno stato "logico" a livello "1" (indicato con “R”) dell’attenzione e questo stato viene mantenuto per un certo periodo non specificato, in realtà penso sia un fatto soggettivo, si potrebbe trattare di alcuni secondi, ma comunque credo che non dipenda soltanto dal soggetto, ma anche dal contesto, quindi dal momento e da altri fattori contingenti. Che cosa significa quanto sopra? Soltanto che la nostra attenzione e‘ cambiata di stato: si è per così dire eccitata, per un determinato periodo si è portata al livello 'Q-S' che corrisponde al livello logico alto del segnale espresso nel grafico riportato, si potrebbe parlare di uno stato riflesso, ossia che l’attenzione si sia riposizionata su se stessa. A questo punto si può notare che esistono due stati di attenzione, ovvero uno stato di coscienza attenzionale, che nel caso in esame si identifica al momento di dire "attenzione", dove per l’appunto l’attenzione si presenta rilassata a livello "0" e uno stato di eccitazione dove l’attenzione si presenta a livello "1" che corrisponde all’accumulo di energia pronta per essere utilizzata nelle operazioni costitutive della percezione. E‘ chiaro che nell’esperimento sopra enunciato il sistema mentale era stato posto come ricevente o in input e quindi il suo operare consiste nel predisporsi a decifrare un’informazione analogamente al caso, che ci è sicuramente capitato a tutti, di assistere durante un viaggio in treno allo spettacolo offertoci dal paesaggio in movimento relativo attraverso il finestrino, i nostri occhi guizzano alla ricerca di fermare un’immagine che ci coglie attenzionalmente per renderla stabile e decifrabile, ancora una volta l’attenzione sviluppa la sua funzione in base alla quale noi scegliamo l’argomento per cui questa si eccita e il nostro guizzare con gli occhi avanti serve per cogliere proprio attenzionalmente una data immagine, tale scelta di solito sembra spontanea, sembra non dipendere dal nostro pensiero corrente ma da qualcosa che sta al di sotto del livello di soglia della consapevolezza, sono dunque dei fattori esterni che colgono la nostra attenzione, come qualche cosa di particolare, qualche colore o qualche forma geometrica, durante questo nostro operare con gli occhi è come se qualcuno ci dicesse tanti "ecco..." che eccitano la nostra attenzione e ci costringono a soffermarci onde decifrare l’immagine, il ché equivale a dire che “l’energia trattenuta dallo stato di eccitazione attenzionale si espande in un engramma composto di armonie di stati attenzionali che daranno vita alla percezione della stessa immagine.” Quante volte ci è capitato di fare una passeggiata per la strada, di sentire un rumore o un suono strano ed ecco che i nostri occhi guizzano a cercare di cogliere una particolare immagine nel luogo presunto come fonte del rumore, la nostra attenzione questa volta è stata sollecitata dall’apparato uditivo e di conseguenza il nostro riflesso è quello di espandere l’energia attenzionale andando a cogliere con gli occhi l’immagine che ha provocato in noi una variazione di stato attenzionale, succede la stessa cosa se per esempio vedendo transitare una macchina che ci sembra appartenere ad un nostro conoscente ci mettiamo a seguire quell’immagine per controllare se era effettivamente ciò che ha destato in noi quel particolare interesse attraverso un processo questa volta di carattere cognitivo, succede sempre la stessa cosa, la nostra attenzione si eccita e dobbiamo scaricare questa energia applicando gli occhi e la mente sul soggetto che ha destato la nostra disponibilità attenzionale. Vi sono degli esempi che possono chiarire ancor meglio la funzione degli stati attenzionali quando il nostro operare mentale è in ricezione e sono per così dire delle immagini da laboratorio che riporto nei disegni seguenti: Ecco un simpatico disegno che può raffigurare a seconda che la nostra attenzione sia colta dal nero o dal bianco all'interno del rettangolo una vecchia o una ragazza, ma quello che è interessante notare consiste nel fatto che per raffigurarci queste due immagini la nostra attenzione si comporta in un modo complesso, ossia, non appena si è eccitata, viene messo in moto un processo che comporta l'entrata in opera di quelle funzioni che abbiamo rappresentato nello schema di base, in sostanza si può pensare che dal primo istante nel quale vi è stato un accumulo di energia con l'eccitazione attenzionale, questa venga controreazionata attraverso l'anello costituito dalle funzioni rappresentate con 'A(i)' e 'B(i)', il sistema di controreazione consiste nel costituire un primo engramma attenzionale attraverso le funzioni presenti in 'A(i)' che forse identificherà in blocco il colore, la spazialità e altre caratteristiche dell'oggetto o della cosa che sta per essere analizzata e va poi arricchendosi tramite la controreazione 'B(i)' in modo da costituire una serie di operazioni attenzionali che portano all’acquisizione dell’immagine, tale acquisizione viene costruita tramite delle successive frequenze di stati attenzionali dettate dalle variazioni del profilo considerato, mantenendo sempre presenti attenzionalmente le successioni del ritmo attraverso il quale viene a costituirsi l'immagine; troveremmo così, che la grandezza espressa come 'y(i)', si va arricchendo in 'z(i)' di stati che vengono sollecitati con la variazione, il nostro sistema di controreazione fa eccitare l'attenzione ogniqualvolta alla ripetizione di un ciclo di informazione trovi una variazione instaurando in modo sommativo queste informazioni in un codice attenzionale o engramma che ci dà la possibilità di incamerare in memoria la strutturazione dell'immagine percepita senza per questo dover ricordare tutte le informazioni attenzionali che sono servite per costituirla, quindi quello che è il concetto ricordato si forma attraverso delle informazioni attenzionali che esprimono il modo costitutivo dell'immagine e non tutti gli stati attenzionali che sono stati alla base della costituzione percettiva dell'immagine stessa. In questo esempio possiamo pensare che siano intervenute nell'azione percettiva delle funzioni come il concetto di "cosa" il concetto di "singolare" quello di "plurale", quello di "tutto" e di "parte", la riparametrazione simmetrica attenzionale negata, in questo caso, la strutturazione del ritmo attenzionale dovuta alle variazioni del profilo di divisione delle superfici e l'attività associativa ai profili di entità conosciute, si può quindi immaginare che il concetto di questo disegno sia costituito dalla sequenza logica delle funzioni che sono intervenute ed elaborato dalla mente in parallelo. Un esempio analogo a quello sopra esposto è quello espresso da quest'altro disegno ormai classico: Anche in questo caso si possono distinguere due immagini diverse in riferimento all’orientamento: è un'altra figura alternante dove il gioco attenzionale del "tenere" e del "lasciare" è particolarmente attivo, dove il processo di costituzione delle immagini è lo stesso di cui sopra con la differenza che questa volta è verificata la riparametrazione simmetrica e quindi il concetto si formerà allo stesso modo ma con questa sola differenza. Un simbolo invece che ci può fornire un bellissimo esempio per esercitare la nostra capacità intrinseca di riparametrazione simmetrica è quello che i cinesi chiamano "T'ai-chi T'u" o "Diagramma della Realtà Ultima",rappresentante le polarità opposte yin e yang : Come si può notare è un simbolo simmetrico complementare a simmetria rotazionale, il gioco attenzionale che sviluppa mette bene in evidenza le operazioni elementari che la nostra mente compie per percepire le immagini,si tratta in definitiva di compiere delle operazioni estremamente semplici e di abbinarle tra loro,nel caso della riparametrazione simmetrica in effetti la nostra mente ricerca le "informazioni" che possono essere ritenute uguali, per immetterle in un contenitore, fornito dall'attività di concettualizzazione che serve per identificare dei "continui informazionali ". Ovviamente questo non accade soltanto per le percezioni visive,ma anche per quelle che riguardano gli altri sensi; proviamo ora ad immaginare che cosa succede se abbiamo alcuni oggetti su un tavolo e ad occhi chiusi si tenta di toccarli: noteremmo con stupore che la nostra attenzione si comporta in modo analogo ossia si eccita al contatto delle nostre dita con l'oggetto e poi ci si aspetta con movimenti simili di trovare gli altri oggetti che vi sono posti, ancora una volta interviene quindi il meccanismo della controreazione che ci porta alla riparametrazione simmetrica dei movimenti e dei risultati che ci aspettiamo da questi, in altre parole significa che le operazioni che noi facciamo con la mente partono sempre da una carica energetica iniziale dovuta all’eccitazione attenzionale e si espandono, trasformando l’energia accumulata in reazioni a catena con una metodologia che ricerca l’uguaglianza di ritmo attenzionale, cosa analoga se ascoltiamo una musica, la nostra attenzione si eccita su di una nota e poi attraverso il ritmo musicale si aspetta la nota successiva tenendo presente e riparametrando la prima con la seconda,a questo punto possiamo ipotizzare che la costituzione attenzionale dei concetti percettivi o concetti "dato" viene a formarsi passando attraverso due stadi di elaborazione attenzionale, un primo stadio nel quale il servomeccanismo intrinseco della nostra mente sviluppa la sua funzione ricercando le simmetrie e le variazioni,riconducendo queste operazioni a dei ritmi attenzionali e un secondo stadio nel quale si immagazzinano o si incamerano le operazioni costitutive del processo attraverso la codificazione attenzionale dei concetti "funzione" di base che sono intervenuti, dando così origine ad un engramma che verrà riportato in memoria e che servirà per i processi cognitivi. A questo punto invito il lettore a provarsi con degli altri esempi che può scoprire utilizzando l'immaginazione, per condurlo a fare delle ulteriori ipotesi sul funzionamento attenzionale della nostra mente per esempio scoprendo che cosa succede quando squilla il telefono o suona una sveglia o nota una macchia su una superficie o tocca accidentalmente qualcosa. Lo vedremo nel Prossimo articolo, grazie per la lettura...
- Robotic Process Automation (RPA) e Ottimizzazione dei Processi
La Robotic Process Automation consiste nell’introduzione di una forza lavoro software mediante bot che automatizzano totalmente o parzialmente l’operatività dell’utente. Uno strumento potente e versatile che consente di sostituire le attività fisiche che non richiedono conoscenza, comprensione o intuizione. Task ripetitivi e semplici vengono codificati e, mediante la programmazione di algoritmi, vengono fornite le istruzioni per agire. Generalmente i processi di automazione vengono realizzati sfruttando sorgenti di dati strutturati come un foglio excel o un database. I sistemi di RPA, invece, sono in grado di gestire dati non strutturati come documenti scannerizzati, immagini e video, anche nei casi in cui non sia disponibile un API adatta allo scopo. I sistemi RPA osservano un operatore mentre svolge una determinata attività nella GUI, Graphical User Interface, e hanno la capacità di apprendere e ripetere i vari task in autonomia. Sono infatti in grado simulare comandi di input manuali eseguiti utilizzando mouse o tastiera e possono interagire con i vari applicativi informatici, esattamente come fanno gli esseri umani nello svolgimento di un compito all'interno di un processo. Maggiore efficienza e riduzione dei costi Automatizzare attività semplici e ripetitive fa risparmiare tempo e denaro. Una forza lavoro RPA è precisa, accurata e può svolgere il proprio compito 24 ore su 24, per 7 giorni alla settimana, senza mai perdere la concentrazione. Migliora la precisione del lavoro svolto e i tempi di esecuzione sono notevolmente ridotti. Altro aspetto non trascurabile è il fatto che un sistema RPA ben progettato e implementato, pur gestendo un imponente mole di informazioni, riduce notevolmente i tassi di errore dei task, arrivando quasi ad azzerarli. La tecnologia RPA trasforma il modo in cui viene gestito il lavoro Automatizzare i processi mediante la Robotic Process Automation semplifica i flussi di lavoro e rende le organizzazioni più redditizie, flessibili e reattive e permette di avere un notevole contenimento dei costi relativi alla manodopera. Tuttavia l’obiettivo non è solo la riduzione dei costi legati al personale, ma soprattutto liberare i dipendenti dallo svolgere task manuali ripetitivi, aumentando la loro efficienza e permettendo di concentrare l’attenzione su priorità aziendali che richiedono lavoro creativo, abilità, innovazione. Liberare tempo permette inoltre di svolgere con maggiore impegno azioni commerciali e attività strategiche come l’analisi dei dati. Anche riguardo la gestione dei clienti è possibile evadere rapidamente le richieste, aumentando la loro soddisfazione. Una tecnologia adatta a molteplici settori L’utilizzo di sistemi RPA si sta rapidamente diffondendo in molteplici settori: i servizi finanziari, l’assistenza legale e sanitaria, il marketing, la gestione delle risorse umane e dei processi di produzione e vendita, il servizio clienti. Alcuni esempi pratici dell’impiego della Robotic Process Automation sono: L’accesso e la navigazione nei sistemi per estrapolare dati e compilare moduli. Si possono utilizzare i dati contenuti in una fattura inviata tramite un messaggio di posta elettronica per copiarli e inserirli in un ordine o in un sistema di prenotazione; Valutare profili dei candidati attraverso la lettura dei loro curriculum; Completare analisi e report; Recuperare informazioni dai profili dei clienti per inserirli in sistemi e applicazioni che gestiscono ordini e spedizioni; Comprendere immagini e completare le sequenze mancanti. Differenze fra Robotic Process Automation e AI Spesso si confonde RPA con l'intelligenza artificiale AI. Tra le principali differenze l'RPA tradizionale utilizza input e logica strutturati, l'AI utilizza input non strutturati e sviluppa una propria logica e un proprio metodo di attuare un processo. La loro combinazione dona alla forza lavoro robotica la capacità di prendere decisioni complesse simili a quelle umane. Sfruttando alcune tecnologie tipiche dell’intelligenza artificiale, la Robotic Process Automation è in grado di apprendere e di adeguarsi all’ambiente nel quale viene inserita. Viceversa, la RPA consente di raccogliere dati che permettono ai modelli di AI di allenare le capacità di apprendimento perfezionando la loro azione con maggiore precisione. L’unione fra Intelligenza artificiale e soluzioni di RPA permette di superare l’automazione di compiti ripetitivi o la corretta lettura e comprensione di un testo e un’immagine. L’obiettivo è quello di realizzare software che siano in grado di agire in modo adattivo, e quindi di apprendere mediante le esperienze, e contestualmente di operare in modo predittivo, ovvero di prevedere quale sarà il risultato di un’azione in modo da prendere decisioni autonome o semi-autonome in tempo reale. Come realizzare sistemi di Robotic Process Automation L'automazione dei processi robotici è in continuo aumento perché permette a molteplici tipologie di aziende di risolvere in modo innovativo e risolutivo specifiche problematiche operative. I bot, osservando il modo in cui i dipendenti svolgono i processi, possono gestire correttamente notevoli quantità di dati. Per questo motivo, sono la soluzione ottimale per analizzare ed elaborare grandi set di informazioni, dando maggiore valore ai big data che vengono raccolti. In numerosi settori è possibile sfruttare al meglio queste potenzialità grazie a Imita, un’azienda specializzata in IT che fornisce soluzioni personalizzate in grado di aumentare la produttività e di migliorare l’efficienza. Vuoi saperne di più su di noi ?
- Applicazione SVM per la classificazione automatica su Iris dataset - Esempi pratici Machine Learning
Conoscenze necessarie per leggere questo post. Se vuoi trovarti a tuo con questa lettura, ti consiglio di leggerti prima i seguenti articoli introduttivi: Conoscenza delle caratteristiche di un problema di classificazione. Conoscenza dell’algoritmo SVM. Ricapitolando Ho introdotto nei precedenti post le nozioni necessarie per valutare un primo caso di studio. Nello specifico analizzerò il problema di classificazione dei fiori fra Iris Setosa, Virginica e Versicolor. Come già accennato, il dataset è composto da 150 istanze. Per ognuna di esse vengono fornite più features utili per la classificazione: lunghezza, larghezza del sepalo e del petalo. Per maggiori info sul dataset visita il sito ufficiale. Suddivisione del dataset Ho suddiviso il dataset in train e test: l’80% delle istanze le ho inserite nel training set e il rimanente 20% le ho inserite nel test set. Ho deciso di utilizzare l’algoritmo presentato nel post precedente ovvero SVM, il quale si occuperà di definire una funzione che permetta di dividere correttamente le istanze delle classi. Come fa a farlo? Tramite i dati di training etichettati. Ovviamente all’aumentare dei dati a disposizione le performance saranno migliori. Inoltre, all’aumentare delle classi le performance saranno peggiori perché aumenterà la probabilità di sbagliare la classificazione. Risultati L’accuratezza di classificazione ottenuta è stata pari a 83.33%. Questa metrica misura la percentuale di corrette classificazioni svolte dall’algoritmo utilizzato. Nel caso in esame significa che su 30 immagini presenti nel test set 25 sono classificate correttamente, mentre 5 sono errate. Per incrementare questo valore possono essere necessari: maggiori elementi nel training set; l’utilizzo di un set diverso di features; l’adozione di una strategia più efficace per la risoluzione del problema. La matrice di confusione mostra in forma tabellare la suddivisione delle classificazioni per classe. Aiuta quindi il data scientist a capire in quali classi l’algoritmo commette errori di classificazione. La matrice di confusione risultante è stata la seguente: Da questa tabella si evince che per la classe Iris Setosa il metodo usato non commette nessun errore di classificazione (10 classificazioni su 10 corrette → 100%). Per quanto riguarda la classe Iris Virginica vengono commessi 4 errori perché 4 istanze della classe Iris Virginica vengono classificate come Iris Versicolor (7 classificazioni su 11 corrette → 63.6%). Infine, per l’ultima classe viene commesso un solo errore di classificazione (8 classificazioni corrette su 9 → 88.8%). Da ciò si può quindi evincere che la classe che presenta maggiori difficoltà ad essere correttamente individuata è Iris Virginica. Un’interessante analisi è quella che si può fare su come le istanze del dataset siano suddivise in training e test set. La regola aurea è che il numero di istanze di ogni classe dovrebbe essere lo stesso. Serve per evitare problemi in fase di addestramento che si ripercuotono poi in fase di classificazione. Se il metodo di classificazione vede più esempi in fase di addestramento, ci saranno poi maggiori possibilità che classifichi gli elementi del test con l’etichetta della classe più popolosa del training set. In questo caso le istanze sono state suddivise in questa maniera: Dalla tabella si evince che relativamente alla classe con meno istanze in fase di training si commettono poi più errori in fase di test. Come migliorare le performance? Avevo utilizzato solo le prime 2 features a disposizione. Usando, invece, tutte e 4 le features ottengo risultati nettamente migliori: accuratezza di classificazione pari a 93.33%. Ciò determina che la scelta delle features può influenzare molto il risultato del modello di Intelligenza Artificiale. Solo due errori nella classificazione dell’Iris Virginica. Davvero niente male questo SVM! Come Implementare l' SVM con Python su questo Dataset? Vi lascio il codice completo, con diversi kernel SVM, e le relative aree di classificazione, scritto in Python. Buon Divertimento ! Sono appassionato di Intelligenza Artificiale e nel 2020 ho ricevuto il Ph.D. in Visione Artificiale presso l'Università degli Studi di Parma. Se vuoi ricevere maggiori informazioni sull'articolo o sui progetti che sto svolgendo visita il mio sito web.
- Come Creare Un Dataset per il tuo Progetto Di Machine Learning ( ML ) o Deep Learning ( DL )
Stai pensando all'IA per la tua organizzazione? Hai identificato un caso d'uso ? Perfetto! ma non così veloce ... hai un set di dati ? Bene, la maggior parte delle aziende sta lottando per creare un set di dati pronto per l'intelligenza artificiale o forse semplicemente ignora questo problema, ho pensato che questo articolo potrebbe aiutarti un po '. Cominciamo con le basi ... Un set di dati è una raccolta di dati . In altre parole, un set di dati corrisponde al contenuto di una singola tabella di database, o un singolo statistica dei dati della matrice, dove ogni colonna della tabella rappresenta una particolare variabile, ed ogni corrisponde riga per un dato membro del set di dati in questione . Nei progetti di Machine Learning, abbiamo bisogno di un set di dati di addestramento . È il set di dati effettivo utilizzato per addestrare il modello per l'esecuzione di varie azioni. Perché ho bisogno di un set di dati? Il machine learning dipende fortemente dai dati, senza dati è impossibile che un "AI" apprenda. È l'aspetto più cruciale che rende possibile l'addestramento degli algoritmi ... Non importa quanto sia grande il tuo team di intelligenza artificiale o la dimensione del tuo set di dati, se il tuo set di dati non è abbastanza buono, l'intero progetto AI fallirà! Ho visto progetti fantastici fallire perché non avevamo un buon set di dati nonostante avessimo il caso d'uso perfetto e scienziati dei dati molto qualificati. Un'intelligenza artificiale supervisionata viene addestrata su un corpus di dati di addestramento. Durante uno sviluppo di intelligenza artificiale, ci affidiamo sempre ai dati. Dall'addestramento, alla messa a punto, dalla selezione del modello al test, utilizziamo tre diversi set di dati: il set di addestramento, il set di convalida e il set di test.Per tua informazione, i set di convalida vengono utilizzati per selezionare e ottimizzare il modello ML finale. Potresti pensare che la raccolta dei dati sia sufficiente ma è il contrario. In ogni progetto di IA, classificare ed etichettare i set di dati richiede la maggior parte del nostro tempo, in particolare i set di dati sufficientemente accurati da riflettere una visione realistica del mercato / mondo. Voglio presentarti i primi due set di dati di cui abbiamo bisogno: il set di dati di addestramento e il set di dati di test perché vengono utilizzati per scopi diversi durante il tuo progetto AI e il successo di un progetto dipende molto da loro. Il set di dati di addestramento è quello utilizzato per addestrare un algoritmo a capire come applicare concetti come le reti neurali, per apprendere e produrre risultati. Include sia i dati di input che l'output previsto. I set di formazione costituiscono la maggior parte dei dati totali, circa il 70%. Durante i test, i modelli si adattano ai parametri in un processo noto come regolazione dei pesi. Il set di dati di test viene utilizzato per valutare il livello di addestramento del tuo algoritmo con il set di dati di addestramento. Nei progetti AI, non possiamo utilizzare i dati di addestramento impostati in fase di test perché l'algoritmo conoscerà già in anticipo l'output atteso che non è il nostro obiettivo. I set di test rappresentano il 30% dei dati. Il set di test è garantito come i dati di input raggruppati insieme agli output corretti verificati, generalmente mediante verifica umana. Sulla base della mia esperienza, è una cattiva idea tentare ulteriori aggiustamenti dopo la fase di test. Probabilmente porterà a un overfitting. Cos'è l'overfitting? Un problema ben noto per i data scientist ... L' overfitting è un errore di modellazione che si verifica quando una funzione è troppo vicina a un insieme limitato di punti dati. Quanti dati sono necessari? Tutti i progetti sono in qualche modo unici, ma direi che hai bisogno di 10 volte più dati del numero di parametri nel modello in costruzione. Più complicata è l'attività, più dati sono necessari. Di che tipo di dati ho bisogno? Inizio sempre progetti di intelligenza artificiale ponendo domande precise al decisore aziendale. Cosa stai cercando di ottenere con l'IA? Sulla base della tua risposta, devi considerare di quali dati hai effettivamente bisogno per affrontare la domanda o il problema su cui stai lavorando. Fai alcune ipotesi sui dati di cui hai bisogno e fai attenzione a registrarle in modo da poterle testare in seguito, se necessario. Di seguito sono riportate alcune domande per aiutarti: Quali dati puoi utilizzare per questo progetto? Devi avere un'immagine chiara di tutto ciò che puoi usare. Quali dati non disponibili vorresti avere? Mi piace questa domanda poiché possiamo sempre in qualche modo simulare questi dati. Ho un set di dati, e adesso? Non così in fretta! Dovresti sapere che tutti i set di dati sono imprecisi. In questo momento del progetto, dobbiamo fare un po 'di preparazione dei dati, un passaggio molto importante nel processo di apprendimento automatico. Fondamentalmente, la preparazione dei dati consiste nel rendere il tuo set di dati più adatto per l'apprendimento automatico. È un insieme di procedure che consumano la maggior parte del tempo dedicato a progetti di machine learning. Anche se disponi dei dati, puoi comunque riscontrare problemi con la loro qualità, nonché pregiudizi nascosti nei tuoi set di addestramento. In parole povere, la qualità dei dati di addestramento determina le prestazioni dei sistemi di apprendimento automatico. Hai sentito parlare dei pregiudizi dell'IA? Un'intelligenza artificiale può essere facilmente influenzata ... Nel corso degli anni, i data scientist hanno scoperto che alcuni popolari set di dati utilizzati per addestrare il riconoscimento delle immagini includevano pregiudizi di genere. Di conseguenza, la creazione delle applicazioni di intelligenza artificiale richiede più tempo perché stiamo cercando di assicurarci che i dati siano corretti e integrati correttamente. E se non ho abbastanza dati ? Può succedere che ti manchino i dati necessari per integrare una soluzione AI. Non ti mentirò, ci vuole tempo per costruire un set di dati pronto per l'intelligenza artificiale se ti affidi ancora a documenti cartacei o. csv file. Ti consiglierei di dedicare prima del tempo a costruire una moderna strategia di raccolta dei dati. Se hai già determinato l'obiettivo della tua soluzione ML, puoi chiedere al tuo team di dedicare del tempo alla creazione dei dati o esternalizzare il processo. Nel mio ultimo progetto, l'azienda voleva creare un modello di riconoscimento delle immagini ma non aveva immagini. Di conseguenza, abbiamo trascorso settimane a scattare foto per creare il set di dati e trovare modi per i futuri clienti di farlo per noi. Hai una strategia sui dati? Creare una cultura basata sui dati in un'organizzazione è forse la parte più difficile dell'essere uno specialista di intelligenza artificiale. Quando cerco di spiegare perché l'azienda ha bisogno di una cultura dei dati, posso vedere la frustrazione negli occhi della maggior parte dei dipendenti. In effetti, la raccolta dei dati può essere un'attività fastidiosa che grava sui tuoi dipendenti. Tuttavia, possiamo automatizzare la maggior parte del processo di raccolta dei dati! Un altro problema potrebbe essere l'accessibilità e la proprietà dei dati ... In molti dei miei progetti, ho notato che i miei clienti avevano dati sufficienti, ma che i dati erano bloccati e di difficile accesso. È necessario creare connessioni tra silos di dati nella propria organizzazione. Per ottenere approfondimenti speciali, è necessario raccogliere dati da più origini. Per quanto riguarda la proprietà, la conformità è anche un problema con le fonti di dati: solo perché un'azienda ha accesso alle informazioni, non significa che abbia il diritto di usarle! Non esitate a chiedere informazioni al vostro team legale (il GDPR in Europa è un esempio). Qualità e quantità! L'apprendimento automatico non riguarda solo grandi set di dati. In effetti, non si alimenta il sistema con tutti i punti dati noti in alcun campo correlato. Vogliamo alimentare il sistema con dati attentamente curati, sperando che possa apprendere, e forse estendere, ai margini, la conoscenza che le persone già possiedono. La maggior parte delle aziende ritiene che sia sufficiente raccogliere tutti i dati possibili, combinarli e lasciare che l'IA trovi intuizioni. Quando crei un set di dati, dovresti mirare a una varietà di dati. Consiglio sempre alle aziende di raccogliere dati sia interni che esterni. L'obiettivo è creare un set di dati unico che sarà difficile da copiare per i tuoi concorrenti. Le applicazioni di machine learning richiedono un numero elevato di punti dati, ma questo non significa che il modello debba considerare un'ampia gamma di funzionalità. Vogliamo dati significativi relativi al progetto. Potresti possedere dati ricchi e dettagliati su un argomento che semplicemente non è molto utile. Un esperto di intelligenza artificiale ti farà domande precise su quali campi contano davvero e in che modo tali campi saranno probabilmente importanti per la tua applicazione delle intuizioni che ottieni. Pre-elaborazione dei dati Va bene, torniamo al nostro set di dati. In questa fase, hai raccolto i tuoi dati che giudichi essenziali, diversi e rappresentativi per il tuo progetto AI. La pre-elaborazione include la selezione dei dati corretti dal set di dati completo e la creazione di un set di addestramento. Il processo di mettere insieme i dati in questo formato ottimale è noto come trasformazione delle caratteristiche . Formato: i dati potrebbero essere distribuiti in file diversi. Ad esempio, i risultati delle vendite di diversi paesi con valute, lingue, ecc. Differenti, che devono essere raccolti insieme per formare un set di dati. Pulizia dei dati: in questa fase, il nostro obiettivo è gestire i valori mancanti e rimuovere i caratteri indesiderati dai dati. Estrazione delle funzionalità: in questa fase ci concentriamo sull'analisi e l'ottimizzazione del numero di funzionalità. Di solito, un membro del team deve scoprire quali caratteristiche sono importanti per la previsione e selezionarle per calcoli più veloci e basso consumo di memoria. La perfetta strategia per i dati I progetti di IA di maggior successo sono quelli che integrano una strategia di raccolta dati durante il ciclo di vita del servizio / prodotto. In effetti, la raccolta dei dati non può essere una serie di esercizi una tantum. Deve essere integrato nel prodotto principale stesso. Fondamentalmente, ogni volta che un utente interagisce con il tuo prodotto / servizio, desideri raccogliere dati dall'interazione. L'obiettivo è utilizzare questo nuovo flusso di dati costante per migliorare il tuo prodotto / servizio. Quando raggiungi questo livello di utilizzo dei dati, ogni nuovo cliente che aggiungi rende il set di dati più grande e quindi il prodotto migliore, il che attira più clienti, il che rende migliore il set di dati e così via. È una sorta di cerchio positivo. I progetti ML migliori e orientati a lungo termine sono quelli che sfruttano set di dati dinamici e costantemente aggiornati. Il vantaggio di costruire tale strategia di raccolta dati è che diventa molto difficile per i tuoi concorrenti replicare il tuo set di dati. Con i dati, l'IA migliora e in alcuni casi, come il filtraggio collaborativo, è molto prezioso. Il filtraggio collaborativo fornisce suggerimenti basati sulla somiglianza tra gli utenti, migliorerà con l'accesso a più dati; più dati utente si hanno, più è probabile che l'algoritmo possa trovare un utente simile. Ciò significa che è necessaria una strategia per il miglioramento continuo del set di dati fintanto che esiste un vantaggio per l'utente per una migliore precisione del modello. Se puoi, trova modi creativi per sfruttare anche i segnali deboli per accedere a set di dati più grandi. Grazie mille per la lettura, condividi l'articolo con i tuoi colleghi