Gaia
Optimizaziorako teknika
Gaiari buruzko datu orokorrak
- Modalitatea
- Ikasgelakoa
- Hizkuntza
- Ingelesa
Irakasgaiaren azalpena eta testuingurua
The objective of the course "Classical Optimization Techniques" is to enable the student to understand, formulate, and implement models and algorithms to solve optimization problems. The students will learn some of the most used paradigms for solving deterministic and probabilistic optimization problems. In particular, Mathematical Programming, Dynamic Programming, Markov chains, and Markov processes will be taught as part of the course. Other optimization methods extensively applied in machine learning approaches will also be covered in the course. The student will be taught how to recognize real-world optimization problems where classical optimization can be applied, identify the corresponding appropriate class of optimization algorithm, and use and/or extend the implementations available to solve the problem. While the course will cover the necessary theoretical knowledge, it will devote a significant portion of the time to practical classes with the goal of implementing, using the Python language and Jupyter notebooks, optimization and modeling approaches that solve real-world problems.Irakasleak
Izena | Erakundea | Kategoria | Doktorea | Irakaskuntza-profila | Arloa | Helbide elektronikoa |
---|---|---|---|---|---|---|
SANTANA HERMIDA, ROBERTO | Euskal Herriko Unibertsitatea | Doktore Ikertzaileak | Doktorea | Elebakarra | Konputazio Zientzia eta Adimen Artifiziala | roberto.santana@ehu.eus |
Gaitasunak
Izena | Pisua |
---|---|
Aprender los fundamentos matemáticos de los principales algoritmos de optimización. | 25.0 % |
Adquirir conocimientos para la modelización de problemas de optimización en diversos campos de aplicación de la ciencia y la ingeniería. | 25.0 % |
Aprender a seleccionar métodos y algoritmos clásicos de optimización más adecuados para cada problema, y desarrollar la capacidad de interpretar las soluciones. | 25.0 % |
Aprender a usar el software matemático para la optimización de diversos problemas prácticos en ciencia e ingeniería. | 25.0 % |
Irakaskuntza motak
Mota | Ikasgelako orduak | Ikasgelaz kanpoko orduak | Orduak guztira |
---|---|---|---|
Magistrala | 15 | 22 | 37 |
Mintegia | 7.5 | 12 | 19.5 |
Ordenagailuko p. | 7.5 | 11 | 18.5 |
Irakaskuntza motak
Izena | Orduak | Ikasgelako orduen ehunekoa |
---|---|---|
Aplikazio-tailerrak | 10.0 | 100 % |
Azalpenezko eskolak | 10.0 | 100 % |
Bideokonferentziak | 0.0 | 100 % |
Ikasketa sistematizatua | 20.0 | 0 % |
Interakzioa irakaslearekin ingurune birtualetan | 0.0 | 30 % |
Irakaskuntza-taldeak plataforma birtualaren bidez proposatutako jarduerak | 0.0 | 0 % |
Irakurketa eta analisi praktikoak | 20.0 | 50 % |
Plataformaren bidez harreman birtualean emandako orduak (foroetan parte hartzea, etab.) | 0.0 | 100 % |
Txostenak eta azalpenak lantzea | 15.0 | 30 % |
Ebaluazio-sistemak
Izena | Gutxieneko ponderazioa | Gehieneko ponderazioa |
---|---|---|
Bertaratzea eta Parte-hartzea | 15.0 % | 25.0 % |
Azalpenak | 30.0 % | 40.0 % |
Foroetan parte hartzea | 15.0 % | 25.0 % |
Lan praktikoak | 30.0 % | 40.0 % |
OTROS | 0.0 % | 10.0 % |
Urrutiko ebaluazio-probak | 75.0 % | 85.0 % |
Ohiko deialdia: orientazioak eta uko egitea
A: Exercises and problem discussion in the laboratory, -> 1/10
B: Individual projects and/or notebook exercises (3) -> 6/10
C: Team work (problem solution, project design and implementation), -> 1/10
D: Oral presentation of works and related papers -> 1/10
E: Written examination, -> 1/10
Ezohiko deialdia: orientazioak eta uko egitea
A: Final written examination, -> 5/10
B: Individual final project -> 5/10
Final marks, A+B with A>2 and B>=2
Irakasgai-zerrenda
Topic 1: Introduction to classical optimization techniques
- Optimization problems in the real-world
- Optimization algorithms
- Application of optimization methods to Machine Learning
Topic 2: Mathematical programming methods
- Linear programming
- Integer programming
- Binary programming
- Python software for mathematical programming
- Solving real-world problems with mathematical programming
Topic 3: Dynamic programming
- Deterministic and probabilistic dynamic programming approaches
- Steps in the solution of optimization problems using dynamic programming
- Implementation of dynamic programming approaches in Python
- Solving real-world problems with dynamic programming
Topic 4: Markov chains and Markov processes
- Modeling problems under uncertainty using Markov chains
- Markov chain states, transition probabilities and Markov chain characterizations
- Markov processes
- Methods of iterations of policies
- Modeling problems with dynamic programming using Python
Topic 5: Optimization methods for machine learning
- Optimization problems in supervised and unsupervised learning
- Convex machine learning problems
- Gradient descent methods for deep learning
- Optimization for machine learning problems using Python
Topic 6: Hybrid optimization approaches and application of optimization algorithms
- Combination of different optimization approaches
- Applications in Engineering
- Applications in Bioinformatics and Medicine
- Applications in Economy and Finance
The course will comprise lectures and practical classes, the latter will consist in solving exercises using the Python-based Jupyter notebook framework. In the laboratories, students will work in teams and individually to find appropriate solutions to practical problems using optimization algorithms. As part of the evaluation, students will use available Python software (e.g., numpy, pyomo, pulp, mdptoolbox, tensorflow, etc ), to solve practical problems and present them as projects.
The course will have a virtual space in Egela where links to useful software, bibliography, and problem repositories will be available. The slides of the course lecture will be also available from the virtual class in Egela. Students could use the forum in the virtual space to discuss the problems. Students are also advised to create and use github accounts for the completion of the individual and team projects.
Bibliografia
Oinarrizko bibliografia
E. Castillo, A. J. Conejo, P. Pedregal, R. Garcı́a, and N. Alguacil, 2002. Building and Solving Mathematical Programming Models in Engineering and Science, Pure and Applied Mathematics Series, Wiley, New York.
R. L. Rardin. Optimization in operations research. Upper Saddle River, NJ: Prentice Hall; 1998.
W. Winston. 1991. Operations Research. Applications and Algorithms. PWS-Kent Publishing Company
A. Lew and H. Mauch. Dynamic programming: A computational tool. Vol. 38. Springer, 2006.
N. C. Jones and P. A. Pvzner. An introduction to bioinformatics algorithms. MIT 2004.
Henk C. Tijms. A First Course in Stochastic Models. Wiley, 2003.
K. P. Bennett and E. Parrado-Hernández. The interplay of optimization and machine learning research.
Gehiago sakontzeko bibliografia
S. Boyd and L. Vandenberghe, 2004. Convex optimization. Cambridge university press.L. Bottou and O. Bousquet, 2008. The tradeoffs of large scale learning. In Advances in neural information processing systems (pp. 161-168).
L. Bottou, 2010. Large-scale machine learning with stochastic gradient descent. In Proceedings of COMPSTAT'2010 (pp. 177-186). Physica-Verlag HD.
Aldizkariak
Operation Research Journal
Journal of Machine Learning Research
Estekak
Convex optimizationhttps://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf
An overview of gradient descent optimization algorithms
http://ruder.io/optimizing-gradient-descent/index.html
Optimization in Python cookbook: bowl, plate and valley functions
https://medium.com/@alexrachnog/optimization-cookbook-1-262aa5555b61
Jupyter notebooks
http://jupyter.org/
Optimization with PuLP
https://pythonhosted.org/PuLP/
Optimization with Pyomo
http://www.pyomo.org/