Regressione Logistica - Logistic Regression
Analisi del problema MINST (poi capiremo come viene implementata)
Logistic Regression = BINARY CLASSIFICATION
SoftMax Regression = Multi-Class Classification (mutualmente esclusive altrimenti è necessario utilizzare un'altra funzione di minimizzazione)
(Edited 2016-02-07: If you have single-class labels, where an object can only belong to one class, you might now consider using tf.nn.sparse_softmax_cross_entropy_with_logits so that you don't have to convert your labels to a dense one-hot array. This function was added after release 0.6.0.)
Analisi del problema MINST (poi capiremo come viene implementata)
Immagini 28 x 28 = 784 array
LABEL per la classificazione = One Hot Array è [1,0, ... 0] (10 elementi) (un 1 dove è classificato e 0 tutti gli altri elementi)
Il database è composto da : MINST 55000 train 10000 test 5000 validation
Il modello è lo stesso della regressione linerare Y = X * w + b ma con SOFTMAX (più avanti)
Il lavoro viene effettuato a BATCH (da 100 ) ma è un Hyper-Parameter è possibile configuralrlo
E' UNA RETE RETE NEURALE AD UN LIVELLO
SOFTMAX funzione che distribuisce i valori in modo che:
1) la somma sia uguale 1 (distribuzione di probabilità)
2) Evidenzia il più possibile il valore maggiore
3) The shape of output of a softmax is the same as the input - it just normalizes the values.
VISTA DEL MODELLO X*W + b (Regressione Logistica) e sotto quella con SoftMax
SI USANO DEI BATCH DA 100 immagini di 784
NEURONI 10
PESI W
SOGLIA bias b
MODELLO Y = X * W + b
X [ 100, 784 ] W [ 784 , 10 ] = L [ 100, 10 ]
b [ 10 ] vettore bias deve essere sommato a tutte le righe di L (è un batch)
APPLICAZIONE DEL SOFTMAX applicato LINEA x LINEA sulla matrice risultato X*W+b (con le indicazioni date sopra)
Abbiamo le LABEL delle immagini che sono One Hot Encoding e i valori corrente del modello che è dato dal SOFTMAX sono le probabilità di appartenza ad una classe indicata dal modello
DEFINIZIONE DELLA FUNZIONE COSTO DA MINIMIZZARE
Bisogna costruire una funzione loss / costo da minimizzare con il gradiente modificando i pesi della rete W e b
Cross-entropy is commonly used to quantify the difference between two probability distributions
NOTE:
Logits simply means that the function operates on the unscaled output (sono probabilità non normalizzate)
SOFTMAX: The softmax "squishes" the inputs so that sum(input) = 1; it's a way of normalizing
Passo di TensorFlow (softmax + cross_entropy)
entropy = tf.nn.softmax_cross_entropy_with_logits(logits=logits, labels=Y, name='loss')
The cross entropy is a summary metric - it sums across the elements. The output of tf.nn.softmax_cross_entropy_with_logits on a shape [2,5] tensor is of shape [2,1] (the first dimension is treated as the batch).
If you want to do optimization to minimize the cross entropy, AND you're softmaxing after your last layer, you should use tf.nn.softmax_cross_entropy_with_logits instead of doing it yourself, because it covers numerically unstable corner cases in the mathematically right way. Otherwise, you'll end up hacking it by adding little epsilons here and there.
tf.reduce_mean : Computes the mean of elements across dimensions of a tensor.
loss = tf.reduce_mean(entropy) # computes the mean over all the examples in the batch
La media del valore è da minimizzare (ottiene i nuovi valori di W e b ) e si cicla fino ad ottenere un "BUON valore" di loss
Evernote consente di ricordare tutto e di organizzarti senza sforzo. Scarica Evernote. |
Comments