Capitolo 8. Discesa del gradiente
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
Chi si vanta della propria discendenza, si vanta di ciò che deve agli altri.
Seneca
Spesso, quando ci occupiamo di scienza dei dati, cerchiamo di trovare il modello migliore per una determinata situazione. E di solito "migliore" significa qualcosa come "minimizza l'errore delle sue previsioni" o "massimizza la verosimiglianza dei dati". In altre parole, rappresenta la soluzione a una sorta di problema di ottimizzazione.
Questo significa che dovremo risolvere una serie di problemi di ottimizzazione. In particolare, dovremo risolverli da zero. Il nostro approccio sarà una tecnica chiamata discesa del gradiente, che si presta molto bene a un trattamento ex novo. Forse non ti sembrerà molto entusiasmante di per sé, ma ci permetterà di fare cose interessanti nel corso del libro, quindi abbi pazienza.
L'idea alla base della discesa graduale
Supponiamo di avere una funzione f che prende in ingresso un vettore di numeri reali e restituisce un singolo numero reale. Una semplice funzione di questo tipo è:
fromscratch.linear_algebraimportVector,dotdefsum_of_squares(v:Vector)->float:"""Computes the sum of squared elements in v"""returndot(v,v)
Spesso avremo bisogno di massimizzare o minimizzare tali funzioni. In altre parole, dobbiamo trovare l'ingresso v che produce il valore più grande (o più piccolo) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access