Perceptron è Definizione del termine, caratteristiche, applicazione

Sommario:

Perceptron è Definizione del termine, caratteristiche, applicazione
Perceptron è Definizione del termine, caratteristiche, applicazione
Anonim

Nell'apprendimento automatico, un perceptron è un algoritmo di apprendimento supervisionato per classificatori binari. Viene anche spesso chiamato perceptron. Un classificatore binario è una funzione che può decidere se un input, rappresentato da un vettore di numeri, appartiene a una classe particolare. Questo è un tipo di classificatore lineare, ovvero un algoritmo di classificazione che fa le sue previsioni sulla base di una funzione di predittore lineare che combina un insieme di pesi con un vettore di caratteristiche.

Formule percettroniche
Formule percettroniche

Negli ultimi anni, le reti neurali artificiali hanno attirato l'attenzione grazie ai progressi nell'apprendimento profondo. Ma cos'è una rete neurale artificiale e in cosa consiste?

Incontra il Perceptron

In questo articolo, daremo una rapida occhiata alle reti neurali artificiali in generale, quindi esamineremo un singolo neurone e infine (questa è la parte di codifica) prenderemo la versione più semplice di un neurone, il perceptron, e classificarne i puntiaereo.

Ti sei mai chiesto perché ci sono compiti così facili per chiunque, ma incredibilmente difficili per i computer? Le reti neurali artificiali (ANN in breve) sono state ispirate dal sistema nervoso centrale umano. Come la loro controparte biologica, le ANN sono costruite su semplici elementi di elaborazione del segnale che sono combinati in una grande griglia.

Le reti neurali devono imparare

A differenza degli algoritmi tradizionali, le reti neurali non possono essere "programmate" o "sintonizzate" per funzionare come previsto. Proprio come il cervello umano, devono imparare a completare il compito. In parole povere, ci sono tre strategie di apprendimento.

Il modo più semplice può essere utilizzato se esiste un test case (abbastanza grande) con risultati noti. Quindi l'addestramento va in questo modo: elaborare un insieme di dati. Confronta il risultato con il risultato noto. Configura la rete e riprova. Questa è la strategia di apprendimento che useremo qui.

Apprendimento senza supervisione

Utile se non sono disponibili dati di test e se è possibile ricavare qualche funzione di costo dal comportamento desiderato. La funzione di costo indica alla rete neurale quanto è lontana dall'obiettivo. La rete può quindi regolare i suoi parametri al volo, lavorando con dati reali.

Apprendimento rinforzato

Il metodo "carota e bastone". Può essere utilizzato se la rete neurale genera un'azione continua. Col tempo, la rete impara a preferire le azioni giuste ed evitare quelle sbagliate.

Ok, ora ne sappiamo qualcosanatura delle reti neurali artificiali, ma di cosa sono fatte esattamente? Cosa vedremo se apriamo il coperchio e guardiamo dentro?

I neuroni sono gli elementi costitutivi delle reti neurali. Il componente principale di qualsiasi rete neurale artificiale è un neurone artificiale. Non solo prendono il nome dalle loro controparti biologiche, ma sono anche modellati sul comportamento dei neuroni nel nostro cervello.

Biologia vs tecnologia

Proprio come un neurone biologico ha dendriti per ricevere segnali, un corpo cellulare per elaborarli e un assone per inviare segnali ad altri neuroni, un neurone artificiale ha più canali di input, uno stadio di elaborazione e un output che può si diramano a molti altri neuroni artificiali.

Possiamo fare qualcosa di utile con un singolo perceptron? Esiste una classe di problemi che un singolo percettrone può risolvere. Considera il vettore di input come coordinate di un punto. Per un vettore con n elementi, questo punto vivrà in uno spazio n-dimensionale. Per semplificare la vita (e il codice seguente), supponiamo che sia 2D. Come un pezzo di carta.

Successivamente, immagina di disegnare alcuni punti casuali su questo piano e di dividerli in due serie disegnando una linea retta sul foglio. Questa linea divide i punti in due insiemi, uno sopra e uno sotto la linea. I due insiemi sono quindi chiamati linearmente separabili.

Un perceptron, non importa quanto semplice possa sembrare, è in grado di sapere dove si trova questa linea e, quando ha terminato l'allenamento, può determinare se un dato punto è al di sopra o al di sotto di questa linea.

Storiainvenzioni

L'algoritmo per questo metodo è stato inventato nel 1957 presso il Cornell Aviation Laboratory da Frank Rosenblatt (spesso intitolato a lui), finanziato dall'US Office of Naval Research. Il perceptron doveva essere una macchina, non un programma, e sebbene la sua prima implementazione fosse nel software per IBM 704, fu successivamente implementato su hardware personalizzato come "Mark 1 Perceptron". Questa macchina è stata progettata per il riconoscimento delle immagini: aveva un array di 400 fotocellule collegate casualmente ai neuroni. I pesi sono stati codificati in potenziometri e l'aggiornamento del peso durante l'allenamento è stato effettuato da motori elettrici.

In una conferenza stampa ospitata dalla Marina degli Stati Uniti nel 1958, Rosenblatt fece dichiarazioni sul perceptron che causò un acceso dibattito tra la giovane comunità di IA; sulla base delle affermazioni di Rosenblatt, il New York Times ha riferito che il perceptron è "il computer elettronico embrionale che la Marina si aspetta sia in grado di camminare, parlare, vedere, scrivere, riprodursi ed essere consapevole della sua esistenza".

Segmenti Perceptron
Segmenti Perceptron

Ulteriori sviluppi

Sebbene il perceptron inizialmente sembrasse promettente, è stato subito dimostrato che i perceptron non potevano essere addestrati a riconoscere molte classi di pattern. Ciò ha portato a una stagnazione nel campo della ricerca con le reti neurali percettron per molti anni prima che fosse riconosciuto che una rete neurale feed-forward con due o più strati (chiamata ancheperceptron multistrato) aveva una potenza di elaborazione molto maggiore rispetto ai perceptron a strato singolo (chiamati anche perceptron a strato singolo). Un perceptron a strato singolo è in grado di studiare solo strutture separabili linearmente. Nel 1969, il famoso libro "Perceptrons" di Marvin Minsky e Seymour Papert dimostrò che queste classi di reti non potevano apprendere la funzione XOR. Tuttavia, ciò non si applica alle funzioni di classificazione non lineare che possono essere utilizzate in un perceptron a strato singolo.

Perceptron Rosenblatt
Perceptron Rosenblatt

L'uso di tali funzioni estende le capacità del perceptron, inclusa l'implementazione della funzione XOR. Si presume spesso (erroneamente) che presumessero anche che un risultato simile sarebbe stato valido per una rete di percettroni multistrato. Tuttavia, non è così, poiché sia Minsky che Papert sapevano già che i percettron multistrato erano in grado di produrre una funzione XOR. Tre anni dopo, Steven Grossberg pubblicò una serie di articoli che presentavano reti in grado di modellare funzioni differenziali, funzioni di miglioramento del contrasto e funzioni XOR.

Lavori furono pubblicati nel 1972 e nel 1973. Tuttavia, il testo Minsky/Papert spesso trascurato ha causato un calo significativo dell'interesse e del finanziamento della ricerca con il perceptron della rete neurale. Passarono altri dieci anni prima che la ricerca sulle reti neurali riprendesse negli anni '80.

Caratteristiche

L'algoritmo del kernel Perceptron è stato introdotto nel 1964 da Yzerman et al. Mori e Rostamizadeh (2013), che estendono i risultati precedenti e danno nuovi limiti L1.

Perceptron è un modello semplificato di neurone biologico. Sebbene la complessità dei modelli neurali biologici sia spesso richiesta per comprendere appieno il comportamento neurale, la ricerca mostra che un modello lineare simile a un perceptron può indurre parte del comportamento osservato nei neuroni reali.

Il Perceptron è un classificatore lineare, quindi non entrerà mai in uno stato con tutti i vettori di input classificati correttamente se il training set D non è separabile linearmente, ad es. se gli esempi positivi non possono essere separati da esempi negativi da un iperpiano. In questo caso, nessuna soluzione "approssimativa" passerà passo dopo passo attraverso l'algoritmo di apprendimento standard, invece l'apprendimento fallirà completamente. Pertanto, se la separabilità lineare del training set non è nota a priori, è necessario utilizzare una delle seguenti opzioni di training.

Relazioni Perceptron
Relazioni Perceptron

Algoritmo tascabile

L'algoritmo della tasca a cricchetto risolve il problema della robustezza dell'apprendimento del perceptron mantenendo la migliore soluzione finora trovata "in tasca". L'algoritmo pocket restituisce quindi la soluzione nella tasca anziché l'ultima soluzione. Può essere utilizzato anche per set di dati non separabili in cui l'obiettivo è trovare un perceptron con poche classificazioni errate. Tuttavia, queste soluzioni sembrano stocastiche e quindi l'algoritmo tascabile non le si adatta.gradualmente nel corso della formazione e non è garantito che vengano rilevati in un certo numero di fasi della formazione.

Algoritmo Maxover

L'algoritmo di Maxover è "robusto" nel senso che convergerà indipendentemente dalla conoscenza della separabilità lineare del set di dati. Nel caso di una divisione lineare, questo risolverà il problema di apprendimento, opzionalmente anche con una stabilità ottimale (massimo margine tra le classi). Per i set di dati non separabili, verrà restituita una soluzione con un numero ridotto di classificazioni errate. In tutti i casi, l'algoritmo si avvicina gradualmente alla soluzione durante il processo di apprendimento, senza ricordare gli stati precedenti e senza s alti casuali. La convergenza risiede nell'ottimalità globale per i set di dati condivisi e nell'ottimalità locale per i set di dati non separabili.

equazione percettronica
equazione percettronica

Perceptron votato

L'algoritmo Voted Perceptron è una variante che utilizza più perceptron pesati. L'algoritmo avvia un nuovo perceptron ogni volta che un esempio viene classificato erroneamente, inizializzando il vettore di peso con i pesi finali dell'ultimo perceptron. A ciascun perceptron verrà anche assegnato un peso diverso corrispondente a quanti esempi classificano correttamente prima di classificarne uno erroneamente, e alla fine l'output sarà un voto ponderato sull'intero perceptron.

Applicazione

Nei problemi separabili, l'addestramento del perceptron può anche essere mirato a trovare il confine di separazione più ampio tra le classi. CosiddettoUn perceptron di stabilità ottimale può essere determinato utilizzando l'addestramento iterativo e schemi di ottimizzazione come l'algoritmo Min-Over o AdaTron. AdaTron sfrutta il fatto che il corrispondente problema di ottimizzazione quadratica è convesso. Il perceptron di stabilità ottimale, insieme al trucco del kernel, è la base concettuale della macchina del vettore di supporto.

Percettrone multistrato
Percettrone multistrato

Alternativa

Un altro modo per risolvere problemi non lineari senza utilizzare più livelli è utilizzare reti di ordine superiore (blocco sigma-pi). In questo tipo di rete, ogni elemento del vettore di input viene ampliato di ciascuna combinazione a coppie di input moltiplicati (secondo ordine). Questo può essere esteso a una rete n-order. Il Perceptron è una cosa molto flessibile.

Tuttavia, ricorda che il miglior classificatore non è necessariamente quello che classifica accuratamente tutti i dati di allenamento. Infatti, se avessimo il vincolo precedente che i dati provengano da distribuzioni gaussiane a varianti uguali, una divisione lineare nello spazio di input è ottimale e una soluzione non lineare viene sovrascritta.

Altri algoritmi di classificazione lineare includono Winnow, vettore di supporto e regressione logistica. Perceptron è un insieme universale di algoritmi.

Traduzione russa dello schema
Traduzione russa dello schema

Ambito principale dell'apprendimento supervisionato

L'apprendimento supervisionato è un'attività di apprendimento automatico che apprende una funzione che associa l'input all'outputsulla base di esempi di coppie di I/O. Deducono una caratteristica dai dati di addestramento etichettati costituiti da una serie di esempi. Nell'apprendimento supervisionato, ogni esempio è una coppia composta da un oggetto di input (solitamente un vettore) e un valore di output desiderato (chiamato anche segnale di controllo).

L'algoritmo di apprendimento supervisionato analizza i dati di allenamento e produce una funzione stimata che può essere utilizzata per visualizzare nuovi esempi. Lo scenario ottimale consentirebbe all'algoritmo di determinare correttamente le etichette di classe per le istanze invisibili. Ciò richiede che l'algoritmo di apprendimento generalizzi i dati di apprendimento a situazioni invisibili in un modo "ragionevole".

Il compito parallelo nella psicologia umana e animale è spesso chiamato apprendimento concettuale.

Consigliato: