In questo video parleremo della regressione logistica in PyTorch.
In particolare parleremo di previsione.
Per prima cosa parleremo della funzione logistica. Poi parleremo del modulo chiamato nn dot sequenziale
che può essere utilizzato per la costruzione di reti neurali in PyTorch. Parleremo quindi di costruire moduli personalizzati utilizzando nn.sequential.
Nella regressione logistica abbiamo una funzione lineare, passiamo l'uscita alla funzione logistica e otteniamo la nostra stima come cappello Y.
Possiamo anche applicare la regressione logistica alle equazioni di vettori che coinvolgono prodotti dot.
L' uscita della regressione logistica è ancora una dimensione.
Ora parliamo di due modi attraverso i quali possiamo creare una funzione logistica in PyTorch.
Il primo modo è usare il modulo torcia dot nn. Quindi, creiamo alcuni dati.
Usiamo il costruttore di oggetti nn dot sigmoid e questo crea un oggetto sigmoid per noi.
Inseriamo il nostro tensore all'oggetto sigmoideo per ottenere la nostra stima locale. Ecco un complotto della nostra stima locale.
Il secondo modo per creare una funzione logistica in py torch è semplicemente usando il modulo torcia.
Abbiamo il nostro stesso tensore di ingresso, in questo caso il nostro sigmoid è una funzione reale
quindi passiamo il nostro tensore come input alla funzione sigmoid e otteniamo un output. Ecco una trama dell'output.
Fino ad ora ci siamo concentrati sulla creazione di funzioni logistiche in PyTorch. Ora vediamo come possiamo creare modelli di regressione logistica in PyTorch
utilizzando il pacchetto sequenziale nn dot. Il pacchetto sequenziale nn dot è un modo davvero veloce per costruire i tuoi modelli di regressione logistica.
Quindi iniziamo con un costruttore lineare e abbiamo anche un costruttore sigmoide. Il nostro input è 1 dimensionale.
Usiamo un costruttore sequenziale come segue per produrre il nostro modello. Il primo parametro che viene passato come input al nostro costruttore sequenziale
è il costruttore lineare e il secondo parametro è il costruttore sigmoid. Produciamo quindi il nostro modello.
Dietro le quinte, questo prende il tensore x, produce l'output intermedio z e poi passa z alla funzione sigmoid.
Che poi produce la nostra stima di uscita y hat.
Possiamo anche costruire moduli personalizzati in PyTorch sottoclassando il pacchetto del modulo nn dot.
Ecco un modulo personalizzato costruito sottoclassando il modulo nn dot. Si chiama regressione logistica. È abbastanza simile alla regressione lineare.
Costruiamo il nostro oggetto lineare usando il costruttore lineare nn dot. L'unica differenza è che il nostro output avrà già la funzione sigmoid.
E questo applicherà la funzione sigmoid al nostro output intermedio per produrre l'output finale.
Siamo in grado di creare un modello per il nostro modulo personalizzato utilizzando il costruttore come segue.
Passiamo in 1 come argomento al costruttore poiché il nostro input è 1 dimensionale.
Questo produrrà un output lineare su cui verrà applicata la funzione sigmoid. Per produrre la nostra uscita finale y cappello.
Ecco un confronto affiancato tra il nostro modello personalizzato e il modello sequenziale.
Creiamo il modello personalizzato chiamando il modulo di regressione logistica che abbiamo scritto da zero. Passiamo in uno al costruttore come il nostro input è unidimensionale.
Allo stesso modo, creiamo il nostro modello sequenziale utilizzando il pacchetto sequenziale nn dot esistente.
Ancora una volta, passiamo in uno al costruttore lineare come il nostro input è unidimensionale. Entrambi questi modelli produrranno lo stesso output alla fine.
Ora impariamo come possiamo fare previsioni in PyTorch.
Consideriamo alcuni valori di esempio dei parametri del modello. Sulla base dei nostri esempi precedenti,
b e w erano i nostri parametri del modello. I valori esatti dei parametri sono mostrati a sinistra cioè 0.2294
e -0.2380 ma li approssimeremo rispettivamente a 0.23 e -0.23.
Consideriamo un tensore di ingresso x di 1 dimensione contenente il valore 1.
Applichiamo un modello al tensore di ingresso. Innanzitutto, il tensore di ingresso viene passato a una funzione lineare
e l'uscita intermedia viene passata alla funzione sigmoid. Infine, producendo un output.
Ora, consideriamo un campione multiplo come input. Fare una previsione su più ingressi campione è molto simile al caso di un singolo input campione.
Applichiamo un modello al nostro ingresso multi campione x. Il modello applica una funzione lineare a ogni elemento dell'input
e poi lo passa alla funzione sigmoid. Finalmente producendo un output contenente più elementi.
Ciascuno degli elementi nell'output corrisponde ad un singolo campione dell'input
Possiamo anche applicare la regressione logistica agli ingressi multidimensionali. Diamo un'occhiata al caso 2D.
Il modello 2D si comporta in modo simile alla sua parte contatore 1D.
Proprio come il caso 1D, invece di 1, ora passiamo 2 al nostro modulo di regressione logistica personalizzato poiché il nostro input è bidimensionale.
Allo stesso modo, per creare un modello 2D sequenziale, passiamo in 2 al costruttore lineare poiché il nostro input è 2 dimensionale.
Consideriamo alcuni valori di esempio dei parametri del modello per gli input bidimensionali.
Qui b e w sono i parametri del modello. I valori esatti dei parametri sono mostrati a sinistra.
E possiamo approssimare i valori come sulla destra. Ora, consideriamo il nostro modello.
Per un ingresso bidimensionale, applichiamo un modello al tensore di ingresso.
Innanzitutto, il tensore di ingresso viene passato a una funzione lineare e l'uscita intermedia viene passata alla funzione sigmoid. Infine, producendo un output.
Facciamo la stessa cosa per più campioni di ingressi 2 dimensionali tranne che: applichiamo la funzione sigmoid a ogni output intermedio.
Qui abbiamo il tensore X — un ingresso multidimensionale multi campione.
Applichiamo il modello a x che a sua volta applica la funzione lineare e la funzione sigmoide a ogni uscita intermedia.
E otteniamo tre uscite finali.