## Métodos numéricos y optimización (aka Optimización)
de la Maestría en Ciencia de Datos (MCD)
---
## ¿Optimización?
* Es un área de las Matemáticas Aplicadas con muchas aplicaciones por ejemplo en Finanzas, Economía, Biología, Matemáticas, Computación, Estadística, Probabilidad ...
* En específico nos interesan problemas que surgen en el Cálculo Numérico y en el Aprendizaje de Máquina.
Los objetivos de este curso están descritos en el [temario](https://drive.google.com/file/d/1dj7bU5uN_ngEhUxhKL9YzCfPGLVc8Z0j/view?usp=sharing).
(continúa :point_down:)
----
### Optimización Numérica o Matemática
En este curso consideramos a la Optimización como Optimización Numérica o Matemática y no en el sentido de optimización de código, aunque la Optimización Numérica se apoya en ella para la implementación eficiente de algoritmos en la computadora.
----
### Ejemplo
Dahsboard interactivo para calcular la distancia mínima que deben recorrer personas en una microfinanciera para visitas a sus clientes. Ver [liga](https://tcp-dashboard.herokuapp.com/) de [estudiantes del ITAM en el curso de Optimización](https://github.com/lauragmz/proyecto-final-mno2020/blob/master/reports/reporte_rutas_optimas.pdf) del primer semestre del 2020.
(continúa :point_right:)
---
## ¿Cálculo Numérico?
Consiste en métodos numéricos para resolver problemas del Cálculo Diferencial e Integral, Álgebra Lineal y en general en áreas en las que se requieren aproximaciones a problemas de Matemáticas. El Análisis Numérico y Cómputo Científico es el área que estudia, desarrolla e implementa tales métodos.
----
### ¿Análisis Numérico y Cómputo Científico?
Análisis numérico: área de las Mátemáticas Aplicadas que estudia a los algoritmos para los problemas matemáticos que involucran cantidades continuas [(L. Trefethen, D. Bau, 1997)](https://my.siam.org/Store/Product/viewproduct/?ProductId=950).
Cómputo científico: área de la Ciencia de la Computación que desarrolla, implementa y realiza simulación de los algoritmos.
----
### ¿Análisis Numérico $\approx$ Cómputo Científico?
... la historia de ambas áreas se han entrelazado y enriquecido por igual. Por esto hoy en día no hacemos distinción entre ellas.
---
## ¿Aprendizaje de máquina?
Es un área de Inteligencia Artificial que utiliza técnicas estadísticas para el diseño de sistemas capaces de aplicaciones como el reconocimiento de patrones. Hoy en día también le nombramos Aprendizaje de Máquina Estadístico.
----
### Inteligencia Artificial
La IA o Inteligencia Artificial es una rama de la Ciencia de la Computación que atrajo un gran interés en $1950$.
Colloquially, the term artificial intelligence is often used to describe machines (or computers) that mimic "cognitive" functions that humans associate with the human mind, such as *learning* and *problem solving* ([S. J. Russel, P. Norvig, $1995$](https://en.wikipedia.org/wiki/Artificial_Intelligence:_A_Modern_Approach))
----
### Optimización y Aprendizaje de Máquina
* Los problemas de aprendizaje tienen relación directa con problemas de optimización
numérica.
* Todos los modelos o métodos de aprendizaje plantean problemas de optimización.
---
## Información general del curso de Optimización
---
### ¿Software?
* Está encapsulado\* en la imagen de [docker](https://www.docker.com/) [palmoreck/jupyterlab_optimizacion:3.1.0](https://github.com/palmoreck/dockerfiles/tree/master/jupyterlab/optimizacion).
\*Usaremos fundamentalmente el lenguaje de programación y paquetes de *Python*, lenguaje de comandos en [bash](https://en.wikipedia.org/wiki/Bash_(Unix_shell)) ([docker](https://www.docker.com/), [git](https://git-scm.com/) principalmente) y otros lenguajes de programación.
----
### ¿Software?
* También usaremos [github](https://github.com/) y [dockerhub](https://hub.docker.com/).
* Preferimos sistemas operativos basados en [GNU](https://en.wikipedia.org/wiki/GNU)/[Linux](https://en.wikipedia.org/wiki/Linux) como [Ubuntu](https://ubuntu.com/) que está basado en [Debian](https://www.debian.org/) pero sistemas OS X (Mac OS X) también funcionan muy bien (Windows da dolor de cabeza con varias herramientas).
----
### ¿Hardware?
* No tenemos un requisito específico para la MCD. Una laptop o computadora de escritorio multicore es una buena opción. Si tiene procesadores gráficos [GPU](https://en.wikipedia.org/wiki/Graphics_processing_unit) está súper pero no es esencial.
* Estudiantes inscritos en la MCD tienen acceso a créditos de [Amazon Web Services](https://aws.amazon.com/?nc1=h_ls) dentro de los programas [Educate](https://aws.amazon.com/education/awseducate/?nc1=h_ls) o [Academy](https://aws.amazon.com/training/awsacademy/) vía su correo con dominio itam.mx
----
### ¿Hardware?
* El repo del curso está construído para que a través de botones tengan acceso a servidores de Google y otras compañías desde la comodidad de sus dispositivos electrónicos (computadoras, tabletas, teléfonos celulares...) pero **sí** es indispensable que tengan una computadora local en la que puedan ejecutar el material de su MCD.
Ejemplo de botón:
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/palmoreck/dockerfiles-for-binder/jupyterlab_optimizacion?urlpath=lab/tree/analisis-numerico-computo-cientifico)
----
### Videollamadas por ahora...
La clase son los jueves de 6 a 9 pm y es **en línea** a través de [Zoom](https://zoom.us/). Hacemos *breaks* de 10 min cada hora.
----
### Repositorio con contenido del curso
Los temas que estudiamos están descritos en el repositorio de github de nombre [analisis-numerico-computo-cientifico](https://github.com/ITAM-DS/analisis-numerico-computo-cientifico) debajo de la organización del ITAM con nombre [ITAM-DS](https://github.com/ITAM-DS).
En el repo de `analisis-numerico-computo-cientifico` creé la rama [optimizacion-2021](https://github.com/ITAM-DS/analisis-numerico-computo-cientifico/tree/optimizacion-2021) que contiene información en específico de este segundo semestre 2021.
----
### Dinámica
Cada clase revisamos el [libro de optimización](https://itam-ds.github.io/analisis-numerico-computo-cientifico/) que contiene los temas del curso. Hacemos preguntas, resolvemos dudas y/o ejercicios
En la [liga](https://github.com/ITAM-DS/analisis-numerico-computo-cientifico/tree/optimizacion-2021#organizaci%C3%B3n-del-curso) encuentran la agenda.
Usamos [canvas](https://www.instructure.com/es/canvas) donde publicaré exámenes y prácticas a realizar.
----
## Calificación
|Exámenes(2)| Prácticas(2)|Proyecto final|
|:---:|:---:|:---:|
|15|15|40
:heavy_plus_sign: asignaciones que se toman como extra a la calificación final.
**El curso se acredita con calificación mayor o igual a 6.**
Más información en [generalidades del curso de optimización](https://github.com/ITAM-DS/analisis-numerico-computo-cientifico/blob/optimizacion-2021/generalidades_curso_de_optimizacion.md).
----
## Sobre lo que nunca deben realizar
**Copiar en un examen/tarea/trabajo/entrega pues se pondrá cero en el mismo. Si vuelve a repetirse la situación se le notificará a dirección escolar para realizar la anotación correspondiente en su expediente.**
----
## Sobre lo que siempre deben realizar
**Documentar sus referencias, fuentes, colaboraciones y material que utilizan para resolver sus exámenes, prácticas o proyectos.**
---
## ¿Preguntas?
---
## Tarea para la primer clase
* Crear *user* de [github](https://github.com/).
* Unirse al chat de [gitter](https://gitter.im/) con su *user* de *github* dando click en [![Gitter](https://badges.gitter.im/optimizacion-2021/community.svg)](https://gitter.im/optimizacion-2021/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) o en el repo en la [liga](https://github.com/ITAM-DS/analisis-numerico-computo-cientifico#dar-click-en-el-siguiente-bot%C3%B3n-para-unirse-al-chat-del-curso-de-optimizaci%C3%B3n-2021-en-gitter-).
(continúa :point_down:)
----
## Tarea para la primer clase
* Instalar [docker](https://www.docker.com/) en sus máquinas.
* Crear user de [dockerhub](https://hub.docker.com/).
* En la [liga](https://github.com/ITAM-DS/Propedeutico/tree/master/herramientas/docker) encuentran información de docker.
* Aceptar invitación al classroom de [AWS Educate](https://aws.amazon.com/education/awseducate/?nc1=h_ls)
----
## Tarea no para la primer clase
... pero sí para un tiempo razonable (1 mes aprox) :)
Tener listo lo revisado en los videos para configuración de servicios básicos de AWS en el [wiki](https://github.com/ITAM-DS/analisis-numerico-computo-cientifico/wiki) del repo.
---
Esta presentación fue realizada con [reveal.js](https://revealjs.com/). Aquí la liga de su *github*: [reveal.js github](https://github.com/hakimel/reveal.js/).
También me apoyé de [hackmd](https://hackmd.io/) para la creación de documentos de forma colaborativa (así como un google drive) y en particular para presentaciones de *reveal.js*. Ver [tutorial](https://hackmd.io/c/tutorials/%2Fs%2Fhow-to-create-slide-deck) para creación de presentaciones con *reveal.js*.
Mi user de *github* es [palmoreck](https://github.com/palmoreck), el medio de contacto es por el chat de [gitter](https://gitter.im/) como **primera opción** y como **segunda opción:** erick89.itam@gmail.com. En [liga](https://mcdatos.itam.mx/erick-palacios/) una breve descripción de mí :)
{"metaMigratedAt":"2023-06-15T11:18:21.379Z","metaMigratedFrom":"YAML","title":"Intro_a_optimizacion","breaks":"true","slideOptions":"{\"theme\":\"solarized\",\"transition\":\"fade\",\"controls\":true,\"progress\":true}","contributors":"[{\"id\":\"8b24e736-2935-427d-8d66-2819293128a2\",\"add\":18217,\"del\":8603}]"}