Coborâre pe gradient

Introducere în Deep Learning în Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Coborâre pe gradient

ch2_2.003.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.004.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.005.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.006.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.008.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.009.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.010.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.011.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.012.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.013.png

Introducere în Deep Learning în Python

Coborâre pe gradient

ch2_2.014.png

Introducere în Deep Learning în Python

Coborâre pe gradient

  • Dacă panta este pozitivă:
    • A merge invers pantei înseamnă a te deplasa spre valori mai mici
    • Scădeți panta din valoarea curentă
    • Un pas prea mare poate duce la deviere
  • Soluție: rata de învățare
    • Actualizați fiecare pondere scăzând rata de învățare * panta
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.022.png

  • Pentru a calcula panta unui pondere, se înmulțesc:
    • Panta funcției de pierdere față de valoarea nodului alimentat
    • Valoarea nodului care alimentează ponderea
    • Panta funcției de activare față de valoarea introdusă
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.028.png

  • Pentru a calcula panta unui pondere, se înmulțesc:
    • Panta funcției de pierdere față de valoarea nodului alimentat
    • Valoarea nodului care alimentează ponderea
    • Panta funcției de activare față de valoarea introdusă
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.029.png

  • Panta funcției de pierdere pătratică față de predicție:
    • 2 (Valoare prezisă - Valoare reală) = 2 Eroare
    • 2 * -4
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.033.png

  • Pentru a calcula panta unui pondere, se înmulțesc:
    • Panta funcției de pierdere față de valoarea nodului alimentat
    • Valoarea nodului care alimentează ponderea
    • Panta funcției de activare față de valoarea introdusă
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.035.png

  • Pentru a calcula panta unui pondere, se înmulțesc:
    • Panta funcției de pierdere față de valoarea nodului alimentat
    • Valoarea nodului care alimentează ponderea
    • Panta funcției de activare față de valoarea introdusă
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.037.png

  • Pentru a calcula panta unui pondere, se înmulțesc:
    • Panta funcției de pierdere față de valoarea nodului alimentat
    • Valoarea nodului care alimentează ponderea
    • Panta funcției de activare față de valoarea introdusă
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.038.png

  • Pentru a calcula panta unui pondere, se înmulțesc:
    • Panta funcției de pierdere față de valoarea nodului alimentat
    • Valoarea nodului care alimentează ponderea
    • Panta funcției de activare față de valoarea introdusă
Introducere în Deep Learning în Python

Exemplu de calcul al pantei

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Dacă rata de învățare este 0.01, noua pondere va fi
  • 2 - 0.01(-24) = 2.24
Introducere în Deep Learning în Python

Rețea cu două intrări care influențează predicția

ch2_2.045.png

Introducere în Deep Learning în Python

Cod pentru calculul pantelor și actualizarea ponderilor

import numpy as np
weights = np.array([1, 2])
input_data = np.array([3, 4])
target = 6
learning_rate = 0.01
preds = (weights * input_data).sum()
error = preds - target

print(error)
5
Introducere în Deep Learning în Python

Cod pentru calculul pantelor și actualizarea ponderilor

gradient = 2 * input_data * error

gradient
array([30, 40])
weights_updated = weights - learning_rate * gradient
preds_updated = (weights_updated * input_data).sum()
error_updated = preds_updated - target

print(error_updated)
2.5
Introducere în Deep Learning în Python

Să exersăm!

Introducere în Deep Learning în Python

Preparing Video For Download...