Alan T. Norman

Apprendimento Automatico In Azione


Скачать книгу

mia semplice definizione è questa: l'apprendimento automatico consente ad un computer di imparare dall'esperienza.

      Può sembrare banale, m questa definizione ha profonde implicazioni. Prima dell'apprendimento automatico, i computer non potevano imparare dall'esperienza. Invece, qualunque cosa il codice abbia detto è ciò che ha fatto il computer.

      L'apprendimento automatico, nella sua spiegazione più semplice, implica consentire ad un computer di variare le sue risposte ed introdurre un circuito di feedback per risposte buone e cattive. Ciò significa che gli algoritmi di apprendimento automatico sono sostanzialmente diversi dai programmi per computer che li hanno preceduti. Comprendere la differenza tra la programmazione esplicita e la formazione degli algoritmi è il primo passo per vedere come l'apprendimento automatico cambia radicalmente l'informatica.

      Programmazione esplicita vs. Formazione algoritmica

      Con alcune recenti eccezioni, quasi tutti i software che hai usato nella tua vita sono stati programmati esplicitamente. Ciò significa che alcuni esseri umani hanno scritto una serie di regole che il computer deve seguire. Tutto, dal sistema operativo del tuo computer, a Internet, alle app sul tuo telefono, ha un codice scritto da un essere umano. Senza gli umani che danno ad un computer una serie di regole per agire, il computer non sarebbe in grado di fare nulla.

      La programmazione esplicita è ottima. È la spina dorsale di tutto ciò che attualmente facciamo con i computer. È ideale quando hai bisogno di un computer per gestire i dati, calcolare un valore o tenere traccia delle relazioni per te. La programmazione esplicita è molto potente, ma ha un collo di bottiglia: l'essere umano.

      Questo diventa problematico quando vogliamo fare cose complesse con un computer, come chiedergli di riconoscere una foto di un gatto. Se dovessimo usare la programmazione esplicita per insegnare ad un computer cosa cercare in un gatto, passeremmo anni a scrivere un codice per ogni evenienza. E se non riesce a vedere tutte e quattro le gambe nella foto? E se il gatto ha un colore diverso? Il computer potrebbe individuare un gatto nero su uno sfondo nero o un gatto bianco nella neve?

      Queste sono tutte cose che diamo per scontate come esseri umani. Il nostro cervello riconosce le cose rapidamente e facilmente in molti contesti. I computer non sono così bravi in questo, e ci vorrebbero milioni di righe di codice esplicito per dire ad un computer come identificare un gatto. In effetti, potrebbe non essere affatto possibile programmare esplicitamente un computer per identificare con precisione i gatti al 100%, poiché il contesto può sempre cambiare e confondere il codice.

      È qui che entrano in gioco gli algoritmi. Con una programmazione esplicita stavamo cercando di dire al computer che cos'è un gatto e di tenere conto di ogni contingenza nel nostro codice. Al contrario, gli algoritmi di apprendimento automatico consentono al computer di scoprire cos'è un gatto.

      Per iniziare, l'algoritmo potrebbe contenere alcune funzionalità chiave. Ad esempio, potremmo dire al computer di cercare quattro zampe e una coda. Quindi, alimentiamo l'algoritmo con molte immagini. Alcune delle immagini sono gatti, ma altre possono essere cani, alberi o immagini casuali. Quando l'algoritmo fa un'ipotesi, rafforzeremo le ipotesi corrette e daremo un feedback negativo per ipotesi errate.

      Nel tempo, il computer utilizzerà l'algoritmo per creare il proprio modello di cosa cercare per identificare un gatto. I componenti nel modello del computer potrebbero essere cose a cui non abbiamo nemmeno pensato all'inizio. Con più rinforzi e migliaia di immagini, l'algoritmo diventerà gradualmente migliore nell'identificazione dei gatti. Potrebbe non raggiungere mai un'accuratezza del 100%, ma sarà abbastanza preciso da sostituire un'etichettatrice di immagini di gatti umani ed essere più efficiente.

      Gli algoritmi sono linee guida ma non sono regole esplicite. Sono un nuovo modo di dire a un computer come affrontare un'attività. Introducono cicli di feedback che si auto-correggono nel corso di centinaia o migliaia di prove in un compito.

      Definizioni: Intelligenza Artificiale Vs Apprendimento Automatico Vs Reti Neurali

      Questo libro parla dell'apprendimento automatico, ma quel termine rientra in un contesto più ampio. Poiché l'apprendimento automatico sta diventando sempre più popolare, sta ricevendo molta copertura giornalistica. Nei loro articoli, i giornalisti usano spesso in modo intercambiabile i termini intelligenza artificiale, apprendimento automatico e reti neurali. Tuttavia, ci sono lievi differenze tra i tre termini.

      L'intelligenza artificiale è il più antico e il più ampio dei tre termini. Coniata a metà del secolo XX, l'intelligenza artificiale si riferisce ad ogni volta che una macchina osserva e risponde al suo ambiente. L'intelligenza artificiale è in contrasto con l'intelligenza naturale nell'uomo e negli animali. Nel tempo, tuttavia, l'ambito dell'intelligenza artificiale è cambiato. Ad esempio, il riconoscimento dei personaggi era una delle maggiori sfide per l'IA (Intelligenza Artificiale). Ora è una routine e non è più considerata parte dell'IA. Quando scopriamo nuovi usi dell' IA, li integriamo nel nostro quadro di riferimento per ciò che è normale e lo scopo dell' IA si estende a qualunque sia la prossima novità.

      L'apprendimento automatico è un sottoinsieme specifico di IA. Abbiamo già dedicato del tempo a definirlo in questo capitolo, ma si riferisce a fornire ad una macchina un ciclo di feedback che gli consenta di imparare dall'esperienza. Come termine, l'apprendimento automatico esiste solo dagli anni '80. Solo di recente, negli ultimi 10-15 anni abbiamo avuto la potenza di elaborazione e archiviazione dei dati per iniziare davvero ad implementare l'apprendimento automatico su vasta scala.

      Le reti neurali sono un sottoinsieme dell'apprendimento automatico e al momento sono la tendenza più in voga del settore. Una rete neurale è composta da molti nodi che lavorano insieme per produrre una risposta. Ciascuno dei nodi più bassi ha una funzione specifica. Ad esempio, quando si guarda un'immagine, i nodi di basso livello potrebbero identificare colori o linee specifiche. I nodi successivi potrebbero raggruppare le linee in forme, misurare le distanze o cercare la densità del colore. Ciascuno di questi nodi viene quindi ponderato per il suo impatto sulla risposta finale. All'inizio, la rete neurale commetterà molti errori, ma nel corso di molte prove aggiornerà la ponderazione di ciascun nodo per migliorare la ricerca della risposta corretta.

      Ora, quando leggerai un articolo sull'intelligenza artificiale, l'apprendimento automatico o le reti neurali, capirai la differenza. La chiave è rendersi conto che sono sottoinsiemi. Le reti neurali sono solo un tipo di apprendimento automatico che a sua volta è solo una parte dell'intelligenza artificiale.

      Concetti Di Base

      L'apprendimento automatico può essere distribuito in molti casi d'uso. Finché ci sono dati significativi da analizzare, l'apprendimento automatico può aiutare a dargli un senso. Pertanto, ogni progetto di apprendimento automatico è diverso. Tuttavia, ci sono cinque parti principali di qualsiasi applicazione di apprendimento automatico:

1. IL PROBLEMA

      L'apprendimento automatico è utile ovunque sia necessario riconoscere modelli e prevedere comportamenti basati su dati storici. Riconoscere i modelli potrebbe significare qualsiasi cosa, dal riconoscimento dei personaggi alla manutenzione predittiva, alla raccomandazione di prodotti ai clienti in base agli acquisti passati.

      Tuttavia, il computer non comprende intrinsecamente i dati o il problema. Invece, un data scientist deve insegnare al computer cosa cercare usando un feedback adeguato. Se il data scientist non definisce bene il problema, anche il miglior algoritmo addestrato sul set di dati più grande non produrrà i risultati desiderati.

      È chiaro che l'apprendimento automatico non è ancora adatto a ragionamenti simbolici di alto livello. Ad esempio, un algoritmo potrebbe essere in grado di identificare un cestino, uova colorate e un campo, ma non sarebbe in grado di dire che è una caccia alle uova di Pasqua, come farebbe la maggior parte degli esseri umani.

      In genere, i progetti di apprendimento automatico presentano un problema specifico molto ristretto a cui stanno trovando una risposta. Un problema diverso