in

Come cavalcare l’onda – Supervised Learning spiegato facile parte 3

Ricapitoliamo: vogliamo calcolare la migliore retta possibile che rappresenti l’insieme dei punti x,y di un dato fenomeno. Abbiamo concordato che il termine “migliore retta possibile” lo esprimiamo con la sommatoria della distanza al quadrato tra la retta e tutte le coppie x,y, ovvero:

$$J(θ_{0},θ_{1})=\frac{1}{2m} \sum_{i=1}^n (y_{i}{‘}-y_{i})^2$$

$J(θ_{0},θ_{1})$ è quindi una funzione di $θ_{0}$ e $θ_{1}$ e si tratta di calcolare per quali valori delle due variabili la funzione ha un minimo.

Il metodo che viene comunemente utilizzato per trovare il minimo è quello della discesa del gradiente. E’ esattamente quello che faremmo tutti quanti se ci trovassimo in un prato pieno di collinette ed avvallamenti e, non potendo individuare “ad occhio” il punto più basso, inizieremmo a spostarci passo-passo verso la direzione con la pendenza a scendere più importante.

In modo analogo è quello che farebbe una biglia che fosse lasciata libera di rotolare su una superficie simile. Sarebbe spontaneamente indotta ad andare nella direzione della discesa più ripida.

Qualcosa che graficamente possiamo rappresentare in questo modo:

Qui per semplicità siamo passati ad una funzione di costo della sola variabile $θ_{0}$ e il nostro amico surfista scende in picchiata partendo dal punto blu secondo la direzione della pendenza evidenziata dalla freccia rossa.

Possiamo avvalerci della nostra intuizione per immaginare una serie di conseguenze:

  1. più è forte la pendenza della curva, più il surfista va velocemente verso il basso
  2. quando e se la pendenza della curva dovesse invertirsi, il surfista sarà costretto a cambiare direzione

Facciamo quindi procedere il nostro amico in base alla pendenza, immaginando che in un istante successivo, sarà passato dal punto “A” al punto “B”

Notiamo come ora sia sensibilmente più vicino al primo avvallamento del grafico e che ora la pendenza della curva è un po’ meno inclinata. Questo significa che il nostro amico continuerà a scendere ma ora con una velocità leggermente inferiore (la freccia rossa si è accorciata).

Arrivati fin qui ci potrebbe venire un dubbio: chi garantisce che il surfista si “fermerà” in corrispondenza del primo avvallamento? Non potrebbe darsi che l’eccessiva velocità di discesa gli farà sorpassare il minimo locale, facendolo proseguire verso sinistra?

Il dubbio è sacrosanto e fortunatamente esiste anche la risposta: la velocità di movimento viene influenzata da due fattori:

  1. la pendenza della curva stessa. Qui non ci possiamo fare molto, anzi è un fenomeno che ci fa comodo. Se la pendenza è alta, sono lontano da un minimo e devo quindi picchiare verso il basso come si deve. Se la pendenza è minima, per poi tendere a zero, mi fa comodo di nuovo perché mi consentirà l’arresto
  2. la velocità dell’algoritmo di calcolo. Quando passiamo dal punto A al punto B, non stiamo solo considerando la pendenza della curva, ma stiamo implicitamente (ora lo esplicitiamo!) introducendo il “passetto minimo” del nostro algoritmo.

La figura qui sopra dovrebbe chiarire. Passando da A a B, siamo “scesi” di un tot e ci siamo spostati verso sinistra di un ulteriore tot. Quanto valgono questi “tot” ? Beh, quello orizzontale è proprio il passo dell’algoritmo. Non dipende dalla funzione in questione, ma solo da quanto ho fretta di trovare il risultato. Se ho molta fretta, devo procedere con rapidità, ad ogni punto successivo A,B,C,… voglio muovermi rapido e quindi uso un valore grande.

Al valore del passo, corrisponde poi quello verticale, dato invece dal prodotto tra la pendenza della curva e il passo dell’algoritmo stesso.

Attenzione però, come succede anche in altri ambiti della vita, se però ho troppa fretta di trovare il risultato … rischio di ritrovarmi con un pugno di mosche in mano! L’algoritmo effettuerà passi troppo grandi, con distanze eccessive tra A e B (sull’asse orizzontale), rischiando di mancare completamente il minimo locale.

In modo analogo un passo molto piccolo sarà sicuramente più preciso, ma a volte potrebbe esserlo in modo del tutto inutile: non mi serve a nulla colmare una distanza di 10Km con passetti da 1mm ciascuno. Più propriamente, dovrò adottare un passo dell’algoritmo che sia adeguato al fenomeno che sto studiando. Ma questo lo vedremo nelle prossime puntate.

Cosa ne pensi?

Scritto da Emanuele Donati

I'm a charismatic leader, highly experienced and able to ensure success of the most challenging and ambitious projects. My deep competence in ICT's activities and years of experience in marketing, communication and production, together with business administration wide understanding allow me to operate and succeed in all layers of the company's strategic goals.

I'm continuously searching for original and challenging growing paths to verify and increase my managerial skills. Ranging from defence to telecommunications, entertainment to pharmaceuticals industry, I’ve been able to enrich my managerial background with both start-up and business expansion activities.

Strengths: Creativity, problem solving and design skills, high-technological background, strong managerial capabilities in difficult situations, group development, company mission and vision evangelist, deep comprehension of corporate governance

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dammi un minimo e ti predirò il futuro – Supervised Learning spiegato facile parte 2