Minimizacijski problemi so med najbolj pogostimi in najbolj praktičnimi izzivi, ki jih dnevno srečamo v svojem življenju; od optimalne vožnje, najmanjše cene pa do najboljše šahovske poteze. Gradientni spust je ena izmed najbolj vsestranskih numeričnih metod, ki jo bomo uporabili na različnih problemih v programskem jeziku Python. Poiskali bomo ekstreme funkcij, ki jih srečamo v realnih fizikalnih problemih, izračunali bomo najboljši opis meritev in uporabili strojno učenje za prepoznavanje slik.
Gre za numerično metodo in sicer za iterativni optimizacijski algoritem prvega reda za iskanje lokalnih minimumov odvedljivih funkcij. Osnovna ideja je da se sprehajamo po funkciji v smeri nasprotni gradientu, torej v smeri najbolj strmega spusta.
Tekom delavnice si bomo ogledali uporabo metode gradientnega spusta v zelo raznoličnih primerih:
- 1-dimenzionalni: poševni met, minimumi polinoma, resonanca nihala,
- 2-dimenzionalni: linearna regresija, minimumi 2D funkcij,
- N-dimenzionalni: prilagajanje elipse,
- strojno učenje: prepoznavanje slik iz baze CIFAR-10,
- Python3
- numpy
- matplotlib
- scipy
- pandas
- tensorflow
- keras
- jupyter
- Krištof Špenko @KSpenko
This project is licensed under the MIT License - see the LICENSE.txt
file for details