Gradientní sestup

Úvod do deep learningu v Pythonu

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

Gradientní sestup

ch2_2.003.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.004.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.005.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.006.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.008.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.009.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.010.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.011.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.012.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.013.png

Úvod do deep learningu v Pythonu

Gradientní sestup

ch2_2.014.png

Úvod do deep learningu v Pythonu

Gradientní sestup

  • Je-li sklon kladný:
    • Jít proti sklonu znamená pohyb k nižším hodnotám
    • Odečíst sklon od aktuální hodnoty
    • Příliš velký krok může vést ke špatnému výsledku
  • Řešení: rychlost učení
    • Každou váhu aktualizujeme odečtením rychlost učení * sklon
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.022.png

  • Výpočet sklonu pro váhu vyžaduje součin:
    • Sklon ztrátové funkce vzhledem k hodnotě ve výstupním uzlu
    • Hodnota uzlu, který vstupuje do dané váhy
    • Sklon aktivační funkce vzhledem k hodnotě na vstupu
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.028.png

  • Výpočet sklonu pro váhu vyžaduje součin:
    • Sklon ztrátové funkce vzhledem k hodnotě ve výstupním uzlu
    • Hodnota uzlu, který vstupuje do dané váhy
    • Sklon aktivační funkce vzhledem k hodnotě na vstupu
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.029.png

  • Sklon ztrátové funkce (MSE) vzhledem k predikci:
    • 2 (Predikovaná hodnota - Skutečná hodnota) = 2 Chyba
    • 2 * -4
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.033.png

  • Výpočet sklonu pro váhu vyžaduje součin:
    • Sklon ztrátové funkce vzhledem k hodnotě ve výstupním uzlu
    • Hodnota uzlu, který vstupuje do dané váhy
    • Sklon aktivační funkce vzhledem k hodnotě na vstupu
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.035.png

  • Výpočet sklonu pro váhu vyžaduje součin:
    • Sklon ztrátové funkce vzhledem k hodnotě ve výstupním uzlu
    • Hodnota uzlu, který vstupuje do dané váhy
    • Sklon aktivační funkce vzhledem k hodnotě na vstupu
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.037.png

  • Výpočet sklonu pro váhu vyžaduje součin:
    • Sklon ztrátové funkce vzhledem k hodnotě ve výstupním uzlu
    • Hodnota uzlu, který vstupuje do dané váhy
    • Sklon aktivační funkce vzhledem k hodnotě na vstupu
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.038.png

  • Výpočet sklonu pro váhu vyžaduje součin:
    • Sklon ztrátové funkce vzhledem k hodnotě ve výstupním uzlu
    • Hodnota uzlu, který vstupuje do dané váhy
    • Sklon aktivační funkce vzhledem k hodnotě na vstupu
Úvod do deep learningu v Pythonu

Příklad výpočtu sklonu

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • Je-li rychlost učení 0.01, nová váha bude
  • 2 - 0.01(-24) = 2.24
Úvod do deep learningu v Pythonu

Síť se dvěma vstupy ovlivňujícími predikci

ch2_2.045.png

Úvod do deep learningu v Pythonu

Kód pro výpočet sklonů a aktualizaci vah

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
Úvod do deep learningu v Pythonu

Kód pro výpočet sklonů a aktualizaci vah

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
Úvod do deep learningu v Pythonu

Pojďme si procvičit!

Úvod do deep learningu v Pythonu

Preparing Video For Download...