Qual è il peso e la propensione all'apprendimento profondo?


16

Sto iniziando a imparare l'apprendimento automatico dal sito Web di Tensorflow. Ho sviluppato una comprensione molto rudimentale del flusso seguito da un programma di apprendimento profondo (questo metodo mi fa imparare velocemente invece di leggere libri e grandi articoli).

Ci sono alcune cose confuse che mi sono imbattuto, 2 di loro sono:

  1. pregiudizio
  2. Peso

Nel tutorial di MNIST sul sito Web di Tensorflow, hanno menzionato che abbiamo bisogno di parzialità e peso per trovare la prova dell'esistenza di un particolare schema in un'immagine. Quello che non capisco è, dove e come vengono determinati i valori di polarizzazione e peso?

Dobbiamo fornire questi valori o la libreria TensorFlow calcola questi valori automaticamente in base al set di dati di training?

Inoltre, se potessi fornire alcuni suggerimenti su come accelerare il mio ritmo nell'apprendimento profondo, sarebbe fantastico!

Tutorial per principianti Tensorflow


3
Come parametri di un modello statistico , vengono appresi o stimati minimizzando una funzione di perdita che dipende dai dati dell'utente. E questo è l'apprendimento automatico. Farai molte domande se segui questo metodo pedogogico. Suggerisco di prendere un MOOC come quello di Coursera in modo da poter imparare le cose in un ordine ragionevole.
Emre,

Questo è molto semplice, quindi dovresti seguire un corso come suggerito da @Emre.
SmallChess,

Risposte:


11

Matematicamente parlando. Immagina di essere un modello (No, non quel tipo, figura 8)

Il pregiudizio è semplicemente quanto sei parziale, ora sei un nigeriano, e ti viene chiesto "Di quale nazionalità hanno le donne più belle", dici Nigerian Ladies, possiamo dirlo perché sei di parte. quindi la tua formula è .Y=WX+niogerioun'n

Quindi cosa capisci? Di parte è quella presunzione in un modello come te.

Per quanto riguarda il peso, logicamente parlando, Weight is your Gradient (a in linear algebra),

Che cos'è il gradiente? , è la pendenza della funzione lineare.

Cosa rende il gradiente lineare molto ripido (alto valore positivo)?

È perché piccoli cambiamenti in X (input) causano grandi differenze nell'asse Y (output). Quindi tu (non più come modello, ma un brillante matematico (il tuo alter ego)) o il tuo computer cerchi di trovare questo gradiente, che puoi chiamare peso. La differenza è che usi una matita e un quaderno per trovare questo, ma la scatola nera fa la sua Magia elettronica con i registri.

Nel processo di apprendimento automatico, computer o Tu cerchi di tracciare molte linee rette o funzioni lineari attraverso i punti dati,

Perché provi a disegnare molte linee rette?

Perché nel tuo libro grafico / memoria del computer, stai provando a vedere la linea che si adatta in modo appropriato.

Come faccio a sapere io o il computer la linea che si adatta in modo appropriato?

Nella mia scuola secondaria, mi hanno insegnato a tracciare una linea attraverso i punti dati, controllando visivamente la linea che attraversa perfettamente nel mezzo di tutti i punti dati. . Ma per quanto riguarda il computer, prova la deviazione standard e la varianza di ogni linea rispetto ai punti dati. Viene scelta la linea con la minima deviazione (a volte la chiamerà funzione di errore).

Freddo! quindi e cosa succede

Viene calcolato il gradiente di quella linea, supponiamo che il peso del problema di apprendimento sia calcolato

questo è Machine Learning nella sua comprensione di base e uno studente delle scuole superiori che traccia un grafico nel suo Graphbook


10

Sono d'accordo con i commenti sulla tua domanda che dovresti esaminare un corso, forse Machine Learning on Coursera di Andrew Ng , che è un corso introduttivo gratuito e molto apprezzato. Questa è una domanda di base sui fondamenti dell'apprendimento automatico. In quanto tale non sto trattando la matematica in questa risposta, puoi ottenerla da molti posti, incluso quel corso.

dove e come vengono determinati i valori di polarizzazione e peso?

Pesi e distorsioni sono i parametri apprendibili del tuo modello. Oltre alle reti neurali, appaiono con gli stessi nomi in modelli correlati come la regressione lineare. La maggior parte degli algoritmi di apprendimento automatico include alcuni parametri apprendibili come questo.

I valori di questi parametri prima dell'avvio dell'apprendimento vengono inizializzati in modo casuale (ciò impedisce loro di convergere tutti in un singolo valore). Quindi, quando presentati con i dati durante l'allenamento, vengono adeguati ai valori che hanno un output corretto.

Dobbiamo fornire questi valori o la libreria TensorFlow calcola questi valori automaticamente in base al set di dati di training?

Non è necessario fornire valori prima dell'allenamento, anche se potresti voler decidere cose come quanti parametri dovrebbero esserci (nelle reti neurali che sono controllate dalle dimensioni di ogni strato). TensorFlow calcola i valori automaticamente, durante l'allenamento. Quando si dispone di un modello già addestrato e si desidera riutilizzarlo, è necessario impostare i valori direttamente, ad es. Caricandoli dal file.

Il codice specifico che gestisce le modifiche a pesi e distorsioni dal tutorial è questo:

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

e questo:

sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

La prima riga definisce come verranno modificati pesi e valori. Puoi leggerlo quasi letteralmente come "definisci una funzione di allenamento che utilizza l'ottimizzatore di discesa gradiente per ridurre l'entropia incrociata dei dati forniti".

yX


8

Peso : il peso è la forza della connessione. Se aumento l'input, quanta influenza ha sull'output.

I pesi vicini allo zero indicano che la modifica di questo ingresso non modificherà l'uscita. Molti algoritmi imposteranno automaticamente quei pesi su zero per semplificare la rete.

Distorsione : significa quanto distano le nostre previsioni dai valori reali. In genere, gli algoritmi parametrici presentano un elevato pregiudizio che li rende veloci da apprendere e più facili da comprendere ma generalmente meno flessibili. A loro volta hanno prestazioni predittive inferiori su problemi complessi che non riescono a soddisfare le ipotesi semplificative della distorsione degli algoritmi.

Bias basso : suggerisce ulteriori ipotesi sulla forma della funzione target.

High-Bia s: suggerisce meno ipotesi sulla forma della funzione target.


2
L'OP stava chiedendo informazioni sul parametro di polarizzazione in una rete neurale. Le tue definizioni di parzialità sono OK, ma non rispondere alla domanda.
Neil Slater,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.