Градієнтний спуск

Вступ до Deep Learning у Python

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Градієнтний спуск

ch2_2.003.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.004.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.005.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.006.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.008.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.009.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.010.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.011.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.012.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.013.png

Вступ до Deep Learning у Python

Градієнтний спуск

ch2_2.014.png

Вступ до Deep Learning у Python

Градієнтний спуск

  • Якщо нахил додатний:
    • Рух у протилежний бік веде до менших значень
    • Відніміть нахил від поточного значення
    • Занадто великий крок може збити з курсу
  • Рішення: швидкість навчання
    • Оновлюйте кожну вагу, віднімаючи швидкість навчання * нахил
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.022.png

  • Щоб обчислити нахил для ваги, треба перемножити:
    • Нахил функції втрат відносно значення у вузлі, куди ми подаємо сигнал
    • Значення вузла, що входить у нашу вагу
    • Нахил активаційної функції відносно значення, яке ми в неї подаємо
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.028.png

  • Щоб обчислити нахил для ваги, треба перемножити:
    • Нахил функції втрат відносно значення у вузлі, куди ми подаємо сигнал
    • Значення вузла, що входить у нашу вагу
    • Нахил активаційної функції відносно значення, яке ми в неї подаємо
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.029.png

  • Нахил середньоквадратичної функції втрат відносно передбачення:
    • 2 (Передбачене значення - Фактичне значення) = 2 Помилка
    • 2 * -4
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.033.png

  • Щоб обчислити нахил для ваги, треба перемножити:
    • Нахил функції втрат відносно значення у вузлі, куди ми подаємо сигнал
    • Значення вузла, що входить у нашу вагу
    • Нахил активаційної функції відносно значення, яке ми в неї подаємо
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.035.png

  • Щоб обчислити нахил для ваги, треба перемножити:
    • Нахил функції втрат відносно значення у вузлі, куди ми подаємо сигнал
    • Значення вузла, що входить у нашу вагу
    • Нахил активаційної функції відносно значення, яке ми в неї подаємо
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.037.png

  • Щоб обчислити нахил для ваги, треба перемножити:
    • Нахил функції втрат відносно значення у вузлі, куди ми подаємо сигнал
    • Значення вузла, що входить у нашу вагу
    • Нахил активаційної функції відносно значення, яке ми в неї подаємо
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.038.png

  • Щоб обчислити нахил для ваги, треба перемножити:
    • Нахил функції втрат відносно значення у вузлі, куди ми подаємо сигнал
    • Значення вузла, що входить у нашу вагу
    • Нахил активаційної функції відносно значення, яке ми в неї подаємо
Вступ до Deep Learning у Python

Приклад обчислення нахилу

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Якщо швидкість навчання 0.01, нова вага буде
  • 2 - 0.01(-24) = 2.24
Вступ до Deep Learning у Python

Мережа з двома входами, що впливають на передбачення

ch2_2.045.png

Вступ до Deep Learning у Python

Код для обчислення нахилів і оновлення ваг

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
Вступ до Deep Learning у Python

Код для обчислення нахилів і оновлення ваг

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
Вступ до Deep Learning у Python

Давайте потренуємось!

Вступ до Deep Learning у Python

Preparing Video For Download...